PCIe传输和DMA传输有什么区别

区别:PCIe实质上就是一种高速IO,而DMA(direct memory access)的主要作用是做大规模的数据搬运。PCIe有规定的协议、数据包格式、时钟配比、电压规范,不同的PCIe设备之间理论上是可以互相通信的,DMA并没有绝对规范的接口协议,DMA一般都集成在片内。

PCIe传输和DMA传输有什么区别-Worktile社区

PCIe实质上就是一种高速IO,而DMA(direct memory access)的主要作用是做大规模的数据搬运。

PCIe有规定的协议,数据包格式,时钟配比,电压规范,不同的PCIe设备之间理论上是可以互相通信的,DMA并没有绝对规范的接口协议,大部分公司的DMA一般都对接私有总线,所以DMA一般都集成在片内。

综上所述,PCIe的input/output ,基本都对接IO,而DMA的input/output,对应的是诸如noc之类的片内总线。

上面说的是PCIe和DMA的区别,我们进一步抽象,将他们的实现细节全部悬置起来,最后会发现,PCIe对应的是一种具有完整规定性的总线协议,而DMA对应的其实只是一种功能本身,即Direct Memory Access,除此之外并没有给出更多的规定性。至于DMA是对接的是何种总线,如何设置src/dst address,可以工作在主频多少的系统中,能够容纳outstanding的个数是多少,不好意思,各家公司的实现都不相同,无可奉告。

回到问题本身,PCIe和DMA传输有区别吗?不知这里问的是对host/device的memory访问吗?仅仅只是从数据传输的结果来看,二者没有任何区别,DMA能做的,PCIe都能做。但是,如果从效率上来看,DMA的效率无疑远远高于PCIe。

首先,以访问device memory为例,pcie作为master发起了,将memory A中的数据copy到memory B中的访问,需要copy的data大约是1GB,需要将A中的数据读出,再写到B中。假设pcie一次读访问的return data非常多是4KB(具体多少我不记得了……),读请求从IO进入,经noc,到cache,如果cache miss,则再进入memory controller(总共读的数据量太大,所以一定会去memory,别想逃),经ddr,到达dram,数据读出,再一路返回,如此过程重复250000次……然后再以类似的过程发起写请求,不过pcie的write tlp是posted的,所以,不需要等response,理论上会快不少。但是,在此过程中,你的pcie总线可是被memory访问的工作全程占用的!host可是需要用它进行系统管理的,这种“搬砖”的活岂能让你这么玩?

接下来我们看用片内dma,访问由dma发起,直接经内部总线,到cache,到memory controller(如果cache  miss的话),到ddr 和 dram ,然后!不需要等到所有的read return全回来,只要有数据返回,dma会直接将它写到目标地址中去(路径同上),全程的bubble很小,带宽利用率极高。而且,一般片内会有多个dma!可以同时做这种数据搬运的工作!同时,dma的访问是直接在片内发起的,省去了从IO到noc这一段的path delay,这一读一写,效应更明显了(当然在outstanding的读和写中,这一段path delay的影响可能不会很大)。别以为pcie的速度有多快(gen5能到32GT/s),IO的速度即使再快,和片内这种大规模并行总线相比仍然只是弟弟,关键是此时pcie可以更多的聚焦于系统管理的任务(而不是琐碎的存储操作),整个系统运行的效率,大大提升。

最后,很多pcie controller本身也包含了dma功能(host和device做memory交互时很常见),比单纯地使用pcie发读TLP + 写TLP的方式确实要高效多了。但是和片内DMA比,只能说…仍然还是个弟弟。术业有专攻,pcie很强大,主要强在通用性,兼容性,以及背靠x86庞大的生态系统,但在很多特殊场景中,不见得有多么高效。

延伸阅读:

什么是PCIe?

PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,它原来的名称为“3GIO”,是由英特尔在2001年提出的,旨在替代旧的PCI,PCI-X和AGP总线标准。

PCIe属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(QOS)等功能。

PCIe交由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”,简称“PCI-e”。它的主要优势就是数据传输速率高,而且还有相当大的发展潜力。

PCI Express也有多种规格,从PCI Express x1到PCI Express x32,能满足将来一定时间内出现的低速设备和高速设备的需求。PCI-Express的接口是PCIe 3.0接口,其比特率为8Gbps,约为上一代产品带宽的两倍,并且包含发射器和接收器均衡、PLL改善以及时钟数据恢复等一系列重要的新功能,用以改善数据传输和数据保护性能。

文章标题:PCIe传输和DMA传输有什么区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38333

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月14日 下午11:30
下一篇 2023年2月15日 上午12:07

