一种基于FPGA硬件加速的DDR管理控制系统技术方案

技术编号:19691098 阅读:24 留言:0更新日期:2018-12-08 10:59
本发明专利技术公开了一种基于FPGA硬件加速的DDR管理控制系统,包括主机端、FPGA端和内存DDR,其特征在于,所述FPGA端包括通过AXI总线连接的DMA传输控制逻辑单元、DDR转换控制器、传输状态查找单元,以及连接到所述DDR转换控制器的算法逻辑单元,所述FPGA端与主机端通过DMA传输控制逻辑单元连接,所述FPGA端与内存DDR通过AXI总线连接,所述DDR转换控制器与传输状态查找单元连接。该系统采用记录数据处理过程中的数据传输状态索引值,根据记录的索引值实现相应的数据处理操作,简化了内存DDR的操作方式,且配合AXI总线提高数据读写效率,以及采用DMA传输机制,加快数据传输效率,降低主机端的CPU占用率,提高数据处理效率。

【技术实现步骤摘要】
一种基于FPGA硬件加速的DDR管理控制系统
本专利技术属于数字集成电路DDR管理
,具体涉及一种基于FPGA硬件加速的DDR管理控制系统。
技术介绍
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。DDR=DoubleDataRate双倍速率同步动态随机存储器。严格的说DDR应该叫DDRSDRAM,DDRSDRAM是DoubleDataRateSDRAM的缩写,是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的,SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;而DDR内存则是一个时钟周期内传输两次数据,它能够在时钟的上升期和下降期各传输一次数据,因此称为双倍速率同步动态随机存储器。DDR内存可以在与SDRAM相同的总线频率下达到更高的数据传输率。利用FPGA加速处理数据具有速度快、安全性高及主机端内存资源消耗少等优势,而在许多的硬件加速处理系统中,都需要一个大容量的缓存空间,以便进行数据的高速异步传输。因此DDR被广泛应用于FPGA数据处理系统与主机端上位机数据传输过程的大容量缓存空间,但现有的DDR控制逻辑以及读写方式存在:操作方式复杂、存储信息不明、读写效率低以及可移植性差等缺点,导致系统带宽低、系统实现难度大,从而不利于硬件数据处理过程中数据高效、高速读写缓存。
技术实现思路
本专利技术为解决FPGA硬件处理数据过程存在的性能不足之处,提出了一种基于FPGA硬件加速的DDR管理控制系统,有效提高了数据读写效率,简化数据读写操作,且系统可移植性高。为实现上述目的,本专利技术所采用的技术方案为:本专利技术提出一种基于FPGA硬件加速的DDR管理控制系统,包括主机端、FPGA端和内存DDR,所述FPGA端包括通过AXI总线连接的DMA传输控制逻辑单元、DDR转换控制器、传输状态查找单元,以及连接到所述DDR转换控制器的算法逻辑单元,所述FPGA端与主机端通过DMA传输控制逻辑单元连接,所述FPGA端与内存DDR通过AXI总线连接,所述DDR转换控制器与传输状态查找单元连接,其中:所述传输状态查找单元,用于实时记录主机端写入DDR内的数据块索引值、FPGA端已写入DDR内的数据块索引值、FPGA端已读取DDR内的数据块索引值;所述DDR转换控制器,用于根据传输状态查找单元中各索引值之间的关系,通过AXI总线从内存DDR中读取数据帧并进行解析,发送到算法逻辑单元中进行处理,并在处理结束后,将处理好的数据通过AXI总线存入内存DDR,并实时更新FPGA端已写入DDR的数据块索引值、FPGA端已读取DDR内的数据块索引值;所述主机端,用于将数据帧通过DMA传输控制逻辑单元写入到DDR,更新主机端写入DDR内的数据块索引值,并在FPGA端已写入DDR的数据块索引值更新后,通过DMA传输控制逻辑单元读取已经处理完的数据帧;所述算法逻辑单元,用于对DDR转换控制器输出的数据进行逻辑处理。优选地,所述DDR转换控制器与传输状态查找单元采用同一时钟频率,所述主机端通过内存映射方式直接访问传输状态查找单元。优选地,所述内存映射操作为:FPGA端向主机端申请存储空间与FPGA端的传输状态查找单元相互映射,待主机端响应该申请后,在主机端开辟一个与传输状态查找单元对应的存储空间,实现内存映射。优选地,所述DDR转换控制器包括:与传输状态查找单元连接的AXI_MASTER控制逻辑单元,连接到AXI_MASTER控制逻辑单元的写逻辑控制单元和读逻辑控制单元,以及连接在写逻辑控制单元和读逻辑控制单元之间的数据块分析逻辑单元和长度缓存单元,其中,所述AXI_MASTER控制逻辑单元,用于根据传输状态查找单元中各索引值之间的关系,通过AXI总线将内存DDR中的待处理数据帧写入读逻辑控制单元;并在数据处理结束后,通过AXI总线将写逻辑控制单元中的已处理数据帧写入内存DDR中;并在数据帧读写过程中实时更新FPGA端已写入DDR的数据块索引值、FPGA端已读取DDR内的数据块索引值;所述读逻辑控制单元,在满足预设条件下,将待处理数据帧写入数据块分析逻辑单元;所述长度缓存单元,用于记录当前待处理数据帧包含的有效数据长度,并在设定条件下输出至写逻辑控制单元中;所述数据块分析逻辑单元,用于将读逻辑控制单元输出的待处理数据帧进行解析,将数据帧的帧头包含的有效数据长度分别发送至读逻辑控制单元和长度缓存单元;将数据帧包含的有效数据发送至算法逻辑单元中进行逻辑处理;所述写逻辑控制单元,在满足预设条件下,读取算法逻辑单元中的已处理数据。优选地,所述AXI_MASTER控制逻辑单元,用于根据传输状态查找单元中各索引值之间的关系,通过AXI总线将内存DDR中的待处理数据帧写入读逻辑控制单元,执行如下操作:当主机端写入DDR内的数据块索引值、FPGA端已写入DDR内的数据块索引值、FPGA端已读取DDR内的数据块索引值均为初始值时,主机端将数据帧通过DMA传输控制逻辑单元写入到DDR,并更新传输状态查找单元中的主机端写入DDR内的数据块索引值大于FPGA端已读取DDR内的数据块索引值,AXI_MASTER控制逻辑单元检测到传输状态查找单元中索引值的更新后,启动突发读操作,并根据读逻辑控制单元记录的有效数据长度以及每次突发读的起始地址,确定当前突发读操作读取的数据帧的末地址,并通过AXI总线将内存DDR中的待处理数据帧写入读逻辑控制单元,更新传输状态查找单元中的FPGA端已读取DDR内的数据块索引值。优选地,所述突发读操作的启动条件为:AXI_MASTER控制逻辑单元接收数据就绪信号与内存DDR发送数据有效信号同时为高电平有效,且读逻辑控制单元的读FIFO为非满状态。本专利技术中FIFO的非空状态指FIFO内存有数据;FIFO的非满状态指FIFO内的数量未达到设定阈值。优选地,所述读逻辑控制单元,在满足预设条件下,将待处理数据帧写入数据块分析逻辑单元,执行如下操作:当读逻辑控制单元的读FIFO为非空状态,且写逻辑控制单元的写FIFO为非满状态时,待处理数据帧从读逻辑控制单元读出并写入数据块分析逻辑单元中。优选地,所述写逻辑控制单元,在满足预设条件下,读取算法逻辑单元中的已处理数据,执行如下操作:当算法逻辑单元输出的数据有效标志为高电平有效时,写逻辑控制单元从算法逻辑单元中读取已处理数据,并读取长度缓存单元中记录的有效数据长度。优选地,所述AXI_MASTER控制逻辑单元在数据处理结束后,通过AXI总线将写逻辑控制单元中的已处理数据帧写入内存DDR中,执行如下操作:写逻辑控制单元的写FIFO为非空状态,且AXI_MASTER控制逻辑单元发送数据有效信号与内存DDR接收数据就绪信号同时为高电平有效时,启动突发写操作,AXI_MASTER控制逻辑单元根据写逻辑控制单元中记录的有效数据长度以及上一次突发写操作的末地址,确定当前突发写操作的起始地址,并通过AXI总线将写逻辑控制单元中的已处本文档来自技高网
...

【技术保护点】
1.一种基于FPGA硬件加速的DDR管理控制系统,包括主机端、FPGA端和内存DDR,其特征在于,所述FPGA端包括通过AXI总线连接的DMA传输控制逻辑单元、DDR转换控制器、传输状态查找单元,以及连接到所述DDR转换控制器的算法逻辑单元,所述FPGA端与主机端通过DMA传输控制逻辑单元连接,所述FPGA端与内存DDR通过AXI总线连接,所述DDR转换控制器与传输状态查找单元连接,其中:所述传输状态查找单元,用于实时记录主机端写入DDR内的数据块索引值、FPGA端已写入DDR内的数据块索引值、FPGA端已读取DDR内的数据块索引值;所述DDR转换控制器,用于根据传输状态查找单元中各索引值之间的关系,通过AXI总线从内存DDR中读取数据帧并进行解析,发送到算法逻辑单元中进行处理,并在处理结束后,将处理好的数据通过AXI总线存入内存DDR,并实时更新FPGA端已写入DDR的数据块索引值、FPGA端已读取DDR内的数据块索引值;所述主机端,用于将数据帧通过DMA传输控制逻辑单元写入到DDR,更新主机端写入DDR内的数据块索引值,并在FPGA端已写入DDR的数据块索引值更新后,通过DMA传输控制逻辑单元读取已经处理完的数据帧;所述算法逻辑单元,用于对DDR转换控制器输出的数据进行逻辑处理。...

【技术特征摘要】
1.一种基于FPGA硬件加速的DDR管理控制系统,包括主机端、FPGA端和内存DDR,其特征在于,所述FPGA端包括通过AXI总线连接的DMA传输控制逻辑单元、DDR转换控制器、传输状态查找单元,以及连接到所述DDR转换控制器的算法逻辑单元,所述FPGA端与主机端通过DMA传输控制逻辑单元连接,所述FPGA端与内存DDR通过AXI总线连接,所述DDR转换控制器与传输状态查找单元连接,其中:所述传输状态查找单元,用于实时记录主机端写入DDR内的数据块索引值、FPGA端已写入DDR内的数据块索引值、FPGA端已读取DDR内的数据块索引值;所述DDR转换控制器,用于根据传输状态查找单元中各索引值之间的关系,通过AXI总线从内存DDR中读取数据帧并进行解析,发送到算法逻辑单元中进行处理,并在处理结束后,将处理好的数据通过AXI总线存入内存DDR,并实时更新FPGA端已写入DDR的数据块索引值、FPGA端已读取DDR内的数据块索引值;所述主机端,用于将数据帧通过DMA传输控制逻辑单元写入到DDR,更新主机端写入DDR内的数据块索引值,并在FPGA端已写入DDR的数据块索引值更新后,通过DMA传输控制逻辑单元读取已经处理完的数据帧;所述算法逻辑单元,用于对DDR转换控制器输出的数据进行逻辑处理。2.如权利要求1所述的基于FPGA硬件加速的DDR管理控制系统,其特征在于,所述DDR转换控制器与传输状态查找单元采用同一时钟频率,所述主机端通过内存映射方式直接访问传输状态查找单元。3.如权利要求2所述的基于FPGA硬件加速的DDR管理控制系统,其特征在于,所述内存映射操作为:FPGA端向主机端申请存储空间与FPGA端的传输状态查找单元相互映射,待主机端响应该申请后,在主机端开辟一个与传输状态查找单元对应的存储空间,实现内存映射。4.如权利要求1所述的基于FPGA硬件加速的DDR管理控制系统,其特征在于,所述DDR转换控制器包括:与传输状态查找单元连接的AXI_MASTER控制逻辑单元,连接到AXI_MASTER控制逻辑单元的写逻辑控制单元和读逻辑控制单元,以及连接在写逻辑控制单元和读逻辑控制单元之间的数据块分析逻辑单元和长度缓存单元,其中,所述AXI_MASTER控制逻辑单元,用于根据传输状态查找单元中各索引值之间的关系,通过AXI总线将内存DDR中的待处理数据帧写入读逻辑控制单元;并在数据处理结束后,通过AXI总线将写逻辑控制单元中的已处理数据帧写入内存DDR中;并在数据帧读写过程中实时更新FPGA端已写入DDR的数据块索引值、FPGA端已读取DDR内的数据块索引值;所述读逻辑控制单元,在满足预设条件下,将待处理数据帧写入数据块分析逻辑单元;所述数据块分析逻辑单元,用于将读逻辑控制单元输出的待处理数据帧进行解析,将数据帧的帧头包含的有效数据长度分别发送至读逻辑控制单元和长度缓存单元;将数据帧包含的有效数据发送至算法逻辑单元中进行逻辑处理;所述写逻辑控制单元,在满足预设条件下,读取算法逻辑单元中的已处理数据。5.如权利要求4所述的基于FPGA硬件加速的DDR管理...

【专利技术属性】
技术研发人员:龚骁敏刘欢白卓玉田春雨胡朗恺
申请(专利权)人:中国电子科技集团公司第五十二研究所
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1