CN102654827A - 一种先进先出缓冲器及缓存数据的方法 - Google Patents

一种先进先出缓冲器及缓存数据的方法 Download PDF

Info

Publication number
CN102654827A
CN102654827A CN2011100500437A CN201110050043A CN102654827A CN 102654827 A CN102654827 A CN 102654827A CN 2011100500437 A CN2011100500437 A CN 2011100500437A CN 201110050043 A CN201110050043 A CN 201110050043A CN 102654827 A CN102654827 A CN 102654827A
Authority
CN
China
Prior art keywords
data
write
shift register
control circuit
read
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
Application number
CN2011100500437A
Other languages
English (en)
Other versions
CN102654827B (zh
Inventor
刘济凌
胡胜发
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Ankai Microelectronics Co.,Ltd.
Original Assignee
Anyka Guangzhou Microelectronics Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Anyka Guangzhou Microelectronics Technology Co Ltd filed Critical Anyka Guangzhou Microelectronics Technology Co Ltd
Priority to CN201110050043.7A priority Critical patent/CN102654827B/zh
Publication of CN102654827A publication Critical patent/CN102654827A/zh
Application granted granted Critical
Publication of CN102654827B publication Critical patent/CN102654827B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明实施例公开了一种先进先出缓冲器及缓存数据的方法,所述先进先出缓冲器包括:写指针、写指针控制电路、写回控制电路、移位寄存器,移位控制电路、读指针、读控制电路以及FIFO控制电路,其中,读指针,用于始终指向移位寄存器中的0地址位;移位寄存器,用于存储数据;移位控制电路,用于从移位寄存器中读取数据时,控制移位寄存器进行移位操作,每读出去多少个数据,移位寄存器就像0地址方向移动多少;FIFO控制电路,用于记录移位寄存器中当前有效数据个数,每次写,累加写数据个数,每次读,减去读出数据的个数。应用本发明,在不同带宽之间进行数据传输的时候,不需要对数据做任何处理,支持任意的数据宽度进行FIFO读写。

Description

一种先进先出缓冲器及缓存数据的方法
技术领域
本发明涉数据缓存技术领域,特别涉及一种先进先出缓冲器及缓存数据的方法。
背景技术
在数据传输过程中,经常会用到先进先出(FIFO,First In First Out)作为数据缓冲器,用来匹配不同传输速度之间的数据传输。
图1是FIFO在实际应用中的位置示意图,可见,FIFO通常在发送方和接收方之间。图2是现有的FIFO的结构示意图,参见图1和图2,假设FIFO的深度为2^m,宽度为n,各信号的描述如下:
fifo_wdata:fifo写数据总线,位宽为n;
fifo_wr:fifo写使能信号;
fifo_wptr:fifo写指针;
fifo_rdata:fifo读数据总线,位宽为n;
fifo_rd:fifo读使能信号;
fifo_rptr:fifo读指针;
full:fifo满标志信号;
empty:fifo空标志信号;
图2中的FIFO一般会用双端的静态随机存储器(SRAM)或者寄存器文件(Register File)作为存储单元。FIFO控制器单元电路主要是对FIFO进行控制,包括读指针控制电路,写指针控制电路和fifo的空满标志控制电路。FIFO每写回一个数据,写指针增加1,每读取一个数据,读地址指针增加1。当读地址和写地址低位相同时(除去最高位),则表示FIFO为空或者满,具体是空或满由读写地址的最高位来判断。
当读写FIFO的数据宽度是固定的时候,普通的FIFO能够有效的处理数据发送方和接收方之间的数据。然而,在许多场合之下需要对不同的数据带宽总线进行快速传输,例如采用直接存储器存取(DMA)方式下载数据时宽度可能是1byte,2byte,3byte或4byte,本地功能模块读取FIFO的数据宽度也有可能是1byte,2byte,3byte,4byte或8byte等。那么这种情况下,现有的FIFO至少存在如下问题:
1、由于读写的数据宽度不一致且不等长,无法实现任意的数据宽度读写;
2、即使在fifo读写数据之前进行调整,但是数据传输的效率将会大大降低,无法做到数据的快速无缝传输。
发明内容
本发明实施例提供了一种先进先出缓冲器及缓存数据的方法,能够支持任意的数据宽度进行FIFO读写,且实现数据的快速无缝传输。
本发明实施例提供了一种先进先出缓冲器,包括:写指针、写指针控制电路、写回控制电路、移位寄存器,移位控制电路、读指针、读控制电路以及FIFO控制电路,其中,
写指针,用于指向下个数据写回的地址;
写指针控制电路,用于计算写回地址,控制写指针指向该地址;
写回控制电路,用于提取出已排序的待写回数据,将所述待写回的数据写回到移位寄存器;
读指针,用于始终指向移位寄存器中的0地址位;
读控制电路,用于对待读取的数据进行格式处理;
移位寄存器,用于存储数据;
移位控制电路,用于从移位寄存器中读取数据时,控制移位寄存器进行移位操作,每读出去多少个数据,移位寄存器就像0地址方向移动多少;
FIFO控制电路,用于记录移位寄存器中当前有效数据个数,每次写,累加写数据个数,每次读,减去读出数据的个数。
其中,所述先进先出缓冲器中的FIFO控制电路,还用于获知移位寄存器中存储的有效数据个数小于将要读取的数据量时,向接收方发出空标志。
其中,所述先进先出缓冲器还中的FIFO控制电路,还用于获知移位寄存器中存储的剩余空间小于将要写入的数据量时,向发送方发出满标志。
本发明实施例还提供了一种缓存数据的方法,应用于用移位寄存器作为存储单元的先进先出缓冲器,所述方法包括:
当需要向先进先出缓冲器中写入数据时,
提取出已排序的待写回数据,将所述待写回的数据写回到移位寄存器,每次写,累加写数据个数;
当需要从先进先出缓冲器中读出数据时,
读指针始终指向移位寄存器中的0地址位;
对待读取的数据进行格式处理;每次读,从所述移位寄存器中当前有效数据个数中减去读出数据的个数,并且,每读出去多少个数据,移位寄存器就像0地址方向移动多少。
其中,所述方法还包括:在获知移位寄存器中存储的有效数据个数小于将要读取的数据量时,向接收方发出空标志。
其中,所述方法还包括:在获知移位寄存器中存储的剩余空间小于将要写入的数据量时,向发送方发出满标志。
其中,计算写回地址的步骤包括:
应用当前FIFO控制电路有效数据计数器的值写减去当前读取的数据个数,得到写回地址。
其中,确定写回的数据个数的步骤包括:
根据发送方发出的发送数据量决定写回的数据个数。
其中,确定读取的数据个数的步骤包括:
根据接收方发出的读数据量决定读取的数据个数。
应用本发明实施例提供的先进先出缓冲器及缓存数据的方法,在不同带宽之间进行数据传输的时候,不需要对数据做任何处理,可以快速,高效的进行数据传输,因而本发明实施例能够支持任意的数据宽度进行FIFO读写,且实现了数据的快速无缝传输。同时,本发明实施例的控制比较简单,只需要控制一个地址指针就能够对FIFO进行读写控制。
附图说明
为了更清楚地说明本发明实施例和现有技术中的技术方案,下面将对实施例及现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是FIFO在实际应用中的位置示意图;
图2是现有的FIFO的结构示意图;
图3是本发明实施例提供的一种FIFO结构示意图;
图4是本发明实施例提供的一种FIFO的内部结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图3,其是本发明实施例提供的一种FIFO结构示意图,参见图4,其是本发明实施例提供的一种FIFO的内部结构示意图。结合图3和图4,本发明实施例所提供的先进先出缓冲器包括:写指针wptr、写指针控制电路、写回控制电路、移位寄存器,移位控制电路、读指针rptr、读控制电路以及FIFO控制电路,其中,
写指针wptr,用于指向下个数据写回的地址;
写指针控制电路,用于计算写回地址,控制写指针指向该地址;
写回控制电路,提取出已排序的待写回数据,将所述待写回的数据写回到移位寄存器,每次写,累加写数据个数,;
读指针rptr,用于始终指向移位寄存器中的0地址位;
读控制电路,用于对待读取的数据进行格式处理,例如,格式转换,位数扩展等;
移位寄存器,用于存储数据;
移位控制电路,用于从移位寄存器中读取数据时,控制移位寄存器进行移位操作,每读出去多少个数据,移位寄存器就像0地址方向移动多少;
FIFO控制电路,用于记录移位寄存器中当前有效数据个数,每次写,累加写数据个数,每次读,减去读出数据的个数。
上述先进先出缓冲器中的FIFO控制电路,还用于获知移位寄存器中存储的有效数据个数小于将要读取的数据量时,向接收方发出空标志。
上述先进先出缓冲器还中的FIFO控制电路,还用于获知移位寄存器中存储的剩余空间小于将要写入的数据量时,向发送方发出满标志。
图3中,“fifo_wr_cnt”表示写FIFO的数据个数;“fifo_rd_cnt”表示读FIFO的数据个数。
仍参见图3和图4,本发明实施例还提供了一种缓存数据的方法,该方法应用于用移位寄存器作为存储单元的先进先出缓冲器,所述方法包括:
当需要向先进先出缓冲器中写入数据时,
提取出已排序的待写回数据,将所述待写回的数据写回到移位寄存器;
当需要从先进先出缓冲器中读出数据时,
读指针始终指向移位寄存器中的0地址位;
对待读取的数据进行格式处理;每次读,从所述移位寄存器中当前有效数据个数中减去读出数据的个数,并且,每读出去多少个数据,移位寄存器就像0地址方向移动多少。
在本发明实施例中,由于FIFO是支持任意数据宽度的,因此数据发送方发送的数据宽度每次可能会不一样,写回控制电路就需要对整个数据总线进行解析,从而提取出已排序的待写回数据,将所述待写回的数据写回到移位寄存器中。因此,移位寄存器的写使能是由数据发送方的写使能和FIFO的写地址,写数据个数共同决定的。而写回的数据个数是有数据发送方确定的。读使能和读数据个数由数据接收方决定的。
基于上述说明,可以理解,在向FIFO写回地址时,下述步骤是同时完成的:计算写回地址,控制写指针指向该地址;确定写回的数据个数,根据写指针指向的移位寄存器中的地址,对写指针所指向的地址发出写使能和所写数据;记录移位寄存器中当前有效数据个数,每次写,累加写数据个数。
需要说明的是,上述方法还包括:在获知移位寄存器中存储的有效数据个数小于将要读取的数据量时,向接收方发出空标志。
需要说明的是,上所述方法还包括:在获知移位寄存器中存储的剩余空间小于将要写入的数据量时,向发送方发出满标志。
需要说明的是,无论是先进先出缓冲器的实施例,还是缓存数据的方法实施例,其中计算写回地址的步骤包括:应用当前FIFO控制电路有效数据计数器的值写减去当前将要读取的数据个数,得到写回地址。因为读指针始终指向0,FIFO的写指针就是FIFO控制电路的值(即FIFO控制电路有效数据计数器的值)减去当前要读的数据个数得到的结果。
需要说明的是,无论是先进先出缓冲器的实施例,还是缓存数据的方法实施例,其中确定写回的数据个数的步骤包括:根据发送方发出的发送数据量决定写回的数据个数。
需要说明的是,无论是先进先出缓冲器的实施例,还是缓存数据的方法实施例,其中确定读取的数据个数的步骤包括:根据接收方发出的读数据量决定读取的数据个数。
需要说明的是,无论是先进先出缓冲器的实施例,还是缓存数据的方法实施例,向FIFO写数据时,从写指针处开始,依次将要写的数据写入fifo的移位寄存器中,低位数据写在低地址的位置,高位数据写在高位地址;同时,FIFO控制电路累加写入fifo的数据个数。
需要说明的是,无论是先进先出缓冲器的实施例,还是缓存数据的方法实施例,从FIFO读数据时,由于数据是按照发送方提供的顺序进行存放的,且最低位数据一定存放在0地址,因此,在读取数据的时候一定是从0地址处将需要读取的数据个数依次读出,同时会把高位的数据按照地址大小顺序依次移入到0地址处。读取的数据量就是移位寄存器移位的偏移量。同时,FIFO控制电路需减去读出的FIFO数据个数。
需要说明的是,无论是先进先出缓冲器的实施例,还是缓存数据的方法实施例,同时读写数据的时候,是上面描述向FIFO写数据和从FIFO读数据的综合情况,FIFO低地址的数据将被读取走,具体数据量由接收方发出的读数据个数决定,剩下没有被读取的高地址数据会按照地址大小顺序依次的移入到0地址,将要写回的新数据将被写入移位后的地址后面。FIFO控制电路会加上写入的数据个数,同时减去读取的数据个数。
需要说明的是,移位寄存器是先读后写的,也就是说对同一个地址进行读写的时候,先会将数据读取走,再将新的数据写入到该地址中。而且移位寄存器在移位时,只需要将有效数据进行移位,无效的数据并不需要对其进行移位操作。比如:FIFO中现在有4个有效数据,接下来要读走这4个数据,同时还有4个新的数据要进来,那么会先将这4个数据先取走,再将4个新的数据写进来。这个过程当中,FIFO其它地址的数据都是无效的,并不用进行移位操作。
需要说明的是,无论是先进先出缓冲器的实施例,还是缓存数据的方法实施例,由于接收方读数据的宽度可以是不固定的,因此空标志位(empty)可以根据不同的应用来设定,实际上是由接收方的读取数据宽度来决定该FIFO当前是否为空的状态。为了让FIFO的应用场合更广泛,可以将FIFO控制电路记录的值即有效数据个数作为FIFO输出的状态值。数据接收方将需要读取的数据量和FIFO输出的状态值即有效数据个数进行比较,当有效数据个数小于将要读取的数据量时,可以认为FIFO已经读空,尽管FIFO中此时还可能存放一些有效数据。此时接收方不应该发出读申请。
需要说明的是,无论是先进先出缓冲器的实施例,还是缓存数据的方法实施例,由于发送方写数据的宽度也可以是不固定的,因此满标志位(full)也可以根据不同的应用来设定,实际上由发送方的写取数据宽度来决定该FIFO当前是否为满的状态。为了让FIFO的应用场合更广泛,将FIFO的剩余空间值作为FIFO状态输出。数据发送方将需要发送的数据量和FIFO的剩余空间值进行比较,当FIFO的剩余空间值小于将要发送的数据量时,可以认为FIFO当前已经满了,尽管FIFO中可能还有一定的空间。此时发送方不应该发出写申请。
应用本发明实施例提供的先进先出缓冲器及缓存数据的方法,在不同带宽之间进行数据传输的时候,不需要对数据做任何处理,可以快速,高效的进行数据传输,因而本发明实施例能够支持任意的数据宽度进行FIFO读写,且实现了数据的快速无缝传输。同时,本发明实施例的控制比较简单,只需要控制一个地址指针就能够对FIFO进行读写控制。
下面以直接存储器存取(DMA,Direct Memory Access)方式作为数据发送方,3D加速模块作为数据接收方为例,对本发明再做详细描述。
DMA作为数据发送方,是不受制于本地功能模块的,例如,不受限于本地的3D加速模块,DMA控制器一旦响应了DMA的请求,那么就会按照DMA控制器的要求进行数据发送,并不会考虑本地功能模块的接收情况,直到数据发送完成。假设DMA的数据总线宽度为32bit,那么DMA传输的有效数据有可能是8bit,16bit,24bit,32bit。作为数据接收方的3D加速模块,其接收的数据有三种类型,RGB数据(以rgb888格式为例,一个像素对应的数据量是24bit),深度depth数据(一个像素对应的数据量是16bit),alpha数据(一个像素对应的数据量是8bit)。假设3D加速模块每次渲染都是以32行x32列作为一块来处理的。DMA发送的RGB数据,深度depth数据,alpha数据,3D加速模块会存放到本地的内存(memory)中,为了方便后续3D加速渲染的效率,会将每4个像素点的值存放到一个memory地址中,因此所有memory的深度都应该是256。
不同的memory,其数据宽度是不一样的,对于RGB数据来说,一个地址对应96bit,对于depth数据而言,一个地址对应64bit,对于alpha数据而言,一个地址对应32bit,另外在块(block)不规整以及起始地址不对齐的情况下,DMA下载数据的有效字节数会不一样,memory写回数据的宽度也会不一样。因为block是基于像素点的,在写回时,数据至少是一个像素点所对应的数据,所以可以用字节使能(byte enable)来控制不规则的写回。在表1中,列举了数据缓冲器在不同情况下,读写数据长度的具体情况。
表1
Figure BDA0000048530350000081
由上分析可以得知,作为数据缓冲器的FIFO的写回的数据宽度有可能是1byte,2byte,3byte,4byte四种情况,FIFO读取的数据宽度有可能是1byte,2byte,3byte,4byte,6byte,8byte,9byte,12byte八种情况。是一个非常典型的读写FIFO数据宽度不等长而且可变的情况。
在应用本发明实施例提供的FIFO时,如图4所示,假设写数据宽度为n1,读数据宽度为n2,读地址指针始终指向0地址。整个FIFO的设计分为6个部分,写回控制电路,移位寄存器,读控制电路,写指针控制电路,移位控制电路,FIFO控制电路。先做如下的约定:数据发送方DMA这边可以在任意时刻发送任意字节书的数据,数据接收方3D加速模块在满了4个像素的数据或者最后剩下的不满4个像素的数据时,就发起一次读FIFO的操作。
写回控制电路主要是确定写回的数据个数,然后根据写指针指向的地址,对移位寄存器相应的地址发出写使能和写的数据,写回控制电路的电路结构由多路选择器组成,其是现有已经存在的控制电路,在此不再详细说明。
移位寄存器是存储数据的地方,在本实施例子中宽度是8bit,深度是15,这是考虑到传输最差情况下所需要的缓冲深度值。由移位控制电路来决定其移位操作。当FIFO读使能有效候,移位寄存器就需要做移位的操作,每读出去多少个byte的数据,移位寄存器就向0地址方向移多少个byte。
写指针控制电路用来计算FIFO的写回地址。FIFO控制电路的值(即FIFO控制电路有效数据计数器的值减去将要读取的数据个数,便得到写指针的值。
本实施例中,FIFO控制电路主要包括一个计数器,该计数器用来记录FIFO中的当前时刻有效数据个数,每次写,计数器会累加写数据个数,每次读,计数器会减去读取数据的个数。根据计数器的值即有效数据个数发出空满标志,在本例子中,不需要满(full)标志,读的速度会比写的要块。空(empty)标志由当前下载数据的具体内容来决定,不同的分量的空标志所产生的条件是不同的。因此会根据FIFO计数器的数组输出,由本地功能模块如3D加速模块自己去判断是否为空。
当DMA下载的是RGB数据时:向FIFO中写入的数据量可以是1byte,2byte,3byte,4byte,从FIFO中读出的数据量则有可能是3byte,6byte,9byte,12byte。正常情况下,FIFO计数器的有效数据量小于12byte时,认为FIFO为空。在读当前行的最后一次数据时,FIFO计数器的值即有效数据个数小于剩余像素对应的数据个数时,也认为FIFO为空。
当DMA下载的是depth数据时:向FIFO中写入的数据量可以是1byte,2byte,3byte,4byte,从FIFO中读出的数据量则有可能是2byte,4byte,6byte,8byte。正常情况下,FIFO计数器的值即有效数据量的小于8byte时,认为FIFO为空。在读当前行的最后一次数据时,FIFO计数器的值即有效数据个数小于剩余像素对应的数据个数时,也认为FIFO为空。
当DMA下载的是alpha数据时:向FIFO写入的数据量可以是1byte,2byte,3byte,4byte,从FIFO读出的数据量则有可能是1byte,2byte,3byte,4byte。正常情况下,FIFO计数器的值即有效数据量小于4byte时,认为FIFO为空。在读当前行的最后一次数据时,FIFO计数器的值即有效数据个数小于剩余像素对应的数据个数时,也认为FIFO为空。
至此,对于读写宽度不一致的情况下,不需要对数据做任何处理,就可以快速,高效的进行数据传输,因而本发明实施例能够支持任意的数据宽度进行FIFO读写,且实现了数据的快速无缝传输。同时,本发明实施例的控制比较简单,只需要控制一个地址指针就能够对FIFO进行读写控制。
本发明实施例提供的FIFO同样可以应用在请求DMA上传数据的情况。上传的时候,读FIFO不受本地功能模块影响,因此要保证写FIFO的速度要快,不需要空标志,但是会告诉本地功能模块满标志,只要FIFO没有满,就应该向FIFO中填写数据。其写指针,移位寄存器的控制和DMA下载是一样的。
当然,本发明实施例提供的FIFO还可以用在其它数据传输的地方,只要把FIFO的空满标志传输给数据发送方和数据接收方,就能够实现快速的数据传输,而且控制逻辑也十分的简单。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (9)

1.一种先进先出缓冲器,其特征在于,包括:写指针、写指针控制电路、写回控制电路、移位寄存器,移位控制电路、读指针、读控制电路以及FIFO控制电路,其中,
写指针,用于指向下个数据写回的地址;
写指针控制电路,用于计算写回地址,控制写指针指向该地址;
写回控制电路,用于提取出已排序的待写回数据,将所述待写回的数据写回到移位寄存器;
读指针,用于始终指向移位寄存器中的0地址位;
读控制电路,用于对待读取的数据进行格式处理;
移位寄存器,用于存储数据;
移位控制电路,用于从移位寄存器中读取数据时,控制移位寄存器进行移位操作,每读出去多少个数据,移位寄存器就像0地址方向移动多少;
FIFO控制电路,用于记录移位寄存器中当前有效数据个数,每次写,累加写数据个数,每次读,减去读出数据的个数。
2.根据权利要求1所述的先进先出缓冲器,其特征在于,所述先进先出缓冲器中的FIFO控制电路,还用于获知移位寄存器中存储的有效数据个数小于将要读取的数据量时,向接收方发出空标志。
3.根据权利要求1或2所述的先进先出缓冲器,其特征在于,所述先进先出缓冲器还中的FIFO控制电路,还用于获知移位寄存器中存储的剩余空间小于将要写入的数据量时,向发送方发出满标志。
4.一种缓存数据的方法,其特征在于,应用于用移位寄存器作为存储单元的先进先出缓冲器,所述方法包括:
当需要向先进先出缓冲器中写入数据时,
提取出已排序的待写回数据,将所述待写回的数据写回到移位寄存器,每次写,累加写数据个数;
当需要从先进先出缓冲器中读出数据时,
读指针始终指向移位寄存器中的0地址位;
对待读取的数据进行格式处理;每次读,从所述移位寄存器中当前有效数据个数中减去读出数据的个数,并且,每读出去多少个数据,移位寄存器就像0地址方向移动多少。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在获知移位寄存器中存储的有效数据个数小于将要读取的数据量时,向接收方发出空标志。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:在获知移位寄存器中存储的剩余空间小于将要写入的数据量时,向发送方发出满标志。
7.根据权利要求4所述的方法,其特征在于,计算写回地址的步骤包括:
应用当前FIFO控制电路有效数据计数器的值写减去当前读取的数据个数,得到写回地址。
8.根据权利要求4所述的方法,其特征在于,确定写回的数据个数的步骤包括:
根据发送方发出的发送数据量决定写回的数据个数。
9.根据权利要求4所述的方法,其特征在于,确定读取的数据个数的步骤包括:
根据接收方发出的读数据量决定读取的数据个数。
CN201110050043.7A 2011-03-02 2011-03-02 一种先进先出缓冲器及缓存数据的方法 Active CN102654827B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110050043.7A CN102654827B (zh) 2011-03-02 2011-03-02 一种先进先出缓冲器及缓存数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110050043.7A CN102654827B (zh) 2011-03-02 2011-03-02 一种先进先出缓冲器及缓存数据的方法

Publications (2)

Publication Number Publication Date
CN102654827A true CN102654827A (zh) 2012-09-05
CN102654827B CN102654827B (zh) 2014-05-28

Family

ID=46730454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110050043.7A Active CN102654827B (zh) 2011-03-02 2011-03-02 一种先进先出缓冲器及缓存数据的方法

Country Status (1)

Country Link
CN (1) CN102654827B (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103747253A (zh) * 2013-12-27 2014-04-23 高新兴科技集团股份有限公司 一种基于fifo的视频编码数据传输方法
CN106502922A (zh) * 2016-10-28 2017-03-15 上海顺久电子科技有限公司 一种fifo数据缓存器的数据读写方法及数据缓存器
CN109815181A (zh) * 2019-01-24 2019-05-28 武汉精立电子技术有限公司 一种基于axi协议接口的任意位宽转换方法及装置
CN110704019A (zh) * 2019-08-26 2020-01-17 深圳芯英科技有限公司 数据缓存器及数据读取方法
CN110703240A (zh) * 2019-10-10 2020-01-17 南京莱斯电子设备有限公司 一种基于fpga的雷达区域点迹密度计算方法
WO2020118713A1 (zh) * 2018-12-14 2020-06-18 深圳市汇顶科技股份有限公司 位宽匹配电路、数据写入装置、数据读出装置和电子设备
CN111414148A (zh) * 2020-04-03 2020-07-14 中国人民解放军国防科技大学 面向高性能处理器的混合型fifo数据存储方法及装置
CN111599389A (zh) * 2020-05-13 2020-08-28 芯颖科技有限公司 数据存取方法、数据存取电路、芯片和电子设备
CN112416823A (zh) * 2020-11-15 2021-02-26 珠海市一微半导体有限公司 一种突发模式下的传感器数据读写控制方法、系统及芯片
CN113050385A (zh) * 2021-03-04 2021-06-29 苏州大学 一种dmd光刻机中灰度图像数据存储方法
CN113220607A (zh) * 2021-05-26 2021-08-06 浙江赛思电子科技有限公司 一种基于fifo的数据处理方法
CN113312282A (zh) * 2021-06-10 2021-08-27 京微齐力(北京)科技有限公司 一种fifo读写控制电路、控制方法、芯片以及设备
CN113434545A (zh) * 2021-06-02 2021-09-24 中科驭数(北京)科技有限公司 数据缓存装置及数据提供方法
CN113760795A (zh) * 2021-08-30 2021-12-07 浪潮电子信息产业股份有限公司 一种异步fifo存储器读写控制方法、装置及设备
CN113872886A (zh) * 2021-09-07 2021-12-31 杭州迪普信息技术有限公司 一种报文封装的方法及装置
CN113900974A (zh) * 2021-12-07 2022-01-07 睿思芯科(深圳)技术有限公司 一种存储装置、数据存储方法及相关设备
CN114443524A (zh) * 2022-01-28 2022-05-06 山东云海国创云计算装备产业创新中心有限公司 一种数据传输方法、系统、存储介质及设备
CN115604198A (zh) * 2022-11-29 2023-01-13 珠海星云智联科技有限公司(Cn) 一种网卡控制器、网卡控制方法、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101110259A (zh) * 2007-08-22 2008-01-23 威盛电子股份有限公司 先进先出存储器
CN101261575A (zh) * 2008-02-26 2008-09-10 北京天碁科技有限公司 一种实现不等宽数据传输的异步先进先出存储器及方法
CN101281489A (zh) * 2007-04-03 2008-10-08 中兴通讯股份有限公司 一种先进先出存储器实现方法及装置
WO2008142610A1 (en) * 2007-05-16 2008-11-27 Nxp B.V. Fifo buffer
CN101552041A (zh) * 2009-05-12 2009-10-07 北京中星微电子有限公司 一种fifo存储单元及其实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101281489A (zh) * 2007-04-03 2008-10-08 中兴通讯股份有限公司 一种先进先出存储器实现方法及装置
WO2008142610A1 (en) * 2007-05-16 2008-11-27 Nxp B.V. Fifo buffer
CN101110259A (zh) * 2007-08-22 2008-01-23 威盛电子股份有限公司 先进先出存储器
CN101261575A (zh) * 2008-02-26 2008-09-10 北京天碁科技有限公司 一种实现不等宽数据传输的异步先进先出存储器及方法
CN101552041A (zh) * 2009-05-12 2009-10-07 北京中星微电子有限公司 一种fifo存储单元及其实现方法

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103747253B (zh) * 2013-12-27 2017-04-05 高新兴科技集团股份有限公司 一种基于fifo的视频编码数据传输方法
CN103747253A (zh) * 2013-12-27 2014-04-23 高新兴科技集团股份有限公司 一种基于fifo的视频编码数据传输方法
CN106502922B (zh) * 2016-10-28 2020-02-18 青岛海信电器股份有限公司 一种fifo数据缓存器的数据读写方法及数据缓存器
CN106502922A (zh) * 2016-10-28 2017-03-15 上海顺久电子科技有限公司 一种fifo数据缓存器的数据读写方法及数据缓存器
WO2020118713A1 (zh) * 2018-12-14 2020-06-18 深圳市汇顶科技股份有限公司 位宽匹配电路、数据写入装置、数据读出装置和电子设备
CN109815181A (zh) * 2019-01-24 2019-05-28 武汉精立电子技术有限公司 一种基于axi协议接口的任意位宽转换方法及装置
CN110704019A (zh) * 2019-08-26 2020-01-17 深圳芯英科技有限公司 数据缓存器及数据读取方法
CN110704019B (zh) * 2019-08-26 2020-12-22 深圳芯英科技有限公司 数据缓存器及数据读取方法
CN110703240A (zh) * 2019-10-10 2020-01-17 南京莱斯电子设备有限公司 一种基于fpga的雷达区域点迹密度计算方法
CN111414148A (zh) * 2020-04-03 2020-07-14 中国人民解放军国防科技大学 面向高性能处理器的混合型fifo数据存储方法及装置
CN111599389A (zh) * 2020-05-13 2020-08-28 芯颖科技有限公司 数据存取方法、数据存取电路、芯片和电子设备
CN112416823A (zh) * 2020-11-15 2021-02-26 珠海市一微半导体有限公司 一种突发模式下的传感器数据读写控制方法、系统及芯片
CN112416823B (zh) * 2020-11-15 2024-05-03 珠海一微半导体股份有限公司 一种突发模式下的传感器数据读写控制方法、系统及芯片
CN113050385A (zh) * 2021-03-04 2021-06-29 苏州大学 一种dmd光刻机中灰度图像数据存储方法
CN113220607B (zh) * 2021-05-26 2023-05-12 浙江赛思电子科技有限公司 一种基于fifo的数据处理方法
CN113220607A (zh) * 2021-05-26 2021-08-06 浙江赛思电子科技有限公司 一种基于fifo的数据处理方法
CN113434545A (zh) * 2021-06-02 2021-09-24 中科驭数(北京)科技有限公司 数据缓存装置及数据提供方法
CN113312282A (zh) * 2021-06-10 2021-08-27 京微齐力(北京)科技有限公司 一种fifo读写控制电路、控制方法、芯片以及设备
CN113760795A (zh) * 2021-08-30 2021-12-07 浪潮电子信息产业股份有限公司 一种异步fifo存储器读写控制方法、装置及设备
CN113760795B (zh) * 2021-08-30 2024-04-26 浪潮电子信息产业股份有限公司 一种异步fifo存储器读写控制方法、装置及设备
CN113872886A (zh) * 2021-09-07 2021-12-31 杭州迪普信息技术有限公司 一种报文封装的方法及装置
CN113872886B (zh) * 2021-09-07 2024-03-26 杭州迪普信息技术有限公司 一种报文封装的方法及装置
CN113900974B (zh) * 2021-12-07 2022-04-19 睿思芯科(深圳)技术有限公司 一种存储装置、数据存储方法及相关设备
CN113900974A (zh) * 2021-12-07 2022-01-07 睿思芯科(深圳)技术有限公司 一种存储装置、数据存储方法及相关设备
CN114443524A (zh) * 2022-01-28 2022-05-06 山东云海国创云计算装备产业创新中心有限公司 一种数据传输方法、系统、存储介质及设备
CN115604198A (zh) * 2022-11-29 2023-01-13 珠海星云智联科技有限公司(Cn) 一种网卡控制器、网卡控制方法、设备及介质
CN115604198B (zh) * 2022-11-29 2023-03-10 珠海星云智联科技有限公司 一种网卡控制器、网卡控制方法、设备及介质

Also Published As

Publication number Publication date
CN102654827B (zh) 2014-05-28

Similar Documents

Publication Publication Date Title
CN102654827B (zh) 一种先进先出缓冲器及缓存数据的方法
US5587953A (en) First-in-first-out buffer memory
CN111159075B (zh) 数据传输方法和数据传输装置
US20130254493A1 (en) Cache memory capable of adjusting burst length of write-back data in write-back operation
US10698851B1 (en) Data bit width converter and system on chip thereof
CN113900974B (zh) 一种存储装置、数据存储方法及相关设备
US20190361631A1 (en) Storage device, chip and method for controlling storage device
US11740791B2 (en) Data compression system using base values and methods thereof
JPH05265922A (ja) ダイレクト・メモリ・アクセス・コントローラ
CN101825997A (zh) 一种异步先入先出存储器
JP2007179496A (ja) データ記録装置及びfifo機能実現プログラム
CN105550979A (zh) 一种高数据通量纹理Cache层次结构
CN101236741B (zh) 一种数据读写方法和装置
CN102331922B (zh) 运算装置、高速缓存装置及其控制方法
CN104102552A (zh) 一种消息处理方法及装置
US20180129605A1 (en) Information processing device and data structure
CN105138467B (zh) 数据存取装置、方法及磁共振设备
CN108984148B (zh) 一种基于同步fifo存储器的数据存储的方法及存储器
US5214777A (en) High speed read/modify/write memory system and method
US20110283068A1 (en) Memory access apparatus and method
US20200073595A1 (en) Flash memory controller capable of improving IOPS performance and corresponding method
US6339558B1 (en) FIFO memory device and FIFO control method
US8359446B2 (en) Method for processing data using triple buffering
JP2006072832A (ja) 画像処理システム
CN106919514A (zh) 半导体装置、数据处理系统以及半导体装置控制方法

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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: First-in first-out buffer and data caching method

Effective date of registration: 20171102

Granted publication date: 20140528

Pledgee: China Co truction Bank Corp Guangzhou economic and Technological Development Zone sub branch

Pledgor: Anyka (Guangzhou) Microelectronics Technology Co., Ltd.

Registration number: 2017990001008

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20181227

Granted publication date: 20140528

Pledgee: China Co truction Bank Corp Guangzhou economic and Technological Development Zone sub branch

Pledgor: Anyka (Guangzhou) Microelectronics Technology Co., Ltd.

Registration number: 2017990001008

PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: First-in first-out buffer and data caching method

Effective date of registration: 20190130

Granted publication date: 20140528

Pledgee: China Co truction Bank Corp Guangzhou economic and Technological Development Zone sub branch

Pledgor: Anyka (Guangzhou) Microelectronics Technology Co., Ltd.

Registration number: 2019440000051

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20200320

Granted publication date: 20140528

Pledgee: China Co truction Bank Corp Guangzhou economic and Technological Development Zone sub branch

Pledgor: ANYKA (GUANGZHOU) MICROELECTRONICS TECHNOLOGY Co.,Ltd.

Registration number: 2019440000051

PC01 Cancellation of the registration of the contract for pledge of patent right
CP01 Change in the name or title of a patent holder

Address after: 3 / F, C1 area, innovation building, 182 science Avenue, Science City, Guangzhou, Guangdong 510663

Patentee after: Guangzhou Ankai Microelectronics Co.,Ltd.

Address before: 3 / F, C1 area, innovation building, 182 science Avenue, Science City, Guangzhou, Guangdong 510663

Patentee before: ANYKA (GUANGZHOU) MICROELECTRONICS TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP02 Change in the address of a patent holder

Address after: 510555 No. 107 Bowen Road, Huangpu District, Guangzhou, Guangdong

Patentee after: Guangzhou Ankai Microelectronics Co.,Ltd.

Address before: 3 / F, C1 area, innovation building, 182 science Avenue, Science City, Guangzhou, Guangdong 510663

Patentee before: Guangzhou Ankai Microelectronics Co.,Ltd.

CP02 Change in the address of a patent holder