当前位置: 首页 > news >正文

绵阳优化网站排名微信开店哪个平台好

绵阳优化网站排名,微信开店哪个平台好,网站开发需要多少钱推荐,懒懒淘客怎么做自己的网站一、DMA的引入 Non-DMA:CPU直接与设备进行数据交互,CPU的负载会随着数据的读写而增加; DMA:CPU不参与数据的直接传输,DMA Controller负责Device与Memory之间的数据搬运,并以中断信号的形式通知CPU&#xf…

一、DMA的引入

Non-DMA:CPU直接与设备进行数据交互,CPU的负载会随着数据的读写而增加;
DMA:CPU不参与数据的直接传输,DMA Controller负责Device与Memory之间的数据搬运,并以中断信号的形式通知CPU;
可以看出,DMA可以提高CPU的使用率。

二、IOMMU与DMA的关系

可以看出,IOMMU是DMA过程中的一环,也是实现DMA的一种手段。(当然DMA也可以不走IOMMU,但是有的安全隐患)

三、IOMMU的作用

1、IOMMU是设备访问物理地址的媒介, IOMMU使得设备无法直接访问物理地址,大大增加了设备进行DMA攻击的难度。(安全性)

2、部分设备的引脚数较少,导致其位数较低,无法寻址到整个物理内存空间。(成本原因?越多引脚意味着更大的寻址范围(越多的bit位))

以目前主流的32位设备为例,其在物理内存中直接寻址的范围是[0, 4GB)。但是,现代操作系统的内存往往大于4GB。如果设备申请DMA时,内核为设备分配的DMA buffer的地址高于4GB(以下简称为“high buffer”),则设备将无法寻址到它。
有了IOMMU以后,IOMMU就可以在[0, 4GB)范围内分配一段与高地址buffer长度相同的内存,让设备能够直接寻址(以下称为“low buffer”)。设备向low buffer写入后,IOMMU就会将low buffer中的内容,复制到high buffer,而后通知CPU从high buffer读取内容。反之亦然——CPU向high buffer写入后,IOMMU就会将high buffer中的内容,复制到low buffer,而后通知设备从low buffer读取内容。这样,CPU和设备都能读取到对方写入的内容。这样在high buffer和low buffer之间复制内容的操作,在IOMMU机制中被称为“sync”或“bounce”。(重点)

读者可能会想,内存的复制,在内核中,不就是调用memcpy()函数来实现的吗?没错,这就是本文要介绍的IOMMU的软件实现方式——SWIOTLB。之所以说是软件实现,是因为sync操作在底层正是调用memcpy()函数,这完全是软件实现的。

四、IOMMU的分类

1、软件IOMMU(SWIOTLB)

2、硬件IOMMU(Intel IOMMU、AMD IOMMU)(与各个厂商的硬件实现有关)

五、SWIOTLB

SWIOTLB(software input/output table translation lookaside buffer)(软件IO地址转换缓冲区)

SWIOTLB的作用在于,使得寻址能力较低、无法直接寻址到内核所分配的DMA buffer的那些设备,也能够进行DMA操作

在目前主流的Linux操作系统中,SWIOTLB发挥作用的场合并不多见。这主要是由于以下原因:

现代的外部设备,通常都是32位或64位设备。64位设备毫无疑问可以直接寻址整个物理内存空间;而32位设备能够直接寻址的范围也达到了4G。如果操作系统运行内存不大于4G,则所有内存都可以被这些设备直接寻址到,此时设备的DMA操作,就无需SWIOTLB的辅助。
相比硬件IOMMU,SWIOTLB存在memcpy()操作,需要CPU的参与(cpu性能比不上dma控制器?),降低了效率,这是软件实现的固有弊端。
如果启动参数中同时启用SWIOTLB和硬件IOMMU(例如Intel IOMMU),那么当Linux系统启动完成后,SWIOTLB将会被禁用,而仅保留硬件IOMMU。

如果关闭IOMMU,dma 默认不会走iommu(硬件方式),而是走传统的swiotlb方式的dma(软件方式);缺点是效率较低。

六、关闭IOMMU的方式

1、grub命令行中添加 iommu.passthrough=0 参数

2、acpi表或者dts中不配置相应的smmu节点(保证不会正常设备驱动匹配)

参考ARM SMMU原理与IOMMU技术(“VT-d” DMA、I/O虚拟化、内存虚拟化)_asid pasid-CSDN博客

未完待续,持续更新

参考文章:

看完秒懂:Linux DMA mapping机制分析_dma map single-CSDN博客

Linux x86-64 IOMMU详解(一)——IOMMU简介_ioxumux-CSDN博客

http://www.yayakq.cn/news/216065/

相关文章:

  • 陕西煤化建设集团网站html教程百度云
  • 做网站推淘宝客长春做网站公司长春网站排名
  • wordpress 用oss存储中企动力网站优化
  • 服务型网站建设东莞桥头网站设计
  • 双语版网站物流网站建设推广
  • 云阳营销型网站建设wordpress页面标签页
  • 买源码的网站深圳做网站推广哪家好
  • 软件下载站网站源码免费苏宁网站建设
  • 西安网站建设 分类信息设计云网站
  • 厦门网站建设公司闽icp购物网站 wordpress 英文模板
  • 潜江做网站的个人怎样注册网站
  • 大邑县建设局网站芜湖市公司网站建设哪家好
  • 揭阳企业建站系统google建立网站
  • 一流的苏州网站建设深圳网站建设哪家公司便宜
  • 网站开发框架具体使用方法海南省住房和城乡建设官方网站
  • 团购网站大全和田地seo
  • 网站建设目标及需求莱芜在线app下载
  • 涂料网站设计公司一个网站做数据分析要多少钱
  • 自建站移动互联网开发找工作
  • 保健品网站模板学网站前端
  • 青海省建设厅网站首页工业和信息化部icp网站备案系统
  • 吉林省城乡住房建设厅网站专业手机网站制作公司
  • 广州新站优化.net 做网站
  • 企业网站系统功能设计说明阿里云购买网站空间
  • 济南免费网站建设优化云开发壁纸小程序
  • 绍兴在线制作网站网站 二级域名需要备案吗
  • 理财网站建设方案书黑龙江网站制作平台
  • 一个好的网站内页大概做多少南宁论坛建站模板
  • 个人网站 jsp 域名空间微信官网小程序注册
  • 景观设计师做交通分析常用网站手机网站定制开发费用