一种高性能多通道通用DMA设计与实现_第1页
一种高性能多通道通用DMA设计与实现_第2页
一种高性能多通道通用DMA设计与实现_第3页
一种高性能多通道通用DMA设计与实现_第4页
一种高性能多通道通用DMA设计与实现_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

要:为充分发挥异构多核DSP芯片的实时计算能力,设计并实现了一种高性能多通道的通用DMA,该DMA最大支持64个通道的数据搬运,并支持一维、二维、转置以及级联描述符等多种传输模式。芯片实测传输性能最高可达11.7GB/s,实现了高效率、高性能的数据供给。关键词:多通道;DMA;设计;测试0引言DSP芯片因其强大的实时计算能力,在军事、通信、工控等领域嵌入式系统中应用广泛。应用需求的不断提高以及信息技术的不断进步,推动了高性能DSP芯片向异构多核、高并行、高集成的方向发展,在DSP芯片具有高算力的同时,其对高效率、高性能的数据供给同样提出了更高的要求。DMA(DirectMemoryAccess)技术能够提供内存和内存、内存和外设之间的直接数据传输通道,不仅能够提高数据传输速率,还能使得DSP核从复杂的数据传输任务中脱离出来,从而有效提升芯片性能,已成为行业的研究热点。本文面向异构多核DSP芯片的需求,设计实现了一种高性能多通道通用DMA(Multi-channelGeneral-purposeDMA,MG-DMA),支持一维、二维、转置以及级联描述符等多种传输模式,最大64通道,大幅提升了数据传输速率,有效匹配了DSP芯片的计算能力。1设计与实现1.1

总体设计MG-DMA的结构框图如图1所示,包括配置和状态寄存器模块(CSR)、通道选择模块(CHS)、矩阵转置参数模块(MTP)、读写总线控制模块(WRBC)、4个DMA执行模块(DMAE0~DMAE3)以及DMA缓存模块(DMAB)。各模块功能如下:(1)配置和状态寄存器模块(CSR):CSR模块有64个逻辑通道的配置寄存器组以及一个总的中端和状态控制寄存器,其中,配置寄存器组主要包括通道传输数据量、数据源地址、数据目的地址、外部描述符地址等信息,64个逻辑通道可根据用户需求映射到任意4个物理通道,映射关系由对应物理通道编号寄存器的值决定。当配置好寄存器组后,CSR模块将对应产生通道请求信号送给通道选择模块,启动一次DMA传输,当DMA传输完成或发生传输错误时,触发相应中断。(2)通道选择模块(CHS):CHS模块根据接收到的通道请求信号产生通道选择信号,并计算本次传输的配置参数,将参数和传输启动信号传输给对应的DMAE模块,同时将通道选择信号送给WRBC模块,启动一次传输。(3)DMA执行模块(DMAE):DMAE内部读写各自独立,当一次传输启动后,DMAE模块先启动一次burst读,将读出的数据缓存在DMAB中,一次burst最大支持128个256bits的数据,读完后再将缓存中的数据写出到相应地址。当所有数据写完或者发生错误时,产生相应的中断信号。4个物理通道各对应一个DMAE模块,4个通道可以同时进行数据传输,但同时只有一个模块可以进行矩阵转置操作,4个物理通道轮流进行矩阵转置。(4)DMA缓存模块(DMAB):DMAB模块存储空间共32kByte,每个通道使用4kByte的RAM,其余16kByte作为矩阵转置使用。读数据时,DMAE模块将读到的数据进行256bits拼接对齐后存入DMAB模块;写数据时,由于RAM不是寄存器输出,DMAB模块会将RAM的输出数据进行寄存器锁存后送给DMAE模块,DMAE模块按照地址进行对齐移位后再写出。矩阵转置时,为实现对存放在内存中的矩阵进行从源矩阵到目标矩阵的行列转置功能,DMA每次转置一个32×32的小矩阵,自动累加矩阵的源地址和目的地址,最终实现一个大矩阵的转置。DMAB中使用了4个4kByte的RAM,每两个作为一组,组成两个8kByte的乒乓RAM,每组支持32行×32列×8kByte的矩阵,实现了乒乓操作。(5)矩阵转置参数模块(MTP):MTP模块主要用于矩阵转置时的参数计算,每个小矩阵的大小为32行×32列,不足的按实际大小读写。当小矩阵读或写完毕后,计算下一个小矩阵的地址和对应在RAM中的地址。(6)读写总线控制模块(WRBC):WRBC主要包括读通道编号和写通道编号两个动态的寄存器,读通道编号表示当前使用AXI读操作的通道编号,写通道编号表示当前使用AXI写操作的通道编号,在当前物理通道传输完成后,会判断下一个通道是否需要操作,如果需要,则将AXI总线使用权交给下一个通道。1.2

工作流程MG-DMA典型工作流程如下:(1)通过APB接口配置通道寄存器;当有通道请求时,CSR模块将请求送给CHS模块。(2)判断是否是矩阵转置请求,如果是,判断矩阵工作编号是否等于通道编号,如果不是,通道允许传输;如果矩阵工作编号等于通道编号,通道允许矩阵传输,将传输启动信号和传输参数送给DMAE模块。如果不相等,等待其他通道矩阵传输完成。(3)DMAE模块收到传输启动信号后,根据收到的传输参数开始读取数据;DMAE模块每次发送一个burst读操作,读取不超过16个256bits的数据,可以连续发送多个读命令。(4)当DMAE模块发送的读命令达到上限时,通知WRBC模块,WRBC模块判断下一个通道是否要读取数据,如果是,更新到下一个通道编号的值,如果不是,按照4个通道顺序轮询。(5)当DMAE模块在缓存数据大于16个256bits时,开始burst写操作;如果当次读的数据被写完,通知WRBC模块;WRBC模块判断下一个通道是否要写数据,如果是,更新到下一个通道编号的值,如果不是,按照4个通道顺序轮询。(6)当收到通道传输停止或总线响应错误时,DMAE模块在发完本次burst读命令后停止读取新数据,在写完所有的数据后,提起总线错误或传输错误中断。(7)如果不需要读取描述符,当所有数据写完时通道传输完成;如果需要读取描述符,读取下一个描述符后进行下一次DMA操作。1.3

物理实现本文所述MG-DMA模块应用于3080型DSP芯片,该芯片包括4个处理核和4个专用加速核,支持PCIe、SRIO等高速接口以及2路DDR4大带宽存储,其片内DMA的性能对DSP芯片计算能力的发挥有着重要作用。物理实现后,MG-DMA模块的总规模约41万Inst,工作主频达到800MHz。芯片流片后的实物图如图2所示。2测试3080型DSP芯片测试板如图3所示。设置芯片DDR速率为2400MT/s,分别选择传输数据长度为1MB~1GB,测量MG-DMA的性能如图4所示,可以看到,DMA性能随点数的变化不大,在同一DDR内部从一段地址搬运数据到另一段地址的性能平均在5.76GB/s,从一个DDR搬运到另一个DDR的性能平均在11GB/s。改变DDR的速率从1600MT/s到3200MT/s,设定数据长度为1MB,测量MG-DMA的性能如图5所示,可以看到,随着DDR速率增加,MG-DMA的性能呈线性增加,DDR速率为3200MT/s时,DDR内DMA传输性能为6.7GB/s,DDR间的DMA传输性能高达11.7GB/s。3结语本文面向异构多核DSP芯片对数据传输性能的需求,设计

温馨提示

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

评论

0/150

提交评论