CN111782578A - 一种缓存控制方法、系统、存储介质、计算机设备及应用 - Google Patents
一种缓存控制方法、系统、存储介质、计算机设备及应用 Download PDFInfo
- Publication number
- CN111782578A CN111782578A CN202010472188.5A CN202010472188A CN111782578A CN 111782578 A CN111782578 A CN 111782578A CN 202010472188 A CN202010472188 A CN 202010472188A CN 111782578 A CN111782578 A CN 111782578A
- Authority
- CN
- China
- Prior art keywords
- fifo
- data
- ddr
- chip
- queue
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7846—On-chip cache and off-chip main memory
-
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于数据交换技术领域,公开了一种缓存控制方法、系统、存储介质、计算机设备及应用,将一块BlockRAM控制成多个三通道同步FIFO使用,数据帧入队时首先写入对应片内FIFO,片内FIFO写满之后,将数据写入片外DDR;将DDR存储空间划分为L个具有连续地址的区域块,数据出队时,从对应片内FIFO读出数据的同时将k个连续的数据帧从DDR搬移至片内FIFO。本发明提高了分组处理单元处理速度和抗流量突发能力,增大DDR带宽利用率,减少DDR读数据的时间延迟。本发明加快了交换单元处理速度,实现较高的DDR带宽利用率,减少DDR器件带来的绝对延时对交换单元处理时间的影响。
Description
技术领域
本发明属于数据交换技术领域,尤其涉及一种缓存控制方法、系统、存储介质、计算机设备及应用。
背景技术
目前,用FPGA实现的交换单元平衡了软件交换单元处理速度不足和专用ASIC芯片灵活性欠缺的问题,在网络交换领域拥有广泛的应用前景。使用FPGA片内SRAM存储转发数据帧,具有高速、低延迟、易控制的特点。使用外挂DDR存储数据流,具有大容量、高带宽的特点。
现有技术FPGA直接外挂DDR缓存控制办法,用于解决现有技术因FPGA片内存储资源不足,无法应对流量突发的问题。其技术方案是:1)将DDR存储空间划分为多个等长的缓存区,为每个缓存区编号;2)给新到达的数据分组分配一定数量的等长缓存区,记录该数据分组的头部缓存区编号,同时用链表记录该数据分组的每个缓存区的下一跳缓存区编号;3)接收总线将该数据分组的缓存区编号映射成缓存区地址,生成DDR写指令,将数据分组写入DDR相应存储空间;4)根据队列调度结果,得到要转发的数据分组号;5)通过分组号查询该数据分组对应的头部缓存区编号,并从链表得到该数据分组的所有缓存区编号;6)发送总线将缓存区编号映射到缓存区地址,生成DDR读指令,将数据从DDR读出,完成一个数据的存储转发。此方法存在以下不足:1.DDR虽然有很大的带宽,但是以太网分组到达往往具有随机性,不同的以太网分组被分配不同的缓存区地址,继而DDR读写地址产生多次跳变,导致DDR的物理带宽利用率较低,限制了分组单元抗流量突发的能力。2.DDR数据的读写需要先激活BANK,再进行行寻址,然后列寻址,之后进行数据写入或者读出,器件本身的特性造成其读写具有固定的延迟,这种延迟也造成了分组单元的数据转发延迟。
通过上述分析,现有技术存在的问题及缺陷为:以太网分组到达的随机性导致直接使用外挂DDR进行数据存储转发的带宽利用率低,无法满足高速流量突发,DDR器件本身的特性导致数据分组的处理具有较大时延。
解决以上问题及缺陷的难度为:如果要解决芯片外挂DDR进行数据存储转发过程存在的带宽利用率低下及DDR器件特性导致的数据分组的处理时延问题,就需要在外挂DDR的同时利用片内缓存区进行数据缓冲,而使用片内缓存区与片外DDR联合控制对队列缓存管理提出了较高要求,以保证数据帧不能乱序,同时将系统流水线化处理,减少相对延时。
解决以上问题及缺陷的意义为:采用芯片内Block RAM缓存与片外DDR缓存联合进行数据的存储转发,不仅能提高分组交换单元的抗突发能力,还能提高DDR的带宽利用率,减少数据帧的处理延时。
发明内容
针对现有技术存在的问题,本发明提供了一种缓存控制方法、系统、存储介质、计算机设备及应用。
本发明是这样实现的,一种缓存控制方法,所述缓存控制方法包括:
第一步,将一块片内BlockRAM控制为n个同步FIFO,每个FIFO对应一个逻辑队列,每个FIFO能够存储m个长度为len字节的定长数据帧,其中n是队列数目,所需Block RAM大小至少为为n*m*len字节;
第二步,将片外DDR的缓存区划分为L个等长的区域块,每个区域块可存j个定长数据帧,L内的j个数据帧在DDR中的物理存储地址连续,所需DDR大小至少为L*j*len字节;i,0<=i<=L-1;
第三步,数据帧入队写入缓存流程,数据入队分为两种情况,一是在队列为空时,数据帧首先写入该队列对应的片内同步FIFO中,片内FIFO写满之后,把后续入队的数据分组写入片外DDR中;二是队列非空,数据帧直接写入片外DDR中;
第四步,数据帧出队读取缓存流程,查询出队队列对应的片内同步FIFO空状态,若非空,则从该FIFO中读取数据帧进行转发;同时查询该FIFO剩余空间大小,若剩余空间足够存储k个数据帧,则给出DDR读取指令,从片外DDR一次搬移k个数据帧到该队列同步FIFO中。
进一步,所述第一步的同步FIFO有两个数据写通道和一个数据读通道,一个数据写通道对应所述第三步的数据直接写入片内同步FIFO,另一个数据写通道对应所述第四步的数据由DDR搬移到片内同步FIFO,两个数据写通道根据总线仲裁结果拥有总线使用权;
所述第一步将一块片内BlockRAM控制为n个同步FIFO包括:
步骤一,将RAM的地址分为连续的n份,每一份作为不同FIFO的存储空间。将FIFO的编号映射到其对应RAM中的存储首地址,每个FIFO在RAM中的存储地址由其存储首地址加FIFO内部读写指针构成;
步骤二,轮询两个写通道的写请求,并根据写总线上次被占用状态进行当前总线仲裁,得到总线使用权的写通道进入步骤三,另一个写通道进行等待;
步骤三,写数据到达时,根据得到的FIFO编号,使能对应编号FIFO的写使能信号和总线,同时更新该FIFO的写指针;
步骤四,读数据到达时,根据得到的FIFO编号,使能对应编号FIFO的读使能信号和总线,同时更新该FIFO的读指针;
步骤四,更新FIFO空间的逻辑使用长度和物理使用长度,数据逻辑上写入时增加FIFO空间的逻辑使用长度计数值,数据物理上写入时增加FIFO空间物理使用长度计数值,数据读出时减少逻辑使用长度计数值和物理长度计数值。根据逻辑使用长度判断该FIFO是否能继续写入,根据物理使用长度产生FIFO空信号,判断数据能否被读出;
所述第二步通过调用Xilinx平台的DDR3的缓存接口控制器,将DDR对外封装成用户侧读写通道,读写地址由区域块编号L(x),0<=x<=L-1,,帧偏移量s组成,0<=s<=j-1,每次8突发传输。
进一步,所述第三步数据帧入队逻辑上写入缓存流程包括:
步骤一,查询该逻辑队列是否为空,为空则进入步骤二,否则进入步骤五;
步骤二,查询该队列对应FIFO的逻辑空间剩余大小,若剩余空间足够写入当前数据帧,进入步骤三,否则进入步骤五;
步骤三,更新该队列对应FIFO的逻辑空间计数值,进入步骤四;
步骤四,产生数据写入片内同步FIFO指令,指令内容为要写入的FIFO编号,回到步骤一;
步骤五,更新逻辑队列长度,进入步骤六;
步骤六,产生数据写入片外DDR指令,指令内容为要写入的DDR内区域块编号L(x)和L(x)内的帧偏移量s,0<=x<=L-1,0<=s<=j-1,回到步骤一。
进一步,所述第三步数据帧入队物理上写入缓存流程包括:
步骤一,读取所述第三步数据帧入队逻辑上写入缓存流程中产生的数据搬移指令,若搬移指令为写入片内同步FIFO,进入步骤二,否则进入步骤五;
步骤二,发起FIFO写通道总线使用申请,等待总线仲裁结果,若写通道总线仲裁成功,则进入步骤三,否则等待;
步骤三,根据搬移指令内容,给出要写入的FIFO编号,拉高写通道使能,给出写数据,进入步骤四;
步骤四,更新该队列对应FIFO的物理空间计数值,回到步骤一;
步骤五,根据搬移指令内容,将DDR内区域块编号L(x)和L(x)内的帧偏移量s映射到DDR缓存地址,0<=s<=j-1,0<=x<=L-1,给出DDR写命令和写数据,进入步骤六;
步骤六,更新物理队列长度,回到步骤一。
进一步,所述第四步数据帧出队逻辑上读取缓存流程包括:
步骤一,查询该队列对应FIFO空状态和逻辑空间计数值,FIFO非空则进入步骤二;
步骤二,产生从片内FIFO读出数据帧指令,指令内容为要读数据的FIFO编号,进入步骤三;
步骤三,若逻辑空间剩余大小小于k,回到步骤一,否则进入步骤四;
步骤四,产生从DDR读出数据帧指令,指令内容为要读的k个数据对应的的DDR内区域块编号L(y(a)),0<=y<=L-1,0<=a<=k-1、L(y)内的帧偏移量z(a),0<=z<=j-1,0<=a<=k-1,回到步骤一。
进一步,所述第四步数据帧出队物理上读取缓存流程包括:
步骤一,读取所述第四步数据帧出队逻辑上读取缓存流程中的数据搬移指令,若搬移指令为从片内同步FIFO读出数据帧,进入步骤二,否则进入步骤;
步骤二,根据搬移指令内容,给出要读的FIFO编号,拉高读通道使能,读出数据,回到步骤一;
步骤三,根据搬移指令内容,进行k次读取,将要读的k个数据对应的的DDR内区域块编号L(y(a))(0<=y<=L-1,0<=a<=k-1)、L(y)内的帧偏移量z(a)(0<=z<=j-1,0<=a<=k-1)映射到DDR缓存地址,给出DDR读命令,回到步骤一。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
第一步,将一块片内BlockRAM控制为n个同步FIFO,每个FIFO对应一个逻辑队列,每个FIFO能够存储m个长度为len字节的定长数据帧,其中n是队列数目,所需Block RAM大小至少为为n*m*len字节;
第二步,将片外DDR的缓存区划分为L个等长的区域块,每个区域块可存j个定长数据帧,L内的j个数据帧在DDR中的物理存储地址连续,所需DDR大小至少为L*j*len字节;i,0<=i<=L-1;
第三步,数据帧入队写入缓存流程,数据入队分为两种情况,一是在队列为空时,数据帧首先写入该队列对应的片内同步FIFO中,片内FIFO写满之后,把后续入队的数据分组写入片外DDR中;二是队列非空,数据帧直接写入片外DDR中;
第四步,数据帧出队读取缓存流程,查询出队队列对应的片内同步FIFO空状态,若非空,则从该FIFO中读取数据帧进行转发;同时查询该FIFO剩余空间大小,若剩余空间足够存储k个数据帧,则给出DDR读取指令,从片外DDR一次搬移k个数据帧到该队列同步FIFO中。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
第一步,将一块片内BlockRAM控制为n个同步FIFO,每个FIFO对应一个逻辑队列,每个FIFO能够存储m个长度为len字节的定长数据帧,其中n是队列数目,所需Block RAM大小至少为为n*m*len字节;
第二步,将片外DDR的缓存区划分为L个等长的区域块,每个区域块可存j个定长数据帧,L内的j个数据帧在DDR中的物理存储地址连续,所需DDR大小至少为L*j*len字节;i,0<=i<=L-1;
第三步,数据帧入队写入缓存流程,数据入队分为两种情况,一是在队列为空时,数据帧首先写入该队列对应的片内同步FIFO中,片内FIFO写满之后,把后续入队的数据分组写入片外DDR中;二是队列非空,数据帧直接写入片外DDR中;
第四步,数据帧出队读取缓存流程,查询出队队列对应的片内同步FIFO空状态,若非空,则从该FIFO中读取数据帧进行转发;同时查询该FIFO剩余空间大小,若剩余空间足够存储k个数据帧,则给出DDR读取指令,从片外DDR一次搬移k个数据帧到该队列同步FIFO中。
本发明的另一目的在于提供一种实施所述缓存控制方法的缓存控制系统,所述缓存控制系统包括:
FIFO定义模块,用于将一块片内Block RAM控制为n个同步FIFO,每个FIFO对应一个逻辑队列,每个FIFO能够存储m个长度为len字节的定长数据帧;
缓存区处理模块,用于将片外DDR的缓存区划分为L个等长的区域块,每个区域块可存j个定长数据帧,L内的j个数据帧在DDR中的物理存储地址连续;
数据帧写入缓存模块,用于实现数据帧写入缓存分为两种情况,一是在队列为空时,数据帧首先写入该队列对应的片内同步FIFO中,片内FIFO写满之后,把后续入队的数据分组写入片外DDR中;二是队列非空,数据帧直接写入片外DDR;
数据帧从缓存读出模块,用于实现查询出队队列对应的片内同步FIFO空状态,若非空,则从该FIFO中读取数据帧进行转发;同时查询该FIFO剩余空间大小,若剩余空间足够存k个数据帧,则在从队列对应FIFO中读出数据的同时一次将k个数据帧从DDR搬移至该同步FIFO中。
本发明的另一目的在于提供一种实施所述缓存控制方法在芯片内BlockRAM与片外DDR联合缓存控制系统。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明将芯片内BlockRAM与片外DDR联合控制进行交换数据的缓存,在低流量情况下使用片内BlockRAM构成的FIFO进行数据存储,加快了交换单元处理速度,在高流量突发情况下使用片外DDR吸收流量突发,同时利用片内缓存增加从DDR读数据的突发长度,实现较高的DDR带宽利用率。采用逻辑数据写入、读出和物理数据写入、读出,将数据搬移指令和搬移过程流水化,利用数据从片内BlockRAM读出的时间从DDR读出数据到片内SRAM,减少DDR器件带来的绝对延时对交换单元处理时间的影响。
与现有技术相比,本发明具有以下优点:
(1)将一片Block RAM控制成多个同步FIFO使用,减少了多个逻辑队列使用多个双口RAM造成芯片面积大的问题。
(2)FIFO内部维护了逻辑长度计数值和物理长度计数值,根据逻辑长度计数值产生满信号,根据物理长度计数值产生空信号,增加了FIFO深度设置的灵活性,在不浪费RAM存储空间的情况下,可以任意设置FIFO深度。
(3)数据帧入队时,首先写入由片内BlockRAM构成的同步FIFO中,当同步FIFO写满之后才写入片外DDR存储空间,而数据出队时直接从该队列对应同步FIFO中读出,低速数据流甚至不需要写入片外DDR,这种存储模式减少了分组交换单元的数据搬移耗时。
(4)将DDR存储空间划分为L个连续地址的区域块,每个区域块可以存储j个定长帧,这样根据出队搬移指令,可以一次从DDR读出k个连续地址的数据帧,提高了DDR带宽利用率。
(5)由于使用了片内BlockRAM构成的FIFO进行数据缓冲,从片内FIFO读出数据的同时能够把数据从DDR搬移至片内FIFO,减少读出DDR数据的时间等待。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的缓存控制方法流程图。
图2是本发明实施例提供的缓存控制系统的结构示意图;
图中:1、FIFO定义模块;2、缓存区处理模块;3、数据帧写入缓存模块;4、数据帧从缓存读出模块。
图3是本发明实施例提供的Block RAM划分为n个同步FIFO示意图。
图4是本发明实施例提供的同步FIFO写通道选择示意图。
图5是本发明实施例提供的将一块片内BlockRAM控制为n个同步FIFO流程示意图。
图6是本发明实施例提供的使用Xilinx例化工具例化的缓存控制器MIG,并将其封装成用户侧读写通道,划分区域块空间示意图。
图7是本发明实施例提供的数据帧逻辑上写入缓存流程示意图。
图8是本发明实施例提供的数据帧物理上写入缓存流程示意图。
图9是本发明实施例提供的数据帧逻辑上读取缓存流程示意图。
图10是本发明实施例提供的数据帧物理上读取缓存流程示意图。
图11是本发明提供的可拓展FIFO写通道功能示意图。
图12是本发明证明部分提供的同步fifo读写指针控制仿真波形示意图。
图13是本发明证明部分提供的同步fifo空信号和计数值更新仿真波形示意图。
图14是本发明证明部分提供的数据帧逻辑上写入缓存仿真波形示意图。
图15是本发明证明部分提供的数据帧物理上写入缓存仿真波形示意图。
图16是本发明证明部分提供的数据帧逻辑上读取缓存仿真波形示意图。
图17是本发明证明部分提供的数据帧物理上读取缓存仿真波形示意图。
图18是本发明证明部分提供的连续地址写入和读出DDR数据仿真波形示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种缓存控制方法、系统、存储介质、计算机设备及应用,下面结合附图对本发明作详细的描述。
如图1所示,本发明提供的缓存控制方法包括以下步骤:
S101:将一块片内Block RAM控制为n个同步FIFO,每个FIFO对应一个逻辑队列,每个FIFO能够存储m个长度为len字节的定长数据帧(其中n是队列数目,所需Block RAM大小至少为n*m*len字节)。
S102:将片外DDR的缓存区划分为L个等长的区域块,每个区域块可存j个定长数据帧,L(i,0<=i<=L-1)内的j个数据帧在DDR中的物理存储地址连续(所需DDR大小至少为L*j*len字节)。
S103:数据帧写入缓存流程:数据帧写入缓存分为两种情况,一是在队列为空时,数据帧首先写入该队列对应的片内同步FIFO中,片内FIFO写满之后,把后续入队的数据分组写入片外DDR中;二是队列非空,数据帧直接写入片外DDR。
S104:数据帧从缓存读出流程:查询出队队列对应的片内同步FIFO空状态,若非空,则从该FIFO中读取数据帧进行转发;同时查询该FIFO剩余空间大小,若剩余空间足够存k个数据帧,则在从队列对应FIFO中读出数据的同时一次将k个数据帧从DDR搬移至该同步FIFO中。
如图2所示,本发明提供的缓存控制系统包括:
FIFO定义模块1,用于将一块片内Block RAM控制为n个同步FIFO,每个FIFO对应一个逻辑队列,每个FIFO能够存储m个长度为len字节的定长数据帧,每个FIFO具有两个写通道和一个读通道。
缓存区处理模块2,用于将片外DDR的缓存区划分为L个等长的区域块,每个区域块可存j个定长数据帧,L内的j个数据帧在DDR中的物理存储地址连续。
数据帧写入缓存模块3,用于实现数据帧写入缓存分为两种情况,一是在队列为空时,数据帧首先写入该队列对应的片内同步FIFO中,片内FIFO写满之后,把后续入队的数据分组写入片外DDR中;二是队列非空,数据帧直接写入片外DDR。
数据帧从缓存读出模块4,用于实现查询出队队列对应的片内同步FIFO空状态,若非空,则从该FIFO中读取数据帧进行转发;同时查询该FIFO剩余空间大小,若剩余空间足够存k个数据帧,则在从队列对应FIFO中读出数据的同时一次将k个数据帧从DDR搬移至该同步FIFO中。
下面结合附图对本发明的技术方案作进一步的描述。
本发明是这样实现的,一种缓存控制方法,芯片内Block RAM与片外DDR缓存联合控制方法包括以下步骤:
第一步,将一块片内BlockRAM控制为n个同步FIFO,如图3所示,每个FIFO对应一个逻辑队列,每个FIFO能够存储m个长度为len字节的定长数据帧(以下表述数据帧都代表定长数据帧),其中n是队列数目,所需Block RAM大小至少为为n*m*len字节;
进一步,第一步的同步FIFO有两个数据写通道和一个数据读通道,如图4所示,数据写通道1将数据直接写入对应的片内同步FIFO,数据写通道2将数据由DDR搬移到对应的片内同步FIFO。两个数据写通道要写数据时拉高bus_request信号,根据总线仲裁结果获得总线可用信号bus_ready,之后进行数据写入。
进一步,如图5所示,第一步将一块片内BlockRAM控制为n个同步FIFO包括:
步骤一,将FIFO的编号映射到其对应RAM中的存储首地址,每个FIFO在RAM中的存储地址由其存储首地址加FIFO内部读写指针构成,比如FIFO1的存储首地址ram_addr1=(wr_addr1-1)*m*len*8/bus_width,wr_addr是FIFO的编号,bus_width是总线位宽。若有数据帧写入,进入步骤二,若有数据帧读出,进入步骤四;
步骤二,轮询两个写通道的写请求bus_request信号,并根据写总线上次被占用状态进行当前总线仲裁,得到总线使用权的写通道拉高bus_ready信号,进入步骤三,另一个写通道进行等待;
步骤三,写数据到达时,根据得到的FIFO编号,使能对应编号FIFO的写使能信号和总线,同时更新该FIFO的写指针,进入步骤五;
步骤四,读数据到达时,根据得到的FIFO编号,使能对应编号FIFO的读使能信号和总线,同时更新该FIFO的读指针,进入步骤五;
步骤五,更新FIFO空间的逻辑使用长度和物理使用长度,数据逻辑上写入时增加FIFO空间的逻辑使用长度计数值,数据物理上写入时增加FIFO空间物理使用长度计数值,数据读出时减少逻辑使用长度计数值和物理长度计数值。根据逻辑使用长度判断该FIFO是否能继续写入,根据物理使用长度产生FIFO空信号,进入步骤一。
第二步,将片外DDR的缓存区划分为L个等长的区域块,如图6所示,每个区域块可存j个定长数据帧,L(i,0<=i<=L-1)内的j个数据帧在DDR中的物理存储地址连续,所需DDR大小至少为L*j*len字节;
进一步,如图6所示,第二步通过调用Xilinx平台的DDR3的缓存接口控制器,将DDR对外封装成用户侧读写通道,读写地址由区域块编号L(x)(0<=x<=L-1),帧偏移量s(0<=s<=j-1)组成。DDR的读写地址ddr_addr={((L(x)-1)*j*len+s*len),3’b0},地址的低3位写0是为了8突发传输。
第三步,数据帧入队写入缓存流程,数据入队分为两种情况,一是在队列为空时,数据帧首先写入该队列对应的片内同步FIFO中,片内FIFO写满之后,把后续入队的数据分组写入片外DDR中;二是队列非空,数据帧直接写入片外DDR中;
进一步,如图7所示,第三步数据帧逻辑上写入缓存流程包括:
步骤一,查询该逻辑队列是否为空,为空则进入步骤二,否则进入步骤五;
步骤二,查询该队列对应FIFO的逻辑空间剩余大小,若剩余空间足够写入当前数据帧,进入步骤三,否则进入步骤五;
步骤三,更新该队列对应FIFO的逻辑空间计数值,进入步骤四;
步骤四,产生数据写入片内同步FIFO指令,指令内容为要写入的FIFO编号,回到步骤一;
步骤五,更新逻辑队列长度,进入步骤六;
步骤六,产生数据写入片外DDR指令,指令内容为要写入的DDR内区域块编号L(x)(0<=x<=L-1)和L(x)内的帧偏移量s(0<=s<=j-1),回到步骤一;
进一步,如图8所示,第三步数据帧入队物理上写入缓存流程包括:
步骤一,读取第三步数据帧入队逻辑上写入缓存流程中产生的数据搬移指令,若搬移指令为写入片内同步FIFO,进入步骤二,否则进入步骤五;
步骤二,发起FIFO写通道总线使用申请,等待总线仲裁结果,若写通道总线仲裁成功,则进入步骤三,否则等待;
步骤三,根据搬移指令内容,给出要写入的FIFO编号,拉高写通道使能,给出写数据,进入步骤四;
步骤四,更新该队列对应FIFO的物理空间计数值,回到步骤一;
步骤五,根据搬移指令内容,将DDR内区域块编号L(x)(0<=x<=L-1)和L(x)内的帧偏移量s(0<=s<=j-1)映射到DDR缓存地址,给出DDR写命令和写数据,进入步骤六;
步骤六,更新物理队列长度,回到步骤一;
第四步,数据帧出队读取缓存流程,查询出队队列对应的片内同步FIFO空状态,若非空,则从该FIFO中读取数据帧进行转发;同时查询该FIFO剩余空间大小,若剩余空间足够存储k个数据帧,则给出DDR读取指令,从片外DDR一次搬移k个数据帧到该队列同步FIFO中。
进一步,如图9所示,第四步数据帧出队逻辑上读取缓存流程包括:
步骤一,查询该队列对应FIFO空状态和逻辑空间计数值,FIFO非空则进入步骤二;
步骤二,产生从片内FIFO读出数据帧指令,指令内容为要读数据的FIFO编号,进入步骤三;
步骤三,若逻辑空间剩余大小小于k,回到步骤一,否则进入步骤四;
步骤四,产生从DDR读出数据帧指令,指令内容为要读的k个数据对应的的DDR内区域块编号L(y(a))(0<=y<=L-1,0<=a<=k-1)、L(y)内的帧偏移量z(a)(0<=z<=j-1,0<=a<=k-1),回到步骤一;
进一步,如图10所示,第四步数据帧出队物理上读取缓存流程包括:
步骤一,读取第四步数据帧出队逻辑上读取缓存流程中的数据搬移指令,若搬移指令为从片内同步FIFO读出数据帧,进入步骤二,否则进入步骤三;
步骤二,根据搬移指令内容,给出要读的FIFO编号,拉高读通道使能,读出数据,回到步骤一;
步骤三,根据搬移指令内容,进行k次读取,将要读的k个数据对应的的DDR内区域块编号L(y(a))(0<=y<=L-1,0<=a<=k-1)、L(y)内的帧偏移量z(a)(0<=z<=j-1,0<=a<=k-1)映射到DDR缓存地址,给出DDR读命令,回到步骤一。
进一步,如图11所示,本发明可以根据需求将所述第一步中的三通道同步FIFO控制成任意通道同步FIFO,N个写通道对应N个总线使用请求信号bus_requestN和N个总线准许使用信号bus_readyN,FIFO内部轮询N个总线请求,获得总线使用权的写通道可以进行数据写入。
同步FIFO读写指针控制仿真波形如图12所示:
根据入队FIFO编号算得当前写入FIFO的起始地址ddr_fifo_addr_start是420,当写使能fifo_wr_en拉高后,写地址自增,连续写入14个数据,fifo写指针由图中标1所示的420增加到图中标2所示的433;同样的,当读使能fifo_rd_en拉高后,如图中标3所示,读指针由420开始增加,地址更新正确。
同步FIFO空信号和计数值更新仿真波形图如图13所示:
FIFO剩余空间计数值分为两部分,如图中标1所示,enqueue_sram_fifo_count是逻辑剩余空间计数值,dequeue_sram_fifo_count是物理剩余空间计数值,逻辑剩余空间计数值用于入队出队时产生搬移指令的判断,物理剩余空间计数值用于数据物理搬移时的计算。
如图中标2和标3所示,ddr写入队列的队列号sram_enqueu_num为5,写入完成,则sram_fifo_count_ddr_en拉高,更新逻辑空间剩余值和物理空间剩余值,更新完成后,队列5对应的FIFO内的帧数由0变为1;如图中标4所示,sram_fifo_count_ddr_en拉高,代表有一帧搬移进该队列,所以逻辑队列长度由0变为1,但是此时物理队列长度由1变为2,这是因为在前一时刻,sram_fifo_count_wr_en_b拉高,代表逻辑上有一个帧出队,所以逻辑队列长度enqueue_sram_fifo_count[5]由1变为0,而那时候物理上数据还没搬移,所以物理队列长度dequeue_sram_fifo_count[5]仍然是1;如图中标5所示,sram_fifo_count_wr_en_b拉高,代表逻辑上有一个帧出队,所以逻辑队列长度enqueue_sram_fifo_count[5]由1变为0,与此同时空信号fifo_empty[5]拉高,代表物理队列5空了。综合上述,可以看到FIFO空信号和队列长度计数值更新正确。
数据帧逻辑上写入缓存如图14所示,图中标1所示,数据帧进行了两次入队申请,每次申请入队5个帧,由于本发明的实施方式中设计的片内FIFO深度是6个帧,所以第一次入队申请的5个帧全部可以写入片内FIFO,但是处理第二次入队申请时,由于还没有数据出队,FIFO内剩余逻辑空间为1,所以第二次入队申请的5个帧只有一个可以写入片内FIFO,剩余的4个帧需要写入片外DDR中。如图中标2所示,由于片外队列不为空,所以进行第三次及以后的入队申请,为了数据帧不乱序,得到的结果都是写入片外DDR中。
数据帧物理上写入缓存如图15所示,数据帧根据逻辑写入缓存产生的搬移指令进行搬移,首先将6个数据帧搬入片内FIFO,然后将后续的数据帧写入片外DDR中,对比数据发现搬移正确。
数据帧逻辑上从缓存读出如图16所示,图中标1所示,根据出队调度结果查询到要出的队列号sram_dequeue_num是5,根据这个队列号查询到编号为5的FIFO的逻辑剩余空间计数值不为0,于是产生了搬移片内FIFO数据的搬移指令sr_tx_fifo。图中标2所示,片内FIFO逻辑队列剩余空间计数值为小于3,但是片外DDR队列非空,于是产生搬移DDR数据的搬移指令sr_trans_fifo。
数据帧物理上从缓存读出如图17所示,当片内FIFO非空时,数据给出片内FIFO编号memory_rd_addr,编号为5,直接从编号为5的片内FIFO中读出数据memory_rd_data给到phy;当片内FIFO逻辑计数剩余空间小于3时,总线从DDR搬移数据写入对应编号的片内FIFO中,同时将数据从片内FIFO搬移至phy,完成数据搬出。
DDR搬移随机地址写入连续地址读取数据仿真波形如图18所示,其中app_en拉高代表给出DDR指令,app_cmd为0代表写指令,为1代表读指令,可以看到读操作持续3个帧,且读地址是连续自加的,DDR的带宽利用率可以达到50%以上。
总结:
数据写入缓存时首先写入片内对应FIFO,之后写入片外DDR中;而数据读出时首先从片内FIFO中读出,再从片外DDR中读出。加上片内FIFO作为数据缓冲,第一个数据帧从入队到出队仅耗时109ns,处理速度极快。
将3个224字节的帧随机写入DDR并顺序读出读出,DDR带宽的利用率可以到达50%,而之前的方案,数据帧随机地址写入DDR并随机读出,带宽利用率在35%以下,使用片内SRAM缓冲后DDR的带宽利用率可以提高15%以上。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种缓存控制方法,其特征在于,所述缓存控制方法包括:
第一步,将一块片内BlockRAM控制为n个同步FIFO,每个FIFO对应一个逻辑队列,每个FIFO能够存储m个长度为len字节的定长数据帧,其中n是队列数目,所需Block RAM大小至少为为n*m*len字节;
第二步,将片外DDR的缓存区划分为L个等长的区域块,每个区域块可存j个定长数据帧,L内的j个数据帧在DDR中的物理存储地址连续,所需DDR大小至少为L*j*len字节;i,0<=i<=L-1;
第三步,数据帧入队写入缓存流程,数据入队分为两种情况,一是在队列为空时,数据帧首先写入该队列对应的片内同步FIFO中,片内FIFO写满之后,把后续入队的数据分组写入片外DDR中;二是队列非空,数据帧直接写入片外DDR中;
第四步,数据帧出队读取缓存流程,查询出队队列对应的片内同步FIFO空状态,若非空,则从该FIFO中读取数据帧进行转发;同时查询该FIFO剩余空间大小,若剩余空间足够存储k个数据帧,则给出DDR读取指令,从片外DDR一次搬移k个数据帧到该队列同步FIFO中。
2.如权利要求1所述的缓存控制方法,其特征在于,所述第一步的同步FIFO有两个数据写通道和一个数据读通道,一个数据写通道对应所述第三步的数据直接写入片内同步FIFO,另一个数据写通道对应所述第四步的数据由DDR搬移到片内同步FIFO,两个数据写通道根据总线仲裁结果拥有总线使用权;
所述第一步将一块片内BlockRAM控制为n个同步FIFO包括:
步骤一,将RAM的地址分为连续的n份,每一份作为不同FIFO的存储空间,将FIFO的编号映射到其对应RAM中的存储首地址,每个FIFO在RAM中的存储地址由其存储首地址加FIFO内部读写指针构成;
步骤二,轮询两个写通道的写请求,并根据写总线上次被占用状态进行当前总线仲裁,得到总线使用权的写通道进入步骤三,另一个写通道进行等待;
步骤三,写数据到达时,根据得到的FIFO编号,使能对应编号FIFO的写使能信号和总线,同时更新该FIFO的写指针;
步骤四,读数据到达时,根据得到的FIFO编号,使能对应编号FIFO的读使能信号和总线,同时更新该FIFO的读指针;
步骤四,更新FIFO空间的逻辑使用长度和物理使用长度,数据逻辑上写入时增加FIFO空间的逻辑使用长度计数值,数据物理上写入时增加FIFO空间物理使用长度计数值,数据读出时减少逻辑使用长度计数值和物理长度计数值,根据逻辑使用长度判断该FIFO是否能继续写入,根据物理使用长度产生FIFO空信号,判断数据能否被读出;
所述第二步通过调用Xilinx平台的DDR3的缓存接口控制器,将DDR对外封装成用户侧读写通道,读写地址由区域块编号L(x),0<=x<=L-1,,帧偏移量s组成,0<=s<=j-1,每次8突发传输。
3.如权利要求1所述的缓存控制方法,其特征在于,所述第三步数据帧入队逻辑上写入缓存流程包括:
步骤一,查询该逻辑队列是否为空,为空则进入步骤二,否则进入步骤五;
步骤二,查询该队列对应FIFO的逻辑空间剩余大小,若剩余空间足够写入当前数据帧,进入步骤三,否则进入步骤五;
步骤三,更新该队列对应FIFO的逻辑空间计数值,进入步骤四;
步骤四,产生数据写入片内同步FIFO指令,指令内容为要写入的FIFO编号,回到步骤一;
步骤五,更新逻辑队列长度,进入步骤六;
步骤六,产生数据写入片外DDR指令,指令内容为要写入的DDR内区域块编号L(x)和L(x)内的帧偏移量s,0<=x<=L-1,0<=s<=j-1,回到步骤一。
4.如权利要求1所述的缓存控制方法,其特征在于,所述第三步数据帧入队物理上写入缓存流程包括:
步骤一,读取所述第三步数据帧入队逻辑上写入缓存流程中产生的数据搬移指令,若搬移指令为写入片内同步FIFO,进入步骤二,否则进入步骤五;
步骤二,发起FIFO写通道总线使用申请,等待总线仲裁结果,若写通道总线仲裁成功,则进入步骤三,否则等待;
步骤三,根据搬移指令内容,给出要写入的FIFO编号,拉高写通道使能,给出写数据,进入步骤四;
步骤四,更新该队列对应FIFO的物理空间计数值,回到步骤一;
步骤五,根据搬移指令内容,将DDR内区域块编号L(x)和L(x)内的帧偏移量s映射到DDR缓存地址,0<=s<=j-1,0<=x<=L-1,给出DDR写命令和写数据,进入步骤六;
步骤六,更新物理队列长度,回到步骤一。
5.如权利要求1所述的缓存控制方法,其特征在于,所述第四步数据帧出队逻辑上读取缓存流程包括:
步骤一,查询该队列对应FIFO空状态和逻辑空间计数值,FIFO非空则进入步骤二;
步骤二,产生从片内FIFO读出数据帧指令,指令内容为要读数据的FIFO编号,进入步骤三;
步骤三,若逻辑空间剩余大小小于k,回到步骤一,否则进入步骤四;
步骤四,产生从DDR读出数据帧指令,指令内容为要读的k个数据对应的的DDR内区域块编号L(y(a)),0<=y<=L-1,0<=a<=k-1、L(y)内的帧偏移量z(a),0<=z<=j-1,0<=a<=k-1,回到步骤一。
6.如权利要求1所述的缓存控制方法,其特征在于,所述第四步数据帧出队物理上读取缓存流程包括:
步骤一,读取所述第四步数据帧出队逻辑上读取缓存流程中的数据搬移指令,若搬移指令为从片内同步FIFO读出数据帧,进入步骤二,否则进入步骤;
步骤二,根据搬移指令内容,给出要读的FIFO编号,拉高读通道使能,读出数据,回到步骤一;
步骤三,根据搬移指令内容,进行k次读取,将要读的k个数据对应的的DDR内区域块编号L(y(a))(0<=y<=L-1,0<=a<=k-1)、L(y)内的帧偏移量z(a)(0<=z<=j-1,0<=a<=k-1)映射到DDR缓存地址,给出DDR读命令,回到步骤一。
7.一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
第一步,将一块片内BlockRAM控制为n个同步FIFO,每个FIFO对应一个逻辑队列,每个FIFO能够存储m个长度为len字节的定长数据帧,其中n是队列数目,所需Block RAM大小至少为为n*m*len字节;
第二步,将片外DDR的缓存区划分为L个等长的区域块,每个区域块可存j个定长数据帧,L内的j个数据帧在DDR中的物理存储地址连续,所需DDR大小至少为L*j*len字节;i,0<=i<=L-1;
第三步,数据帧入队写入缓存流程,数据入队分为两种情况,一是在队列为空时,数据帧首先写入该队列对应的片内同步FIFO中,片内FIFO写满之后,把后续入队的数据分组写入片外DDR中;二是队列非空,数据帧直接写入片外DDR中;
第四步,数据帧出队读取缓存流程,查询出队队列对应的片内同步FIFO空状态,若非空,则从该FIFO中读取数据帧进行转发;同时查询该FIFO剩余空间大小,若剩余空间足够存储k个数据帧,则给出DDR读取指令,从片外DDR一次搬移k个数据帧到该队列同步FIFO中。
8.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
第一步,将一块片内BlockRAM控制为n个同步FIFO,每个FIFO对应一个逻辑队列,每个FIFO能够存储m个长度为len字节的定长数据帧,其中n是队列数目,所需Block RAM大小至少为为n*m*len字节;
第二步,将片外DDR的缓存区划分为L个等长的区域块,每个区域块可存j个定长数据帧,L内的j个数据帧在DDR中的物理存储地址连续,所需DDR大小至少为L*j*len字节;i,0<=i<=L-1;
第三步,数据帧入队写入缓存流程,数据入队分为两种情况,一是在队列为空时,数据帧首先写入该队列对应的片内同步FIFO中,片内FIFO写满之后,把后续入队的数据分组写入片外DDR中;二是队列非空,数据帧直接写入片外DDR中;
第四步,数据帧出队读取缓存流程,查询出队队列对应的片内同步FIFO空状态,若非空,则从该FIFO中读取数据帧进行转发;同时查询该FIFO剩余空间大小,若剩余空间足够存储k个数据帧,则给出DDR读取指令,从片外DDR一次搬移k个数据帧到该队列同步FIFO中。
9.一种实施权利要求1~7任意一项所述缓存控制方法的缓存控制系统,其特征在于,所述缓存控制系统包括:
FIFO定义模块,用于将一块片内Block RAM控制为n个同步FIFO,每个FIFO对应一个逻辑队列,每个FIFO能够存储m个长度为len字节的定长数据帧,每个FIFO具有两个写通道和一个读通道;
缓存区处理模块,用于将片外DDR的缓存区划分为L个等长的区域块,每个区域块可存j个定长数据帧,L内的j个数据帧在DDR中的物理存储地址连续;
数据帧写入缓存模块,用于实现数据帧写入缓存分为两种情况,一是在队列为空时,数据帧首先写入该队列对应的片内同步FIFO中,片内FIFO写满之后,把后续入队的数据分组写入片外DDR中;二是队列非空,数据帧直接写入片外DDR;
数据帧从缓存读出模块,用于实现查询出队队列对应的片内同步FIFO空状态,若非空,则从该FIFO中读取数据帧进行转发;同时查询该FIFO剩余空间大小,若剩余空间足够存k个数据帧,则在从队列对应FIFO中读出数据的同时一次将k个数据帧从DDR搬移至该同步FIFO中。
10.一种实施权利要求1~7任意一项所述缓存控制方法在芯片内BlockRAM与片外DDR联合缓存控制系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010472188.5A CN111782578B (zh) | 2020-05-29 | 2020-05-29 | 一种缓存控制方法、系统、存储介质、计算机设备及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010472188.5A CN111782578B (zh) | 2020-05-29 | 2020-05-29 | 一种缓存控制方法、系统、存储介质、计算机设备及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782578A true CN111782578A (zh) | 2020-10-16 |
CN111782578B CN111782578B (zh) | 2022-07-12 |
Family
ID=72754489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010472188.5A Active CN111782578B (zh) | 2020-05-29 | 2020-05-29 | 一种缓存控制方法、系统、存储介质、计算机设备及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782578B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159064A (zh) * | 2019-12-30 | 2020-05-15 | 南京六九零二科技有限公司 | 一种低复杂度数据块缓存方法 |
CN112416823A (zh) * | 2020-11-15 | 2021-02-26 | 珠海市一微半导体有限公司 | 一种突发模式下的传感器数据读写控制方法、系统及芯片 |
CN112650448A (zh) * | 2020-12-21 | 2021-04-13 | 中国航天科工集团八五一一研究所 | 一种基于fpga的大数据量存储文件管理方法 |
CN113032295A (zh) * | 2021-02-25 | 2021-06-25 | 西安电子科技大学 | 一种数据包二级缓存方法、系统及应用 |
CN113067778A (zh) * | 2021-06-04 | 2021-07-02 | 新华三半导体技术有限公司 | 一种流量管理方法及流量管理芯片 |
CN113259006A (zh) * | 2021-07-14 | 2021-08-13 | 北京国科天迅科技有限公司 | 一种光纤网络通信系统、方法及装置 |
CN113590520A (zh) * | 2021-06-15 | 2021-11-02 | 珠海一微半导体股份有限公司 | Spi系统自动写入数据的控制方法及spi系统 |
CN113655956A (zh) * | 2021-07-26 | 2021-11-16 | 武汉极目智能技术有限公司 | 一种基于fpga和ddr4的高带宽多路数据存储读取单元的方法和系统 |
CN113806245A (zh) * | 2021-10-11 | 2021-12-17 | 芯河半导体科技(无锡)有限公司 | 一种根据出口类型自动分配缓存地址的装置 |
CN113934378A (zh) * | 2021-11-01 | 2022-01-14 | 新华三技术有限公司合肥分公司 | 一种数据缓存方法、逻辑装置和电子设备 |
CN114422597A (zh) * | 2021-12-14 | 2022-04-29 | 航天行云科技有限公司 | 基于fpga的数据帧定时转发方法、装置、fpga及数据交换设备 |
CN114827300A (zh) * | 2022-03-20 | 2022-07-29 | 西安电子科技大学 | 硬件保障的数据可靠传输系统、控制方法、设备及终端 |
CN114968169A (zh) * | 2022-05-17 | 2022-08-30 | 赵浩然 | 一种fgpa控制的ddr映射多个ddr_fifo实现系统及方法 |
CN115225880A (zh) * | 2022-07-15 | 2022-10-21 | 海宁奕斯伟集成电路设计有限公司 | 数据处理方法、装置、设备、可读存储介质及程序产品 |
CN115327583A (zh) * | 2022-10-13 | 2022-11-11 | 北京凯芯微科技有限公司 | 一种接收机、信号处理装置及其信号处理方法 |
CN115327586A (zh) * | 2022-10-13 | 2022-11-11 | 北京凯芯微科技有限公司 | 一种导航卫星信号的处理装置和信号处理方法 |
CN115426315A (zh) * | 2022-11-07 | 2022-12-02 | 北京数盾信息科技有限公司 | 一种信息处理方法、装置及设备 |
CN117196931A (zh) * | 2023-11-08 | 2023-12-08 | 苏州元脑智能科技有限公司 | 面向传感器阵列的数据处理方法、fpga及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101621469A (zh) * | 2009-08-13 | 2010-01-06 | 杭州华三通信技术有限公司 | 数据报文存取控制装置和方法 |
CN102216911A (zh) * | 2011-05-31 | 2011-10-12 | 华为技术有限公司 | 一种数据管理方法、装置及数据芯片 |
CN102521159A (zh) * | 2011-12-16 | 2012-06-27 | 杭州初灵信息技术股份有限公司 | 一种片内、片外存储器按流量动态调度分包数据的方法 |
CN107025184A (zh) * | 2016-02-01 | 2017-08-08 | 深圳市中兴微电子技术有限公司 | 一种数据管理方法及装置 |
CN107220187A (zh) * | 2017-05-22 | 2017-09-29 | 北京星网锐捷网络技术有限公司 | 一种缓存管理方法、装置及现场可编程门阵列 |
CN107948094A (zh) * | 2017-10-20 | 2018-04-20 | 西安电子科技大学 | 一种高速数据帧无冲突入队处理的装置及方法 |
CN110232029A (zh) * | 2019-06-19 | 2019-09-13 | 成都博宇利华科技有限公司 | 一种基于索引的fpga中ddr4包缓存的实现方法 |
US10579524B1 (en) * | 2010-10-25 | 2020-03-03 | Mellanox Technologies Ltd. | Computing in parallel processing environments |
-
2020
- 2020-05-29 CN CN202010472188.5A patent/CN111782578B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101621469A (zh) * | 2009-08-13 | 2010-01-06 | 杭州华三通信技术有限公司 | 数据报文存取控制装置和方法 |
US10579524B1 (en) * | 2010-10-25 | 2020-03-03 | Mellanox Technologies Ltd. | Computing in parallel processing environments |
CN102216911A (zh) * | 2011-05-31 | 2011-10-12 | 华为技术有限公司 | 一种数据管理方法、装置及数据芯片 |
CN102521159A (zh) * | 2011-12-16 | 2012-06-27 | 杭州初灵信息技术股份有限公司 | 一种片内、片外存储器按流量动态调度分包数据的方法 |
CN107025184A (zh) * | 2016-02-01 | 2017-08-08 | 深圳市中兴微电子技术有限公司 | 一种数据管理方法及装置 |
CN107220187A (zh) * | 2017-05-22 | 2017-09-29 | 北京星网锐捷网络技术有限公司 | 一种缓存管理方法、装置及现场可编程门阵列 |
CN107948094A (zh) * | 2017-10-20 | 2018-04-20 | 西安电子科技大学 | 一种高速数据帧无冲突入队处理的装置及方法 |
CN110232029A (zh) * | 2019-06-19 | 2019-09-13 | 成都博宇利华科技有限公司 | 一种基于索引的fpga中ddr4包缓存的实现方法 |
Non-Patent Citations (2)
Title |
---|
潘伟涛,邱智亮: "一种HIMAC硬件协处理器的设计与FPGA实现", 《电子器件》 * |
赵骞等: "HIMAC调度的C语言实现", 《电子科技》 * |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159064A (zh) * | 2019-12-30 | 2020-05-15 | 南京六九零二科技有限公司 | 一种低复杂度数据块缓存方法 |
CN111159064B (zh) * | 2019-12-30 | 2023-09-01 | 南京六九零二科技有限公司 | 一种低复杂度数据块缓存方法 |
CN112416823A (zh) * | 2020-11-15 | 2021-02-26 | 珠海市一微半导体有限公司 | 一种突发模式下的传感器数据读写控制方法、系统及芯片 |
CN112416823B (zh) * | 2020-11-15 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种突发模式下的传感器数据读写控制方法、系统及芯片 |
CN112650448A (zh) * | 2020-12-21 | 2021-04-13 | 中国航天科工集团八五一一研究所 | 一种基于fpga的大数据量存储文件管理方法 |
CN112650448B (zh) * | 2020-12-21 | 2024-04-05 | 中国航天科工集团八五一一研究所 | 一种基于fpga的大数据量存储文件管理方法 |
CN113032295A (zh) * | 2021-02-25 | 2021-06-25 | 西安电子科技大学 | 一种数据包二级缓存方法、系统及应用 |
CN113067778A (zh) * | 2021-06-04 | 2021-07-02 | 新华三半导体技术有限公司 | 一种流量管理方法及流量管理芯片 |
CN113590520B (zh) * | 2021-06-15 | 2024-05-03 | 珠海一微半导体股份有限公司 | Spi系统自动写入数据的控制方法及spi系统 |
CN113590520A (zh) * | 2021-06-15 | 2021-11-02 | 珠海一微半导体股份有限公司 | Spi系统自动写入数据的控制方法及spi系统 |
CN113259006A (zh) * | 2021-07-14 | 2021-08-13 | 北京国科天迅科技有限公司 | 一种光纤网络通信系统、方法及装置 |
CN113655956B (zh) * | 2021-07-26 | 2024-02-02 | 武汉极目智能技术有限公司 | 一种基于fpga和ddr4的高带宽多路数据存储读取单元的方法和系统 |
CN113655956A (zh) * | 2021-07-26 | 2021-11-16 | 武汉极目智能技术有限公司 | 一种基于fpga和ddr4的高带宽多路数据存储读取单元的方法和系统 |
CN113806245A (zh) * | 2021-10-11 | 2021-12-17 | 芯河半导体科技(无锡)有限公司 | 一种根据出口类型自动分配缓存地址的装置 |
CN113806245B (zh) * | 2021-10-11 | 2023-11-21 | 芯河半导体科技(无锡)有限公司 | 一种根据出口类型自动分配缓存地址的装置 |
CN113934378A (zh) * | 2021-11-01 | 2022-01-14 | 新华三技术有限公司合肥分公司 | 一种数据缓存方法、逻辑装置和电子设备 |
CN113934378B (zh) * | 2021-11-01 | 2024-04-19 | 新华三技术有限公司合肥分公司 | 一种数据缓存方法、逻辑装置和电子设备 |
CN114422597A (zh) * | 2021-12-14 | 2022-04-29 | 航天行云科技有限公司 | 基于fpga的数据帧定时转发方法、装置、fpga及数据交换设备 |
CN114422597B (zh) * | 2021-12-14 | 2022-12-23 | 航天行云科技有限公司 | 基于fpga的数据帧定时转发方法、装置、fpga及数据交换设备 |
CN114827300A (zh) * | 2022-03-20 | 2022-07-29 | 西安电子科技大学 | 硬件保障的数据可靠传输系统、控制方法、设备及终端 |
CN114827300B (zh) * | 2022-03-20 | 2023-09-01 | 西安电子科技大学 | 硬件保障的数据可靠传输系统、控制方法、设备及终端 |
CN114968169B (zh) * | 2022-05-17 | 2023-10-10 | 赵浩然 | 一种fpga控制的ddr映射多个ddr_fifo实现系统及方法 |
CN114968169A (zh) * | 2022-05-17 | 2022-08-30 | 赵浩然 | 一种fgpa控制的ddr映射多个ddr_fifo实现系统及方法 |
CN115225880B (zh) * | 2022-07-15 | 2024-02-27 | 海宁奕斯伟集成电路设计有限公司 | 数据处理方法、装置、设备、可读存储介质及程序产品 |
CN115225880A (zh) * | 2022-07-15 | 2022-10-21 | 海宁奕斯伟集成电路设计有限公司 | 数据处理方法、装置、设备、可读存储介质及程序产品 |
CN115327586A (zh) * | 2022-10-13 | 2022-11-11 | 北京凯芯微科技有限公司 | 一种导航卫星信号的处理装置和信号处理方法 |
CN115327583A (zh) * | 2022-10-13 | 2022-11-11 | 北京凯芯微科技有限公司 | 一种接收机、信号处理装置及其信号处理方法 |
CN115426315B (zh) * | 2022-11-07 | 2023-01-31 | 北京数盾信息科技有限公司 | 一种信息处理方法、装置及设备 |
CN115426315A (zh) * | 2022-11-07 | 2022-12-02 | 北京数盾信息科技有限公司 | 一种信息处理方法、装置及设备 |
CN117196931A (zh) * | 2023-11-08 | 2023-12-08 | 苏州元脑智能科技有限公司 | 面向传感器阵列的数据处理方法、fpga及电子设备 |
CN117196931B (zh) * | 2023-11-08 | 2024-02-09 | 苏州元脑智能科技有限公司 | 面向传感器阵列的数据处理方法、fpga及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111782578B (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111782578B (zh) | 一种缓存控制方法、系统、存储介质、计算机设备及应用 | |
CN102096648B (zh) | 基于fpga的实现多路突发数据业务缓存的系统及方法 | |
CN109446125B (zh) | Ddr读写仲裁器及方法 | |
US8601181B2 (en) | System and method for read data buffering wherein an arbitration policy determines whether internal or external buffers are given preference | |
KR101028898B1 (ko) | 플렉스레이 통신 장치 | |
CN113032295B (zh) | 一种数据包二级缓存方法、系统及应用 | |
US8001309B2 (en) | Method and system for grouping interrupts from a time-dependent data storage system | |
CN108366111B (zh) | 一种用于交换设备的数据包低时延缓存装置与方法 | |
EP3022655A2 (en) | Computing architecture with peripherals | |
EP3777059B1 (en) | Queue in a network switch | |
JP2004536515A (ja) | デュアルポートメモリエミュレーション方式によるスイッチファブリック | |
US11652761B2 (en) | Switch for transmitting packet, network on chip having the same, and operating method thereof | |
US7984210B2 (en) | Method for transmitting a datum from a time-dependent data storage means | |
EP2568388B1 (en) | Processor to message-based network interface using speculative techniques | |
CN112433839B (zh) | 实现网络芯片高速调度的方法、设备及存储介质 | |
CN115955441A (zh) | 一种基于tsn队列的管理调度方法、装置 | |
CN116107635A (zh) | 命令分发器、命令分发方法、调度器、芯片、板卡、设备 | |
CN113821457B (zh) | 一种高性能读写链表缓存的装置及方法 | |
US10146434B1 (en) | FIFO systems and methods for providing access to a memory shared by multiple devices | |
US20030182517A1 (en) | Method and system for buffering multiple requests from multiple devices to a memory | |
CN112559400B (zh) | 多级调度装置、方法、网络芯片及计算机可读存储介质 | |
CN118550461A (zh) | 一种分通道反压控制器及其方法、芯片 | |
US20240331746A1 (en) | Direct memory access (dma) circuit and operation method thereof | |
WO2024001414A1 (zh) | 报文的缓存方法、装置、电子设备及存储介质 | |
CN109815178B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |