CN116737077A - 一种基于fifo存储器的轮询读写方法和装置 - Google Patents
一种基于fifo存储器的轮询读写方法和装置 Download PDFInfo
- Publication number
- CN116737077A CN116737077A CN202310734594.8A CN202310734594A CN116737077A CN 116737077 A CN116737077 A CN 116737077A CN 202310734594 A CN202310734594 A CN 202310734594A CN 116737077 A CN116737077 A CN 116737077A
- Authority
- CN
- China
- Prior art keywords
- fifo memory
- control unit
- small
- data
- capacity
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 303
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000007246 mechanism Effects 0.000 claims abstract description 20
- 230000006870 function Effects 0.000 abstract description 8
- 230000006872 improvement Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种基于FIFO存储器的轮询读写方法和装置,属于数据缓存技术领域,解决了现有技术中通过级联小容量FIFO存储器实大容量FIFO存储器的功能导致控制逻辑复杂的技术问题。本发明的轮询读写方法,包括:将FIFO存储器组电连接在输入控制单元与输出控制单元之间,FIFO存储器组包括至少两个并联的小容量FIFO存储器;写入数据时,输入控制单元按照轮询机制依次对各小容量FIFO存储器执行单个数据的写入操作;读出数据时,输出控制单元按照轮询机制依次对各小容量FIFO存储器执行单个数据的读出操作。本发明通过轮询读写多个小容量FIFO存储器的方式实现了大面积FIFO存储器的功能,保留了标准FIFO存储器读写接口的特性,降低了控制逻辑的复杂度以及后端布线的难度。
Description
技术领域
本发明涉及数据缓存技术领域,尤其涉及一种基于FIFO存储器的轮询读写方法和装置。
背景技术
FIFO(First Input First Output,先入先出)存储器通常都是由DPRAM或者SPRAM和一部分控制逻辑构建而成,其主要特点是先写入FIFO存储器的数据会被先读出,同时对外输出满信号(full信号)和空信号(empty信号)等状态信号,外部逻辑电路根据上述状态信号来进行正确的读写操作。在FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)和芯片设计中,例化FIFO存储器时经常面临两方面的问题:一是,FIFO存储器容量大小受到限制的问题;二是,面积过大的FIFO存储器在后端布线过程中容易出现拥塞及timing的问题。
现有技术中一般通过级联的方式来解决上述问题,即采用多个小容量FIFO存储器级联以增加容量,从第一级的小容量FIFO存储器开始,当前的小容量FIFO存储器写满后,将数据通路切换到下一级的小容量FIFO存储器。采用上述方式,虽然实现了大容量FIFO存储器的功能,但是其控制逻辑复杂,需要用到大量的组合逻辑,使用不方便。
发明内容
鉴于上述的分析,本发明实施例旨在提供一种基于FIFO存储器的轮询读写方法和装置,用以解决现有技术中通过级联小容量FIFO存储器实大容量FIFO存储器的功能导致控制逻辑复杂的技术问题。
一方面,本发明实施例提供了一种基于FIFO存储器的轮询读写方法,所述方法包括:
将FIFO存储器组电连接在输入控制单元与输出控制单元之间,所述FIFO存储器组包括至少两个并联的小容量FIFO存储器;
在所述FIFO存储器组中写入数据时,所述输入控制单元按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的写入操作;
从所述FIFO存储器组中读出数据时,所述输出控制单元按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的读出操作。
基于上述方法的进一步改进,所述方法还包括:
所述输入控制单元根据所述小容量FIFO存储器的存储状态判断所述FIFO存储器组是否为满状态;
若所述小容量FIFO存储器均为满状态,则所述FIFO存储器组为满状态;
所述FIFO存储器组为满状态时,所述输入控制单元不允许在所述FIFO存储器组中写入数据。
基于上述方法的进一步改进,所述方法还包括:
所述输出控制单元根据所述小容量FIFO存储器的存储状态判断所述FIFO存储器组是否为空状态;
若所述小容量FIFO存储器均为空状态,则所述FIFO存储器组为空状态;
所述FIFO存储器组为空状态时,所述输出控制单元不允许从所述FIFO存储器组中读出数据。
基于上述方法的进一步改进,在所述FIFO存储器组中写入数据时,所述输入控制单元按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的写入操作,包括:
在所述FIFO存储器组中写入数据时,所述输入控制单元通过第一循环计数器为写入所述FIFO存储器组中的数据进行计数,并按照所述第一循环计数器的计数值顺序对各所述小容量FIFO存储器执行单个数据的写入操作。
基于上述方法的进一步改进,从所述FIFO存储器组中读出数据时,所述输出控制单元按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的读出操作,包括:
所述输出控制单元通过第二循环计数器为从所述FIFO存储器组中读出的数据进行计数,并按照所述第二循环计数器的计数值顺序对各所述小容量FIFO存储器执行单个数据的读出操作。
另一方面,本发明实施例提供了一种基于FIFO存储器的轮询读写装置,所述装置包括:
所述FIFO存储器组,包括至少两个并联的小容量FIFO存储器;
输入控制单元,与所述FIFO存储器组电连接,所述输入控制单元配置为在所述FIFO存储器组中写入数据时,按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的写入操作;以及
输出控制单元,与所述FIFO存储器组电连接,所述输出控制单元配置为从所述FIFO存储器组中读出数据时,按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的读出操作。
基于上述装置的进一步改进,所述输入控制单元中设置有第一与逻辑模块,
所述第一与逻辑模块配置为在所述小容量FIFO存储器均为满状态时,判断所述FIFO存储器组为满状态;
所述FIFO存储器组为满状态时,所述输入控制单元不允许在所述FIFO存储器组中写入数据。
基于上述装置的进一步改进,所述输出控制单元中设置有第二与逻辑模块,
所述第二与逻辑模块配置为在所述小容量FIFO存储器均为空状态时,判断所述FIFO存储器组为空状态;
所述FIFO存储器组为空状态时,所述输出控制单元不允许从所述FIFO存储器组中读出数据。
基于上述装置的进一步改进,所述输入控制单元中设置有第一循环计数器,所述第一循环计数器配置为写入所述FIFO存储器组中的数据进行计数,所述输入控制单元按照所述第一循环计数器的计数值顺序对各所述小容量FIFO存储器执行单个数据的写入操作;
基于上述装置的进一步改进,所述输出控制单元中设置有第二循环计数器,所述第二循环计数器配置为从所述FIFO存储器组中读出的数据进行计数;所述输出控制单元按照所述第二循环计数器的计数值顺序对各所述小容量FIFO存储器执行单个数据的读出操作。
与现有技术相比,本发明至少可实现如下有益效果之一:
1、在例化FIFO存储器容量受限的条件下,本发明实施例中,通过轮询读写多个(至少两个)并联的小容量FIFO存储器的方式实现大面积FIFO存储器的功能,实现方式简单,降低了控制逻辑的复杂度,并且保留了标准FIFO存储器读写接口的特性。
2、同时,本发明通过多个小容量FIFO存储器实现了大容量FIFO存储器的功能,连接方式简单,小容量FIFO存储器的个数易于扩展,从而降低了后端布线的难度,为FPGA和芯片设计提供了更大的灵活性,应用范围广、通用性强。
3、本发明实施例中,通过所有的小容量FIFO存储器的当前的存储状态判断FIFO存储器组的存储状态,判断逻辑简单。当所有的小容量FIFO存储器均存满数据时,表示FIFO存储器组存储数据已满,此时则不允许写入数据,避免数据溢出;当所有的小容量FIFO存储器均未存有数据时,表示FIFO存储器组存储数据已空,此时则不允许读出数据,避免读数据错误。
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明实施例的轮询读写方法的流程图;
图2为本发明实施例的轮询读写装置的结构示意图;
图3为本发明实施例的轮询读写装置的工作时序图;
图4为本发明实施例的数据轮询读写过程示意图。
附图标记:
100-FIFO存储器组;101-小容量FIFO存储器;
200-输入控制单元;300-输出控制单元。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
本发明的一个具体实施例,公开了一种基于FIFO存储器的轮询读写方法,如图1中所示。所述方法包括:
步骤1:将FIFO存储器组100电连接在输入控制单元200与输出控制单元300之间,所述FIFO存储器组100包括至少两个并联的小容量FIFO存储器101;
步骤2:在所述FIFO存储器组100中写入数据时,所述输入控制单元200按照轮询机制依次对各所述小容量FIFO存储器101执行单个数据的写入操作;
步骤3:从所述FIFO存储器组100中读出数据时,所述输出控制单元300按照轮询机制依次对各所述小容量FIFO存储器101执行单个数据的读出操作。
实施时,由多个(至少两个)小容量FIFO存储器101构成的FIFO存储器组100用于缓存数据,输入控制单元200用于控制数据写入FIFO存储器组100中,输出控制单元300用于控制数据从FIFO存储器组100中读出。
具体来说,上述的按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的写入操作是指:写入数据时,输入控制单元200按照预设的循环顺序在各小容量FIFO存储器101中存储输入数据,在第一个小容量FIFO存储器101中写入一个数据后,再在下一个小容量FIFO存储器101中写入另一个数据,直至在最后一个小容量FIFO存储器101中写入一个数据后,再从第一个小容量FIFO存储器101开始写入单个数据,如此循环。同样地,上述的按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的读出操作是指:读出数据时,输出控制单元300按照预设的循环顺序从各小容量FIFO存储器101中读取数据,从第一个小容量FIFO存储器101中读出一个数据后,再从下一个小容量FIFO存储器101中读出另一个数据,直至从最后一个小容量FIFO存储器101中读出一个数据后,再从第一个小容量FIFO存储器101开始读出单个数据,如此循环。
其中,多个小容量FIFO存储器并联设置,使输入控制单元和输出控制单元能够直接对每个小容量FIFO存储器执行单个数据的读写操作,同时每个小容量FIFO存储器也能够直接将其存储状态反馈至输入控制单元和输出控制单元,与级联小容量FIFO存储器的方式相比,能够缩短信号的传输路径,控制逻辑简单。
与现有技术相比,在例化FIFO存储器容量受限的条件下,本发明实施例中,通过轮询读写多个(至少两个)并联的小容量FIFO存储器101的方式实现大面积FIFO存储器的功能,实现方式简单,降低了控制逻辑的复杂度,并且保留了标准FIFO存储器读写接口的特性。
同时,本发明通过多个小容量FIFO存储器101实现了大容量FIFO存储器的功能,连接方式简单,小容量FIFO存储器101的个数易于扩展,从而降低了后端布线的难度,可避免出现拥塞及timing的问题,为FPGA和芯片设计提供了更大的灵活性,应用范围广、通用性强。
此外,本发明的轮询机制中,对一个小容量FIFO存储器执行一次单个数据的读/写操作后,下一次的读/写操作是对另一个FIFO存储器执行的,而不是连续地对同一个小容量FIFO存储器执行多次读/写操作,从而使控制逻辑更加简单,对小容量FIFO存储器执行读/写操作时无需对其存储状态进行判断。
其中,FIFO存储器组100中写入的单个数据为数据总线位宽的数据。
具体地,所述方法还包括:
步骤4:所述输入控制单元200根据所述小容量FIFO存储器101的存储状态判断所述FIFO存储器组100是否为满状态;若所述小容量FIFO存储器101均为满状态,则所述FIFO存储器组100为满状态;所述FIFO存储器组100为满状态时,所述输入控制单元200不允许在所述FIFO存储器组100中写入数据。
本发明实施例中,通过所有的小容量FIFO存储器101的当前的存储状态判断FIFO存储器组100的存储状态,判断逻辑简单,当所有的小容量FIFO存储器101均存满数据时,表示FIFO存储器组100存储数据已满,此时则不允许写入数据,避免数据溢出。
实施时,小容量FIFO存储器101向输入控制单元200发出满信号,输入控制单元200将所有的小容量FIFO存储器101发出的满信号相与后作为表示FIFO存储器组100的存储状态的满信号,并输出至外部电路。
这样,只有在所有的小容量FIFO存储器101发出的满信号均有效时,输入控制单元200输出的满信号才有效,说明此时FIFO存储器组100存储数据已满,不能再往FIFO存储器组100中写入数据,否则会导致数据溢出。
具体地,所述方法还包括:
步骤5:所述输出控制单元300根据所述小容量FIFO存储器101的存储状态判断所述FIFO存储器组100是否为空状态;若所述小容量FIFO存储器101均为空状态,则所述FIFO存储器组100为空状态;所述FIFO存储器组100为空状态时,所述输出控制单元300不允许从所述FIFO存储器组100中读出数据。
本发明实施例中,通过所有的小容量FIFO存储器101的当前的存储状态判断FIFO存储器组100的存储状态,判断逻辑简单,当所有的小容量FIFO存储器101均未存有数据时,表示FIFO存储器组100存储数据已空,此时则不允许读出数据,避免读数据错误。
实施时,小容量FIFO存储器101向输出控制单元300发出空信号,输入控制单元200将所有的小容量FIFO存储器101发出的空信号相与后作为表示FIFO存储器组100的存储状态的空信号,并输出至外部电路。
这样,只有在所有的小容量FIFO存储器101发出的空信号均有效时,输出控制单元300输出的空信号才有效,说明此时FIFO存储器组100存储数据已空,不能再从FIFO存储器组100中读出数据,否则会导致读数据错误。
具体地,步骤2:在所述FIFO存储器组100中写入数据时,所述输入控制单元200将单个数据依次轮询写入各所述小容量FIFO存储器101中,包括:
在所述FIFO存储器组100中写入数据时,所述输入控制单元200通过第一循环计数器为写入所述FIFO存储器组100中的数据进行计数,并按照所述第一循环计数器的计数值顺序将单个数据依次轮询写入各所述小容量FIFO存储器101中。
实施时,当输入控制单元200向外部电路输出的满信号无效时,允许写入数据,输入控制单元200将输入总线上的数据流中的数据按照第一循环计数器的计数值顺序依次轮询写入小容量FIFO存储器101中,实现对数据流的连续存储,如图3中所示。
需要说明地是,小容量FIFO存储器101中存满数据时,为满状态,此时其发送的满信号有效,小容量FIFO存储器101中未存满数据时,为非满状态,此时,其发送的满信号为无效。
具体地,步骤3:从所述FIFO存储器组100中读出数据时,所述输出控制单元300将单个数据依次轮询从各所述小容量FIFO存储器101中读出,包括:
所述输出控制单元300通过第二循环计数器为从所述FIFO存储器组100中读出的数据进行计数,并按照所述第二循环计数器的计数值顺序将单个数据依次轮询从各所述小容量FIFO存储器101中读出。
实施时,当输出控制单元300向外部电路输出的空信号无效时,允许读出数据,输出控制单元300按照第一循环计数器的计数值顺序依次轮询从小容量FIFO存储器101中读出数据,复用到输出总线上,实现数据的连续读取,如图3中所示。
同样地,小容量FIFO存储器101中未储存数据时,为空状态,此时其发送的空信号有效,小容量FIFO存储器101中储存有数据时,为非空状态,此时,其发送的空信号为无效。
本发明的另一方面还提供一种基于FIFO存储器的轮询读写装置,如图2中所示。所述装置包括:FIFO存储器组100、输入控制单元200和输出控制单元300。其中,所述FIFO存储器组100包括至少两个并联的小容量FIFO存储器101;输入控制单元200与所述FIFO存储器组100电连接,所述输入控制单元200配置为在所述FIFO存储器组100中写入数据时,将单个数据依次轮询写入各所述小容量FIFO存储器101中;输出控制单元300与所述FIFO存储器组100电连接,所述输出控制单元300配置为从所述FIFO存储器组100中读出数据时,将单个数据依次轮询从各所述小容量FIFO存储器101中读出。
优选地,所述输入控制单元200中设置有第一与逻辑模块。所述第一与逻辑模块配置为在所述小容量FIFO存储器101均为满状态时,判断所述FIFO存储器组100为满状态。其中,所述FIFO存储器组100为满状态时,所述输入控制单元200不允许在所述FIFO存储器组100中写入数据。
具体来说,第一与逻辑模块用于将所有的小容量FIFO存储器101的存储状态相与后输出。在所述小容量FIFO存储器101均为满状态时,第一与逻辑模块将所有的小容量FIFO存储器101的存储状态相与后判断所述FIFO存储器组100为满状态。
实施时,小容量FIFO存储器101向输入控制单元200发出满信号,第一与逻辑模块将所有的小容量FIFO存储器101发出的满信号相与后作为表示FIFO存储器组100的存储状态的满信号,并输出至外部电路。
优选地,所述输出控制单元300中设置有第二与逻辑模块。所述第二与逻辑模块配置为在所述小容量FIFO存储器101均为空状态时,判断所述FIFO存储器组100为空状态。其中,所述FIFO存储器组100为空状态时,所述输出控制单元300不允许从所述FIFO存储器组100中读出数据。
具体来说,第二与逻辑模块用于将所有的小容量FIFO存储器101的存储状态相与后输出。在所述小容量FIFO存储器101均为空状态时,第二与逻辑模块将所有的小容量FIFO存储器101的存储状态相与后判断所述FIFO存储器组100为空状态。
实施时,小容量FIFO存储器101向输入控制单元200发出空信号,第二与逻辑模块将所有的小容量FIFO存储器101发出的空信号相与作为表示FIFO存储器组100的存储状态的空信号,并输出至外部电路。
具体地,所述输入控制单元200中设置有第一循环计数器,所述第一循环计数器配置为写入所述FIFO存储器组100中的数据进行计数,所述输入控制单元200按照所述第一循环计数器的计数值顺序将单个数据依次轮询写入各所述小容量FIFO存储器101中。
进一步地,所述输入控制单元200中设置有第一解复用器,用于将输入总线上的数据解复用。
具体地,所述输出控制单元300中设置有第二循环计数器,所述第二循环计数器配置为从所述FIFO存储器组100中读出的数据进行计数;所述输出控制单元300按照所述第二循环计数器的计数值顺序将单个数据依次轮询从各所述小容量FIFO存储器101中读出。
进一步地,所述输出控制单元300中设置有复用器,用于将各小容量FIFO存储器101的输出数据复用到输出总线的数据输出信号。
此外,FIFO存储器带有Push信号和Pop信号,Push信号用于控制数据输入,代表压入一个数据;Pop信号用于控制数据输出,代表排出一个数据。
具体地,输入控制单元200中还设置有第二解复用器,用于将输入的Push信号解复用至各小容量FIFO存储器101。输出控制单元300中设置有第三解复用器,用于将输入的Pop信号解复用到各小容量FIFO存储器101。
实施例
对于Xilinx的FPGA xc7k325tffg900-2,设计工具Vivado能够例化的FIFO存储器的最大容量是128KB。
如图3中所示,本发明实施例的基于FIFO存储器的轮询读写装置,包括:FIFO存储器组100、输入控制单元200和输出控制单元300。其中,所述FIFO存储器组100包括四个128KB的小容量FIFO存储器101,其编号依次为0、1、2、3,四个小容量FIFO存储器101并联地电性连接在输入控制单元200和输出控制单元300之间。
本实施例中,采用四个128KB小容量FIFO存储器101组100成512KB的FIFO存储器组100。FIFO存储器组100、输入控制单元200和输出控制单元300这三个部分组成一个大面积的标准FIFO存储器,容量为512KB。
输入控制单元200中,将所有小容量FIFO存储器101的full信号相与后输出(full<=full_0&full_1&full_2&full_3)。只有当所有小容量FIFO存储器101的full信号有效时,输入控制单元200的输出full信号才有效。此时,FIFO存储器组100存储数据已满,不能再写入数据,否则会导致数据溢出。
当输入控制单元200输出的full信号无效时,输入控制单元200依次轮询写入数据至小容量FIFO存储器101,实现对数据流的连续存储。如图3所示,输入控制单元200按照循环计数器的计数值顺序存储输入数据,往第一个小容量FIFO存储器101写入一个数据byte0后,往第二个小容量FIFO存储器101写入另一个byte1数据,当往第四个小容量FIFO存储器101写入byte3后,再从第一个小容量FIFO存储器101开始写入数据,如此循环。
在输出控制单元300中,将所有小容量FIFO存储器101的empty信号相与后输出(empty<=empty_0&empty_1&empty_2&empty_3);只有当所有小容量FIFO存储器101的empty信号有效时,输出控制单元300的输出的empty信号才有效。此时,意味着小容量FIFO存储器101组100存储数据已空,不能从FIFO读取数据,否则会导致读数据错误。
当输出控制单元300输出的empty信号无效时,从FIFO存储器组100读取数据,此时输出控制单元300依次轮询从小容量FIFO存储器101读取数据,复用到输出总线上,实现数据的连续读取。
同样地,输出控制单元300按照循环计数器的计数值顺序从小容量FIFO组读取数据,从第一个小容量FIFO存储器101读取一个数据byte0后,再从第二个个小容量FIFO存储器101读取byte1数据,当从第四个小容量FIFO存储器101读取byte3后,再从第一个小容量FIFO存储器101开始读取数据,如此循环。
如图4中所示,输入控制单元200中设置有两个解复用器(Demux1to4),其中一个解复用器用于将输入总线上的数据DIN[7:0]解复用,另一个解复用器用于将输入的Push信号解复用至各小容量FIFO存储器101。
所述输出控制单元300中设置有复用器(Mux1to4)和解复用器(Demux1to4),其中,复用器用于将各小容量FIFO存储器101的输出数据Dout_0[7:0],Dout_1[7:0],Dout_2[7:0]和Dout_3[7:0]复用到输出总线的数据输出信号Dout[7:0]上,其解复用器,用于将输入的Pop信号解复用到各小容量FIFO存储器101。
本发明实施例通过对多个小容量FIFO存储器101依次轮询访问机制来实现大面积FIFO储存器的功能,降低了后端EDA工具布局布线的难度,为设计提供更大的灵活性,通用性强,应用范围更广。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于FIFO存储器的轮询读写方法,其特征在于,所述方法包括:
将FIFO存储器组电连接在输入控制单元与输出控制单元之间,所述FIFO存储器组包括至少两个并联的小容量FIFO存储器;
在所述FIFO存储器组中写入数据时,所述输入控制单元按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的写入操作;
从所述FIFO存储器组中读出数据时,所述输出控制单元按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的读出操作。
2.根据权利要求1所述的轮询读写方法,其特征在于,所述方法还包括:
所述输入控制单元根据所述小容量FIFO存储器的存储状态判断所述FIFO存储器组是否为满状态;
若所述小容量FIFO存储器均为满状态,则所述FIFO存储器组为满状态;
所述FIFO存储器组为满状态时,所述输入控制单元不允许在所述FIFO存储器组中写入数据。
3.根据权利要求1所述的轮询读写方法,其特征在于,所述方法还包括:
所述输出控制单元根据所述小容量FIFO存储器的存储状态判断所述FIFO存储器组是否为空状态;
若所述小容量FIFO存储器均为空状态,则所述FIFO存储器组为空状态;
所述FIFO存储器组为空状态时,所述输出控制单元不允许从所述FIFO存储器组中读出数据。
4.根据权利要求1-3中任一项所述的轮询读写方法,其特征在于,在所述FIFO存储器组中写入数据时,所述输入控制单元按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的写入操作,包括:
在所述FIFO存储器组中写入数据时,所述输入控制单元通过第一循环计数器为写入所述FIFO存储器组中的数据进行计数,并按照所述第一循环计数器的计数值顺序对各所述小容量FIFO存储器执行单个数据的写入操作。
5.根据权利要求1-3中任一项所述的轮询读写方法,其特征在于,从所述FIFO存储器组中读出数据时,所述输出控制单元按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的读出操作,包括:
所述输出控制单元通过第二循环计数器为从所述FIFO存储器组中读出的数据进行计数,并按照所述第二循环计数器的计数值顺序对各所述小容量FIFO存储器执行单个数据的读出操作。
6.一种基于FIFO存储器的轮询读写装置,其特征在于,所述装置包括:
所述FIFO存储器组,包括至少两个并联的小容量FIFO存储器;
输入控制单元,与所述FIFO存储器组电连接,所述输入控制单元配置为在所述FIFO存储器组中写入数据时,按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的写入操作;以及
输出控制单元,与所述FIFO存储器组电连接,所述输出控制单元配置为从所述FIFO存储器组中读出数据时,按照轮询机制依次对各所述小容量FIFO存储器执行单个数据的读出操作。
7.根据权利要求6所述的轮询读写装置,其特征在于,所述输入控制单元中设置有第一与逻辑模块,
所述第一与逻辑模块配置为在所述小容量FIFO存储器均为满状态时,判断所述FIFO存储器组为满状态;
所述FIFO存储器组为满状态时,所述输入控制单元不允许在所述FIFO存储器组中写入数据。
8.根据权利要求6所述的轮询读写装置,其特征在于,所述输出控制单元中设置有第二与逻辑模块,
所述第二与逻辑模块配置为在所述小容量FIFO存储器均为空状态时,判断所述FIFO存储器组为空状态;
所述FIFO存储器组为空状态时,所述输出控制单元不允许从所述FIFO存储器组中读出数据。
9.根据权利要求6-8中任一项所述的轮询读写装置,其特征在于,所述输入控制单元中设置有第一循环计数器,所述第一循环计数器配置为写入所述FIFO存储器组中的数据进行计数,所述输入控制单元按照所述第一循环计数器的计数值顺序对各所述小容量FIFO存储器执行单个数据的写入操作。
10.根据权利要求6-8中任一项所述的轮询读写装置,其特征在于,所述输出控制单元中设置有第二循环计数器,所述第二循环计数器配置为从所述FIFO存储器组中读出的数据进行计数;所述输出控制单元按照所述第二循环计数器的计数值顺序对各所述小容量FIFO存储器执行单个数据的读出操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310734594.8A CN116737077A (zh) | 2023-06-20 | 2023-06-20 | 一种基于fifo存储器的轮询读写方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310734594.8A CN116737077A (zh) | 2023-06-20 | 2023-06-20 | 一种基于fifo存储器的轮询读写方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116737077A true CN116737077A (zh) | 2023-09-12 |
Family
ID=87904219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310734594.8A Pending CN116737077A (zh) | 2023-06-20 | 2023-06-20 | 一种基于fifo存储器的轮询读写方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737077A (zh) |
-
2023
- 2023-06-20 CN CN202310734594.8A patent/CN116737077A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5841722A (en) | First-in, first-out (FIFO) buffer | |
US5546347A (en) | Interleaving architecture and method for a high density FIFO | |
US7333381B2 (en) | Circuitry and methods for efficient FIFO memory | |
US5388074A (en) | FIFO memory using single output register | |
KR20080104184A (ko) | 모드-선택 프리페치 및 클록-코어 타이밍 기능을 갖는 메모리장치 | |
CN111832240B (zh) | Fifo数据传输方法及fifo存储装置 | |
CN101310339A (zh) | 具有多个内部数据总线和存储器库交错的存储器装置和方法 | |
KR20030045023A (ko) | Fifo 버퍼 및 이를 포함하는 통신 링크 및 데이터통신 방법 | |
US20050033875A1 (en) | System and method for selectively affecting data flow to or from a memory device | |
CN209842608U (zh) | 一种基于fpga fifo模块的ddr3存储器控制 | |
CN115579036A (zh) | 一种基于fpga的ddr连续存储电路及其实现方法 | |
US6779061B1 (en) | Method and apparatus implementing a FIFO with discrete blocks | |
CN116737077A (zh) | 一种基于fifo存储器的轮询读写方法和装置 | |
EP0673137A1 (en) | Virtual interconnection memory | |
US7136309B2 (en) | FIFO with multiple data inputs and method thereof | |
KR100438736B1 (ko) | 어드레스 라인을 이용해 데이터 쓰기를 수행하는 메모리제어 장치 | |
US20030128620A1 (en) | Buffer using two-port memory | |
EP1585024B1 (en) | An improved on-chip storage memory for storing variable data bits | |
JP2022049453A (ja) | 送受信装置、ブリッジチップ、半導体記憶装置、および方法 | |
US6625711B1 (en) | Method and/or architecture for implementing queue expansion in multiqueue devices | |
US5732011A (en) | Digital system having high speed buffering | |
GB2368152A (en) | A DMA data buffer using parallel FIFO memories | |
WO2022126893A1 (zh) | 用于serdes接口的桥接模块 | |
JP4904136B2 (ja) | 双方向データ通信用単一ポートメモリ制御装置およびその制御方法 | |
CN117054858B (zh) | 三态配置管脚实现方法和芯片中的io装置 |
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 |