CN108958800B - 一种基于fpga硬件加速的ddr管理控制系统 - Google Patents
一种基于fpga硬件加速的ddr管理控制系统 Download PDFInfo
- Publication number
- CN108958800B CN108958800B CN201810621841.2A CN201810621841A CN108958800B CN 108958800 B CN108958800 B CN 108958800B CN 201810621841 A CN201810621841 A CN 201810621841A CN 108958800 B CN108958800 B CN 108958800B
- Authority
- CN
- China
- Prior art keywords
- ddr
- data
- unit
- read
- logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Logic Circuits (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于FPGA硬件加速的DDR管理控制系统,包括主机端、FPGA端和内存DDR,其特征在于,所述FPGA端包括通过AXI总线连接的DMA传输控制逻辑单元、DDR转换控制器、传输状态查找单元,以及连接到所述DDR转换控制器的算法逻辑单元,所述FPGA端与主机端通过DMA传输控制逻辑单元连接,所述FPGA端与内存DDR通过AXI总线连接,所述DDR转换控制器与传输状态查找单元连接。该系统采用记录数据处理过程中的数据传输状态索引值,根据记录的索引值实现相应的数据处理操作,简化了内存DDR的操作方式,且配合AXI总线提高数据读写效率,以及采用DMA传输机制,加快数据传输效率,降低主机端的CPU占用率,提高数据处理效率。
Description
技术领域
本发明属于数字集成电路DDR管理技术领域,具体涉及一种基于FPGA硬件加速的DDR管理控制系统。
背景技术
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
DDR=Double Data Rate双倍速率同步动态随机存储器。严格的说DDR应该叫DDRSDRAM,DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。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总线将写逻辑控制单元中的已处理数据写入内存DDR中,更新传输状态查找单元中的FPGA端已写入DDR内的数据块索引值,主机端检测到传输状态查找单元中的索引值更新后,通过DMA传输控制逻辑单元读取已经处理完的数据帧。
优选地,所述数据块分析逻辑单元的读使能信号延时一个周期与读逻辑控制单元输出的读数据,分别作为算法逻辑单元的输入,实现从数据块分析逻辑单元到算法逻辑单元数据传输接口协议的简单化操作。
本发明的一种基于FPGA硬件加速的DDR管理控制系统,采用记录数据处理过程中的数据传输状态索引值,根据记录的索引值实现相应的数据处理操作,简化了内存DDR的操作方式,且配合AXI总线提高数据读写效率,以及采用DMA传输机制,加快数据传输效率,降低主机端的CPU占用率,提高数据处理效率。
附图说明
图1为本发明系统的整体示意图;
图2为本发明DDR控制转换器的一种实施例逻辑框图。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。
如图1所示,一种基于FPGA硬件加速的DDR管理控制系统,包括主机端(HOST)、FPGA端和内存DDR,所述FPGA端包括通过AXI总线连接的DMA传输控制逻辑单元、DDR转换控制器、传输状态查找单元,以及连接到所述DDR转换控制器的算法逻辑单元,所述FPGA端与主机端通过DMA传输控制逻辑单元连接,所述FPGA端与内存DDR通过AXI总线连接,所述DDR转换控制器与传输状态查找单元连接,其中:
所述DMA传输控制逻辑单元,是基于DMA数据传输机制,集成PCIE设备接口硬核和AXI总线接口实现PCIE-DMA-AXI链路的IP核,本实施例DMA传输控制逻辑单元通过PCIE设备接口硬核连接主机端,主机端有对应的PCIE接口,DMA传输控制逻辑单元通过AXI接口连接到AXI总线。本实施例DMA传输控制逻辑单元用于连接FPGA端与主机端,实现主机端到DDR的数据搬运,关于DMA数据传输,这里不再赘述。
所述传输状态查找单元,用于实时记录主机端写入DDR内的数据块索引值HOST_index、FPGA端已写入DDR内的数据块索引值FPGA_write_index、FPGA端已读取DDR内的数据块索引值FPGA_read_index;容易理解的是上述仅列出部分数据状态值,在内存DDR管理控制中,不同的控制操作均可设置特定的索引值;
所述DDR转换控制器,用于根据传输状态查找单元中各索引值之间的关系,通过AXI总线从内存DDR中读取数据帧并进行解析,发送到算法逻辑单元中进行处理,并在处理结束后,将处理好的数据通过AXI总线存入内存DDR,并更新FPGA端已写入DDR的数据块索引值、FPGA端已读取DDR内的数据块索引值;
所述主机端,用于将数据帧通过DMA传输控制逻辑单元写入到DDR,更新主机端写入DDR内的数据块索引值,并在FPGA端已写入DDR的数据块索引值更新后,通过DMA传输控制逻辑单元读取已经处理完的数据帧;
所述算法逻辑单元,用于对DDR转换控制器输出的数据进行逻辑处理。
由于FPGA端与主机端采用DMA数据传输机制,故主机端可通过内存映射方式直接访问传输状态查找单元,内存映射操作为:FPGA端向主机端申请存储空间与FPGA端的传输状态查找单元相互映射,待主机端响应该申请后,在主机端开辟一个与传输状态查找单元对应的存储空间,实现内存映射。由于主机端能直接访问该存储空间,因此通过上述映射方式,主机端可实现直接访问传输状态查找单元,进行DDR转换控制器控制策略的实时调整。
本实施例通过DDR转换控制器与传输状态查找单元共用同一时钟频率,一旦传输状态查找单元中所记录的状态发生变化,DDR转换控制器可立即反馈当前传输状态,执行对应的控制策略。
本实施中,在FPGA端进行数据操作前,先将内存DDR进行内部存储空间管理,具体操作如下:根据FPGA端和主机端数据传输类别,将DDR存储空间划分为信息数据存储区以及算法因子存储区;根据主机端和FPGA端数据传输格式和大小,将信息数据存储区以及算法因子存储区分别划分为由帧头和有效数据组成的数据块;将各数据块进行顺序编号,记索引值index为标记位值;并通过传输状态查找单元记录DDR内部的数据块大小Block_size和存储区数据块总数Block_sum。在进行数据传输时,单次传输的数据量小于或等于数据块大小。根据上述对内存DDR内部存储空间的管理,使得数据在内存DDR中存储时均有特定且清晰的数据存储地址、数据大小以及数据成分等信息,且FPGA端和主机端通过索引值index即可实现内存DDR中的数据读写,简化读写操作。
如图2所示,所述DDR转换控制器包括:与传输状态查找单元连接的AXI_MASTER控制逻辑单元,连接到AXI_MASTER控制逻辑单元的写逻辑控制单元和读逻辑控制单元,以及连接在写逻辑控制单元和读逻辑控制单元之间的数据块分析逻辑单元和长度缓存单元,其中,
所述AXI_MASTER控制逻辑单元,用于根据传输状态查找单元中各索引值之间的关系,通过AXI总线将内存DDR中的待处理数据帧写入读逻辑控制单元;并在数据处理结束后,通过AXI总线将写逻辑控制单元中的已处理数据帧写入内存DDR中;并在数据帧读写过程中实时更新FPGA端已写入DDR的数据块索引值、FPGA端已读取DDR内的数据块索引值;
所述读逻辑控制单元,在满足预设条件下,将待处理数据帧写入数据块分析逻辑单元;
所述长度缓存单元,用于记录当前待处理数据帧包含的有效数据长度,并在设定条件下输出至写逻辑控制单元中;
所述数据块分析逻辑单元,用于将读逻辑控制单元输出的待处理数据帧进行解析,将数据帧的帧头包含的有效数据长度分别发送至读逻辑控制单元和长度缓存单元;将数据帧包含的有效数据发送至算法逻辑单元中进行逻辑处理;
所述写逻辑控制单元,在满足预设条件下,读取算法逻辑单元中的已处理数据。
需要说明的是,DDR转换控制器与DDR之间通过AXI总线连接,在DDR转换控制器上设置了AXI_MASTER控制逻辑单元,相应的在DDR上设置AXI_SLAVE控制逻辑单元,实现基于AXI总线的MASTER/SLAVE模式数据操作,这里不再赘述。
本实施例中通过写逻辑控制单元和读逻辑控制单元,实现算法逻辑单元所需的数据格式与AXI总线数据传输格式之间的转化,具体操作如下:读逻辑控制单元,将AXI总线接口数据转化成适应算法逻辑单元处理的待处理数据WAIT_DATA和与其同步的数据有效标志WAIT_DATA_VLAID;写逻辑控制单元,将算法逻辑单元已处理的数据DONE_DATA和与其同步的数据有效标志DONE_DATA_VLAID转化为AXI总线接口数据。上述操作可实现不同算法模式之间的频率、数据位宽以及接口等需求的转化,使得系统不受算法模式以及AXI总线接口数据传输的格式的限制,显著提高系统的适用性。
参照图1和图2,以一次数据处理为例,对本系统的工作原理进一步描述:
当HOST_index、FPGA_read_index、FPGA_write_index均为初始值时,主机端将待处理数据帧通过DMA传输控制逻辑单元写入到DDR,数据传输结束后,更新HOST_index的值大于FPGA_read_index的值,AXI_MASTER控制逻辑单元检测到传输状态查找单元中索引值的更新后,启动突发读操作,通过AXI总线将内存DDR中的待处理数据写入读逻辑控制单元,更新传输状态查找单元中的FPGA端已读取DDR内的数据块索引值。
启动突发读操作的条件为:AXI_MASTER控制逻辑单元的接收读数据就绪信号AXI_READY与内存DDR发送读数据有效信号AXI_RVLAID同时为高电平有效,且读FIFO的R_prog_full标志信号为低,即读FIFO内数据量未达到设定阈值时,则读FIFO写使能信号R_wr_en高电平有效,读操作启动,待处理数据AXI_DATA从AXI_MASTER控制逻辑单元写入读逻辑控制单元的读FIFO中。
待处理数据写入读逻辑控制单元的读FIFO(先进先出存储器)后,数据块分析逻辑单元需要从读逻辑控制单元中读出待处理数据,从读逻辑控制单元的读FIFO读出数据的条件为:读逻辑控制单元的读FIFO中表示读FIFO内无数据的标志信号R_empty为低电平且写控制逻辑单元中表示写FIFO所含数据未达到限定阈值的标志信号W_prog_full为低电平时,读FIFO读使能信号R_rd_en为高电平有效,数据从读逻辑控制单元的读FIFO中读出。
其中,读FIFO读使能信号R_rd_en延时一个周期与读FIFO输出的读数据R_dout,通过数据块分析逻辑单元后,分别作为WAIT_DATA_VLAID和WAIT_DATA输入至算法逻辑单元中,完成从数据块分析逻辑单元到算法逻辑单元数据传输接口协议的简单化操作,同时利用读FIFO读使能信号R_rd_en高电平有效,记录去掉帧头后有效数据的数据量DATA_cnt,将数据块分析逻辑单元对数据分析得到的当前块的有效数据长度信息Vlaid_length写入读逻辑控制单元,同时写入长度缓存单元,待写逻辑控制单元需要时取出。
其中,当读逻辑控制单元记录的DATA_cnt等于Vlaid_length时,FPGA_read_index值更新一次。数据块的末地址END_AXI_R_ADDR、每次突发读的起始地址BEGIN_R_ADDR之间满足:
END_AXI_R_ADDR=BEGIN_R_ADDR+Vlaid_length;
根据上述公式,从DDR中读取的数据块的末地址与起始地址和数据长度信息有关,从而实现选择读方式。即每次传输的数据量小于块的大小时,选择只读取有效的数据,跳过无效区域,提高FPGA读效率。
当END_AXI_R_ADDR等于第Block_sum块的有效末地址时,FPGA_read_index重新从0变化,FPGA端读DDR发生翻转。
算法逻辑单元将待处理数据根据算法逻辑进行处理后,向写逻辑单元输出已处理数据,已处理数据写入写FIFO的条件为:算法逻辑单元输出的数据有效标志DONE_DATA_VLAID作为写FIFO的写使能W_wr_en,当写使能W_wr_en为高电平时,已处理数据DONE_DATA写入写逻辑单元的写FIFO,并读取长度缓存单元中记录的有效数据长度。
当已处理数据DONE_DATA写入写逻辑单元的写FIFO后,AXI_MASTER控制逻辑单元从写逻辑控制单元中读出已处理数据,用于重新存入内存DDR中,从写FIFO中读出已处理数据的条件为:写控制逻辑单元中写FIFO所含数据达到设定的一次突发写数据量的阈值即W_prog_full信号为高电平,且对AXI_MASTER控制逻辑单元发送写数据有效信号AXI_WVALID与内存DDR接收写数据就绪信号AXI_WRADY做“与(&)”运算后作为写FIFO读使能W_rd_en,当W_rd_en为高电平时,从写FIFO输出的数据W_dout作为已处理数据AXI_DATA,重新写入内存DDR中该数据帧未处理前的索引数据块中保存,实现覆盖写方式。
其中,从长度缓存单元中读出下一次要写入有效数据长度Vlaid_length,与当前的写入地址C_AXI_W_ADDR、上一次数据块的末地址L_AXI_W_ADDR、数据帧头长度HEAD_length满足:
C_AXI_W_ADDR=L_AXI_W_ADDR+Vlaid_length+HEAD_length,且每个数据块最后一次突发写的数据完全写入内存DDR中时,FPGA_write_index更新一次,确保数据完全写入DDR中。
下一块数据写入内存DDR的起始地址B_AXI_W_ADDR更新为:C_AXI_W_ADDR+HEAD_length,避免写入数据帧头,实现选择写方式。即若各数据块的帧头仅用于FPGA端分析,则只需进行内存DDR读取,不必进行数据帧头的重新写入,从而加快对DDR的写操作。
当C_AXI_W_ADDR等于Block_sum块的有效末地址时FPGA_write_index从0重新更新,FPGA端写内存DDR发生翻转。
数据重新写入内存DDR后,AXI_MASTER控制逻辑单元更新传输状态查找单元中的FPGA端已写入DDR内的数据块索引值,主机端检测到传输状态查找单元中的索引值更新后,通过DMA传输控制逻辑单元读取已经处理完的数据帧。
由上述数据处理过程可以看出,在对内存DDR进行循环有序的读写操作时,需传输状态查找单元中的HOST_index、FPGA_read_index以及FPGA_write_index等各状态值的相互配合。DDR转换控制器采用AXI接口提高系统的可移植性,同时结合覆盖写、选择写、选择读等方式实现更高效、高速的读写DDR操作。
初始,HOST端尽可能的写入数据直至写满整个DDR有效数据空间,FPGA_read_index<HOST_index,FPGA端边读取数据边把处理完的数据写入DDR。当FPGA端满足写逻辑单元的写条件,把处理完的数据写入该数据未处理前的索引块实现覆盖写后再更新FPGA_write_index。HOST端先读取已处理完数据,然后再写入数据但不得超过FPGA_write_index的值。若FPGA端的读过程未翻转,而HOST端已经发生翻转FPGA_read_index>HOST_index,若满足读控制逻辑单元的读条件FPGA端继续读取数据。若FPGA端的读过程翻转和HOST端写处于同一进程时,FPGA_read_index<HOST_index继续读取数据。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (10)
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管理控制系统,其特征在于,所述AXI_MASTER控制逻辑单元,用于根据传输状态查找单元中各索引值之间的关系,通过AXI总线将内存DDR中的待处理数据帧写入读逻辑控制单元,执行如下操作:
当主机端写入DDR内的数据块索引值、FPGA端已写入DDR内的数据块索引值、FPGA端已读取DDR内的数据块索引值均为初始值时,主机端将数据帧通过DMA传输控制逻辑单元写入到DDR,并更新传输状态查找单元中的主机端写入DDR内的数据块索引值大于FPGA端已读取DDR内的数据块索引值,AXI_MASTER控制逻辑单元检测到传输状态查找单元中主机端写入DDR内的数据块索引值的更新后,启动突发读操作,并根据读逻辑控制单元记录的有效数据长度以及每次突发读的起始地址,确定当前突发读操作读取的数据帧的末地址,并通过AXI总线将内存DDR中的待处理数据帧写入读逻辑控制单元,更新传输状态查找单元中的FPGA端已读取DDR内的数据块索引值。
6.如权利要求5所述的基于FPGA硬件加速的DDR管理控制系统,其特征在于,所述突发读操作的启动条件为:AXI_MASTER控制逻辑单元接收数据就绪信号与内存DDR发送数据有效信号同时为高电平有效,且读逻辑控制单元的读FIFO为非满状态。
7.如权利要求4所述的基于FPGA硬件加速的DDR管理控制系统,其特征在于,所述读逻辑控制单元,在满足预设条件下,将待处理数据帧写入数据块分析逻辑单元,执行如下操作:
当读逻辑控制单元的读FIFO为非空状态,且写逻辑控制单元的写FIFO为非满状态时,待处理数据帧从读逻辑控制单元读出并写入数据块分析逻辑单元中。
8.如权利要求4所述的基于FPGA硬件加速的DDR管理控制系统,其特征在于,所述写逻辑控制单元,在满足预设条件下,读取算法逻辑单元中的已处理数据,执行如下操作:
当算法逻辑单元输出的数据有效标志为高电平有效时,写逻辑控制单元从算法逻辑单元中读取已处理数据,并读取长度缓存单元中记录的有效数据长度。
9.如权利要求8所述的基于FPGA硬件加速的DDR管理控制系统,其特征在于,所述AXI_MASTER控制逻辑单元在数据处理结束后,通过AXI总线将写逻辑控制单元中的已处理数据帧写入内存DDR中,执行如下操作:
写逻辑控制单元的写FIFO为非空状态,且AXI_MASTER控制逻辑单元发送数据有效信号与内存DDR接收数据就绪信号同时为高电平有效时,启动突发写操作,AXI_MASTER控制逻辑单元根据写逻辑控制单元中记录的有效数据长度以及上一次突发写操作的末地址,确定当前突发写操作的起始地址,并通过AXI总线将写逻辑控制单元中的已处理数据写入内存DDR中,更新传输状态查找单元中的FPGA端已写入DDR内的数据块索引值,主机端检测到传输状态查找单元中的FPGA端已写入DDR内的数据块索引值更新后,通过DMA传输控制逻辑单元读取已经处理完的数据帧。
10.如权利要求4所述的基于FPGA硬件加速的DDR管理控制系统,其特征在于,所述数据块分析逻辑单元的读使能信号延时一个周期与读逻辑控制单元输出的读数据,分别作为算法逻辑单元的输入,实现从数据块分析逻辑单元到算法逻辑单元数据传输接口协议的简单化操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810621841.2A CN108958800B (zh) | 2018-06-15 | 2018-06-15 | 一种基于fpga硬件加速的ddr管理控制系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810621841.2A CN108958800B (zh) | 2018-06-15 | 2018-06-15 | 一种基于fpga硬件加速的ddr管理控制系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108958800A CN108958800A (zh) | 2018-12-07 |
CN108958800B true CN108958800B (zh) | 2020-09-15 |
Family
ID=64488994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810621841.2A Active CN108958800B (zh) | 2018-06-15 | 2018-06-15 | 一种基于fpga硬件加速的ddr管理控制系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108958800B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442061A (zh) * | 2019-08-13 | 2019-11-12 | 珠海迈越信息技术有限公司 | 一种fpga对多种类型数据块的序列化控制系统及方法 |
CN112540770B (zh) * | 2019-09-23 | 2022-05-06 | 中国科学院沈阳自动化研究所 | 基于PowerPC和FPGA的异构平台及其加速方法 |
CN111367839B (zh) * | 2020-02-21 | 2021-06-29 | 苏州浪潮智能科技有限公司 | 一种主机端与fpga加速器之间的数据同步方法 |
CN111737199B (zh) * | 2020-08-05 | 2020-11-20 | 成都智明达电子股份有限公司 | 一种嵌入式抗掉电文件系统的操作方法 |
CN112231625A (zh) * | 2020-10-15 | 2021-01-15 | 中国电子科技集团公司第五十八研究所 | 一种基于混合基算法的fft处理器及其工作方法 |
CN112328523B (zh) * | 2020-10-28 | 2023-09-08 | 深圳市宏旺微电子有限公司 | 传输双倍速率信号的方法、装置及系统 |
CN114442908B (zh) * | 2020-11-05 | 2023-08-11 | 珠海一微半导体股份有限公司 | 一种用于数据处理的硬件加速系统及芯片 |
CN113093585A (zh) * | 2021-03-03 | 2021-07-09 | 桂林电子科技大学 | 基于NoC的高速数据采集系统与上位机通信接口控制器 |
CN113282314B (zh) * | 2021-05-12 | 2024-04-12 | 聚融医疗科技(杭州)有限公司 | 一种超声扫描控制参数下发方法及系统 |
CN113791994B (zh) * | 2021-11-17 | 2022-02-22 | 南京芯驰半导体科技有限公司 | 一种基于AXI协议wrap访问的DDR控制器及处理方法 |
CN114968169B (zh) * | 2022-05-17 | 2023-10-10 | 赵浩然 | 一种fpga控制的ddr映射多个ddr_fifo实现系统及方法 |
CN115905039B (zh) * | 2022-11-16 | 2023-07-25 | 逸超医疗科技(北京)有限公司 | 一种基于PCIe接口高速获取超声数据的方法 |
CN115857805B (zh) * | 2022-11-30 | 2023-06-27 | 合肥腾芯微电子有限公司 | 人工智能可计算存储系统 |
CN116521607B (zh) * | 2023-06-29 | 2023-08-29 | 湖南源科创新科技有限公司 | 基于cpu和fpga的异构平台及文件系统标准化方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130067156A1 (en) * | 2011-09-12 | 2013-03-14 | Byungcheol Cho | Double data rate controller having shared address and separate data error correction |
CN102789424B (zh) * | 2012-07-16 | 2014-12-10 | 哈尔滨工业大学 | 基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器 |
CN103279309B (zh) * | 2013-05-15 | 2015-12-23 | 清华大学 | 基于fpga的ddr控制装置及方法 |
US9560310B2 (en) * | 2014-03-27 | 2017-01-31 | Ctaccel Limited | Method and system for rescaling image files |
CN104901859A (zh) * | 2015-06-11 | 2015-09-09 | 东南大学 | 一种axi/pcie总线转换装置 |
CN105468547B (zh) * | 2015-11-18 | 2018-07-06 | 哈尔滨工业大学 | 一种基于axi总线的便捷可配置帧数据存取控制系统 |
CN105608027B (zh) * | 2015-12-18 | 2018-10-19 | 华为技术有限公司 | 非易失存储设备和访问非易失存储设备的方法 |
CN108009372B (zh) * | 2017-12-15 | 2020-07-31 | 中国科学院计算技术研究所 | 一种ddr内存虚拟写电平校准响应的方法 |
-
2018
- 2018-06-15 CN CN201810621841.2A patent/CN108958800B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108958800A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108958800B (zh) | 一种基于fpga硬件加速的ddr管理控制系统 | |
CN109412914B (zh) | 流数据与axi接口通信装置 | |
CN112765054B (zh) | 一种基于fpga的高速数据采集系统及方法 | |
CN101324869B (zh) | 一种基于axi总线的多路复用器 | |
CN110569204B (zh) | 基于fpga和ddr3 sdram的可配置图像数据缓存系统 | |
US20040107265A1 (en) | Shared memory data transfer apparatus | |
US20070088867A1 (en) | Memory controller and data processing system with the same | |
CN113791994B (zh) | 一种基于AXI协议wrap访问的DDR控制器及处理方法 | |
CN112948295B (zh) | 一种基于axi4总线的fpga与ddr高速数据包传输系统及方法 | |
CN112035389A (zh) | 一种plb-axi总线转换桥及其工作方法 | |
CN102314400B (zh) | 一种分散聚合式dma方法及装置 | |
CN100524269C (zh) | 一种突发机制下实现数据读写控制的方法和装置 | |
CN107329929B (zh) | 一种基于SoC FPGA的数据传输系统及数据传输方法 | |
WO2010105520A1 (zh) | 一种读数据的方法、装置和系统 | |
CN115579036A (zh) | 一种基于fpga的ddr连续存储电路及其实现方法 | |
WO2022095439A1 (zh) | 一种用于数据处理的硬件加速系统及芯片 | |
CN209881907U (zh) | 一种基于fpga的图像采集设备 | |
CN111722827A (zh) | 一种高效ddr访问方法及应用 | |
CN104461967B (zh) | 一种支持同步和异步传输模式的并行数据接口 | |
CN108897696B (zh) | 一种基于DDRx存储器的大容量FIFO控制器 | |
JP6398309B2 (ja) | 情報処理装置、および情報処理方法 | |
CN102571535B (zh) | 一种数据延迟装置、方法及通信系统 | |
CN108984148A (zh) | 一种基于同步fifo存储器的数据存储的方法及存储器 | |
CN113821457B (zh) | 一种高性能读写链表缓存的装置及方法 | |
CN112637602B (zh) | 一种jpeg接口及数字图像处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB03 | Change of inventor or designer information |
Inventor after: Tian Chunyu Inventor after: Ma Xiaofeng Inventor after: Gong Xiaomin Inventor after: Hu Langkai Inventor after: Liu Huan Inventor before: Gong Xiaomin Inventor before: Liu Huan Inventor before: Bai Zhuoyu Inventor before: Tian Chunyu Inventor before: Hu Langkai |
|
CB03 | Change of inventor or designer information | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |