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

相关推荐

  • 项目团队管理的方法有哪些

    项目团队管理的方法有:一、瀑布模型;二、敏捷模型;三、增量模型;四、融合模型。瀑布模型是传统的项目管理方法,也被称为“线性顺序模型”。在这个模型中,项目被分为一系列顺序阶段,每个阶段的工作必须在下一个阶段开始之前完成。 一、瀑布模型 瀑布模型是传统的项目管理方法,也被称为“线性顺序模型”。在这个模型…

    2023年4月30日
    23900
  • 什么是ARXML

    ARXML是一种用于描述汽车电子系统的XML格式。它是AUTOSAR(汽车开放系统架构)标准的一部分,被广泛用于汽车电子控制单元(ECU)的开发。ARXML主要描述了汽车电子系统的各种元素,包括硬件、软件、通信、系统配置等。 一、定义 ARXML是一种用于描述汽车电子系统的XML格式。它是AUTOS…

    2023年7月29日
    91000
  • 计算科学与数据科学的区别与联系

    区别是:计算科学主要是培养通过信息论、科学计算、运筹学等方面的基础知识教育和建立数学模型,解决科学计算、软件开发和设计、信息处理与编码等实际问题的能力。数据科学,则主要是培养以统计学、机器学习、数据可视化等相关领域的能力。 计算科学 计算科学主要是培养通过信息论、科学计算、运筹学等方面的基础知识教育…

    2023年2月21日
    75000
  • 如何处理MQTT中的消息丢失问题

    在处理MQTT中消息丢失的问题时,有几个关键策略可行:1、使用至少一次(QoS 1)或确保交付(QoS 2)的服务质量等级、2、实施持久会话(Clean Session Flag设置为false)、3、搭建冗余代理服务器架构、4、采用消息持久化。特别是第一个策略,服务质量等级是MQTT协议中用以保证…

    2024年1月5日
    35400
  • 中断函数与普通子函数有什么区别

    区别是:中断函数是在发生中断时间后,主程序自动进入中断函数运行,运行结束后在退出中断函数,返回到进入中断函数之前的运行状态。子函数即用户可以自定义的函数,可以写到主函数中,阅读简单,可以使代码可读性更强更精炼。 中断函数 中断函数是在发生中断时间后,主程序自动进入中断函数运行,运行结束后在退出中断函…

    2023年2月15日
    1.0K00
  • Java中锁和监视器有何区别有何代码可以举例

    锁(Locks)与监视器(Monitors)在Java中是实现同步机制的关键概念。锁是一个更加灵活的同步机制,允许更精细的控制线程间的并发行为;而监视器则通过内置的同步方法和同步块来提供同步,它们内部实现了锁机制。本文主体将介绍其定义、主要差异和用法。核心观点包含:1、定义及用途;2、实现机制和运作…

    2023年11月16日
    18800
  • OKR在非营利组织中的实施策略是什么

    非营利组织实施目标与关键结果(Objectives and Key Results, OKR)的策略要遵循精细化目标设定、连续的进度追踪、团队间的透明度和协作、量化的成功指标、以及适应性强的执行力五大要素。策略包括1、制定与使命和愿景相符的具体目标;2、确定可衡量的关键结果以追踪目标进展;3、建立一…

    2023年12月8日
    13400
  • oa系统 公司

    OA系统是企业组织中关键的信息化管理平台,集成多种办公自动化功能,强调提升工作效率、促进信息共享、实现业务流程优化。1.提升通信效率、2.优化流程管理、3.强化信息安全、4.扩展移动办公,这些构成OA系统的主要价值所在。在第一点提升通信效率方面,OA系统通过内置邮箱、即时通讯、公告板等工具,对员工间…

    2024年1月17日
    8300
  • 简单oa系统

    标题:简单OA系统的运作与特点 简单OA系统,体现在以下几个方面:1、界面直观、操作便捷;2、基础功能齐全,满足日常办公需求;3、低成本实施和维护;4、扩展性和兼容性良好。 特别地,对于第一点,简单OA系统通常拥有用户友好的设计,允许快速上手,各项功能一目了然,有效降低员工的学习曲线。 一、界面和用…

    2024年1月12日
    9600
  • Python相较于Java而言有什么优势

    Python相较于Java而言有以下优势:1、性能;2、生态体系;3、安全性。性能是指Python语言有很多优势,比如简单易用、扩展性强等等,但是在性能方面与Java相比还是存在一定的差距,这一点不论是在Web开发,还是在大数据开发领域,都有一定的体现。 1、性能 Python语言有很多优势,比如简…

    2023年1月27日
    63400

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部