CN101566941B - 一种基于静态存储器的fifo存储单元 - Google Patents
一种基于静态存储器的fifo存储单元 Download PDFInfo
- Publication number
- CN101566941B CN101566941B CN2009100851845A CN200910085184A CN101566941B CN 101566941 B CN101566941 B CN 101566941B CN 2009100851845 A CN2009100851845 A CN 2009100851845A CN 200910085184 A CN200910085184 A CN 200910085184A CN 101566941 B CN101566941 B CN 101566941B
- Authority
- CN
- China
- Prior art keywords
- data
- signal
- depth
- sram
- deposit
- 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
- 230000003068 static effect Effects 0.000 title description 8
- 239000000872 buffer Substances 0.000 claims description 30
- 230000009286 beneficial effect Effects 0.000 abstract 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 241001269238 Data Species 0.000 description 1
- 230000005574 cross-species transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
Images
Landscapes
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明披露了一种基于SRAM的FIFO存储单元。它包括:数据深度模块;指针控制模块;SRAM型存储介质,在读/写指针的控制下进行读取转移数据/存入数据的操作;第一逻辑控制模块,包括至少两个多路选择器,依据数据深度以及取存数据信号,选择在数据深度小于深度阈值的情况下输出与存数据信号对应的输入数据;在数据深度大于深度阈值的情况输出来自存储介质的转移数据;至少两个缓存器,接收来自至少两个多路选择器的输出,并进行缓存;基于多路选择器的第二逻辑控制模块,选择至少两个缓存器之一的数据输出。本发明所提供的基于静态存储器的FIFO存储单元,有利于减少存储单元操作的流水长度,并提高硬件资源的使用效能。
Description
技术领域
本发明涉及一种存储单元,尤其涉及一种基于静态存储器的FIFO存储单元。
背景技术
现有基于sram的FIFO在得到取数据信号的下一个时钟才能得到sram的输出,并且由于sram输出固有的延时特性,在高速电路中必须对FIFO的输出寄存一次才能参加运算,以保证系统可以运行在比较高的频率。也就是传统基于sram的FIFO在得到取数据命令后两个时钟才能得到能够参与运算的输出,且不能预知FIFO的输出;该部分的流水加长将导致整个系统流水加长,由于无法预知FIFO的输出也不能提前启动相关硬件,导致整个系统效率低下,资源占用多。
发明内容
有鉴于此,本发明解决了基于静态存储器(SRAM)的FIFO存储单元接收端无法预知FIFO存储单元底端数据以及过长时钟延时的问题,提供了一种全新的基于静态存储器(SRAM)的FIFO存储单元。
该FIFO存储单元包括:数据深度模块,根据取数据信号和存数据信号记录存储数据的数据深度;指针控制模块,依据数据深度模块的数据深度以及取数据信号和存数据信号,控制读/写指针的指向,使指针始终指向转移数据;SRAM型存储介质,用于在读/写指针的控制下进行读取转移数据/存入数据的操作;第一逻辑控制模块,包括至少两个多路选择器,依据数据深度模块的数据深度以及取数据信号和存数据信号,选择在数据深度小于深度阈值的情况下输出与存数据信号对应的输入数据;在数据深度大于深度阈值的情况输出来自SRAM型存储介质的转移数据;至少两个缓存器,接收来自至少两个多路选择器的输出,并进行缓存;基于多路选择器的第二逻辑控制模块,选择至少两个缓存器之一的数据输出。
本发明所提供的基于静态存储器的FIFO存储单元,有利于减少存储单元操作的流水长度,并提高硬件资源的使用效能。
附图说明
下面将参照附图对本发明的具体实施方案进行更详细的说明,附图中:
图1是本发明实施例的模块结构图。
具体实施方式
图1示出本发明的实施例的模块结构图。如图1所示,该基于静态存储器的FIFO存储单元包括数据深度模块、指针控制模块、SRAM型存储介质、两个缓冲寄存器(Buffer1和Buffer2)和基于多路选择器的第一和第二逻辑控制模块。缓冲寄存器下称缓存器。
数据深度模块根据取数据信号(POP)和存数据信号(PUSH),记录存储介质中的存储数据的数据深度,并提供指针控制和逻辑控制的数据深度依据。
指针控制模块依据数据深度模块的数据深度以及取数据信号(POP)和存数据信号(PUSH),控制SRAM读/写指针的指向,使指针始终指向转移数据。
SRAM型存储器用于根据SRAM读/写指针进行读取转移数据/存入数据的操作。
两个缓存器(Buffer1和buffer2)在初始阶段下存数据信号(PUSH)的输入数据,在后续阶段接收SRAM型存储介质中的转移数据,并进行缓存。
基于多路选择器的第一逻辑控制模块包括两个多路选择器MUX1和MUX2。MUX1和MUX2分别依据数据深度模块的数据深度以及取数据信号(POP)和存数据信号(PUSH),对输入数据或来自SRAM型存储器的转移数据进行选通,并且输入缓存器(Buffer)中。具体地说,第一逻辑控制模块在数据深度小于深度阈值的阶段选通输入数据。深度阈值与缓存器(Buffer)的数量相关。在一个例子中,深度阈值的设定等于缓存器的数量,在本例中为2。
当在存数据信号和取数据信号均没有的情况下,为保持缓存器中的数据,MUX1和MUX2会持续地分别将缓存器中的数据重新选择输入其中,以便保持该数据。
基于多路选择器的第二逻辑控制模块包括一个多路选择器MUX3,对Buffer1和Buffer2的输出信号进行选通控制以准备输出。
由于SRAM在接收读取信号的下一个周期才能输入读取结果,如果要寄存输出,将延时两个时钟周期。为了达到数据提前准备好的效果,例化两个缓存器buffer1,buffer2用来缓存输入数据的同时,能提前启动流水线。
接下来,对该FIFO存储单元的工作过程进行详细说明。
首先,根据FIFO的深度宽度选择合适的SRAM存储器。
定义FIFO的深度,写指针、读指针寄存器;定义空信号、满信号、快空信号、快满信号。空信号在FIFO数据深度为0时有效,满信号在FIFO数据深度等于SRAM存储器深度加2(多了两个缓存器存取数据)时有效。快空信号在FIFO数据深度小于等于快空阀值时有效,快满信号在FIFO数据深度大于等于快满阀值时有效。在FIFO为空并且取数据信号有效时,下溢信号有效;在FIFO为满且没有取数据信号并且存数据信号有效时,溢出信号有效。
在FIFO不为空且FIFO取数据信号有效时,取数据允许信号为高;在FIFO满信号不为高或满信号为高且取数据信号有效时,存数据允许信号为高。
在存数据允许信号有效,取数据信号无效时,数据深度模块的数据深度信号(下文简称数据深度或深度)加一;在存数据信号无效,取数据信号有效时,数据深度模块的深度减一;当存取信号同时有效或者同时无效的情况下,数据深度模块的深度不变。
根据本发明,只有缓存器写满的情况下,方才写SRAM。因此,定义SRAM的操作信号,在数据深度大于2(深度阈值)或者数据的深度等于2且存数据信号为高,取数据信号为低时,SRAM操作信号为有效。当存数据信号有效且SRAM操作信号有效时,SRAM写信号为有效;SRAM的写指针在复位后为0;当SRAM写信号有效时写指针加1,当写指针到达SRAM底部时写指针返回起始地址0。当取数据信号有效且SRAM操作信号有效时,SRAM读信号为高;SRAM的读指针在复位后为0,当SRAM读信号有效时加1,当读指针到达SRAM底部时返回起始地址0。
根据本发明,按下列方式读写缓存器。
定义第一次存数据信号firstPush,当深度信号为0时或者深度信号为1且取数据信号有效时,firstPush有效;定义第二次存数据信号secondPush,当深度信号为1时或者深度信号为2且取数据信号有效时,secondPush有效。定义MUX3的FIFO输出选择信号switch,初始值为0,当取数据允许信号有效时,switch取反。
定义SRAM读取数据有效信号memRdDL,其为SRAM读取信号延时一拍。
MUX1与MUX2的选择控制信号包括switch、firstPush、secondPush和memRdDL四个信号。具体的数据选通过程如下:当switch为0且firstPush有效或switch为1且secondPush有效时,buffer1寄存输入数据。当switch为1且memRdDL有效时buffer1寄存SRAM输出数据。类似地,当switch为1且firstPush有效或switch为0且secondPush有效时,buffer2寄存输入数据。当switch为0且memRdDL有效时buffer2寄存SRAM输出数据。
根据以上描述可知,当FIFO为空时输出为FIFO输入数据,当switch为0时FIFO输出为buffer1中的数据,switch为1时FIFO输出为buffer2中的数据。
需要指出,在前文中MUX3在switch的控制下交替选择来自buffer1或buffer2的输出数据,但这不是必需的。可以采用其它的方式将初始输入数据寄存在buffer1或2中,并且达到即预知底端数据的目的。另外,也可以采用两个以上的buffer来寄存数据。
综上所述,该基于静态存储器的FIFO存储单元通过设置数据深度模块以记录中的数据深度,方便在取数据信号(POP)和存数据信号(PUSH)下指针控制模块参考数据深度进行具体指向操作,使读指针始终指向转移数据;并且在基于多路选择器的逻辑控制模块的控制下,依据数据深度模块的数据深度以及取数据信号(POP)和存数据信号(PUSH),对初始阶段存数据信号(PUSH)的输入数据或SRAM型存储介质到缓存器(Buffer)的转移数据进行选通控制,确定缓存器(Buffer)中的待取数据,并进行选通控制以准备输出。因此,不用发出取数据信号(POP)即能预知存储单元中的底端数据且无时钟延迟。
以上对本发明的具体描述旨在说明具体实施方案的实现方式,不能理解为是对本发明的限制。本领域普通技术人员在本发明的教导下,可以在详述的实施方案的基础上做出各种变体,这些变体均应包含在本发明的构思之内。本发明所要求保护的范围仅由所述的权利要求书进行限制。
Claims (9)
1.一种FIFO存储单元,包括:
数据深度模块,根据取数据信号(POP)和存数据信号(PUSH)记录存储介质中的存储数据的数据深度;
指针控制模块,依据数据深度模块的数据深度以及取数据信号(POP)和存数据信号(PUSH),控制读/写指针的指向,使指针始终指向转移数据;
SRAM型存储介质,用于在读/写指针的控制下进行读取转移数据/存入数据的操作;
第一逻辑控制模块,包括至少两个多路选择器,依据数据深度模块的数据深度以及取数据信号(POP)和存数据信号(PUSH),选择在数据深度小于深度阈值的情况下输出与存数据信号(PUSH)对应的输入数据;在数据深度大于深度阈值的情况输出来自SRAM型存储介质的转移数据;
至少两个缓存器(Buffer),接收来自至少两个多路选择器的输出,并进行缓存;
基于多路选择器的第二逻辑控制模块,选择至少两个缓存器之一的数据输出。
2.如权利要求1所述的FIFO存储单元,其特征在于:在数据深度大于深度阈值或者数据的深度等于深度阈值且存数据信号为高,取数据信号为低时,SRAM操作信号为有效,从而允许对SRAM型存储介质进行读写操作。
3.如权利要求2所述的FIFO存储单元,其特征在于:当存数据信号有效且SRAM操作信号有效时,SRAM写信号为有效,对SRAM型存储介质进行写操作。
4.如权利要求2所述的FIFO存储单元,其特征在于:当取数据信号有效且SRAM操作信号有效时,SRAM读信号为有效,允许对SRAM型存储介质进行读操作。
5.如权利要求2所述的FIFO存储单元,其特征在于在SRAM读信号延迟得到的SRAM读取数据有效信号的控制下,第一逻辑控制模块选通SRAM存储介质的输出数据,使之输入至少两个缓存器之一。
6.如权利要求1所述的FIFO存储单元,其特征在于在存数据信号和取数据信号均没有的情况下,为保持缓存器中的数据,MUX1和MUX2会持续地分别将缓存器中的数据重新选择输入其中,以便保持该数据。
7.如权利要求1所述的FIFO存储单元,其特征在于所述至少两个缓存器是指第一和第二缓存器;多路选择器MUX1和MUX2进行存数据信号选通;当深度信号为0时或者深度信号为1且取数据信号有效时,第一次存数据信号firstPush有效;当深度信号为1时或者深度信号为2且取数据信号有效时,第二次存数据信号secondPush有效;多路选择器MUX3的FIFO输出选择信号switch为二值电平;当取数据允许信号有效时,switch取反;SRAM读取数据有效信号memRdDL,其为SRAM读取信号延时一拍;并且,
第一逻辑控制模块按如下逻辑进行数据选通:当switch为第一电平且firstPush有效或switch为第二电平且secondPush有效时,buffer1寄存输入数据;当switch为第二电平且memRdDL有效时buffer1寄存SRAM输出数据;当switch为第二电平且firstPush有效或switch为第一电平且secondPush有效时,buffer2寄存输入数据;当switch为第一电平且memRdDL有效时buffer2寄存SRAM输出数据。
8.如权利要求1所述的FIFO存储单元,其特征在于
有取数据信号(POP)且无存数据信号(PUSH),数据深度模块的数据深度加1个单位;
无取数据信号(POP)且有存数据信号(PUSH),数据深度模块的数据深度减1个单位;
取数据信号(POP)和存数据信号(PUSH)均有或无,数据深度模块的数据深度不变。
9.如权利要求1所述的FIFO存储单元,其特征在于,
所述指针控制模块的指针控制如下:
数据深度模块的数据深度大于等于深度阈值且不为满并有存数据 信号(PUSH)时,写指针加一,当写指针到达SRAM型存储介质底部时折回SRAM型存储介质顶部;
数据深度模块的数据深度大于等于深度阈值并有取数据信号(POP)时,读指针加一,当读指针到达SRAM型存储介质底部时折回SRAM型存储介质顶部。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100851845A CN101566941B (zh) | 2009-06-03 | 2009-06-03 | 一种基于静态存储器的fifo存储单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100851845A CN101566941B (zh) | 2009-06-03 | 2009-06-03 | 一种基于静态存储器的fifo存储单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101566941A CN101566941A (zh) | 2009-10-28 |
CN101566941B true CN101566941B (zh) | 2013-08-07 |
Family
ID=41283104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100851845A Active CN101566941B (zh) | 2009-06-03 | 2009-06-03 | 一种基于静态存储器的fifo存储单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101566941B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053815B (zh) * | 2009-11-05 | 2012-10-31 | 上海华虹集成电路有限责任公司 | 同步fifo电路系统 |
US9189199B2 (en) | 2012-12-06 | 2015-11-17 | Nvidia Corporation | Folded FIFO memory generator |
CN105094743A (zh) * | 2014-05-23 | 2015-11-25 | 深圳市中兴微电子技术有限公司 | 一种先进先出数据缓存器及其进行时延控制的方法 |
CN106250321B (zh) | 2016-07-28 | 2019-03-01 | 盛科网络(苏州)有限公司 | 2r1w存储器的数据处理方法及数据处理系统 |
CN106445842B (zh) * | 2016-09-18 | 2019-09-10 | 北京机械设备研究所 | 一种数据缓存器和数据缓存方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731529A (zh) * | 2005-07-13 | 2006-02-08 | 北京中星微电子有限公司 | 先入先出数据缓存的方法及全满空间访问先入先出存储器 |
CN1851824A (zh) * | 2006-05-17 | 2006-10-25 | 中国人民解放军国防科学技术大学 | 高速流水线中长延时多端口sram的快速访问方法 |
CN101079313A (zh) * | 2006-05-25 | 2007-11-28 | 李�浩 | 一种无读取延迟的先进先出存储器 |
-
2009
- 2009-06-03 CN CN2009100851845A patent/CN101566941B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731529A (zh) * | 2005-07-13 | 2006-02-08 | 北京中星微电子有限公司 | 先入先出数据缓存的方法及全满空间访问先入先出存储器 |
CN1851824A (zh) * | 2006-05-17 | 2006-10-25 | 中国人民解放军国防科学技术大学 | 高速流水线中长延时多端口sram的快速访问方法 |
CN101079313A (zh) * | 2006-05-25 | 2007-11-28 | 李�浩 | 一种无读取延迟的先进先出存储器 |
Also Published As
Publication number | Publication date |
---|---|
CN101566941A (zh) | 2009-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107305781B (zh) | 存储器装置、存储器系统和控制存储器装置的方法 | |
US4959771A (en) | Write buffer for a digital processing system | |
CN101566941B (zh) | 一种基于静态存储器的fifo存储单元 | |
US7149139B1 (en) | Circuitry and methods for efficient FIFO memory | |
US7436728B2 (en) | Fast random access DRAM management method including a method of comparing the address and suspending and storing requests | |
US7725625B2 (en) | Latency insensitive FIFO signaling protocol | |
CN111832240B (zh) | Fifo数据传输方法及fifo存储装置 | |
US9641464B2 (en) | FIFO buffer system providing same clock cycle response to pop commands | |
CN104461399B (zh) | 非易失性存储器的写缓存器系统及其数据读写方法 | |
WO2001042926A1 (en) | Interface for a memory unit | |
CN103853522A (zh) | 折叠式fifo存储器生成器 | |
CN102004626B (zh) | 双口存储器 | |
CN111741235B (zh) | 基于fpga的多路视频切换方法 | |
US7209406B2 (en) | Memory device with rapid word line switch | |
CN110688238B (zh) | 一种分离存储的队列实现方法及装置 | |
EP0840203B1 (en) | Semiconductor FIFO memory | |
US6961280B1 (en) | Techniques for implementing address recycling in memory circuits | |
CN101552041A (zh) | 一种fifo存储单元及其实现方法 | |
KR101404844B1 (ko) | 듀얼 포트 메모리 및 그 방법 | |
US5835418A (en) | Input/output buffer memory circuit capable of minimizing data transfer required in input and output buffering operations | |
CN115373628B (zh) | 先进先出存储器、系统、装置、设备及数据读取方法 | |
US5732011A (en) | Digital system having high speed buffering | |
US7660178B2 (en) | Area efficient first-in first-out circuit | |
US7363430B2 (en) | Determination of cache entry for future operation | |
CN115719088B (zh) | 一种支持存内cnn的中间缓存调度电路装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210219 Address after: No. 602, 6th floor, shining building, 35 Xueyuan Road, Haidian District, Beijing 100083 Patentee after: BEIJING ZHONGXINGTIANSHI TECHNOLOGY Co.,Ltd. Address before: 100083, Haidian District, Xueyuan Road, Beijing No. 35, Nanjing Ning building, 16 floor Patentee before: Vimicro Corp. |