CN111400205B - 一种先进先出地址轮询缓存读写方法、系统及装置 - Google Patents
一种先进先出地址轮询缓存读写方法、系统及装置 Download PDFInfo
- Publication number
- CN111400205B CN111400205B CN202010132867.8A CN202010132867A CN111400205B CN 111400205 B CN111400205 B CN 111400205B CN 202010132867 A CN202010132867 A CN 202010132867A CN 111400205 B CN111400205 B CN 111400205B
- Authority
- CN
- China
- Prior art keywords
- write
- read
- address
- reading
- memory
- 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
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种先进先出地址轮询缓存读写方法、系统及装置。所述系统包括标志检测模块、写入模块、读出模块以及满空判决模块。所述装置包括写标志检测单元、读标志检测单元、读写控制器、读写状态机、写入控制单元、读出控制单元、存储空间和满空判决单元。本发明用低成本、容量大的随机存取存储器(RAM)替代价格昂贵、容量小的先进先出存储器(FIFO),且对RAM的读写分开控制、独立运行,数据的读写都从RAM的首地址开始,先进先出,解决RAM不能同时读写问题,实现大容量先进先出数据缓存。
Description
技术领域
本发明涉及数字信号处理技术领域,特别是涉及一种先进先出地址轮询缓存读写方法、系统及装置。
背景技术
随着电子信息技术、无线通信技术、半导体集成电路技术、生物医疗技术的迅猛发展,电子、生物、医疗等诸多领域相互融合、彼此促进,对各种信号或大规模数据流的无线采集或实时采集等应用需求与日俱增。这就对处于采集前端与后级通信端之间的数据缓存提出了更高的要求,缓存器不仅要作为数据吞吐单元,更重要的是作为一种对前后两级不同速率、不同步调或不同体制电路之间的协调机制,并且就这种机制的工程实现而言,还需要在产品性能、实现复杂度、成本之间折中。
现有的数据流缓存技术,可归结为同步与异步两种方式,同步方式需要缓存器的前级与后级读出电路具备严格的时序约束,需要复杂的同步处理单元,应用灵活性差,尤其是与现有主流的移动网络、以太网络、WIFI、蓝牙等基于异步分包机制的民用主流无线通信技术衔接不易匹配。相对而言,异步方式灵活性好,实现系统结构简单,且与主流民用无线通信体制兼容性好,由此异步方式也成为此领域的发展趋势。异步缓存技术正成为如广电网络建设、卫星通信、民用低费用通信、数字家庭、移动医疗检测通信领域的有力技术支撑。
在异步缓存技术中,先进先出缓存技术占重要地位,先进先出数据缓存器被广泛使用以提高数据传输效率、吞吐突发性大量数据流、匹配不同传输速率之间的数据传输(一种先进先出缓存器及其读写数据的方法,深圳先进技术研究院,2017年2月22日授权)。
随着技术和社会的发展,在突发性、大容量的数据吞吐缓存应用中,对先进先出器件的缓存容量提出了高要求。现有的可用于构建先进先出异步缓存的存储器件为FIFO存储器,然而FIFO器件容量小,多为千字节(KB)量级(从1KB到百KB不等),且少数能达到兆字节(MB)量级的器件价格又非常昂贵,如赛普拉斯公司型号CYF0018V的存储容量仅2.25MB的FIFO存储器要千元以上。相比之下常用的大容量存储器RAM(包括SRAM、SDRAM、DDR等),虽然不能直接用作先进先出缓存,但其具有明显的成本优势,百兆字节量级(百MB)的价格仅几十元量级。因此,若开发一种技术机制基于RAM等存储器进行先进先出缓存,将以显著的成本优势获得良好的突发缓存与前后级协调能力。
发明内容
本发明的目的在于克服现有技术中的缺点和不足,提供一种先进先出地址轮询缓存读写方法、系统及装置。
本发明的目的至少通过如下技术方案之一实现。
一种先进先出地址轮询缓存读写方法,包括以下步骤:
S1、存储器受读写控制器控制,按地址位进行读写操作;
S2、当存储器未接到来自于读写控制器的任何标志信号时,存储器进入待机状态S_I,并时刻检测写入标志信号F_W、读出标志信号F_R;所述写入标志信号F_W使能存储器进入写状态S_W,所述读出标志信号F_R使能存储器进入读状态S_R,若标志信号F_W及F_R同时有效,存储器优先响应写入标志信号F_W,以保证输入端数据的连续不间断特性;
S3、存储器受地址控制器控制,写地址ADRW与读地址ADRR分开控制、独立运行;当F_W有效,存储器进入写状态S_W时,每次写地址ADRW递增X个地址单位,对应每次写入数据长度为X的一帧数据,完成当次写入后当前ADRW自加1作为下次写地址的开头;当F_R有效,存储器进入读状态S_R时,每次读地址ADRR递增Y个地址单位,对应每次读出数据长度为Y的一帧数据,完成当次读出后当前ADRR自加1作为下次读地址的开头;
S4、当多次写入数据使ADRW递增到达存储器写入结束地址时,存储器写满一周期,给出标志信号F_C,并将写地址ADRW置为存储器的首地址作为下次写地址的开头;当多次读出数据使ADRR递增到达存储器读出结束地址时,标志信号F_C清零,并将读地址ADRR置为存储器的首地址作为下次读地址的开头,以示读完一周期数据。
进一步地,当F_C无效时,若当前ADRW与ADRR相等,则存储器进入空状态S_E,并给出空标志信号EE,此时存储器不能响应F_R执行读操作;其余情况,存储器按照步骤S2~S4执行相应操作;
当F_C有效时,若当前ADRW-ADRR的绝对值|ADRW-ADRR|小于或等于X,则存储器进入满状态S_F,并给出满标志信号FF,此时存储器不能响应F_W执行写操作;其余情况,存储器按照步骤S2~S4执行相应操作。
进一步地,所述存储器为按地址位进行读写的存储器,包括SRAM、SDRAM或DDR,且该存储器的实现方式包括通过调用处理器或可编程逻辑器件内部集成的IP核实现以及通过调用外部存储设备实现。
进一步地,步骤S3中,X大小根据写入帧长度要求设定,Y大小根据读出帧长度要求设定,且遵循X等于Y的整数倍关系。
进一步地,所述ADRW递增到达存储器写入结束地址需满足条件:存储器地址总数减结束地址小于X;所述ADRR递增到达存储器读出结束地址需满足条件:存储器地址总数减结束地址小于X;
在存储器写满一周期内,第n次写入完成后的写地址ADRW变更为:ADRW=首地址+nX;在存储器读完一周期内,第n次读出完成后的读地址ADRR变更为:ADRR=首地址+nY;所述首地址为存储器首个存储单元的地址,读地址的首地址与写地址的首地址相等。
进一步地,所述标志信号FF及EE用作整个存储器的满/空标志信号,供外部交互使用;
读写控制器在外部读写需求的驱动下,结合存储器标志信号FF或EE,通过执行步骤S3、S4,最终给出读写标志信号F_R或F_W,以及读写地址ADRR或ADRW,实现基于地址存储器的先进先出数据读写。
一种先进先出地址轮询缓存读写系统,包括标志检测模块、写入模块、读出模块以及满空判决模块;
所述标志检测模块用于时刻检测写入标志信号F_W、读出标志信号F_R、存储器满信号FF与存储器空信号EE;所述写入标志信号F_W可由前级写入电路触发,所述读出标志信号F_R可由后级读出电路触发;当F_W有效时,触发写入模块进行写入操作,当F_R有效时,触发读出模块进行读出操作,当F_W及F_R同时有效时,存储器优先响应F_W进行写入操作,当FF有效时,使能写入模块屏蔽F_W,当EE有效时,使能读出模块屏蔽F_R;
所述写入模块用于每次当标志检测模块触发数据写入操作时,将写地址ADRW递增X个地址单位,对应每次写入数据长度为X的一帧数据,完成当次写入后当前ADRW自加1作为下次写地址的开头;当多次写入数据使ADRW递增到达存储器写入结束地址时,给出存储器写满一周期的标志信号F_C,并将写地址ADRW置为存储器的首地址作为下次写地址的开头;
所述读出模块用于每次当标志检测模块触发数据读出操作时,将读地址ADRR递增Y个地址单位,对应每次读出数据长度为Y的一帧数据,完成当次读出后当前ADRR自加1作为下次读地址的开头;当多次读出数据使ADRR递增到达存储器读出结束地址时,标志信号F_C清零,并将读地址ADRR置为存储器的首地址作为下次读地址的开头。
所述满空判决模块用于判别F_C是否有效以及判别|ADRW-ADRR|的大小来判断存储器是否处于满状态或空状态,当F_C无效且当前|ADRW-ADRR|等于0,存储器进入空状态,满空判决模块给出空标志信号EE,读出模块不能响应F_R执行读出操作;当F_C有效且当前|ADRW-ADRR|小于或等于X,存储器进入满状态,满空判决模块给出满标志信号FF,此时写入模块不能响应F_W执行写入操作。
进一步地,在执行数据写入操作前,满空判决模块判断存储器是否为满状态,存储器为满状态时,写入模块不能执行数据写入操作;在执行数据读出操作前,满空判决模块判断存储器是否为空状态,存储器为空状态时,读出模块不能执行数据读出操作;由此满空判决模块对写入模块与读出模块的触发优先级高于标志检测模块对写入模块与读出模块的触发优先级。
一种先进先出地址轮询缓存读写装置,包括写标志检测单元、读标志检测单元、读写控制器、读写状态机、写入控制单元、读出控制单元、存储空间和满空判决单元;
所述满空判决单元分别连接存储空间、写标志检测单元和读标志检测单元,所述写标志检测单元和读标志检测单元连接读写控制器,所述读写控制器连接读写状态机,所述读写状态机分别连接写入控制单元和读出控制单元,所述写入控制单元和读出控制单元连接存储空间;写入控制单元连接前级写入电路,读出控制单元连接后级读出电路。
其中,满空判决单元包括加法器、寄存器和比较器,用于检测标志信号F_C是否有效,同时完成|ADRW-ADRR|的计算,并将计算结果与0或X进行比较,实现对存储空间满空状态的判断,同时将判断结果即满标志信号FF或空标志信号EE输出到写标志检测单元或读标志检测单元;
写标志检测单元包括寄存器,用以存储写入标志信号,当收到来自前级写入电路的写入请求时,使写入标志信号有效并将其输出到读写控制器;
读标志检测单元包括寄存器,用以存储读出标志信号,当收到来自后级读出电路的读出请求时,使读出标志信号有效并将其输出到读写控制器;
读写控制器和读写状态机包括寄存器,读写控制器收到来自写标志检测单元的写入标志信号或读标志检测单元的读出标志信号时,输出状态转换信号到读写状态机;
写入控制单元包括寄存器和控制器,前级写入电路的数据输入寄存器暂存,控制器收到来自读写状态机的写入使能信号后,控制寄存器将暂存数据写入存储空间,并使当前的写地址递增,递增的地址单位大小等于写入的数据长度;
读出控制单元包括寄存器和控制器,存储空间的数据读出到寄存器暂存,控制器收到来自读写状态机的读出使能信号后,控制寄存器将暂存数据输出给后级读出电路,并使当前的读地址递增,递增的地址单位大小等于读出的数据长度;
其中,所述前级写入电路完成对写标志检测单元的写入控制以及将数据输入写入控制单元,所述后级读出电路完成对读标志检测单元的读出控制以及接收读出控制单元的输出数据。
进一步地,所述写标志检测单元优先检测满标志信号FF,若FF有效,则屏蔽写入标志信号F_W,否则当检测到F_W时,使能读写控制器控制读写状态机进入写状态S_W,读写状态机进入写状态S_W时,触发写入控制单元控制写地址ADRW每次递增X个地址单位,对应每次从前级写入电路写入数据长度为X的一帧数据,完成当次写入后当前ADRW加1作为下次写地址的开头;当多次写入数据使ADRW递增到达存储空间写入结束地址时,写入控制单元给出存储空间写满一周期的标志信号F_C,并将写地址ADRW置为存储空间的首地址作为下次写地址的开头;
所述读标志检测单元优先检测空标志信号EE,若EE有效,则屏蔽读出标志信号F_R,否则当检测到F_R时,使能读写控制器控制读写状态机进入读状态S_R,读写状态机进入读状态S_R时,触发读出控制单元控制读地址ADRR每次递增Y个地址单位,对应每次向后级读出电路读出数据长度为Y的一帧数据,完成当次读出后当前ADRR加1作为下次读地址的开头;当多次读出数据使ADRR递增到达存储空间读出结束地址时,读出控制单元使标志信号F_C清零,并将读地址ADRR置为存储空间的首地址作为下次读地址的开头;
若标志信号F_W及F_R同时有效,装置优先触发写标志检测单元响应写入标志信号F_W,以保证输入端数据的连续不间断特性;
所述满空状态判决单元检测到F_C有效时,若当前|ADRW-ADRR|小于或等于X,则发送满标志信号FF到写标志检测单元,此时写标志检测单元不能响应F_W,进而不能使能读写控制器控制读写状态机进入写状态S_W,其余情况,各部件正常执行相应操作;所述满空状态判决单元检测到F_C无效时,若当前ADRW等于ADRR,则发送空标志EE到读标志检测单元,此时读标志检测单元不能响应F_R,进而不能使能读写控制器控制读写状态机进入读状态S_R,其余情况,各部件正常执行相应操作。
相比于现有技术,本发明的优点在于:
本发明用低成本、容量大的随机存取存储器RAM(包括SRAM、SDRAM、DDR等)替代价格昂贵、容量小的先进先出存储器(FIFO),且对RAM的读写分开控制、独立运行,数据的读写都从RAM的首地址开始,先进先出,解决RAM不能同时读写问题,实现大容量先进先出数据缓存。
附图说明
图1为本发明实施例中一种先进先出地址轮询缓存读写方法流程图;
图2a为本发明实施例中一种先进先出地址轮询缓存写入方式的程序流图;
图2b为本发明实施例中一种先进先出地址轮询缓存读出方式的程序流图;
图3为本发明实施例中一种先进先出地址轮询缓存系统的结构示意图;
图4为本发明实施例中一种先进先出地址轮询缓存装置的结构示意图;
图5为本发明实施例中一种先进先出地址轮询缓存装置的信号流向示意图;
图6为本发明实施例中一种先进先出地址轮询缓存装置的应用场景示意图。
具体实施方式
下面结合附图和实施例对本发明的具体实施进一步说明。
实施例:
一种先进先出地址轮询缓存读写方法,如图1所示,包括以下步骤:
S1、存储器受读写控制器控制,按地址位进行读写操作;
所述存储器为按地址位进行读写的存储器,包括SRAM、SDRAM或DDR,且该存储器的实现方式包括通过调用处理器或可编程逻辑器件内部集成的IP核实现以及通过调用外部存储设备实现。
S2、如图2a、图2b所示,当存储器未接到来自于读写控制器的任何标志信号时,存储器进入待机状态S_I,并时刻检测写入标志信号F_W、读出标志信号F_R;所述写入标志信号F_W使能存储器进入写状态S_W,所述读出标志信号F_R使能存储器进入读状态S_R,若标志信号F_W及F_R同时有效,存储器优先响应写入标志信号F_W,以保证输入端数据的连续不间断特性。
S3、存储器受地址控制器控制,写地址ADRW与读地址ADRR分开控制、独立运行;如图2a、图2b所示,当F_W有效,存储器进入写S_W状态时,每次写地址ADRW递增X个地址单位,对应每次写入数据长度为X的一帧数据,完成当次写入后当前ADRW自加1作为下次写地址的开头;当F_R有效,存储器进入读S_R状态时,每次读地址ADRR递增Y个地址单位,对应每次读出数据长度为Y的一帧数据,完成当次读出后当前ADRR自加1作为下次读地址的开头;
X大小根据写入帧长度要求设定,Y大小根据读出帧长度要求设定,且遵循X等于Y的整数倍关系。
S4、如图2a、图2b所示,当多次写入数据使ADRW递增到达存储器写入结束地址时,存储器写满一周期,给出标志信号F_C,并将写地址ADRW置为存储器的首地址作为下次写地址的开头;当多次读出数据使ADRR递增到达存储器读出结束地址时,标志信号F_C清零,并将读地址ADRR置为存储器的首地址作为下次读地址的开头,以示读完一周期数据。
如图2a所示,当F_C有效时,若当前|ADRW-ADRR|小于或等于X,则存储器进入满状态S_F,并给出满标志信号FF,此时存储器不能响应F_W执行写操作;其余情况,存储器按照步骤S2~S4执行相应操作;
如图2b所示,当F_C无效时,若当前ADRW与ADRR相等,则存储器进入空状态S_E,并给出空标志信号EE,此时存储器不能响应F_R执行读操作;其余情况,存储器按照步骤S2~S4执行相应操作。
所述ADRW递增到达存储器写入结束地址需满足条件:存储器地址总数减结束地址小于X;所述ADRR递增到达存储器读出结束地址需满足条件:存储器地址总数减结束地址小于X;
在存储器写满一周期内,第n次写入完成后的写地址ADRW变更为:ADRW=首地址+nX;在存储器读完一周期内,第n次读出完成后的读地址ADRR变更为:ADRR=首地址+nY;所述首地址为存储器首个存储单元的地址,读地址的首地址与写地址的首地址相等。
所述标志信号FF及EE用作整个存储器的满/空标志信号,供外部交互使用;
读写控制器在外部读写需求的驱动下,结合存储器标志信号FF或EE,通过执行步骤S3、S4,最终给出读写标志信号F_R或F_W,以及读写地址ADRR或ADRW,实现基于地址存储器的先进先出数据读写。
一种先进先出地址轮询缓存读写系统,如图3所示,包括标志检测模块11、写入模块12、读出模块13以及满空判决模块14;
所述标志检测模块11用于时刻检测写入标志信号F_W、读出标志信号F_R、存储器满信号FF与存储器空信号EE;所述写入标志信号F_W可由前级写入电路触发,所述读出标志信号F_R可由后级读出电路触发;当F_W有效时,触发写入模块12进行写入操作,当F_R有效时,触发读出模块13进行读出操作,当F_W及F_R同时有效时,存储器优先响应F_W进行写入操作,当FF有效时,使能写入模块12屏蔽F_W,当EE有效时,使能读出模块13屏蔽F_R;
所述写入模块12用于每次当标志检测模块11触发数据写入操作时,将写地址ADRW递增X个地址单位,对应每次写入数据长度为X的一帧数据,完成当次写入后当前ADRW自加1作为下次写地址的开头;当多次写入数据使ADRW递增到达存储器写入结束地址时,给出存储器写满一周期的标志信号F_C,并将写地址ADRW置为存储器的首地址作为下次写地址的开头;
所述读出模块13用于每次当标志检测模块11触发数据读出操作时,将读地址ADRR递增Y个地址单位,对应每次读出数据长度为Y的一帧数据,完成当次读出后当前ADRR自加1作为下次读地址的开头。当多次读出数据使ADRR递增到达存储器读出结束地址时,标志信号F_C清零,并将读地址ADRR置为存储器的首地址作为下次读地址的开头。
所述满空判决模块14用于判别F_C是否有效以及判别|ADRW-ADRR|的大小来判断存储器是否处于满状态或空状态,当F_C无效且当前|ADRW-ADRR|等于0,存储器进入空状态,满空判决模块14给出空标志信号EE,读出模块13不能响应F_R执行读出操作;当F_C有效且当前|ADRW-ADRR|小于或等于X,存储器进入满状态,满空判决模块14给出满标志信号FF,此时写入模块12不能响应F_W执行写入操作。
在执行数据写入操作前,满空判决模块14判断存储器是否为满状态,存储器为满状态时,写入模块12不能执行数据写入操作;在执行数据读出操作前,满空判决模块14判断存储器是否为空状态,存储器为空状态时,读出模块13不能执行数据读出操作;由此满空判决模块14对写入模块12与读出模块13的触发优先级高于标志检测模块11对写入模块12与读出模块13的触发优先级。
一种先进先出地址轮询缓存读写装置100,如图4所示,包括写标志检测单元21、读标志检测单元22、读写控制器23、读写状态机24、写入控制单元25、读出控制单元26、存储空间27和满空判决单元20;
所述满空判决单元20分别连接存储空间27、写标志检测单元21和读标志检测单元22,所述写标志检测单元21和读标志检测单元22连接读写控制器23,所述读写控制器23连接读写状态机24,所述读写状态机24分别连接写入控制单元25和读出控制单元26,所述写入控制单元25和读出控制单元26连接存储空间27;写入控制单元25连接前级写入电路,读出控制单元26连接后级读出电路。
其中,满空判决单元20包括加法器、寄存器和比较器,用于检测标志信号F_C是否有效,同时完成|ADRW-ADRR|的计算,并将计算结果与0或X进行比较,实现对存储空间27满空状态的判断,同时将判断结果即满标志信号FF或空标志信号EE输出到写标志检测单元21或读标志检测单元22;
写标志检测单元21包括寄存器,用以存储写入标志信号,当收到来自前级写入电路的写入请求时,使写入标志信号有效并将其输出到读写控制器23;
读标志检测单元22包括寄存器,用以存储读出标志信号,当收到来自后级读出电路的读出请求时,使读出标志信号有效并将其输出到读写控制器23;
读写控制器23和读写状态机24包括寄存器,读写控制器23收到来自写标志检测单元21的写入标志信号或读标志检测单元22的读出标志信号时,输出状态转换信号到读写状态机24;
写入控制单元25包括寄存器和控制器,前级写入电路的数据输入到寄存器暂存,控制器收到来自读写状态机24的写入使能信号后,控制寄存器将暂存数据写入存储空间27,并使当前的写地址递增,递增的地址单位大小等于写入的数据长度;
读出控制单元26包括寄存器和控制器,存储空间27的数据读出到寄存器暂存,控制器收到来自读写状态机24的读出使能信号后,控制寄存器将暂存数据输出给后级读出电路,并使当前的读地址递增,递增的地址单位大小等于读出的数据长度。
其中,所述前级写入电路完成对写标志检测单元的写入控制以及将数据输入写入控制单元,所述后级读出电路完成对读标志检测单元的读出控制以及接收读出控制单元的输出数据。
所述写标志检测单元21优先检测满标志信号FF,若FF有效,则屏蔽写入标志信号F_W,否则当检测到F_W时,使能读写控制器23控制读写状态机24进入写状态S_W,读写状态机24进入写状态S_W时,触发写入控制单元25控制写地址ADRW每次递增X个地址单位,对应每次从前级写入电路写入数据长度为X的一帧数据,完成当次写入后当前ADRW加1作为下次写地址的开头;当多次写入数据使ADRW递增到达存储空间27写入结束地址时,写入控制单元25给出存储空间写满一周期的标志信号F_C,并将写地址ADRW置为存储空间27的首地址作为下次写地址的开头;
所述读标志检测单元22优先检测空标志信号EE,若EE有效,则屏蔽读出标志信号F_R,否则当检测到F_R时,使能读写控制器23控制读写状态机24进入读状态S_R,读写状态机24进入读状态S_R时,触发读出控制单元26控制读地址ADRR每次递增Y个地址单位,对应每次向后级读出电路读出数据长度为Y的一帧数据,完成当次读出后当前ADRR加1作为下次读地址的开头;当多次读出数据使ADRR递增到达存储空间27读出结束地址时,读出控制单元26使标志信号F_C清零,并将读地址ADRR置为存储空间27的首地址作为下次读地址的开头;
若标志信号F_W及F_R同时有效,装置优先触发写标志检测单元21响应写入标志信号F_W,以保证输入端数据的连续不间断特性;
所述满空状态判决单元20检测到F_C有效时,若当前|ADRW-ADRR|小于或等于X,则发送满标志信号FF到写标志检测单元21,此时写标志检测单元21不能响应F_W,进而不能使能读写控制器23控制读写状态机24进入写状态S_W,其余情况,各部件正常执行相应操作;所述满空状态判决单元检测到F_C无效时,若当前ADRW等于ADRR,则发送空标志EE到读标志检测单元22,此时读标志检测单元22不能响应F_R,进而不能使能读写控制器23控制读写状态机24进入读状态S_R,其余情况,各部件正常执行相应操作。
在本实施例中,所述先进先出地址轮询缓存读写装置的信号流向如图5所示。所述满空判决单元20的输入端连接存储空间27,所述满空判决单元20的输出端连接写标志检测单元21和读标志检测单元22的输入端,所述写标志检测单元21和读标志检测单元22的输出端连接读写控制器23的输入端,所述读写控制器23的输出端连接读写状态机24的输入端,所示读写状态机24的输出端连接所述写入控制单元25和读出控制单元26的输入端,所述写入控制单元25的输入端连接前级写入电路,所述写入控制单元25的输出端连接存储空间27,所述读出单元26的输入端连接存储空间27,所述读出单元26的输出端连接后级读出电路。
工作时,满空判决单元20时刻检测存储空间27是否处于满或空状态,并将满空状态信息输出到写标志检测单元21与读标志检测单元22,当存储空间27不处于空状态且读状态检测单元22收到来自后级读出电路的读出请求时,将读出标志信号输出到读写控制器23,读写控制器23收到读出标志信号时,控制读写状态机24将读出使能信号输出到读出控制单元26,将存储空间27的数据读出到后级读出电路,并使当前的读地址递增,递增的地址单位大小等于读出的数据长度;当存储空间27不处于满状态且写状态检测单元21收到来自前级写入电路的写入请求时,将写入标志信号输出到读写控制器23,读写控制器23收到写入标志信号时,控制读写状态机24将写入使能信号输出到写入控制单元25,将前级写入电路的数据写入到存储空间27,并使当前的写地址递增,递增的地址单位大小等于写入的数据长度。
如图6所示,在实际应用中,上述先进先出地址轮询缓存读写装置100可以与模拟采集前端200、多通道高速ADC300(Analog to Digital Convertor,模数转换器)以及后级读出电路400配套使用,构成一套完整的先进先出数据缓存系统,该系统中,模拟采集前端200、多通道高速ADC300、先进先出地址轮询缓存读写装置100以及后级读出电路400依次连接。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
Claims (8)
1.一种先进先出地址轮询缓存读写方法,其特征在于,包括以下步骤:
S1、存储器受读写控制器控制,按地址位进行读写操作;
S2、当存储器未接到来自于读写控制器的任何标志信号时,存储器进入待机状态S_I,并时刻检测写入标志信号F_W、读出标志信号F_R;所述写入标志信号F_W使能存储器进入写状态S_W,所述读出标志信号F_R使能存储器进入读状态S_R,若标志信号F_W及F_R同时有效,存储器优先响应写入标志信号F_W,以保证输入端数据的连续不间断特性;
S3、存储器受地址控制器控制,写地址ADRW与读地址ADRR分开控制、独立运行;当F_W有效,存储器进入写状态S_W时,每次写地址ADRW递增X个地址单位,对应每次写入数据长度为X的一帧数据,完成当次写入后当前ADRW自加1作为下次写地址的开头;当F_R有效,存储器进入读状态S_R时,每次读地址ADRR递增Y个地址单位,对应每次读出数据长度为Y的一帧数据,完成当次读出后当前ADRR自加1作为下次读地址的开头;
S4、当多次写入数据使ADRW递增到达存储器写入结束地址时,存储器写满一周期,给出标志信号F_C,并将写地址ADRW置为存储器的首地址作为下次写地址的开头;当多次读出数据使ADRR递增到达存储器读出结束地址时,标志信号F_C清零,并将读地址ADRR置为存储器的首地址作为下次读地址的开头,以示读完一周期数据;
当F_C无效时,若当前ADRW与ADRR相等,则存储器进入空状态S_E,并给出空标志信号EE,此时存储器不能响应F_R执行读操作;其余情况,存储器按照步骤S2~S4执行相应操作;
当F_C有效时,若当前ADRW-ADRR的绝对值|ADRW-ADRR|小于或等于X,则存储器进入满状态S_F,并给出满标志信号FF,此时存储器不能响应F_W执行写操作;其余情况,存储器按照步骤S2~S4执行相应操作。
2.根据权利要求1所述的一种先进先出地址轮询缓存读写方法,其特征在于,所述存储器为按地址位进行读写的存储器,包括SRAM、SDRAM或DDR,且该存储器的实现方式包括通过调用处理器或可编程逻辑器件内部集成的IP核实现以及通过调用外部存储设备实现。
3.根据权利要求1所述的一种先进先出地址轮询缓存读写方法,其特征在于,步骤S3中,X大小根据写入帧长度要求设定,Y大小根据读出帧长度要求设定,且遵循X等于Y的整数倍关系。
4.根据权利要求1所述的一种先进先出地址轮询缓存读写方法,其特征在于,所述ADRW递增到达存储器写入结束地址需满足条件:存储器地址总数减结束地址小于X;所述ADRR递增到达存储器读出结束地址需满足条件:存储器地址总数减结束地址小于X;
在存储器写满一周期内,第n次写入完成后的写地址ADRW变更为:ADRW=首地址+nX;在存储器读完一周期内,第n次读出完成后的读地址ADRR变更为:ADRR=首地址+nY;所述首地址为存储器首个存储单元的地址,读地址的首地址与写地址的首地址相等。
5.根据权利要求1所述的一种先进先出地址轮询缓存读写方法,其特征在于,所述标志信号FF及EE用作整个存储器的满/空标志信号,供外部交互使用;
读写控制器在外部读写需求的驱动下,结合存储器标志信号FF或EE,通过执行步骤S3、S4,最终给出读写标志信号F_R或F_W,以及读写地址ADRR或ADRW,实现基于地址存储器的先进先出数据读写。
6.一种先进先出地址轮询缓存读写系统,其特征在于,包括标志检测模块、写入模块、读出模块以及满空判决模块;
所述标志检测模块用于时刻检测写入标志信号F_W、读出标志信号F_R、存储器满信号FF与存储器空信号EE;当F_W有效时,触发写入模块进行写入操作,当F_R有效时,触发读出模块进行读出操作,当F_W及F_R同时有效时,存储器优先响应F_W进行写入操作,当FF有效时,使能写入模块屏蔽F_W,当EE有效时,使能读出模块屏蔽F_R;
所述写入模块用于每次触发数据写入操作时,将写地址ADRW递增X个地址单位,对应每次写入数据长度为X的一帧数据,完成当次写入后当前ADRW自加1作为下次写地址的开头;当多次写入数据使ADRW递增到达存储器写入结束地址时,给出存储器写满一周期的标志信号F_C,并将写地址ADRW置为存储器的首地址作为下次写地址的开头;
所述读出模块用于每次当触发数据读出操作时,将读地址ADRR递增Y个地址单位,对应每次读出数据长度为Y的一帧数据,完成当次读出后当前ADRR自加1作为下次读地址的开头;当多次读出数据使ADRR递增到达存储器读出结束地址时,标志信号F_C清零,并将读地址ADRR置为存储器的首地址作为下次读地址的开头;
所述满空判决模块用于判别F_C是否有效以及判别|ADRW-ADRR|的大小来判断存储器是否处于满状态或空状态,当F_C无效且当前|ADRW-ADRR|等于0,存储器进入空状态,满空判决模块给出空标志信号EE,读出模块不能响应F_R执行读出操作;当F_C有效且当前|ADRW-ADRR|小于或等于X,存储器进入满状态,满空判决模块给出满标志信号FF,此时写入模块不能响应F_W执行写入操作。
7.根据权利要求6所述的一种先进先出地址轮询缓存读写系统,其特征在于,在执行数据写入操作前,满空判决模块判断存储器是否为满状态,存储器为满状态时,写入模块不能执行数据写入操作;在执行数据读出操作前,满空判决模块判断存储器是否为空状态,存储器为空状态时,读出模块不能执行数据读出操作;由此满空判决模块对写入模块与读出模块的触发优先级高于标志检测模块对写入模块与读出模块的触发优先级。
8.一种先进先出地址轮询缓存读写装置,其特征在于,包括写标志检测单元、读标志检测单元、读写控制器、读写状态机、写入控制单元、读出控制单元、存储空间和满空判决单元;
所述写标志检测单元优先检测满标志信号FF,若FF有效,则屏蔽写入标志信号F_W,否则当检测到F_W时,使能读写控制器控制读写状态机进入写状态S_W,读写状态机进入写状态S_W时,触发写入控制单元控制写地址ADRW每次递增X个地址单位,对应每次从前级写入电路写入数据长度为X的一帧数据,完成当次写入后当前ADRW加1作为下次写地址的开头;当多次写入数据使ADRW递增到达存储空间写入结束地址时,写入控制单元给出存储空间写满一周期的标志信号F_C,并将写地址ADRW置为存储空间的首地址作为下次写地址的开头;
所述读标志检测单元优先检测空标志信号EE,若EE有效,则屏蔽读出标志信号F_R,否则当检测到F_R时,使能读写控制器控制读写状态机进入读状态S_R,读写状态机进入读状态S_R时,触发读出控制单元控制读地址ADRR每次递增Y个地址单位,对应每次向后级读出电路读出数据长度为Y的一帧数据,完成当次读出后当前ADRR加1作为下次读地址的开头;当多次读出数据使ADRR递增到达存储空间读出结束地址时,读出控制单元使标志信号F_C清零,并将读地址ADRR置为存储空间的首地址作为下次读地址的开头;
若标志信号F_W及F_R同时有效,装置优先触发写标志检测单元响应写入标志信号F_W,以保证输入端数据的连续不间断特性;
所述满空判决单元检测到F_C有效时,若当前|ADRW-ADRR|小于或等于X,则发送满标志信号FF到写标志检测单元,此时写标志检测单元不能响应F_W,进而不能使能读写控制器控制读写状态机进入写状态S_W,其余情况,各部件正常执行相应操作;所述满空判决单元检测到F_C无效时,若当前ADRW等于ADRR,则发送空标志EE到读标志检测单元,此时读标志检测单元不能响应F_R,进而不能使能读写控制器控制读写状态机进入读状态S_R,其余情况,各部件正常执行相应操作;
所述满空判决单元分别连接存储空间、写标志检测单元和读标志检测单元,所述写标志检测单元和读标志检测单元连接读写控制器,所述读写控制器连接读写状态机,所述读写状态机分别连接写入控制单元和读出控制单元,所述写入控制单元和读出控制单元连接存储空间;写入控制单元连接前级写入电路,读出控制单元连接后级读出电路;
其中,满空判决单元包括加法器、寄存器和比较器,用于检测标志信号F_C是否有效,同时完成|ADRW-ADRR|的计算,并将计算结果与0或X进行比较,实现对存储空间满空状态的判断,同时将判断结果即满标志信号FF或空标志信号EE输出到写标志检测单元或读标志检测单元;
写标志检测单元包括寄存器,用以存储写入标志信号,当收到来自前级写入电路的写入请求时,使写入标志信号有效并将其输出到读写控制器;
读标志检测单元包括寄存器,用以存储读出标志信号,当收到来自后级读出电路的读出请求时,使读出标志信号有效并将其输出到读写控制器;
读写控制器和读写状态机包括寄存器,读写控制器收到来自写标志检测单元的写入标志信号或读标志检测单元的读出标志信号时,输出状态转换信号到读写状态机;
写入控制单元包括寄存器和控制器,前级写入电路的数据输入寄存器暂存,控制器收到来自读写状态机的写入使能信号后,控制寄存器将暂存数据写入存储空间,并使当前的写地址递增,递增的地址单位大小等于写入的数据长度;
读出控制单元包括寄存器和控制器,存储空间的数据读出到寄存器暂存,控制器收到来自读写状态机的读出使能信号后,控制寄存器将暂存数据输出给后级读出电路,并使当前的读地址递增,递增的地址单位大小等于读出的数据长度;
其中,所述前级写入电路完成对写标志检测单元的写入控制以及将数据输入写入控制单元,所述后级读出电路完成对读标志检测单元的读出控制以及接收读出控制单元的输出数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010132867.8A CN111400205B (zh) | 2020-02-29 | 2020-02-29 | 一种先进先出地址轮询缓存读写方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010132867.8A CN111400205B (zh) | 2020-02-29 | 2020-02-29 | 一种先进先出地址轮询缓存读写方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400205A CN111400205A (zh) | 2020-07-10 |
CN111400205B true CN111400205B (zh) | 2022-05-24 |
Family
ID=71434082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010132867.8A Active CN111400205B (zh) | 2020-02-29 | 2020-02-29 | 一种先进先出地址轮询缓存读写方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400205B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111915477B (zh) * | 2020-08-08 | 2022-09-06 | 湖南非雀医疗科技有限公司 | 一种彩色超声多普勒转置存储的地址轮换方法 |
CN115203091A (zh) * | 2020-08-20 | 2022-10-18 | 浙江树人学院 | 非同源时钟数据传输系统的数据恢复方法 |
CN112416823B (zh) * | 2020-11-15 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种突发模式下的传感器数据读写控制方法、系统及芯片 |
CN112505527B (zh) * | 2020-12-10 | 2024-03-22 | 杭州迪普信息技术有限公司 | 一种检测集成电路缺陷的方法及装置 |
CN112882657B (zh) * | 2021-02-08 | 2023-07-14 | 浙江大华技术股份有限公司 | 数据读取方法及装置、存储介质、电子装置 |
CN113342717A (zh) * | 2021-06-22 | 2021-09-03 | 京微齐力(深圳)科技有限公司 | 一种fifo读写控制方法及控制电路 |
CN113688074B (zh) * | 2021-10-26 | 2022-02-01 | 浙江芯昇电子技术有限公司 | 先进先出数据处理装置及数据处理方法 |
CN114390292B (zh) * | 2022-03-23 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种视频压缩系统及服务器 |
CN115328822B (zh) * | 2022-08-19 | 2023-05-05 | 扬州宇安电子科技有限公司 | 一种基于ddr3的读写控制动态调度方法及其存储介质 |
CN117648287B (zh) * | 2024-01-30 | 2024-05-03 | 山东云海国创云计算装备产业创新中心有限公司 | 一种片上数据处理系统、方法、服务器及电子设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001176262A (ja) * | 1999-12-20 | 2001-06-29 | Matsushita Electric Ind Co Ltd | 非同期fifo回路 |
KR20040034225A (ko) * | 2002-10-21 | 2004-04-28 | 국방과학연구소 | 프레임 동기를 유지하는 탄성버퍼 및 이를 이용한 노드간클럭 편차 검출 방법 |
CN1725367A (zh) * | 2004-07-23 | 2006-01-25 | 华为技术有限公司 | 一种先入先出存储器及其读写地址的调整方法 |
CN101055704A (zh) * | 2007-04-28 | 2007-10-17 | 深圳安凯微电子技术有限公司 | 一种lcd数据写入控制方法及先入先出存储器 |
CN101299204A (zh) * | 2008-06-10 | 2008-11-05 | 北京天碁科技有限公司 | 一种异步fifo及其地址转换方法 |
CN101308450A (zh) * | 2008-06-27 | 2008-11-19 | 北京中星微电子有限公司 | Fifo控制电路及控制方法 |
CN101493759A (zh) * | 2008-01-22 | 2009-07-29 | 深圳安凯微电子技术有限公司 | 一种任意容量异步先入先出存储器的地址控制方法 |
CN104809038A (zh) * | 2014-01-24 | 2015-07-29 | 中兴通讯股份有限公司 | 一种fifo异常处理方法及装置 |
CN105094743A (zh) * | 2014-05-23 | 2015-11-25 | 深圳市中兴微电子技术有限公司 | 一种先进先出数据缓存器及其进行时延控制的方法 |
CN105320490A (zh) * | 2014-07-31 | 2016-02-10 | 德克萨斯仪器股份有限公司 | 用于异步fifo电路的方法和设备 |
CN106445136A (zh) * | 2016-09-20 | 2017-02-22 | 华南理工大学 | 数据波形恢复方法、系统和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020052669A (ko) * | 2000-12-26 | 2002-07-04 | 윤종용 | 선입 선출 메모리 및 이 메모리의 플래그 신호 발생방법 |
-
2020
- 2020-02-29 CN CN202010132867.8A patent/CN111400205B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001176262A (ja) * | 1999-12-20 | 2001-06-29 | Matsushita Electric Ind Co Ltd | 非同期fifo回路 |
KR20040034225A (ko) * | 2002-10-21 | 2004-04-28 | 국방과학연구소 | 프레임 동기를 유지하는 탄성버퍼 및 이를 이용한 노드간클럭 편차 검출 방법 |
CN1725367A (zh) * | 2004-07-23 | 2006-01-25 | 华为技术有限公司 | 一种先入先出存储器及其读写地址的调整方法 |
CN101055704A (zh) * | 2007-04-28 | 2007-10-17 | 深圳安凯微电子技术有限公司 | 一种lcd数据写入控制方法及先入先出存储器 |
CN101493759A (zh) * | 2008-01-22 | 2009-07-29 | 深圳安凯微电子技术有限公司 | 一种任意容量异步先入先出存储器的地址控制方法 |
CN101299204A (zh) * | 2008-06-10 | 2008-11-05 | 北京天碁科技有限公司 | 一种异步fifo及其地址转换方法 |
CN101308450A (zh) * | 2008-06-27 | 2008-11-19 | 北京中星微电子有限公司 | Fifo控制电路及控制方法 |
CN104809038A (zh) * | 2014-01-24 | 2015-07-29 | 中兴通讯股份有限公司 | 一种fifo异常处理方法及装置 |
CN105094743A (zh) * | 2014-05-23 | 2015-11-25 | 深圳市中兴微电子技术有限公司 | 一种先进先出数据缓存器及其进行时延控制的方法 |
CN105320490A (zh) * | 2014-07-31 | 2016-02-10 | 德克萨斯仪器股份有限公司 | 用于异步fifo电路的方法和设备 |
CN106445136A (zh) * | 2016-09-20 | 2017-02-22 | 华南理工大学 | 数据波形恢复方法、系统和装置 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的异步FIFO缓存设计;肖静娴 等;《电子测量技术》;20091130;第92-94页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111400205A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400205B (zh) | 一种先进先出地址轮询缓存读写方法、系统及装置 | |
CN103827818B (zh) | Fifo加载指令 | |
US8041856B2 (en) | Skip based control logic for first in first out buffer | |
US9591107B2 (en) | Dynamic state machine | |
US9026746B2 (en) | Signal control device and signal control method | |
CN116089343A (zh) | 一种基于axi的数据存储方法、装置、存储介质及设备 | |
CN113900974B (zh) | 一种存储装置、数据存储方法及相关设备 | |
CN114968893B (zh) | 基于时间戳的PCIe报文队列调度方法、系统及设备 | |
US20100325375A1 (en) | Data-access control device and data-access control method | |
CN111124317A (zh) | 一种数据流写入的异步交替收发方法、收发系统及设备 | |
CN115905086A (zh) | 基于axi同步读写单口sram的控制方法及控制器 | |
WO2003044652A2 (en) | High-speed first-in-first-out buffer | |
CN106776374B (zh) | 一种基于fpga的高效数据缓冲方法 | |
CN108108148B (zh) | 一种数据处理方法和装置 | |
CN110399219B (zh) | 内存访问方法、dmc及存储介质 | |
US20200403942A1 (en) | Controller for ordering out-of-order transactions in soc | |
JP5391449B2 (ja) | 記憶装置 | |
US7136309B2 (en) | FIFO with multiple data inputs and method thereof | |
CN108897696B (zh) | 一种基于DDRx存储器的大容量FIFO控制器 | |
US5577055A (en) | Method and circuit device to control a memory | |
CN115955441A (zh) | 一种基于tsn队列的管理调度方法、装置 | |
CN112637602B (zh) | 一种jpeg接口及数字图像处理系统 | |
CN111782563B (zh) | 一种用于risc-v微控制器的dvp控制器系统 | |
US6314489B1 (en) | Methods and systems for storing cell data using a bank of cell buffers | |
EP3299965B1 (en) | Method and physical device for managing linked lists |
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 |