用于带有PCIe的嵌入式系统的散聚式DMA_第1页
用于带有PCIe的嵌入式系统的散聚式DMA_第2页
用于带有PCIe的嵌入式系统的散聚式DMA_第3页
用于带有PCIe的嵌入式系统的散聚式DMA_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    用于带有PCIe的嵌入式系统的散/聚式DMA新一代的互联需求持续不断地向软硬件设计施加压力。不断提高的服务质量(QoS),数据信道隔离,数据平滑恢复和完整性等,都是值得考虑的一些指标要求。PCIe就是能够满足上述要求的一种互联技术。 在FPGA中实现一个PCIe接口时,为了确保系统效率,系统抖动,数据时钟开销以及必须满足的端到端总带宽需求,设计师必须考虑数据传输的方式。将一个散/聚DMA(SGDMA)与一个PCIe接口结合起来,通过从本地处理器上卸载一些数据传输负担,以及新一代的互联需求持续不断地向软硬件设计施加压力。不断提高的服务质量(QoS)

2、,数据信道隔离,数据平滑恢复和完整性等,都是值得考虑的一些指标要求。PCIe就是能够满足上述要求的一种互联技术。在FPGA中实现一个PCIe接口时,为了确保系统效率,系统抖动,数据时钟开销以及必须满足的端到端总带宽需求,设计师必须考虑数据传输的方式。将一个散/聚DMA(SGDMA)与一个PCIe接口结合起来,通过从本地处理器上卸载一些数据传输负担,以及均摊多通道间的硬件延迟,非常有助于软硬件设计师满足他们的设计需求。本文将讨论采用基于FPGA的SGDMA与PCIe相结合的一些优点。绝大部分的新型DMA控制器都支持散/聚功能,这里,硬件负责数据的转移,驻留在不连续的物理存储器中,不需要主处理器来

3、处理模块间的数据转移。这是通过将DMA缓冲器描述符“链接”到一起来实现的,每个描述符中都含有使SGDMA自动执行数据转移所需的所有信息。当处理支持虚拟存储器的操作系统时,SGDMA得到最普遍的采用。直接存储器访问实现方案衡量DMA控制器的收益有以下几种方法:通过定量分析究竟重新获取了多少时钟周期?相关设备驱动的复杂度减少了多少?或者由于“隐藏”数据分发的开销使DMA引擎增加了多少系统总吞吐量?增强型DMA引擎支持的一些功能包括:* 在线分组缓冲存储* 本地和前端总线的同时传输* 延时处理* 终端事物处理抢断* 为DMA控制器连接的每条总线提供独立仲裁当前端和本地总线处于超高负载条件下且传输数据

4、前DMA控制器必须竞用并获取总线占有权时,可以采用在线数据缓冲器。图1:虚拟存储器环境中的SGDMA控制器。在FPGA中使用块存储始终是下面几方面的折中,即由于总线占用究竟需要多少临时缓冲器?FPGA中的功能是否需要存储器?使用中间数据存储所导致的附加延迟的代价如何?如果可能的话,在线分组缓冲器可以减少一些系统延迟,即用一条总线去读取数据,而“存储”总线不转送数据。例如,当PCIe接收和发送虚拟通道(VC)缓冲器比较小时,允许DMA控制器的一侧转移数据到VC缓冲器,或者将出自VC缓冲器的数据送到本地分组存储器中,这样能够改善流控制信用(Flow Control Credit)等级,从而降低PC

5、Ie链路与本地存储器利用的相互依赖。此外,当DMA控制器的I/O总线侧正在与PCIe核通信时,前端总线接口就可以同时将随后PCIe核传送的数据转移到分组缓冲器中。这固然会增加一些延迟,但却好过于由于总线竞用所导致的DMA控制器停摆,而且DMA控制器上的并发工作可以改善数据转移的总延迟。在PCIe中,通过分割处理来支持读操作,当读请求发出时,PCIe链路上将要传输的数据不会立即得到。在这种情况下,支持延迟处理的DMA控制器将自动放弃总线控制,并允许DMA中任何其他被激活的通道来竞用总线控制。图2:具有DMA高层架构的PCIe。实时处理方面获得的好处PCIe串行协议的一些最苛刻的应用是那些要求实时

6、或准实时的数据传递。在这类系统中,像语音和视频处理,需要采用运算增强引擎来满足数据块严格的处理时间要求。这些硬限制不仅增加了运算增强芯片内部的软件工作的数据处理和减小延迟的负担,而且也增加了流处理硬件的负担。一种提供较小的数据包延迟和较高的系统吞吐率的方法是在数据进入系统背板上传输之前,将数据块分成较小的数据包。这样,可以采用较小的接收缓冲器,并确保不会出现哪个数据引擎的负荷过重的问题。采用较小数据包时必须处理好以下几个问题:1. PCIe用在所有的事务层分组(TLPs)方面的开销相对固定;较多的数据包则需要较多的处理开销2. 较小的数据包通常需要的处理时间也少,于是就增加了由数据引擎和PCI

7、e接口发起的并发中断的次数3. 为了维持适当的负载均衡,较小的数据包会增加本地处理器的负荷4. 本地主处理器必须花费较多的时间来生成PCIe协议所用的数据转移TLP上面的几点意味着本地主处理器将会损失更多的原本用于其他功能的时钟周期。因此,较小的数据包有助于减小物理接口的处理延迟,但代价是增加了终端系统的负荷,这有可能降低总的系统性能。虽然PCIe TLP开销处理延迟无法完全消除,但通过采用一个多通道散/聚DMA引擎,基于灵活的仲裁机制,将数据块请求分成较小单元的可变大小的数据包,以及在DMA控制器自身中设计事务分割支持能力,可以摊薄每隔通道上与每个流等级(TC)相关的延迟。此外,设计一个较小

8、的TLP事务IP核,通过生成/终接PCIe TLP,有助于提高软件的效率。图3:带有DMA的PCIe读/写处理。对于PCIe,存储器读取(MRd)不是优先的,是作为一个分割事务执行的,而存储器写(MWr)则是优先的。对于读取,请求者先发送一个MRd TLP来请求completor算法发送大量的数据(通常最大的读取请求为512字节),然后专门等待发送过来的数据。PCIe MWr TLP中包含将被写入(通常最大为128字节)的满载荷。因此,MLRd TLP在发送方向上,就像MWr TLP那样,也需要一段带宽。通过向MW通道分配更多的资源,在发送(Tx)方向上管道将保持在满状态,而接收(Rx)管道则

9、用响应MRd请求的数据TLP来填满,见图2。软件执行时间方面获得的好处一个功能丰富的散/聚DMA控制器通过实现其他方案中需要复杂的算法和/或大量中断的功能,还能够减少软件开发的工作量和CPU的执行时间:* 所有最先进的处理器和操作系统,包括实时性能最好的操作系统(RTOS),都采用MMU和虚拟存储器。乃至内核都采用虚拟地址。这意味着DMA不能线形地访问系统存储器中的缓冲器。当该缓冲器接近处理时,事实上它被散布到PAGE_SIZE模块中的各个物理存储器中。一个散/聚DMA通过允许每个缓冲器描述符被映射到存储器的物理页中,来帮助处理器和软件驱动器。在本地缓冲器描述符中没有散/聚列表,驱动器一次只能

10、移动一页的数据,然后才能重新启动DMA进行下一页的移动,这样将很大程度上影响系统性能。* 通常,一个系统由多个执行线程组成。这些线程可能都要转移数据。如果一个DMA由多个通道,并为每个通道都分配一个线程,就能通过这些更多的并行处理来改善系统性能。* 如果CPU工作在little-endian模式并转移TCP/IP数据包到MAC,通常被迫利用软件例程来与网络order(big-endian)交换字节。一个能够在硬件中以即时模式实现这种转换的DMA,能够降低软件的复杂度并缩短系统设计时间。* 为了提高效率,PCIe总线接口应该尽可能宽(64位),不过许多外设却只具有窄带宽(16或32位)。如果用DMA进行总线重新适配,则对PCIe接口的性能没有影响,在构建高带宽转移到PCIe接口逻辑之前,DMA可以对较小的外设进行2重或4重访问。* 它提供了一个适配层,将基于分组的TLP数据流转换成对线形存储器的并行总线访问。这对于复用已经带有存储器接口(地址总线,数据总

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论