CN114090472A - 基于ddr实现大规模fifo数据处理的系统、方法、装置、处理器及其存储介质 - Google Patents
基于ddr实现大规模fifo数据处理的系统、方法、装置、处理器及其存储介质 Download PDFInfo
- Publication number
- CN114090472A CN114090472A CN202111448215.6A CN202111448215A CN114090472A CN 114090472 A CN114090472 A CN 114090472A CN 202111448215 A CN202111448215 A CN 202111448215A CN 114090472 A CN114090472 A CN 114090472A
- Authority
- CN
- China
- Prior art keywords
- fifo
- data
- clock domain
- asynchronous clock
- write
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- G06F12/0879—Burst mode
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1004—Compatibility, e.g. with legacy hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1012—Design facilitation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种基于DDR实现大规模FIFO数据处理的系统,包括入口异步时钟域FIFO;突发读写数据块链表,通过数据位宽及数据块长度的设置,写入数据块链表和读出数据块链表;DDR4AXI接口与流控状态机及突发读写链表进行交互;出口异步时钟域FIFO;流控状态机,用于数据流控,监控入口异步时钟域FIFO、DDR4AXI接口和出口异步时钟域FIFO的数据流的写入和读取。本发明还涉及一种利用DDR实现基于DDR的大规模FIFO数据处理的方法。采用了本发明的基于DDR实现大规模FIFO数据处理的系统、方法、装置、处理器及其计算机可读存储介质,提高了时间利用率,有效提高了数据采集效率,并且增大了FIFO存储深度,保证了较长时间的连续数据采集。
Description
技术领域
本发明涉及无线通信测试领域,尤其涉及超宽带无线通信信号采集及分析领域,具体是指一种基于DDR实现大规模FIFO数据处理的系统、方法、装置、处理器及其计算机可读存储介质。
背景技术
无线通信测试一般涉及到矢量分析和协议分析,信号分析仪具有一定时长的时域信号采集和存储能力,以此满足后续的信号分析功能。无线通信射频信号分析仪具有混频架构,可以将宽带射频信号变频至中频或基带等较低频率,中频或模拟基带信号经过高速ADC采样形成量化数据,通过高速数据接口传输至FPGA,该数据时钟速度高,数据流连续,需要接口速率快,存储容量大的设备进行缓存。FPGA内部存储空间有限,一般需要外部DDRRAM作为大容量存储空间。一般情况下,高速量化数据时钟与DDR接口时钟不同,同样的情况,DDR接口时钟与数据回传接口时钟不同,为实现数据跨时钟域传输,多采用异步时钟域FIFO作为不同时钟域逻辑的接口模块。为采集一定时长的数据,通常的做法是将连续量化数据通过异步FIFO缓存至DDR存储空间,存储完毕后,再发起回传指令,将数据上传至上位机进行后续处理。该方式过程清晰,但有效传输时间较大,综合带宽不高,不能充分利用高速DDR接口带宽,造成了数据传输耗时较长。
将DDR器件的写入操作和读取操作合理调度,充分利用DDR接口带宽,可以将先缓存再读取两个分离的操作过程合并,形成统一的先进先出(FIFO)操作模式,可以有效减少操作时间,大大提高数据吞吐率。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种满足操作时间少、数据吞吐率高、适用范围较为广泛的基于DDR实现大规模FIFO数据处理的系统、方法、装置、处理器及其计算机可读存储介质。
为了实现上述目的,本发明的基于DDR实现大规模FIFO数据处理的系统、方法、装置、处理器及其计算机可读存储介质如下:
该基于DDR实现大规模FIFO数据处理的系统,其主要特点是,所述的系统包括:
入口异步时钟域FIFO,具有独立的写时钟和读时钟,独立设置写数据位宽和读数据位宽,进行数据写入操作;
突发读写数据块链表,与所述的入口异步时钟域FIFO相连接,用于通过数据位宽及数据块长度的设置,写入数据块链表和读出数据块链表;
DDR4 AXI接口,与所述的突发读写数据块链表相连接,用于与流控状态机及突发读写链表进行交互;
出口异步时钟域FIFO,与所述的突发读写数据块链表相连接,用于具有独立的写时钟和读时钟,独立设置写数据位宽和读数据位宽设置,进行数据输出操作;
流控状态机,与所述的入口异步时钟域FIFO、DDR4 AXI接口和出口异步时钟域FIFO相连接,用于数据流控,监控入口异步时钟域FIFO、DDR4 AXI接口和出口异步时钟域FIFO的数据流的写入和读取。
较佳地,所述的数据块链表检测入口异步时钟域FIFO和出口异步时钟域FIFO的操作数目,计数监控DDR4 AXI接口的数据写入读出情况,根据入口异步时钟域FIFO和出口异步时钟域FIFO的读写信号变化,在流控状态机的控制下,进行数据流连贯操作。
较佳地,所述的系统的工作模式有是透传模式和中转模式,所述的透传模式指在数据时长较短且不超过入口异步时钟域FIFO和出口异步时钟域FIFO的FIFO深度的情况下,数据流直接通过入口异步时钟域FIFO和出口异步时钟域FIFO进行数据传输;所述的中转模式指在连续数据时长较长且超过门限值入口异步时钟域FIFO和出口异步时钟域FIFO的FIFO深度的情况下,数据流经过DDR4 AXI接口的缓冲空间中转。
较佳地,所述的系统在透传模式下出口异步时钟域FIFO的读出带宽大于入口异步时钟域FIFO的写入带宽。
该利用上述系统实现大规模FIFO数据处理的系统,其主要特点是,所述的方法包括以下步骤:
(1)上电复位,入口异步时钟域FIFO写入数据;
(2)判断写入数据是否大于门限值,如果是,则工作模式转为中转模式,开启DDR4访问,利用DDR4作为缓存空间进行读写操作;否则,工作模式转为透传模式。
较佳地,所述的方法包括通过中转模式实现FIFO读写操作的步骤,具体包括以下处理过程:
(1-1)DDR4 AXI接口以数据块为操作单元进行突发访问,得到数据块计数值和入口FIFO数据读出数量的监控变量;
(1-2)入口异步时钟域FIFO获取完整长度的数据块;
(1-3)若DDR4 AXI接口的写总线处于READY状态,则发出写使能,并将内部计数值更新;若DDR4 AXI接口的读总线处于READY状态,则发出读使能,规整数据传递至出口异步时钟域FIFO,并将内部计数值更新。
较佳地,所述的方法包括通过透传模式实现FIFO读写操作的步骤,具体包括以下处理过程:
(2-1)上电复位,入口异步时钟域FIFO的空信号为高,出口异步时钟域FIFO的满信号为低;
(2-2)写入数据,入口异步时钟域FIFO的空信号为低,根据时序跳转公式,得到入口异步时钟域FIFO的读使能为高;
(2-3)对入口异步时钟域FIFO的数据读出数量进行计数,如果读出数量超过门限值,则模式信号自动跳转为中转模式;否则,继续透传模式,继续步骤(4);
(2-4)入口异步时钟域FIFO中读出数据,写入出口异步时钟域FIFO,出口异步时钟域FIFO写使能信号根据公式进行时序跳转;
(2-5)判断入口异步时钟域FIFO是否读空,或出口异步时钟域FIFO是否写满,如果是,则不再对FIFO进行操作,退出步骤;否则,继续对FIFO进行读写操作。
较佳地,所述的步骤(4)中入口异步时钟域FIFO的有效信号根据入口异步时钟域FIFO的读使能信号和入口异步时钟域FIFO的获取信号的状态,延后一个时钟,再进行跳转。
该用于基于DDR实现大规模FIFO数据处理的装置,其主要特点是,所述的装置包括:
处理器,被配置成执行计算机可执行指令;
存储器,存储一个或多个计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述的实现基于DDR的大规模FIFO数据处理的方法的各个步骤。
该用于基于DDR实现大规模FIFO数据处理的处理器,其主要特点是,所述的处理器被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述的实现基于DDR的大规模FIFO数据处理的方法的各个步骤。
该计算机可读存储介质,其主要特点是,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现上述的实现基于DDR的大规模FIFO数据处理的方法的各个步骤。
采用了本发明的基于DDR实现大规模FIFO数据处理的系统、方法、装置、处理器及其计算机可读存储介质,利用硬件DDR4 RAM提供的超高带宽及大容量能力,采用Round-Robin调度算法实现FIFO内部流缓存,提高了时间利用率,解决了传统先暂存再回读的耗时问题,有效提高了数据采集效率,并且增大了FIFO存储深度,保证了较长时间的连续数据采集。本发明具有大容量和高带宽DDR4 RAM缓存设计出标准接口的深度FIFO,实现功能单元的模块化,可灵活移植到需要长时数据采集的场景,满足系统的模块化设计需求。
附图说明
图1为本发明的基于DDR实现大规模FIFO数据处理的系统的概念框图。
图2为本发明的利用DDR实现基于DDR的大规模FIFO数据处理的方法的透传模式FIFO读写流程。
图3为本发明的利用DDR实现基于DDR的大规模FIFO数据处理的方法的旁路模式FIFO实现逻辑框图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
本发明的该基于DDR实现大规模FIFO数据处理的系统,其中包括:
入口异步时钟域FIFO,具有独立的写时钟和读时钟,独立设置写数据位宽和读数据位宽,进行数据写入操作;
突发读写数据块链表,与所述的入口异步时钟域FIFO相连接,用于通过数据位宽及数据块长度的设置,写入数据块链表和读出数据块链表;
DDR4 AXI接口,与所述的突发读写数据块链表相连接,用于与流控状态机及突发读写链表进行交互;
出口异步时钟域FIFO,与所述的突发读写数据块链表相连接,用于具有独立的写时钟和读时钟,独立设置写数据位宽和读数据位宽设置,进行数据输出操作;
流控状态机,与所述的入口异步时钟域FIFO、DDR4 AXI接口和出口异步时钟域FIFO相连接,用于数据流控,监控入口异步时钟域FIFO、DDR4 AXI接口和出口异步时钟域FIFO的数据流的写入和读取。
作为本发明的优选实施方式,所述的数据块链表检测入口异步时钟域FIFO和出口异步时钟域FIFO的操作数目,计数监控DDR4 AXI接口的数据写入读出情况,根据入口异步时钟域FIFO和出口异步时钟域FIFO的读写信号变化,在流控状态机的控制下,进行数据流连贯操作。
作为本发明的优选实施方式,所述的系统的工作模式有是透传模式和中转模式,所述的透传模式指在数据时长较短且不超过入口异步时钟域FIFO和出口异步时钟域FIFO的FIFO深度的情况下,数据流直接通过入口异步时钟域FIFO和出口异步时钟域FIFO进行数据传输;所述的中转模式指在连续数据时长较长且超过门限值入口异步时钟域FIFO和出口异步时钟域FIFO的FIFO深度的情况下,数据流经过DDR4 AXI接口的缓冲空间中转。
作为本发明的优选实施方式,所述的系统在透传模式下出口异步时钟域FIFO的读出带宽大于入口异步时钟域FIFO的写入带宽。
本发明的该利用上述系统利用DDR实现基于DDR的大规模FIFO数据处理的方法,其中包括以下步骤:
(1)上电复位,入口异步时钟域FIFO写入数据;
(2)判断写入数据是否大于门限值,如果是,则工作模式转为中转模式,开启DDR4访问,利用DDR4作为缓存空间进行读写操作;否则,工作模式转为透传模式。
作为本发明的优选实施方式,所述的方法包括通过中转模式实现FIFO读写操作的步骤,具体包括以下处理过程:
(1-1)DDR4 AXI接口以数据块为操作单元进行突发访问,得到数据块计数值和入口FIFO数据读出数量的监控变量;
(1-2)入口异步时钟域FIFO获取完整长度的数据块;
(1-3)若DDR4 AXI接口的写总线处于READY状态,则发出写使能,并将内部计数值更新;若DDR4 AXI接口的读总线处于READY状态,则发出读使能,规整数据传递至出口异步时钟域FIFO,并将内部计数值更新。
作为本发明的优选实施方式,所述的方法包括通过透传模式实现FIFO读写操作的步骤,具体包括以下处理过程:
(2-1)上电复位,入口异步时钟域FIFO的空信号为高,出口异步时钟域FIFO的满信号为低;
(2-2)写入数据,入口异步时钟域FIFO的空信号为低,根据时序跳转公式,得到入口异步时钟域FIFO的读使能为高;
(2-3)对入口异步时钟域FIFO的数据读出数量进行计数,如果读出数量超过门限值,则模式信号自动跳转为中转模式;否则,继续透传模式,继续步骤(4);
(2-4)入口异步时钟域FIFO中读出数据,写入出口异步时钟域FIFO,出口异步时钟域FIFO写使能信号根据公式进行时序跳转;
(2-5)判断入口异步时钟域FIFO是否读空,或出口异步时钟域FIFO是否写满,如果是,则不再对FIFO进行操作,退出步骤;否则,继续对FIFO进行读写操作。
作为本发明的优选实施方式,所述的步骤(4)中入口异步时钟域FIFO的有效信号根据入口异步时钟域FIFO的读使能信号和入口异步时钟域FIFO的获取信号的状态,延后一个时钟,再进行跳转。
本发明的该用于基于DDR实现大规模FIFO数据处理的装置,其中,所述的装置包括:
处理器,被配置成执行计算机可执行指令;
存储器,存储一个或多个计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述的实现基于DDR的大规模FIFO数据处理的方法的各个步骤。
本发明的该用于基于DDR实现大规模FIFO数据处理的处理器,其中,所述的处理器被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述的实现基于DDR的大规模FIFO数据处理的方法的各个步骤。
本发明的该计算机可读存储介质,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现上述的实现基于DDR的大规模FIFO数据处理的方法的各个步骤。
本发明提出了一种利用高速DDR4作为缓存空间实现标准FIFO的方法和FPGA逻辑实现,本发明充分利用DDR4接口带宽高,存储空间大的特点,合理设计数据流控和调度控制器,采用Round-Robin调度方法,将写入和读取操作合并,实现了一种接口标准的超大深度FIFO,有效解决了大时长时域数据连续读取的问题。
本发明提出了一种利用高速DDR4作为缓存空间实现标准FIFO的方法和FPGA逻辑实现,其技术方案是充分利用DDR4接口带宽高,存储空间大的特点,合理设计数据流控和调度控制器,采用Round-Robin调度方法,将写入和读取操作合并,实现了一种接口标准的超大深度FIFO,用以有效解决大时长数据连续读取的问题。该方案功能结构如图3所示,主要由五部分组成,分别是入口异步时钟域FIFO、突发读写数据块链表、高速DDR4 AXI接口、流控状态机和出口异步时钟域FIFO。该方案按照时钟域划分,又可以分为入口写时钟域,DDR4时钟域,和出口读时钟域三个时钟域。
本发明的结构按照不同的功能单元描述:
入口异步时钟域FIFO:采用标准FIFO IP核实现,具有独立的写时钟和读时钟,具有独立的写数据位宽和读数据位宽设置。该FIFO实现了标准化接口,简化了用户逻辑操作复杂度,强化本发明方案的模块化、标准化。
突发读写数据块链表:为匹配DDR4 AXI4接口数据特点,采用数据位宽及数据块长度相匹配的设置,设计了写入数据块链表和读出数据块链表。该链表具有计数监控变量,同时检测出入口FIFO的操作数目,同时计数监控DDR4 AXI4接口的数据写入读出情况,根据出入口FIFO的读写信号变化,在流控状态机的控制下,数据流连贯操作,避免溢出或断点情况,实现数据正确的写入和读取。
DDR4 AXI4接口:使用标准的DDR4 AXI4 IP核实现,保证和流控状态机及突发读写链表的正常交互。
流控状态机:实现数据流控,保证数据写入和读取不出现溢出或断点的现象。该状态机持续监控入口FIFO空信号、入口FIFO读出数量、DDR4可写状态、DDR4写入数量、DDR4可读状态、DDR4读出数量、出口FIFO写入数量和出口FIFO满信号,以实现Round-Robin调度策略的数据流写入和读取,保证数据连贯性,提高DDR4接口带宽使用率。
出口异步时钟域FIFO:采用标准FIFO IP核实现,具有独立的写时钟和读时钟,具有独立的写数据位宽和读数据位宽设置。该FIFO实现了标准化接口,简化了用户逻辑操作复杂度,强化本发明方案的模块化、标准化。
本发明提出的使用DDR实现的深度FIFO有两种工作模式,一种是透传模式,一种是中转模式。透传模式是指当数据时长较短,不超过一定的门限值的情况下(不超过入口和出口FIFO深度),数据流不经过DDR4缓冲空间中转,直接通过入口FIFO和出口FIFO进行数据传输,整体传输时延最小,但对连续数据时长有要求。中转模式是指当连续数据时长较长,超过门限值(入口和出口FIFO深度),数据流经过DDR4缓冲空间中转,保证长时连续数据不溢出,不断点。该模式适用于连续长时数据传输,但时延较大。
如图2所示,透传模式的工作模式如下:
1、当上电复位后,入口FIFO空信号为高,出口FIFO满信号为低。
2、一旦写入数据,入口FIFO空信号为低,按照时序跳转公式(组合逻辑)“入口FIFO读使能=!入口FIFO空信号&&(!入口FIFO有效信号||入口FIFO获取信号)”导出入口FIFO读使能为高。其中,入口FIFO有效信号和入口FIFO获取信号上电复位后均为低。
3、开始对入口FIFO数据读出数量进行计数,作为模式跳转的依据,如果读出数量超过门限值,模式信号自动跳转为中转模式。
4、入口FIFO中有数据即读出、然后写入出口FIFO。出口FIFO写使能信号根据公式“出口FIFO写使能<=入口FIFO有效信号&&!出口FIFO满信号;”进行时序跳转,其中【入口FIFO有效信号】根据【入口FIFO读使能信号】和【入口FIFO获取信号】的状态延后一个时钟跳转。伪代码如下:
if(入口FIFO读使能信号)
入口FIFO有效信号<=1;
else if(入口FIFO获取信号)
入口FIFO有效信号<=0;
5、一旦入口FIFO读空,或者写入FIFO写满,【入口FIFO读使能】和【出口FIFO写使能】即跳低,不再对FIFO进行操作。
6、为保证写入数据不溢出,需要出口FIFO的读出带宽大于入口FIFO的写入带宽。
本发明的具体实施方式中,重点在于实现中转模式的深度FIFO。首先确定若干变量,及变量的时序跳转公式。如表1所示为核心信号量定义、时序公式及说明。
表1
中转模式的工作模式如下:
1、上电复位后,入口FIFO可写入数据。
2、当写入数据大于门限值时,模式跳转为中转模式,即开启DDR4访问,利用DDR4作为缓存空间进行读写操作。
3、DDR4 AXI4接口以数据块为操作单元进行突发访问。数据块大小有两个参数,一是数据位宽,二是数据长度。入口FIFO中的数据需读出凑整为数据块,才能被写入DDR4,所以需要有数据块计数值和入口FIFO数据读出数量等监控变量。
4当从入口FIFO获取了整块长度的数据后,当AXI4总线处于READY状态,发出写使能,并将内部计数值更新。
当AXI4读总线处于READY时,发出读使能,并规整数据传递给出口FIFO,并将内部计数值更新。
本实施例的具体实现方案可以参见上述实施例中的相关说明,此处不再赘述。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
采用了本发明的基于DDR实现大规模FIFO数据处理的系统、方法、装置、处理器及其计算机可读存储介质,利用硬件DDR4 RAM提供的超高带宽及大容量能力,采用Round-Robin调度算法实现FIFO内部流缓存,提高了时间利用率,解决了传统先暂存再回读的耗时问题,有效提高了数据采集效率,并且增大了FIFO存储深度,保证了较长时间的连续数据采集。本发明具有大容量和高带宽DDR4 RAM缓存设计出标准接口的深度FIFO,实现功能单元的模块化,可灵活移植到需要长时数据采集的场景,满足系统的模块化设计需求。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (11)
1.一种基于DDR实现大规模FIFO数据处理的系统,其特征在于,所述的系统包括:
入口异步时钟域FIFO,具有独立的写时钟和读时钟,独立设置写数据位宽和读数据位宽,进行数据写入操作;
突发读写数据块链表,与所述的入口异步时钟域FIFO相连接,用于通过数据位宽及数据块长度的设置,写入数据块链表和读出数据块链表;
DDR4 AXI接口,与所述的突发读写数据块链表相连接,用于与流控状态机及突发读写链表进行交互;
出口异步时钟域FIFO,与所述的突发读写数据块链表相连接,用于具有独立的写时钟和读时钟,独立设置写数据位宽和读数据位宽设置,进行数据输出操作;
流控状态机,与所述的入口异步时钟域FIFO、DDR4 AXI接口和出口异步时钟域FIFO相连接,用于数据流控,监控入口异步时钟域FIFO、DDR4 AXI接口和出口异步时钟域FIFO的数据流的写入和读取。
2.根据权利要求1所述的基于DDR实现大规模FIFO数据处理的系统,其特征在于,所述的数据块链表检测入口异步时钟域FIFO和出口异步时钟域FIFO的操作数目,计数监控DDR4AXI接口的数据写入读出情况,根据入口异步时钟域FIFO和出口异步时钟域FIFO的读写信号变化,在流控状态机的控制下,进行数据流连贯操作。
3.根据权利要求1所述的基于DDR实现大规模FIFO数据处理的系统,其特征在于,所述的系统的工作模式有是透传模式和中转模式,所述的透传模式指在数据时长较短且不超过入口异步时钟域FIFO和出口异步时钟域FIFO的FIFO深度的情况下,数据流直接通过入口异步时钟域FIFO和出口异步时钟域FIFO进行数据传输;所述的中转模式指在连续数据时长较长且超过门限值入口异步时钟域FIFO和出口异步时钟域FIFO的FIFO深度的情况下,数据流经过DDR4 AXI接口的缓冲空间中转。
4.根据权利要求1所述的基于DDR实现大规模FIFO数据处理的系统,其特征在于,所述的系统在透传模式下出口异步时钟域FIFO的读出带宽大于入口异步时钟域FIFO的写入带宽。
5.一种利用权利要求1所述的系统实现基于DDR的大规模FIFO数据处理的方法,其特征在于,所述的方法包括以下步骤:
(1)上电复位,入口异步时钟域FIFO写入数据;
(2)判断写入数据是否大于门限值,如果是,则工作模式转为中转模式,开启DDR4访问,利用DDR4作为缓存空间进行读写操作;否则,工作模式转为透传模式。
6.根据权利要求5所述的实现基于DDR的大规模FIFO数据处理的方法,其特征在于,所述的方法包括通过中转模式实现FIFO读写操作的步骤,具体包括以下处理过程:
(1-1)DDR4 AXI接口以数据块为操作单元进行突发访问,得到数据块计数值和入口FIFO数据读出数量的监控变量;
(1-2)入口异步时钟域FIFO获取完整长度的数据块;
(1-3)若DDR4 AXI接口的写总线处于READY状态,则发出写使能,并将内部计数值更新;若DDR4 AXI接口的读总线处于READY状态,则发出读使能,规整数据传递至出口异步时钟域FIFO,并将内部计数值更新。
7.根据权利要求5所述的实现基于DDR的大规模FIFO数据处理的方法,其特征在于,所述的方法包括通过透传模式实现FIFO读写操作的步骤,具体包括以下处理过程:
(2-1)上电复位,入口异步时钟域FIFO的空信号为高,出口异步时钟域FIFO的满信号为低;
(2-2)写入数据,入口异步时钟域FIFO的空信号为低,根据时序跳转公式,得到入口异步时钟域FIFO的读使能为高;
(2-3)对入口异步时钟域FIFO的数据读出数量进行计数,如果读出数量超过门限值,则模式信号自动跳转为中转模式;否则,继续透传模式,继续步骤(4);
(2-4)入口异步时钟域FIFO中读出数据,写入出口异步时钟域FIFO,出口异步时钟域FIFO写使能信号根据公式进行时序跳转;
(2-5)判断入口异步时钟域FIFO是否读空,或出口异步时钟域FIFO是否写满,如果是,则不再对FIFO进行操作,退出步骤;否则,继续对FIFO进行读写操作。
8.根据权利要求7所述的实现基于DDR的大规模FIFO数据处理的方法,其特征在于,所述的步骤(4)中入口异步时钟域FIFO的有效信号根据入口异步时钟域FIFO的读使能信号和入口异步时钟域FIFO的获取信号的状态,延后一个时钟,再进行跳转。
9.一种用于基于DDR实现大规模FIFO数据处理的装置,其特征在于,所述的装置包括:
处理器,被配置成执行计算机可执行指令;
存储器,存储一个或多个计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现权利要求5至8中任一项所述的实现基于DDR的大规模FIFO数据处理的方法的各个步骤。
10.一种用于基于DDR实现大规模FIFO数据处理的处理器,其特征在于,所述的处理器被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现权利要求5至8中任一项所述的实现基于DDR的大规模FIFO数据处理的方法的各个步骤。
11.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现权利要求5至8中任一项所述的实现基于DDR的大规模FIFO数据处理的方法的各个步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111448215.6A CN114090472A (zh) | 2021-11-30 | 2021-11-30 | 基于ddr实现大规模fifo数据处理的系统、方法、装置、处理器及其存储介质 |
PCT/CN2022/106958 WO2023098099A1 (zh) | 2021-11-30 | 2022-07-21 | 基于ddr实现大规模fifo数据处理的系统、方法、装置、处理器及其存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111448215.6A CN114090472A (zh) | 2021-11-30 | 2021-11-30 | 基于ddr实现大规模fifo数据处理的系统、方法、装置、处理器及其存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114090472A true CN114090472A (zh) | 2022-02-25 |
Family
ID=80306363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111448215.6A Pending CN114090472A (zh) | 2021-11-30 | 2021-11-30 | 基于ddr实现大规模fifo数据处理的系统、方法、装置、处理器及其存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114090472A (zh) |
WO (1) | WO2023098099A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968169A (zh) * | 2022-05-17 | 2022-08-30 | 赵浩然 | 一种fgpa控制的ddr映射多个ddr_fifo实现系统及方法 |
CN115225880A (zh) * | 2022-07-15 | 2022-10-21 | 海宁奕斯伟集成电路设计有限公司 | 数据处理方法、装置、设备、可读存储介质及程序产品 |
WO2023098099A1 (zh) * | 2021-11-30 | 2023-06-08 | 创远信科(上海)技术股份有限公司 | 基于ddr实现大规模fifo数据处理的系统、方法、装置、处理器及其存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116455530B (zh) * | 2023-06-20 | 2023-11-03 | 中星联华科技(北京)有限公司 | 误码仪、码型生成方法、装置、电子设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9710415B2 (en) * | 2014-11-03 | 2017-07-18 | Nxp Usa, Inc. | Asynchronous FIFO buffer with Johnson code write pointer |
CN105468547B (zh) * | 2015-11-18 | 2018-07-06 | 哈尔滨工业大学 | 一种基于axi总线的便捷可配置帧数据存取控制系统 |
CN109412914B (zh) * | 2018-08-31 | 2021-07-13 | 南京理工大学 | 流数据与axi接口通信装置 |
CN112948295B (zh) * | 2019-12-11 | 2023-07-14 | 中国科学院声学研究所 | 一种基于axi4总线的fpga与ddr高速数据包传输系统及方法 |
CN111262655B (zh) * | 2020-01-15 | 2023-05-12 | 江苏方天电力技术有限公司 | 基于异步时钟的fpga万兆以太网数据高速发送方法 |
CN114090472A (zh) * | 2021-11-30 | 2022-02-25 | 上海创远仪器技术股份有限公司 | 基于ddr实现大规模fifo数据处理的系统、方法、装置、处理器及其存储介质 |
-
2021
- 2021-11-30 CN CN202111448215.6A patent/CN114090472A/zh active Pending
-
2022
- 2022-07-21 WO PCT/CN2022/106958 patent/WO2023098099A1/zh unknown
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023098099A1 (zh) * | 2021-11-30 | 2023-06-08 | 创远信科(上海)技术股份有限公司 | 基于ddr实现大规模fifo数据处理的系统、方法、装置、处理器及其存储介质 |
CN114968169A (zh) * | 2022-05-17 | 2022-08-30 | 赵浩然 | 一种fgpa控制的ddr映射多个ddr_fifo实现系统及方法 |
CN114968169B (zh) * | 2022-05-17 | 2023-10-10 | 赵浩然 | 一种fpga控制的ddr映射多个ddr_fifo实现系统及方法 |
CN115225880A (zh) * | 2022-07-15 | 2022-10-21 | 海宁奕斯伟集成电路设计有限公司 | 数据处理方法、装置、设备、可读存储介质及程序产品 |
CN115225880B (zh) * | 2022-07-15 | 2024-02-27 | 海宁奕斯伟集成电路设计有限公司 | 数据处理方法、装置、设备、可读存储介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
WO2023098099A1 (zh) | 2023-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114090472A (zh) | 基于ddr实现大规模fifo数据处理的系统、方法、装置、处理器及其存储介质 | |
CN108958800B (zh) | 一种基于fpga硬件加速的ddr管理控制系统 | |
CN110417780B (zh) | 定制化数据传输协议的多通道高速数据接口转化模块 | |
US20040243894A1 (en) | Method and systems for providing data replay, reprocess and retrigger functions in an analyzer | |
CN112765054A (zh) | 一种基于fpga的高速数据采集系统及方法 | |
EP2908251B1 (en) | Method and device for processing data | |
CN112051758A (zh) | 一种io扩展芯片 | |
CN108536615A (zh) | 一种乒乓缓存控制器及其设计方法 | |
CN111124317A (zh) | 一种数据流写入的异步交替收发方法、收发系统及设备 | |
CN105335323B (zh) | 一种数据突发的缓存装置和方法 | |
CN110108938B (zh) | 基于gpu数据流驱动的实时电磁频谱分析系统及方法 | |
CN103019990A (zh) | 一种采集端启动pci-e总线dma上传数据的方法 | |
CN108337286A (zh) | 一种切包方法及装置 | |
WO2008096000A1 (en) | Microcontroller with memory trace module | |
CN103116554B (zh) | 用于fpga芯片调试的信号采样缓存装置 | |
CN103076990A (zh) | 一种基于fifo缓存结构的数据回放装置 | |
CN108897696B (zh) | 一种基于DDRx存储器的大容量FIFO控制器 | |
CN114578950A (zh) | 一种基于微型电磁感知设备的低功耗管理控制系统及方法 | |
CN114116554A (zh) | 一种基于fpga的雷达数据转发架构及转发方法 | |
CN114281725A (zh) | 一种高速数据处理系统及高速数据处理方法 | |
CN103268278B (zh) | 支持多核处理器的sram控制器及其跟踪信息处理方法 | |
CN107092440B (zh) | 一种基于fpga的irig106高速数据存储系统 | |
CN102929677B (zh) | 多数字信号处理器的加载系统及方法 | |
CN102831077B (zh) | 一种节约缓存资源的流量管理装置和方法 | |
CN206258856U (zh) | 基于自适应波特率的单端口通信处理电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |