CN106502922B - 一种fifo数据缓存器的数据读写方法及数据缓存器 - Google Patents

一种fifo数据缓存器的数据读写方法及数据缓存器 Download PDF

Info

Publication number
CN106502922B
CN106502922B CN201610967187.1A CN201610967187A CN106502922B CN 106502922 B CN106502922 B CN 106502922B CN 201610967187 A CN201610967187 A CN 201610967187A CN 106502922 B CN106502922 B CN 106502922B
Authority
CN
China
Prior art keywords
data
fifo
data buffer
bit
buffer
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
Application number
CN201610967187.1A
Other languages
English (en)
Other versions
CN106502922A (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.)
Hisense Visual Technology Co Ltd
Original Assignee
Hisense Electric 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 Hisense Electric Co Ltd filed Critical Hisense Electric Co Ltd
Priority to CN201610967187.1A priority Critical patent/CN106502922B/zh
Publication of CN106502922A publication Critical patent/CN106502922A/zh
Application granted granted Critical
Publication of CN106502922B publication Critical patent/CN106502922B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例提供了一种FIFO数据缓存器的数据读写方法及数据缓存器,涉及计算机领域,解决了现有FIFO数据缓存器不能实现M进N出的数据读取方式问题。该方案包括:当FIFO数据缓存器处于写状态时,获取数据位宽为M‑bit的第一待写入数据,将第一待写入数据缓存在FIFO数据缓存器的数据缓存区中后,将第一待写入数据拆分为M个1‑bit数据块,将M个1‑bit数据块依次存储至FIFO数据缓存器的前M个存储单元中。本发明应用于FIFO数据缓存器。

Description

一种FIFO数据缓存器的数据读写方法及数据缓存器
技术领域
本发明涉及电子技术领域,尤其涉及一种先入先出FIFO数据缓存器的数据读写方法及数据缓存器。
背景技术
目前,在当下的ASIC(英文:Application Specific Integrated Circuit,中文:专用集成电路)设计中,通常通过设置适量级数的FIFO(英文:First Input First Output,中文:先入先出)数据缓存器来进行数据缓存,来防止数据丢失或处理数据故障。FIFO数据缓存器是一种先进先出的数据缓存器,先进入的数据先从FIFO数据缓存器中读出。具体的,现有的FIFO数据缓存器包含多个存储单元,每个存储单元存储的数据位宽相等且为该FIFO数据缓存器的最小单元,因此,现有的FIFO数据缓存器在进行数据写入和读出时,会按照M(M为每个存储单元所能存储的数据的数据位宽)进M出的读写方式进行实现,即现有的FIFO数据缓存器每次只能将数据位宽与其包含的存储单元所能存储的数据位宽M相等的数据写入一个存储单元中,同时每次也只能将一个存储单元中存储的数据位宽为M的数据读出。
但是,随着数据量的不断增大,实际需求的不断增多,现有FIFO数据缓存器的存取方式的设计就无法满足实际的不同存取需求。具体的,现有的FIFO数据缓存器现有的FIFO数据缓存器只能实现M进M出的数据读写方式,而无法实现M进N(N不等于M)出的数据读写方式。
发明内容
本发明的实施例提供一种FIFO数据缓存器的数据读写方法及数据缓存器,解决了现有的FIFO数据缓存器不能实现M进N出的数据读取方式问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种FIFO数据缓存器的数据写入方法,应用于数据缓存器,所述FIFO数据缓存器包括数据位宽为1-bit的存储单元,所述方法包括:
当所述FIFO数据缓存器处于写状态时,获取数据位宽为M-bit的第一待写入数据;
将所述第一待写入数据缓存在所述FIFO数据缓存器的数据缓存区中;
在所述数据缓存区中将所述待写入数据拆分为M个1-bit数据块;将所述M个1-bit数据块依次存储至所述FIFO数据缓存器的前M个存储单元中。
第二方面,提供一种FIFO数据缓存器的数据读取方法,应用于数据缓存器,所述FIFO数据缓存器包括数据位宽为1-bit的存储单元,所述方法包括:
当所述FIFO数据缓存器处于读状态时,从所述FIFO数据缓存器的存储单元中读取N个1-bit数据块存储至所述FIFO数据缓存器的数据缓存区中;
将所述数据缓存区中的所述N个1-bit数据块拼接为1个N-bit位宽的数据,并将N-bit位宽的数据输出。
第三方面,提供一种FIFO数据缓存器,包括数据位宽为1-bit的存储单元与处理单元,其中:
所述处理单元,用于当所述FIFO数据缓存器处于写状态时,获取数据位宽为M-bit的第一待写入数据;将所述第一待写入数据缓存在所述FIFO数据缓存器的数据缓存区中;在所述数据缓存区中将所述第一待写入数据拆分为M个1-bit数据块;将所述M个1-bit数据块依次存储至所述FIFO数据缓存器的前M个存储单元中。
第四方面,提供一种FIFO数据缓存器,包括数据位宽为1-bit的存储单元和处理单元,其中:
所述处理单元用于当所述FIFO数据缓存器处于读状态时,从所述FIFO数据缓存器的存储单元中读取N个1-bit数据块存储至所述FIFO数据缓存器的数据缓存区中;将所述数据缓存区中的所述N个1-bit数据块拼接为1个N-bit位宽的数据,并将N-bit位宽的数据输出。
本发明实施例提供的FIFO数据缓存器的数据读写方法及数据缓存器,该FIFO数据缓存器包括数据位宽为1-bit的存储单元,当FIFO数据缓存器处于写状态时,将数据位宽为M-bit的第一待写入数据缓存在FIFO数据缓存器的数据缓存区中,并拆分为M个1-bit数据块,之后依次存储至FIFO数据缓存器的前M个的存储单元中。当FIFO数据缓存器处于读状态时,从FIFO数据缓存器的存储单元中读取N个1-bit数据块存储至FIFO数据缓存器的数据缓存区中后,将数据缓存区中的N个1-bit数据块拼接为1个N-bit位宽的数据,并将N-bit位宽的数据输出。由于该FIFO数据缓存器的所有存储单元能存储的数据的数据位宽都为1-bit,在写入数据的时,会按照FIFO数据缓存器预先设置的规则,即设置M进N的读写方式,将写入的M-bit数据进行拆分后存储至存储单元,以便读取的N个存储单元的数据均是写入FIFO数据缓存器的数据,没有冗余项,对读取出的数据按照预设规则进行拼接,就可以实现M进N出。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种FIFO数据缓存器的寄存器存储格式及地址示意图;
图2为本发明实施例提供的一种FIFO数据缓存器的数据写入方法示意图;
图3为本发明实施例提供的一种FIFO数据缓存器的数据读取方法示意图;
图4为本发明实施例提供的一种FIFO数据缓存器的数据读写存储示意图;
图5为本发明实施例提供的另一种FIFO数据缓存器的数据读写存储示意图;
图6为本发明实施例提供的一种FIFO数据缓存器结构示意图;
图7为本发明实施例提供的另一种FIFO数据缓存器结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本申请中所涉及的部分术语进行解释,以方便读者理解:
“FIFO数据缓存器的数据位宽”,也就是英文资料里常看到的THE WIDTH,它指的是FIFO数据缓存器一次读写操作的数据位,就像MCU(英文:Microcontroller Uni,中文:微控制单元)有8位和16位,ARM32位等等,FIFO的宽度在单片成品IC中是固定的,也有可选择的,如果用FPGA(英文:Field-Programmable Gate Array,中文:现场可编程门阵列)自己实现一个FIFO,其数据位,也就是宽度是可以自己定义的。
“FIFO数据缓存器的深度”,也就是英文资料里常看到的THE DEEPTH,它指的是FIFO数据缓存器包括的存储单元个数。如一个8位的FIFO数据缓存器,若深度为8,它可以存储8个8位的数据,深度为12,就可以存储12个8位的数据。
为了使本领域的技术人员更好的理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。
图1为本发明实施例提供的FIFO数据缓存器的存储单元存储格式及地址结构示意图,参照图1所示,该FIFO数据缓存器深度为X,即包括X个存储单元,每个存储单元能够存储1-bit的数据块,其中,X>=(M+N)。其中,该FIFO数据缓存器中的X个存储单元对应的地址为0~X-1,同时,为了统一编码,该FIFO数据缓存器中的X个存储单元对应的编号分别为 1~X,其中,存储单元X为MSB(英文:Most Significant Bit,中文:最高有效位),存储单元1为LSB(英文:Least Significant Bit,中文:最低有效位)。需要说明的是,上述的编号仅仅是一种实例,实际应用时,可以按需设置。此外,本发明提供的FIFO数据缓存器还包括数据缓存区,该数据缓存区可以为一个也可以是多个,当该在数据缓存区为一个时,则该数据缓存区即可以对写入至该数据缓存区的数据进行拆分处理,还可以对从该FIFO数据缓存器中读取出的数据进行拼接处理;当该数据缓存区为至少两个时,则其中至少一个数据缓存区用于对写入至该数据缓存区的数据进行拆分处理,剩余数据缓存区用于对从该FIFO数据缓存器中读取出的数据进行拼接处理,即将数据的拆分处理与拼接处理分为不同数据缓存区进行处理。
需要说明的是,本文中的“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
需要说明的是,本发明实施例中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个数据包是指两个或两个以上的数据包。
需要说明的是,本发明实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
下面将结合本发明实施例的说明书附图,对本发明实施例提供的技术方案进行说明。显然,所描述的是本发明的一部分实施例,而不是全部的实施例。需要说明的是,下文所提供的任意多个技术方案中的部分或全部技术特征在不冲突的情况下,可以结合使用,形成新的技术方案。
基于上述内容,本发明实施例提供一种数据缓存器的数据写入方法,应用于数据缓存器,FIFO数据缓存器包括数据位宽为1-bit的存储单元,如图2所示,该方法包括如下步骤:
101、当FIFO数据缓存器处于写状态时,获取数据位宽为M-bit的第一待写入数据。
示例性的,对于FIFO数据缓存器来说,其输入的待写入数据的数据位宽是预先设定的,当待写入数据的数据位宽为M-bit时,该FIFO数据缓存器的写入方式是M进。
具体的,在获取数据位宽为M-bit的第一待写入数据之前,上述步骤101具体包括:
101a、判断FIFO数据缓存器当前的工作状态,工作状态包括写状态和读状态。
示例性的,FIFO数据缓存器一个写状态,一个读状态,当写状态ready时,可以写入数据,当写状态为unready时,不能写入数据,当读状态ready时,可以读取数据,当读状态为unready时,不能读出数据,并且读写状态对于各自端来讲独立操作。
具体的,当FIFO数据缓存器中未存储数据的存储单元的个数大于等于M时,FIFO数据缓存器处于写状态,即FIFO数据缓存器能够写入M-bit的待写入的数据块;当FIFO数据缓存器中存储数据的存储单元的个数大于等于N时,FIFO数据缓存器处于读状态,即FIFO数据缓存器能够读出N-bit的数据块;当FIFO数据缓存器中未存储数据的存储单元的个数大于等于M时且FIFO数据缓存器中存储数据的存储单元的个数大于等于N时即处于读状态的同时又处于写状态。
102、将第一待写入数据缓存在FIFO数据缓存器的数据缓存区中。
103、在数据缓存区中将第一待写入数据拆分为M个1-bit数据块。
104、将M个1-bit数据块依次存储至FIFO数据缓存器的前M个存储单元中。
可选的,当N大于M,且FIFO数据缓存器的深度X大于2M时,将M个1-bit数据块依次存储至FIFO数据缓存器的前M个存储单元中具体包括:
104a、将FIFO数据缓存器的前M个存储单元中存储的数据块整体移位至FIFO数据缓存器的第M+1至第2M个存储单元中。
104b、获取数据位宽为M-bit的第二待写入数据。
104c、将第二待写入数据缓存在FIFO数据缓存器的数据缓存区中。
104d、在数据缓存区中将第二待写入数据拆分为M个1-bit数据块。
104e、将M个1-bit数据块依次存储至FIFO数据缓存器的前M个存储单元中。
示例性的,当X>TM(T大于等于2)时,重复上述移位与存储过程,需要说明的是,上述FIFO数据缓存器的深度X大于2M,只是一种示例,均在本发明的保护范围之内。
本发明实施例提供的FIFO数据缓存器的数据写入方法,当FIFO数据缓存器处于写状态时,将数据位宽为M-bit的第一待写入数据缓存在FIFO数据缓存器的数据缓存区中,并拆分为M个1-bit数据块,之后依次存储至FIFO数据缓存器的前M个的存储单元中。由于该FIFO数据缓存器的所有存储单元能存储的数据的数据位宽都为1-bit,在写入数据的时,会按照FIFO数据缓存器预先设置的规则,即设置M进N的读写方式,将写入的M-bit数据进行拆分后存储至存储单元,以便读取的N个存储单元的数据均是写入FIFO数据缓存器的数据,没有冗余项,对读取出的数据按照预设规则进行拼接,就可以实现M进N出。
本发明实施例提供一种数据缓存器的数据读取方法,应用于数据缓存器,FIFO数据缓存器包括数据位宽为1-bit的存储单元,如图3所示,该方法包括如下步骤:
201、当FIFO数据缓存器处于读状态时,从FIFO数据缓存器的存储单元中读取N个1-bit数据块存储至FIFO数据缓存器的数据缓存区中。
具体的,步骤201之前还包括如下步骤:
201a、判断FIFO数据缓存器当前的工作状态,工作状态包括写状态和读状态。
具体的,当FIFO数据缓存器中未存储数据的存储单元的个数大于等于M时,FIFO数据缓存器处于写状态,即FIFO数据缓存器能够写入M-bit的待写入的数据块;当FIFO数据缓存器中存储数据的存储单元的个数大于等于N时,FIFO数据缓存器处于读状态,即FIFO数据缓存器能够读出N-bit的数据块;当FIFO数据缓存器中未存储数据的存储单元的个数大于等于M时且FIFO数据缓存器中存储数据的存储单元的个数大于等于N时即处于读状态的同时又处于写状态。
202、将数据缓存区中的N个1-bit数据块拼接为1个N-bit位宽的数据,并将N-bit位宽的数据输出。
示例性的,上述的数据缓存区还用于将N个1-bit的数据块拼接为1个N-bit的数据块。
示例性的,对于FIFO数据缓存器来说,其输出的待读出数据的数据位宽是预先设定的,当待读出数据的数据位宽为N-bit时,该FIFO数据缓存器的读出方式是N出的。
示例性的,如图4所示的一种FIFO数据缓存器的数据读写存储示意图,当M-bit的待写入数据在FIFO数据缓存器中数据缓存区进行拆分后,存储在如图4所示的区域1中,当FIFO数据缓存器中未存储数据的存储单元的个数大于等于M时且FIFO数据缓存器中存储数据的存储单元的个数小于N时,FIFO数据缓存器的写状态=ready,读状态=unready,将FIFO数据缓存器的前M个存储单元中存储的数据块整体移位至FIFO数据缓存器的第M+1至第2M个存储单元中,如图4所示的区域2中。当TM>N时,第T次写入M-bit的待写入数据时,FIFO数据缓存器中存储数据的存储单元的个数大于等于N时,FIFO数据缓存器读状态=ready,将如图4所示的区域3中的数据块读出,剩余的数据块为如图4所示的区域4。
本发明实施例提供的FIFO数据缓存器的数据读取方法,当FIFO数据缓存器处于读状态时,从FIFO数据缓存器的存储单元中读取N个1-bit数据块存储至FIFO数据缓存器的数据缓存区中后,将数据缓存区中的N个1-bit数据块拼接为1个N-bit位宽的数据块,并将N-bit位宽的数据输出。由于该FIFO数据缓存器的所有存储单元能存储的数据的数据位宽都为1-bit,在读取时,会按照FIFO数据缓存器预先设置的规则,即设置M进N的读写方式,读取N个存储单元的数据,且这N个数据均是写入FIFO数据缓存器的数据,没有冗余项,对读取出的数据按照预设规则进行拼接,就可以实现M进N出。
示例性的,参照图5所示的另一种FIFO数据缓存器的读写存储示意图,若FIFO数据缓存器的深度为X,X=M+N,假设N>M,且2M>N,在初始化t0状态(即该FIFO数据缓存器未存储数据块)时,FIFO数据缓存器中未存储数据的存储单元的个数等X,大于M,FIFO数据缓存器处于写状态,写状态=ready,该FIFO数据缓存器中存储数据的存储单元的个数等于0,小于N,FIFO数据缓存器读状态=unready,即不进行读出操作,此时,FIFO指针为Index=0,写状态=ready,读状态=unready。
t1状态(写入第一待写入数据),第一待写入M-bit数据块写入FIFO数据缓存器,并在数据缓存区进行拆分,并存储至FIFO数据缓存器的前M个存储单元中,如图5所示的区域1中,此时,FIFO数据缓存器中未存储数据的存储单元的个数等N,大于M,FIFO数据缓存器处于写状态,写状态=ready,该FIFO数据缓存器中存储数据的存储单元的个数等于M,小于N,FIFO数据缓存器读状态=unready,即不进行读出操作,此时,FIFO指针为Index=M,写状态=ready,读状态=unready。
t2状态(写入第二待写入数据),将FIFO数据缓存器的前M个存储单元中存储的数据块整体移位至FIFO数据缓存器的第M+1至第2M个存储单元中,如图5所示的t2状态的区域2中,将第二待写入数据缓存在FIFO数据缓存器的数据缓存区中,在数据缓存区中将第二待写入数据拆分为M个1-bit数据块,将M个1-bit数据块依次存储至FIFO数据缓存器的前M个存储单元中,如图5所示的t2状态的区域1中。此时,FIFO数据缓存器中未存储数据的存储单元的个数等N-M,小于M,FIFO数据缓存器处于写状态=unready,即不进行读写入操作,该FIFO数据缓存器中存储数据的存储单元的个数等于2M,大于N,FIFO数据缓存器处于读状态,读状态=ready,即进行读出操作,此时,将N个1-bit的数据块读出至从FIFO数据缓存器的存储单元中读取N个1-bit数据块(即将如图5所示的t2状态的区域3中)存储至FIFO数据缓存器的数据缓存区,并在数据缓存区将N个1-bit拼接为1个N-bit的数据后输出。此时,FIFO数据缓存器中未存储数据的存储单元的个数等2N-M,大于M,FIFO数据缓存器处于写状态,写状态=ready,该FIFO数据缓存器中存储数据的存储单元的个数等于2M-N(即如图5所示的t2状态的区域4中),小于N,FIFO数据缓存器读状态=unready,即不能进行读出操作,此时,Index=2M-N,写状态=ready,读状态=unready。
t3状态(写入第三待写入数据),将FIFO数据缓存器的前2M-N个存储单元中存储的数据块整体移位至FIFO数据缓存器的第M+1至第3M-N个存储单元中,如图5所示的t3状态的区域2中,将第三待写入数据缓存在FIFO数据缓存器的数据缓存区中,在数据缓存区中将第二待写入数据拆分为M个1-bit数据块,将M个1-bit数据块依次存储至FIFO数据缓存器的前M个存储单元中,如图5所示的t3状态的区域1中,此时,FIFO数据缓存器中未存储数据的存储单元的个数等2(N-M),当2(N-M)大于M时,FIFO数据缓存器处于写状态,写状态=ready,当2(N-M)小于M时,FIFO数据缓存器写状态=unready,该FIFO数据缓存器中存储数据的存储单元的个数等于3M-N,当3M-N大于等于N时,FIFO数据缓存器处于读状态,读状态=ready,当3M-N小于N时,FIFO数据缓存器读状态=unready。
示例性的,t4以及之后的状态,会重复t2的过程,并根据当FIFO数据缓存器中未存储数据的存储单元的个数大于等于M时,FIFO数据缓存器处于写状态,即FIFO数据缓存器能够写入M-bit的待写入的数据块。当FIFO数据缓存器中存储数据的存储单元的个数大于等于N时,FIFO数据缓存器处于读状态,即FIFO数据缓存器能够读出N-bit的数据块。
本发明提供一种FIFO数据缓存器,包括多个数据位宽为1-bit的存储单元31与处理单元32,其中:
处理单元32,用于当FIFO数据缓存器处于写状态时,获取数据位宽为M-bit的第一待写入数据;将第一待写入数据缓存在FIFO数据缓存器的数据缓存区中;在数据缓存区中将第一待写入数据拆分为M个1-bit数据块;将M个1-bit数据块依次存储至FIFO数据缓存器的前M个存储单元31中。
可选的,处理单元32还用于判断FIFO数据缓存器当前的工作状态,工作状态包括写状态和读状态,当FIFO数据缓存器中未存储数据的存储单元31的个数大于等于M时,FIFO数据缓存器处于写状态;当FIFO数据缓存器中存储数据的存储单元31的个数大于等于N时,FIFO数据缓存器处于读状态。
可选的,当N大于M,且FIFO数据缓存器的深度X大于2M时,处理单元32还用于:
将FIFO数据缓存器的前M个存储单元31中存储的数据块整体移位至FIFO数据缓存器的第M+1至第2M个存储单元31中;获取数据位宽为M-bit的第二待写入数据;将第二待写入数据缓存在FIFO数据缓存器的数据缓存区中;在数据缓存区中将第二待写入数据拆分为M个1-bit数据块;将M个1-bit数据块依次存储至FIFO数据缓存器的前M个存储单元31中。
本发明实施例提供的FIFO数据缓存器,当FIFO数据缓存器处于写状态时,将数据位宽为M-bit的第一待写入数据缓存在FIFO数据缓存器的数据缓存区中,并拆分为M个1-bit数据块,之后依次存储至FIFO数据缓存器的前M个的存储单元中。由于该FIFO数据缓存器的所有存储单元能存储的数据的数据位宽都为1-bit,在写入数据的时,会按照FIFO数据缓存器预先设置的规则,即设置M进N的读写方式,将写入的M-bit数据进行拆分后存储至存储单元,以便读取的N个存储单元的数据均是写入FIFO数据缓存器的数据,没有冗余项,对读取出的数据按照预设规则进行拼接,就可以实现M进N出。
本发明提供一种FIFO数据缓存器,包括多个数据位宽为1-bit的存储单元41与处理单元42,其中:
处理单元42用于当FIFO数据缓存器处于读状态时,从FIFO数据缓存器的存储单元中41读取N个1-bit数据块存储至FIFO数据缓存器的数据缓存区中;将数据缓存区中的N个1-bit数据块拼接为1个N-bit位宽的数据,并将N-bit位宽的数据输出。
可选的,处理单元42还用于判断FIFO数据缓存器当前的工作状态,工作状态包括写状态和读状态,当FIFO数据缓存器中未存储数据的存储单元41的个数大于等于M时,FIFO数据缓存器处于写状态;当FIFO数据缓存器中存储数据的存储单元41的个数大于等于N时,FIFO数据缓存器处于读状态。
本发明实施例提供的FIFO数据缓存器,当FIFO数据缓存器处于读状态时,从FIFO数据缓存器的存储单元中读取N个1-bit数据块存储至FIFO数据缓存器的数据缓存区中后,将数据缓存区中的N个1-bit数据块拼接为1个N-bit位宽的数据块。由于该FIFO数据缓存器的所有存储单元能存储的数据的数据位宽都为1-bit,在读取时,会按照FIFO数据缓存器预先设置的规则,即设置M进N的读写方式,读取N个存储单元的数据,且这N个数据均是写入FIFO数据缓存器的数据,没有冗余项,对读取出的数据按照预设规则进行拼接,就可以实现M进N出。
需要说明的是,在具体实现过程中,上述如图2、3所示的方法流程中FIFO数据缓存器所执行的各步骤均可以通过硬件形式的处理器执行存储器中存储的软件形式的计算机执行指令实现,为避免重复,此处不再赘述。而上述FIFO数据缓存器所执行的动作所对应的程序均可以以软件形式FIFO数据缓存器的存储器中,以便于处理器调用执行以上各个单元对应的操作。
上文中的存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD);还可以包括上述种类的存储器的组合。
上文所提供的设备中的处理器可以是一个处理器,也可以是多个处理元件的统称。例如,处理器可以为中央处理器(central processing unit,CPU;也可以为其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等;还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种FIFO数据缓存器的数据读写方法,其特征在于,应用于FIFO数据缓存器,所述FIFO数据缓存器包括数据位宽为1-bit的存储单元,所述方法包括:
当所述FIFO数据缓存器处于写状态时,获取数据位宽为M-bit的第一待写入数据;
将所述第一待写入数据缓存在所述FIFO数据缓存器的数据缓存区中;
在所述数据缓存区中将所述第一待写入数据拆分为M个1-bit数据块;
将所述M个1-bit数据块依次存储至所述FIFO数据缓存器的前M个存储单元中;
当所述FIFO数据缓存器处于读状态时,从所述FIFO数据缓存器的存储单元中读取N个1-bit数据块存储至所述FIFO数据缓存器的数据缓存区中;
将所述数据缓存区中的所述N个1-bit数据块拼接为1个N-bit位宽的数据,并将N-bit位宽的数据输出。
2.根据权利要求1所述的方法,其特征在于,所述获取数据位宽为M-bit的待写入数据之前,所述方法还包括:
判断所述FIFO数据缓存器当前的工作状态,所述工作状态包括写状态和读状态;
当所述FIFO数据缓存器中未存储数据的存储单元的个数大于等于M时,所述FIFO数据缓存器处于写状态;
当所述FIFO数据缓存器中存储数据的存储单元的个数大于等于N时,所述FIFO数据缓存器处于读状态。
3.根据权利要求2所述的方法,其特征在于,当N大于M,且所述FIFO数据缓存器的深度X大于2M时,所述将所述M个1-bit数据块依次存储至所述FIFO数据缓存器的前M个存储单元中具体包括:
将所述FIFO数据缓存器的前M个存储单元中存储的数据块移动至所述FIFO数据缓存器的第M+1至第2M个存储单元中;
获取数据位宽为M-bit的第二待写入数据;
将所述第二待写入数据缓存在所述FIFO数据缓存器的数据缓存区中;
在所述数据缓存区中将所述第二待写入数据拆分为M个1-bit数据块;
将所述M个1-bit数据块依次存储至所述FIFO数据缓存器的前M个存储单元中。
4.根据权利要求1所述的方法,其特征在于,所述从所述FIFO数据缓存器的寄存器中读取N个1-bit数据块存储至所述FIFO数据缓存器的数据缓存区中之前,所述方法包括:
判断所述FIFO数据缓存器当前的工作状态,所述工作状态包括写状态和读状态;
当所述FIFO数据缓存器中未存储数据的存储单元的个数大于等于M时,所述FIFO数据缓存器处于写状态;
当所述FIFO数据缓存器中存储数据的存储单元的个数大于等于N时,所述FIFO数据缓存器处于读状态。
5.一种FIFO数据缓存器,其特征在于,包括数据位宽为1-bit的存储单元与处理单元,其中:
所述处理单元,用于当所述FIFO数据缓存器处于写状态时,获取数据位宽为M-bit的第一待写入数据;将所述第一待写入数据缓存在所述FIFO数据缓存器的数据缓存区中;在所述数据缓存区中将所述第一待写入数据拆分为M个1-bit数据块;将所述M个1-bit数据块依次存储至所述FIFO数据缓存器的前M个存储单元中;
所述处理单元用于当所述FIFO数据缓存器处于读状态时,从所述FIFO数据缓存器的存储单元中读取N个1-bit数据块存储至所述FIFO数据缓存器的数据缓存区中;将所述数据缓存区中的所述N个1-bit数据块拼接为1个N-bit位宽的数据,并将N-bit位宽的数据输出。
6.根据权利要求5所述的FIFO数据缓存器,其特征在于,所述处理单元还用于:
判断所述FIFO数据缓存器当前的工作状态,所述工作状态包括写状态和读状态;
当所述FIFO数据缓存器中未存储数据的存储单元的个数大于等于M时,所述FIFO数据缓存器处于写状态;
当所述FIFO数据缓存器中存储数据的存储单元的个数大于等于N时,所述FIFO数据缓存器处于读状态。
7.根据权利要求5所述的FIFO数据缓存器,其特征在于,当N大于M,且所述FIFO数据缓存器的深度X大于2M时,所述处理单元还用于:
将所述FIFO数据缓存器的前M个存储单元中存储的数据块移动至所述FIFO数据缓存器的第M+1至第2M个存储单元中;
获取数据位宽为M-bit的第二待写入数据;
将所述第二待写入数据缓存在所述FIFO数据缓存器的数据缓存区中;
在所述数据缓存区中将所述第二待写入数据拆分为M个1-bit数据块;
将所述M个1-bit数据块依次存储至所述FIFO数据缓存器的前M个存储单元中。
8.根据权利要求5所述的FIFO数据缓存器,其特征在于,所述处理单元还用于:
判断所述FIFO数据缓存器当前的工作状态,所述工作状态包括写状态和读状态;
当所述FIFO数据缓存器中未存储数据的存储单元的个数大于等于M时,所述FIFO数据缓存器处于写状态;
当所述FIFO数据缓存器中存储数据的存储单元的个数大于等于N时,所述FIFO数据缓存器处于读状态。
CN201610967187.1A 2016-10-28 2016-10-28 一种fifo数据缓存器的数据读写方法及数据缓存器 Active CN106502922B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610967187.1A CN106502922B (zh) 2016-10-28 2016-10-28 一种fifo数据缓存器的数据读写方法及数据缓存器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610967187.1A CN106502922B (zh) 2016-10-28 2016-10-28 一种fifo数据缓存器的数据读写方法及数据缓存器

Publications (2)

Publication Number Publication Date
CN106502922A CN106502922A (zh) 2017-03-15
CN106502922B true CN106502922B (zh) 2020-02-18

Family

ID=58322804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610967187.1A Active CN106502922B (zh) 2016-10-28 2016-10-28 一种fifo数据缓存器的数据读写方法及数据缓存器

Country Status (1)

Country Link
CN (1) CN106502922B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108427982A (zh) * 2018-03-16 2018-08-21 中国联合网络通信集团有限公司 一种数据读写方法及装置
CN110554886B (zh) * 2018-05-30 2021-12-10 赛灵思公司 数据拆分结构、方法及其片上实现
CN110554852B (zh) * 2018-05-31 2021-11-12 赛灵思公司 数据拼接结构、方法及其片上实现
CN110134342A (zh) * 2019-05-28 2019-08-16 首都师范大学 数据近似方法及系统、存储方法及系统、读取方法及系统
CN110704019B (zh) * 2019-08-26 2020-12-22 深圳芯英科技有限公司 数据缓存器及数据读取方法
CN111599389B (zh) * 2020-05-13 2022-09-06 芯颖科技有限公司 数据存取方法、数据存取电路、芯片和电子设备
CN113934378B (zh) * 2021-11-01 2024-04-19 新华三技术有限公司合肥分公司 一种数据缓存方法、逻辑装置和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101261575A (zh) * 2008-02-26 2008-09-10 北京天碁科技有限公司 一种实现不等宽数据传输的异步先进先出存储器及方法
CN101825997A (zh) * 2010-01-28 2010-09-08 北京天碁科技有限公司 一种异步先入先出存储器
CN102508631A (zh) * 2011-09-26 2012-06-20 福建星网锐捷网络有限公司 用于写入任意字节数据的fifo的写入数据处理装置
CN102654827A (zh) * 2011-03-02 2012-09-05 安凯(广州)微电子技术有限公司 一种先进先出缓冲器及缓存数据的方法
CN103729312A (zh) * 2012-10-11 2014-04-16 中国航空工业集团公司第六三一研究所 基于异步fifo的多路异步数据同步方法
CN103853522A (zh) * 2012-12-06 2014-06-11 辉达公司 折叠式fifo存储器生成器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100449721B1 (ko) * 2002-05-20 2004-09-22 삼성전자주식회사 서로 다른 데이터 버스 폭을 갖는 장치들을 위한인터페이스 및 이를 이용한 데이터 전송방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101261575A (zh) * 2008-02-26 2008-09-10 北京天碁科技有限公司 一种实现不等宽数据传输的异步先进先出存储器及方法
CN101825997A (zh) * 2010-01-28 2010-09-08 北京天碁科技有限公司 一种异步先入先出存储器
CN102654827A (zh) * 2011-03-02 2012-09-05 安凯(广州)微电子技术有限公司 一种先进先出缓冲器及缓存数据的方法
CN102508631A (zh) * 2011-09-26 2012-06-20 福建星网锐捷网络有限公司 用于写入任意字节数据的fifo的写入数据处理装置
CN103729312A (zh) * 2012-10-11 2014-04-16 中国航空工业集团公司第六三一研究所 基于异步fifo的多路异步数据同步方法
CN103853522A (zh) * 2012-12-06 2014-06-11 辉达公司 折叠式fifo存储器生成器

Also Published As

Publication number Publication date
CN106502922A (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
CN106502922B (zh) 一种fifo数据缓存器的数据读写方法及数据缓存器
US10685002B2 (en) Radix sort acceleration using custom asic
US10044370B1 (en) Lossless binary compression in a memory constrained environment
US11314441B2 (en) Block cleanup: page reclamation process to reduce garbage collection overhead in dual-programmable NAND flash devices
KR102189824B1 (ko) 메모리 장치의 단위 어레이, 이를 포함하는 메모리 장치 및 메모리 시스템
US10318165B2 (en) Data operating method, device, and system
US9093170B2 (en) Multi-level cell (MLC) non-volatile memory data reading method and apparatus
US10396816B2 (en) Pad encoding and decoding
US20170039164A1 (en) Extending remote direct memory access operations for storage class memory access
CN107807886B (zh) 闪存存储器中的索引管理
KR20130048394A (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US20160182085A1 (en) Path encoding and decoding
KR101331738B1 (ko) 비휘발성 메모리를 위한 수정된 판독 동작
WO2020118713A1 (zh) 位宽匹配电路、数据写入装置、数据读出装置和电子设备
EP4020220A1 (en) Utilizing nand buffer for dram-less multilevel cell programming
US9384823B2 (en) SRAM array comprising multiple cell cores
US10474567B2 (en) Multi-bit data representation framework to enable dual program operation on solid-state flash devices
US9735804B2 (en) Path encoding and decoding
US20120059999A1 (en) Methods and systems for storing variable width stack elements in a single memory stack
US9544229B2 (en) Packet processing apparatus and packet processing method
JP2013200802A (ja) 半導体記憶装置
CN116719773A (zh) 一种fpga配置方法及装置
KR20210052059A (ko) 반도체장치
GB2533391A (en) Wall encoding and decoding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190710

Address after: 266100 Zhuzhou Road, Laoshan District, Qingdao, Shandong Province, No. 151

Applicant after: Qingdao Hisense Electric Co., Ltd.

Address before: 201203 Shanghai Pudong New Area Huatuo Road 68 Pioneer Source North District 7 buildings 2 floors

Applicant before: HUAYA MICROELECTRONICS (SHANGHAI) CO.,LTD.

GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No.

Patentee after: Hisense Video Technology Co.,Ltd.

Address before: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No.

Patentee before: HISENSE ELECTRIC Co.,Ltd.