CN114461545B - 一种fpga,fifo存储装置及数据缓存方法 - Google Patents
一种fpga,fifo存储装置及数据缓存方法 Download PDFInfo
- Publication number
- CN114461545B CN114461545B CN202111666483.5A CN202111666483A CN114461545B CN 114461545 B CN114461545 B CN 114461545B CN 202111666483 A CN202111666483 A CN 202111666483A CN 114461545 B CN114461545 B CN 114461545B
- Authority
- CN
- China
- Prior art keywords
- read
- reload
- data
- memory
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000000694 effects Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
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/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
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
本申请公开了一种FPGA,FIFO及基于FIFO的数据缓存方法,FIFO存储装置配置有重加载写端口和重加载读端口,该方法包括:每次FIFO存储装置写使能时,按照当前的写指针地址将数据写入至FIFO存储装置的存储器中,并且将存储器的写指针地址加1;当重加载写端口使能时,通过重加载写端口接收重加载写地址,并将重加载写地址的数值赋值给存储器的写指针地址;每次FIFO存储装置读使能时进行1次数据读取,并且将存储器的读指针地址加1;当重加载读端口使能时,通过重加载读端口接收重加载读地址,并将重加载读地址的数值赋值给存储器的读指针地址。应用本申请的方案,实现了数据重传且降低了成本。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种FPGA,FIFO及基于FIFO的数据缓存方法。
背景技术
随着大数据、物联网、移动互联、云计算等技术的蓬勃发展,大量的数据需要高效的实时处理分析。网络互联的设备在数据传输过程中,可能会出现数据的丢失或误码的情况,如果将大数据量重新传输会消耗整体的处理带宽,也会增加业务的延迟时间。近年来,随着FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)的快速发展,利用FPGA的并行和低延时特性,可以有效地实现网络加速和数据传输。
在FPGA的系统设计中,以增加数据传输率、处理大量数据流、匹配具有不同传输率的系统为目的而广泛使用FIFO(First Input First Output,先进先出)存储模块,从而提高了系统性能。FIFO是一种先入先出的数据缓存装置,即先写入FIFO的数据先被读出。
在网络传输的业务过程中可能会出现数据的丢失或误码的情况,因此传输机制中需要有数据重传功能,即,将之前已发送的数据重新打包传输。因此,目前的FPGA的设计,是使用另一个同样的FIFO用于缓存之前已发送的报文数据。由于需要第二个FIFO来实现FPGA的数据重传功能,因此成本较高。此外,由于FIFO在FPGA逻辑代码中频繁地使用,也会降低FPGA设计代码的稳定性以及效率等。
综上所述,如何有效地实现数据重传功能,且降低成本,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种FPGA,FIFO及基于FIFO的数据缓存方法,以有效地实现数据重传功能,且降低了成本。
为解决上述技术问题,本发明提供如下技术方案:
一种数据缓存方法,应用于FIFO存储装置中,所述FIFO存储装置配置有重加载写端口和重加载读端口,所述数据缓存方法包括:
每次FIFO存储装置写使能时,按照当前的写指针地址将数据写入至FIFO存储装置的存储器中,并且将所述存储器的所述写指针地址加1;
当所述重加载写端口使能时,通过所述重加载写端口接收重加载写地址,并将所述重加载写地址的数值赋值给所述存储器的所述写指针地址;
每次FIFO存储装置读使能时进行1次数据读取,并且将所述存储器的读指针地址加1;
当所述重加载读端口使能时,通过所述重加载读端口接收重加载读地址,并将所述重加载读地址的数值赋值给所述存储器的所述读指针地址。
优选的,还包括:
当所述存储器在空状态下写入数据之后,将写入的首地址数据置入所述读数据总线上,并且将所述存储器的读指针地址加1;
相应的,所述每次FIFO存储装置读使能时进行1次数据读取,并且将所述存储器的读指针地址加1,包括:
每次FIFO存储装置读使能,且当前的读指针地址中存在未读取的数据时,将当前的读指针地址中的数据置入读数据总线上,并且将所述存储器的读指针地址加1。
优选的,还包括:
当检测出所述存储器为满状态时,控制满状态标志生效以禁止继续写入数据。
优选的,所述检测出所述存储器为满状态,包括:
当检测出当前的读指针地址减去当前的写指针地址所得到的差值大于等于预设数值,且未检测到所述重加载写端口使能时,确定出所述存储器为满状态。
优选的,还包括:
当检测出所述存储器为空状态时,控制空状态标志生效以禁止继续读取数据。
优选的,所述检测出所述存储器为空状态,包括:
当检测出当前的读指针地址等于当前的写指针地址,且未检测到所述重加载读端口使能时,确定出所述存储器为空状态。
优选的,还包括:
接收配置指令,并根据所述配置指令的内容修改所述FIFO存储装置的自身配置。
优选的,所述配置指令中包括所述FIFO存储装置的深度和数据位宽。
一种FIFO存储装置,所述FIFO存储装置配置有重加载写端口和重加载读端口,所述FIFO存储装置用于执行时如上述所述的数据缓存方法的步骤。
一种FPGA,包括如上所述的FIFO存储装置。
应用本发明实施例所提供的技术方案,为FIFO存储装置配置了重加载写端口和重加载读端口,从而直接利用该FIFO存储装置便可以实现数据重传的功能,无需如传统方案中额外配置一个FIFO存储装置。具体的,每次FIFO存储装置写使能时,按照当前的写指针地址将数据写入至FIFO存储装置的存储器中,并且将存储器的写指针地址加1,可以看出,FIFO存储装置可以正常完成数据写入的功能。而当重加载写端口使能时,可以通过重加载写端口接收重加载写地址,并将重加载写地址的数值赋值给存储器的写指针地址,使得可以将写指针地址进行切换,即切换至重加载写地址的数值,进而从该位置开始进行重写。在每次FIFO存储装置读使能时进行1次数据读取,并且将存储器的读指针地址加1,即FIFO存储装置可以正常完成数据读取的功能。而当重加载读端口使能时,通过重加载读端口接收重加载读地址,并将重加载读地址的数值赋值给存储器的读指针地址,使得可以进行读指针地址的切换,即切换至重加载读地址的数值,进而从该位置处开始进行重读。综上所述,本申请的方案有效地实现了数据的重读和重写,即实现了数据重传功能,并且本申请的方案无需配置额外的FIFO存储装置,有利于降低成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中一种数据缓存方法的实施流程图;
图2为本发明一种具体实施方式中的FIFO存储装置的结构示意图。
具体实施方式
本发明的核心是提供一种数据缓存方法,有效地实现了数据重传功能,并且无需配置额外的FIFO存储装置,有利于降低成本。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明中一种数据缓存方法的实施流程图,该数据缓存方法应用于FIFO存储装置中,FIFO存储装置配置有重加载写端口和重加载读端口,数据缓存方法包括:
步骤S101:每次FIFO存储装置写使能时,按照当前的写指针地址将数据写入至FIFO存储装置的存储器中,并且将存储器的写指针地址加1。
本申请的方案中,FIFO存储装置配置有重加载写端口和重加载读端口,例如图2为一种具体实施方式中的FIFO存储装置的结构示意图,在图2的实施方式中,重加载写端口包括重加载写标志端和重加载写地址端,重加载读端口则包括重加载读标志端和重加载读地址端。
在初始化阶段,写指针地址可以为0。之后,每当FIFO存储装置写使能,便按照当前的写指针地址将数据写入至FIFO存储装置的存储器中,并将存储器的写指针地址加1。图2的实施方式中,FIFO存储装置的存储器具体选取的是双端口RAM20(Random AccessMemory,随机存取存储器),由空/满标志位产生逻辑单元24检测FIFO存储装置是否写使能。
例如初始时写指针地址为0,FIFO存储装置进行1次写使能之后,便将数据A写入存储器的地址0,且写指针地址+1,即从0变为了1。例如FIFO存储装置再进行1次写使能,便将数据B写入存储器的地址1,且写指针地址+2,即从1变为了2。
可以看出,本申请的FIFO存储装置能够有效地实现数据的写入功能。
步骤S102:当重加载写端口使能时,通过重加载写端口接收重加载写地址,并将重加载写地址的数值赋值给存储器的写指针地址。
需要强调的是,本申请的步骤S101至步骤S104并不是限定各个步骤的执行顺序,而是表示FIFO存储装置在不同情况下所进行的操作。
当重加载写端口使能时,说明需要重写数据,FIFO存储装置可以通过重加载写端口接收重加载写地址,并将接收到的重加载写地址的数值赋值给存储器的写指针地址。图2的实施方式中,具体是通过重加载写端口的重加载写标志端判断重加载写端口是否使能,通过重加载写端口的重加载写地址端接收重加载写地址,由写控制逻辑单元21实现重加载写端口使能的判断以及写指针地址的更新。
重加载写地址表示的是需要进行重写的起始位置,例如一种场合中,写指针地址为5,当重加载写端口使能时,通过重加载写端口接收重加载写地址且数值为2,则需要将写指针地址从5更新为2,这样后续再进行写使能时,便是将数据写入存储器的地址2中。
步骤S103:每次FIFO存储装置读使能时进行1次数据读取,并且将存储器的读指针地址加1。
在初始化阶段,读指针地址可以为0。之后,每当FIFO存储装置读使能,便进行1次数据读取,并且将存储器的读指针地址加1。图2的实施方式中,由空/满标志位产生逻辑单元24检测FIFO存储装置是否读使能。
在利用FIFO存储装置进行数据读取时,按照是否将数据预先放置在读数据总线上,可以划分为2种读取方式。如果将数据预先放置在读数据总线上,则读使能有效的当前周期,从读数据总线上读取的数据也是有效的,而如果没有将数据预先放置在读数据总线上,由于从存储器中读取的数据置入读数据总线存在一定耗时,因此是在读使能有效的下一个周期,从读数据总线上读取的数据是有效的。这两种实施方式都是常用的读取方式,即都能够有效地实现数据的读取功能。
本申请后文的实施方式中,以会将数据预读取在读数据总线上的这种方式为例进行说明。采用这种实施方式时,本申请的数据缓存方法还需要包括:
当存储器在空状态下写入数据之后,将写入的首地址数据置入读数据总线上,并且将存储器的读指针地址加1;
相应的,步骤S103具体包括:
每次FIFO存储装置读使能,且当前的读指针地址中存在未读取的数据时,将当前的读指针地址中的数据置入读数据总线上,并且将存储器的读指针地址加1。
具体的,该种实施方式中,当存储器为空状态时,说明FIFO存储装置中未写入数据,或者说FIFO存储装置中此前写入的数据都被读取完毕了,存储器是空的。此后,往存储装置中写入数据,便需要将写入的首地址数据置入读数据总线上,并且将存储器的读指针地址加1。例如,一种具体场合中,存储器为空状态,且写指针地址为7,读指针地址也为7,之后,FIFO存储装置进行了4次写使能,将数据A,B,C,D依次写入存储器的地址7,存储器的地址8,存储器的地址9以及存储器的地址10。该种实施方式中,便需要将写入的首地址数据置入读数据总线上,即,预读取写入的首地址数据A,并将A置入读数据总线上,然后将存储器的读指针地址加1,该种实施方式中也就是将读指针地址从7变为8。
例如前述例子中将数据A,B,C,D依次写入之后,进行了1次读使能,则读数据总线上的数据A被读取,并且将读指针地址8中的数据B置入读数据总线上,使得下一次读使能时数据B会被读取。并且将存储器的读指针地址加1,即读指针地址变为9,使得下一次读使能时读指针地址9这一位置的数据会被预读取到数据总线上。
需要说明的是,每次FIFO存储装置读使能,需要在当前的读指针地址中存在未读取的数据时,才会将当前的读指针地址中的数据置入读数据总线上,并将存储器的读指针地址加1。也就是说,如果FIFO存储装置读使能,并且当前的读指针地址中不存在未读取的数据时,则读数据总线上的数据会被读取,但不需要再进行读指针地址加1以及将数据预读取至读数据总线上的操作了,因为本次是将FIFO存储装置中剩下的最后一个数据进行了读取。
步骤S104:当重加载读端口使能时,通过重加载读端口接收重加载读地址,并将重加载读地址的数值赋值给存储器的读指针地址。
当重加载读端口使能时,说明需要重读数据,FIFO存储装置可以通过重加载读端口接收重加载读地址,并将重加载读地址的数值赋值给存储器的读指针地址。图2的实施方式中,具体是通过重加载读端口的重加载读标志端判断重加载读端口是否使能,通过重加载读端口的重加载读地址端接收重加载读地址,由读控制逻辑单元22实现重加载读端口使能的判断以及读指针地址的更新。
重加载读地址表示的是需要进行重写的起始位置,例如一种场合中,读指针地址为5,当重加载读端口使能时,通过重加载读端口接收重加载读地址为2,则将读指针地址从5更新为2。
此外需要强调的是,如果采用的是上述的需要将数据预读取在读数据总线上的这种读取方式,则将重加载读地址的数值赋值给存储器的读指针地址之后,需要将当前的读指针地址中的数据置入读数据总线上,并且将存储器的读指针地址加1,即与上文中存储器在空状态下写入数据之后进行的操作是一致的,都需要进行1个预读取以及读指针地址加1的操作。而如果采用的是不需要将数据预读取在读数据总线上的读取方式,则将重加载读地址的数值赋值给存储器的读指针地址即可,无需再执行额外的操作。
在本发明的一种具体实施方式中,还可以包括:
当检测出存储器为满状态时,控制满状态标志生效以禁止继续写入数据。
在本发明的一种具体实施方式中,还可以包括:
当检测出存储器为空状态时,控制空状态标志生效以禁止继续读取数据。
在实际应用中得FIFO存储装置通常均需要能够支持满状态检测和空状态检测。本申请的方案中,在满状态时,便可以控制满状态标志生效以禁止继续写入数据,例如图2的实施方式中,空/满标志位产生逻辑单元24可以向外部输出满状态标志,以避免外部继续输入数据,同时空/满标志位产生逻辑单元24可以根据满状态标志来控制存储器,即控制图2中的双端口RAM20,以禁止继续写入数据至双端口RAM20。
而在空状态时,便可以控制空状态标志生效以禁止继续读取数据,例如图2的实施方式中,空/满标志位产生逻辑单元24可以向外部输出空状态标志,以避免外部器件继续读取数据。同时空/满标志位产生逻辑单元24可以根据空状态标志来控制存储器,即控制图2中的双端口RAM20,以禁止从双端口RAM20中继续读数据。
在本发明的一种具体实施方式中,检测出存储器为满状态,可以包括:
当检测出当前的读指针地址减去当前的写指针地址所得到的差值大于等于预设数值,且未检测到重加载写端口使能时,确定出存储器为满状态。
可以由于读指针地址是循环变动的,写指针地址也是是循环变动的,因此,当写指针地址追上读指针地址时,说明存储器中写满了,即预设数值为整数,且最少需要取值为0。并且在实际应用中,考虑到检测出存储器为满状态存在一定的耗时,且在确定满状态之后控制满状态标志生效以禁止继续写入数据也存在一定的耗时,在此过程中FIFO存储装置可能还在写数据,因此预设数值通常不会设置为0,例如一种具体场合中设置为2,以留出一定的裕量,避免出现写满之后继续写入导致的数据丢失、出错的情况。
并且由于本申请的方案支持重加载写,因此该种实施方式中,在进行满状态检测时,需要建立在未检测到重加载写端口使能的前提下。
在本发明的一种具体实施方式中,检测出存储器为空状态,包括:
当检测出当前的读指针地址等于当前的写指针地址,且未检测到重加载读端口使能时,确定出存储器为空状态。
如果读指针地址追上了写指针地址,说明读空了,便可以确定出存储器为空状态。同样的,由于本申请的方案支持重加载读,因此该种实施方式中,在进行空状态检测时,需要建立在未检测到重加载读端口使能的前提下。
在本发明的一种具体实施方式中,考虑到传统的FPGA逻辑设计中,通常使用各FPGA厂商的EDA工具提供的FIFO IP核来实现FIFO存储装置的设计,例如在FIFO IP核界面中设置所需空、满标志信号和其他有关控制信号等,来满足当前业务功能的逻辑需求。但是,这样的方案在后期开发需求改变的情况下,可能需要移植到其他芯片型号或其他厂商平台,也就需要使用新的EDA工具的FIFO IP核重新进行FIFO存储装置的生成,而且不同厂商平台之间的代码的移植性很差。
对此,本申请的方案中,不使用厂商的EDA工具,而是通过逻辑代码来实现FIFO功能,即本申请的FIFO存储装置为通过逻辑代码搭建的FIFO存储装置,这样在后期开发需求改变的情况,通过调整自己设置的逻辑代码便可以方便地实现业务功能逻辑的调整,而不会出现传统方案中采用不同EDA工具的FIFO IP核重新编译而导致的代码的移植性很差的情况发生。
进一步的,在本发明的一种具体实施方式中,还可以包括:
接收配置指令,并根据配置指令的内容修改FIFO存储装置的自身配置。
该种实施方式中,可以根据配置指令的内容修改FIFO存储装置的自身配置,使得FIFO存储装置的配置能够满足业务需求的变化。
配置指令中包括的内容可以根据需要进行设定和调整,在本发明的一种具体实施方式中,配置指令中包括FIFO存储装置的深度和数据位宽。
在传统的采用EDA工具的FIFO IP核构建FIFO存储装置的方案中,通常不支持FIFO存储装置的深度和数据位宽的灵活调整,而本申请的方案中由于是通过逻辑代码搭建的FIFO存储装置,因此,可以支持包括FIFO存储装置的深度和数据位宽在内的各项配置的灵活修改。也就是说,该种实施方式中的配置指令中包括FIFO存储装置的深度和数据位宽,通常需要应用在上述的通过逻辑代码搭建FIFO存储装置的实施方式中。
应用本发明实施例所提供的技术方案,为FIFO存储装置配置了重加载写端口和重加载读端口,从而直接利用该FIFO存储装置便可以实现数据重传的功能,无需如传统方案中额外配置一个FIFO存储装置。具体的,每次FIFO存储装置写使能时,按照当前的写指针地址将数据写入至FIFO存储装置的存储器中,并且将存储器的写指针地址加1,可以看出,FIFO存储装置可以正常完成数据写入的功能。而当重加载写端口使能时,可以通过重加载写端口接收重加载写地址,并将重加载写地址的数值赋值给存储器的写指针地址,使得可以将写指针地址进行切换,即切换至重加载写地址的数值,进而从该位置开始进行重写。在每次FIFO存储装置读使能时进行1次数据读取,并且将存储器的读指针地址加1,即FIFO存储装置可以正常完成数据读取的功能。而当重加载读端口使能时,通过重加载读端口接收重加载读地址,并将重加载读地址的数值赋值给存储器的读指针地址,使得可以进行读指针地址的切换,即切换至重加载读地址的数值,进而从该位置处开始进行重读。综上所述,本申请的方案有效地实现了数据的重读和重写,即实现了数据重传功能,并且本申请的方案无需配置额外的FIFO存储装置,有利于降低成本。
相应于上面的方法实施例,本发明实施例还提供了一种FIFO存储装置和一种FPGA,FPGA可与包括上述任一实施方式中的FIFO存储装置。可与上文相互对应参照,FIFO存储装置配置有重加载写端口和重加载读端口,FIFO存储装置用于执行时上述实施例中的任一项的数据缓存方法的步骤。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种数据缓存方法,其特征在于,应用于FIFO存储装置中,所述FIFO存储装置配置有重加载写端口和重加载读端口,所述数据缓存方法包括:
每次FIFO存储装置写使能时,按照当前的写指针地址将数据写入至FIFO存储装置的存储器中,并且将所述存储器的所述写指针地址加1;
当所述重加载写端口使能时,通过所述重加载写端口接收重加载写地址,并将所述重加载写地址的数值赋值给所述存储器的所述写指针地址;
每次FIFO存储装置读使能时进行1次数据读取,并且将所述存储器的读指针地址加1;
当所述重加载读端口使能时,通过所述重加载读端口接收重加载读地址,并将所述重加载读地址的数值赋值给所述存储器的所述读指针地址;
其中,所述FIFO存储装置为通过逻辑代码搭建的FIFO存储装置,以支持直接通过配置指令进行FIFO存储装置的深度和数据位宽的调整。
2.根据权利要求1所述的数据缓存方法,其特征在于,还包括:
当所述存储器在空状态下写入数据之后,将写入的首地址数据置入读数据总线上,并且将所述存储器的读指针地址加1;
相应的,所述每次FIFO存储装置读使能时进行1次数据读取,并且将所述存储器的读指针地址加1,包括:
每次FIFO存储装置读使能,且当前的读指针地址中存在未读取的数据时,将当前的读指针地址中的数据置入读数据总线上,并且将所述存储器的读指针地址加1。
3.根据权利要求1所述的数据缓存方法,其特征在于,还包括:
当检测出所述存储器为满状态时,控制满状态标志生效以禁止继续写入数据。
4.根据权利要求3所述的数据缓存方法,其特征在于,所述检测出所述存储器为满状态,包括:
当检测出当前的读指针地址减去当前的写指针地址所得到的差值大于等于预设数值,且未检测到所述重加载写端口使能时,确定出所述存储器为满状态。
5.根据权利要求1所述的数据缓存方法,其特征在于,还包括:
当检测出所述存储器为空状态时,控制空状态标志生效以禁止继续读取数据。
6.根据权利要求5所述的数据缓存方法,其特征在于,所述检测出所述存储器为空状态,包括:
当检测出当前的读指针地址等于当前的写指针地址,且未检测到所述重加载读端口使能时,确定出所述存储器为空状态。
7.根据权利要求1至6任一项所述的数据缓存方法,其特征在于,还包括:
接收配置指令,并根据所述配置指令的内容修改所述FIFO存储装置的自身配置。
8.根据权利要求7所述的数据缓存方法,其特征在于,所述配置指令中包括所述FIFO存储装置的深度和数据位宽。
9.一种FIFO存储装置,其特征在于,所述FIFO存储装置配置有重加载写端口和重加载读端口,所述FIFO存储装置用于执行时如权利要求1至8任一项所述的数据缓存方法的步骤。
10.一种FPGA,其特征在于,包括权利要求9所述的FIFO存储装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111666483.5A CN114461545B (zh) | 2021-12-30 | 2021-12-30 | 一种fpga,fifo存储装置及数据缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111666483.5A CN114461545B (zh) | 2021-12-30 | 2021-12-30 | 一种fpga,fifo存储装置及数据缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114461545A CN114461545A (zh) | 2022-05-10 |
CN114461545B true CN114461545B (zh) | 2023-11-03 |
Family
ID=81408348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111666483.5A Active CN114461545B (zh) | 2021-12-30 | 2021-12-30 | 一种fpga,fifo存储装置及数据缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114461545B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5079693A (en) * | 1989-02-28 | 1992-01-07 | Integrated Device Technology, Inc. | Bidirectional FIFO buffer having reread and rewrite means |
US5365485A (en) * | 1993-11-22 | 1994-11-15 | Texas Instruments Incorporated | Fifo with fast retransmit mode |
CN102103558A (zh) * | 2009-12-18 | 2011-06-22 | 上海华虹集成电路有限责任公司 | 一种带有写重传功能的多通道NANDflash控制器 |
CN105573937A (zh) * | 2015-12-21 | 2016-05-11 | 曙光信息产业(北京)有限公司 | 用于数据重传的系统 |
CN113342717A (zh) * | 2021-06-22 | 2021-09-03 | 京微齐力(深圳)科技有限公司 | 一种fifo读写控制方法及控制电路 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782378B2 (en) * | 2010-09-14 | 2014-07-15 | Arm Limited | Dynamic instruction splitting |
-
2021
- 2021-12-30 CN CN202111666483.5A patent/CN114461545B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5079693A (en) * | 1989-02-28 | 1992-01-07 | Integrated Device Technology, Inc. | Bidirectional FIFO buffer having reread and rewrite means |
US5365485A (en) * | 1993-11-22 | 1994-11-15 | Texas Instruments Incorporated | Fifo with fast retransmit mode |
CN102103558A (zh) * | 2009-12-18 | 2011-06-22 | 上海华虹集成电路有限责任公司 | 一种带有写重传功能的多通道NANDflash控制器 |
CN105573937A (zh) * | 2015-12-21 | 2016-05-11 | 曙光信息产业(北京)有限公司 | 用于数据重传的系统 |
CN113342717A (zh) * | 2021-06-22 | 2021-09-03 | 京微齐力(深圳)科技有限公司 | 一种fifo读写控制方法及控制电路 |
Non-Patent Citations (1)
Title |
---|
《一种基于重传功能的新型FIFO设计》;许建峰等;《江苏科技信息》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114461545A (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11550819B2 (en) | Synchronization cache seeding | |
US8037221B2 (en) | Dynamic allocation of DMA buffers in input/output adaptors | |
US20160330283A1 (en) | Data Storage Method and Network Interface Card | |
US9569322B2 (en) | Memory migration in presence of live memory traffic | |
US20070133399A1 (en) | Data processing in which concurrently executed processes communicate via a fifo buffer | |
CN112965761B (zh) | 一种数据处理方法、系统、电子设备及存储介质 | |
US10140166B2 (en) | Message oriented middleware with integrated rules engine | |
CN112559056A (zh) | 用于减少固件激活时间的技术 | |
CN107423291B (zh) | 一种数据翻译方法以及客户端设备 | |
CN113468067B (zh) | 应用程序的调试方法、装置、电子设备和计算机可读介质 | |
CN106383726B (zh) | 一种基于图像视频传输接口的讯号适配器升级方法 | |
US9430415B2 (en) | Concurrent dumping of large address space | |
CN114461545B (zh) | 一种fpga,fifo存储装置及数据缓存方法 | |
US20110055318A1 (en) | Thin client system with round trip reduction using client side code generation | |
US20180181322A1 (en) | Object transformation in a solid state drive | |
US8688867B2 (en) | System and methods for communicating between serial communications protocol enabled devices | |
WO2023173718A1 (zh) | 一种通信链路更新方法、装置及相关设备 | |
CN114564241B (zh) | 硬件设备的访问方法、装置、计算机设备和存储介质 | |
EP2194458A2 (en) | Request processing device, request processing system, and access testing method | |
CN116089124A (zh) | 一种仿真系统通信方法、装置、介质 | |
CN112860595A (zh) | Pci设备或pcie设备、数据存取方法及相关组件 | |
CN116302659B (zh) | Gpu显存错误处理方法及装置、电子设备和存储介质 | |
US20230048915A1 (en) | Low latency remoting to accelerators | |
US9021234B2 (en) | Indirect designation of physical configuration number as logical configuration number based on correlation information, within parallel computing | |
US20230418512A1 (en) | Hardware accelerator |
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 |