相关推荐

  • 教育行业也可以用的低代码软件

    数字化转型的浪潮已经席卷了各行各业,不仅出现在互联网、电商、建筑等行业,还应用在了教育行业。数字化的教育ERP软件能够在满足学校需求的基础上,帮助学校完善各类工作流程,提高工作效率。

    2023年8月21日
    38700
  • app store的意思是什么

    app store的意思是application store,是苹果公司为其iPhone、iPod Touch等产品创建和维护的数字化移动应用程序发行平台,用户可以在AppStore上下载各种免费或收费的软件、游戏。同时,它也是第三方开发者的软件销售平台。 一、app store简介 App Sto…

    2023年3月16日
    1.2K00
  • 华发股份oa

    标题:华发股份OA系统的实施与优化 摘要:华发股份实施的OA系统提升了企业资源整合效率、改善了内部沟通机制、优化了工作流程、加强了安全性管理。在这些方面,优化工作流程特别显著,提升了工作效率和进度透明度,例如通过自动化审批流程减少了人工操作的复杂性和出错概率。此外,不断的系统迭代更新确保企业需求得到…

    2024年1月16日
    19600
  • 软件项目预期延期如何应对

    软件项目预期延期需要以下应对方法:1、PM与最终用户沟通;2、PM与部门领导沟通;3、PM与项目组内部沟通。PM与最终用户沟通指把用户的更改要求和我们的理解与用户进行了更加细致的沟通确认,让用户认识到我们非常在意他们的意愿。 1、PM与最终用户沟通 把用户的更改要求和我们的理解与用户进行了更加细致的…

    2023年1月17日
    51400
  • 敏捷跟Devops有什么区别

    敏捷和DevOps在软件开发领域以及IT运维的实践中,既有交集也存在显著差异,本质上敏捷注重于更快速、更灵活的软件开发,而DevOps则侧重于开发与运维团队的协作,共同促进产品的快速迭代与交付。主要差别概括为:1、团队合作方式不同,2、关注重点的差异,3、实践方法的区别。在这些区别中,关注重点的差异…

    2024年3月26日
    9600
  • devops中ops是什么

    DEVOPS中OPS是什么? 在这一领域,OPS指代操作(Operations),是围绕着软件交付和基础设施管理的一系列活动、过程与技术。OPS的重点在于提高软件交付的速度与质量、确保应用程序的稳定性和高可用性,以及实现自动化的基础设施管理和配置。本篇旨在深入探讨OPS的核心要素,以及它如何在促进敏…

    2024年3月26日
    9900
  • 如何为研发团队实施持续学习计划

    为研发团队实施持续学习计划的指南:1、确定学习目标和需求;2、选择合适的学习资源和平台;3、建立学习支持结构;4、整合学习与工作;5、鼓励自主学习;6、实施反馈和评估机制;7、激励和认可;8、使用技术支持学习;9、持续改进;10、案例研究和最佳实践。有效实施持续学习计划需要组织的全面承诺和支持。这不仅涉及到提供资源和时间,还包括建立一个支持和鼓励学习的文化。

    2023年11月12日
    34100
  • 甘特图如何做

    以在PowerPoint 中做甘特图为例,演示做甘特图的步骤:1、创建一个新项目并在其中插入一个表;2、表格填充;3、拆分单元格;4、输入任务的名称等。创建一个新项目并在其中插入一个表是指,在左侧顶部菜单中选择“插入”,再选择“选择表”。 一、做甘特图的步骤 1、创建一个新项目并在其中插入一个表:请…

    2023年2月14日
    61600
  • 为什么vscode运行不了js

    Visual Studio Code (VS Code) 无法运行 JavaScript 的原因可能包括缺少或错误配置开发环境、未安装 Node.js、错误的文件扩展名、缺少必要的插件或扩展、或代码本身存在错误。运行 JavaScript 通常需要 Node.js 环境或浏览器支持、正确配置的运行和…

    2024年4月3日
    10100
  • 光速中国韩彦:投资小鹏汽车、满帮后,要培养10位比自己强10倍的投资人

    文 | babayage 编辑 | 笑 笑 噪音充斥这世间,二十年后我在何处? 有别于早早建立人生梦想的成长模式,韩彦最初的成长动能,来自“我不想……” 学生时代,韩彦拿到了8块无线电国际竞赛的金牌,这项比赛的主要形式:在极大噪音和极快播速的干扰下,尽可能准确记录摩尔斯电码,“手上写着30秒之前听到…

    2022年3月20日
    79000

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部