CN108108148B - 一种数据处理方法和装置 - Google Patents
一种数据处理方法和装置 Download PDFInfo
- Publication number
- CN108108148B CN108108148B CN201611044388.0A CN201611044388A CN108108148B CN 108108148 B CN108108148 B CN 108108148B CN 201611044388 A CN201611044388 A CN 201611044388A CN 108108148 B CN108108148 B CN 108108148B
- Authority
- CN
- China
- Prior art keywords
- data
- pointers
- memory
- processed
- block
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods 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)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
本发明实施例提供了数据处理方法和装置,用于先入先出存储器,先入先出存储器包括多个存储块,每个存储块包括多个存储单元,第一套指针设置为指示特定存储块,第二套指针设置为指示特定存储单元。所述方法包括:确定第一套指针和第二套指针指示的第一存储器地址作为初始位置;根据待处理的第一数据与上次处理的第二数据是否位于相同数据块确定修正位置,当待处理的第一数据与上次处理的第二数据位于相同数据块时,第一套指针不移动,将第一存储器地址作为修正位置,第一数据与第二数据数据处理类型相同;从修正位置开始处理第一数据。本发明实施例的数据处理装置包括初始位置确定单元、修正位置确定单元和处理单元。
Description
技术领域
本发明的实施例涉及计算机及电子技术领域,尤其涉及一种数据处理方法和装置。
背景技术
在数据传输或处理过程中,经常会用到先入先出(FIFO,First In First Out)作为数据存储器,或用来匹配不同传输速度之间的数据传输。FIFO是一种典型的数据缓存方法,先到达的数据先被写入并且先被读出存储器,当数据来不及被读出处理时,就会被安排在FIFO队列中。FIFO队列不对报文进行分类,当报文进入或接收的速度大于发送的速度时,FIFO按报文到达接口的先后顺序让报文进入队列,同时,FIFO在队列的出口让报文按进队的顺序出队,先进的报文将先出队,后进的报文将后出队。FIFO具有高存储利用率、处理简单、灵活、开销小等诸多优点,是现代数字系统中广泛使用的基础模块。
然而,数据传输和存储一般是以数据块(下文简称为帧)形式进行的,比如在通信中各接口之间,信息通常以帧为单位进行传输。当FIFO被用来存储帧时,为效率起见,存储空间是共享的。因此,在这种情况下,当发生严重系统错误时,例如读时钟和/或写时钟发生错误,或者FIFO溢出或下溢,就会导致不同帧中的数据错乱。并且,除非系统重启,这种错误是没有办法自修复的。比如在音频应用中,这一错误会导致不同的采样样本被组合为一个样本,从而出现不可修复的噪音。
发明内容
本发明实施例的目的在于提供一种数据处理方法和装置,以解决FIFO中数据错乱发生时自动恢复的技术问题。
本发明的一个实施例提供了一种数据处理方法,用于先入先出存储器,所述先入先出存储器中的存储空间包括多个存储块,每个所述存储块包括多个存储单元,其中,第一套指针设置为指示所述多个存储块的特定存储块,第二套指针设置为指示所述存储块内多个存储单元中的特定存储单元,所述方法包括:确定所述第一套指针和所述第二套指针指示的第一存储器地址作为初始位置;根据待处理的第一数据与上次处理的第二数据是否位于相同数据块确定所述第一套指针和第二套指针指示的修正位置,其中当待处理的第一数据与上次处理的第二数据位于相同数据块时,所述第一套指针不移动,将所述第一存储器地址作为所述修正位置,所述第一数据与所述第二数据的数据处理类型相同;从所述修正位置开始处理所述第一数据。
本发明的另一实施例提供了一种数据处理装置,用于先入先出存储器,所述先入先出存储器中的存储空间包括多个存储块,每个所述存储块包括多个存储单元,其中,第一套指针设置为指示所述多个存储块的特定存储块,第二套指针设置为指示所述存储块内多个存储单元中的特定存储单元,所述装置包括:初始位置确定单元,配置为确定所述第一套指针和所述第二套指针指示的第一存储器地址作为初始位置;修正位置确定单元,配置为根据待处理的第一数据与上次处理的第二数据是否位于相同数据块确定所述第一套指针和第二套指针指示的修正位置,其中当待处理的第一数据与上次处理的第二数据位于相同数据块时,所述第一套指针不移动,将所述第一存储器地址作为所述修正位置,所述第一数据与所述第二数据的数据处理类型相同;处理单元,配置为从所述修正位置开始处理所述第一数据。
在根据本发明实施例的技术方案中,可以通过第一套指针和第二套指针的嵌套结构确定每个数据块所对应的FIFO中存储块的位置,当需要读取/写入的数据不在新的数据块时,其所对应的存储块也不会发生变化。因此,在这种情况下,即使由于时钟同步等问题发生系统错误,也不会使得数据块中的数据与存储块的对应关系发生混乱从而导致后续的所有数据都受到影响,而是能够将错误的数据限制在其对应的一个存储块中,有利于系统的自我修复。
另外,位串行结构在高速数据传输和处理、音频和数字信号处理应用中越来越流行,位串行FIFO可以极大节省系统开销,本发明可以极大提高位串行系统的可靠性,并节省了系统可靠性设计所需的巨大开销。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示意性图示了传统的FIFO结构和单套指针示意图;
图2示意性图示了本发明一个实施例的FIFO结构和两套指针设置示意图;
图3示意性图示了本发明一个实施例的数据处理方法流程图;
图4示意性图示了本发明一个实施例的数据处理装置结构示意图;
图5示意性图示了本发明一个实施例的数据处理装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行进一步描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
在如图1所示的传统FIFO中,其存储空间分为多个存储单元,由一对指针(rd-ptr,wr-ptr)来表示数据读和写的位置。FIFO的读指针rd-ptr指向下一个读出的存储器地址,写指针wr-ptr指向下一个要写入的存储器地址。读指针和写指针都在读取/写入完毕之后自动加1,也即FIFO中的读取/写入数据的存储器地址是连续的,其分别沿图1中所指示的指针移动方向进行移动。FIFO采用读时钟和写时钟用来控制读操作和写操作的操作时间,在读/写时钟沿到来时,执行读取/写入操作。
当FIFO针对一帧数据,也即一个数据块的数据执行读取/写入操作时,将会按照顺序一个存储单元接着一个存储单元地对一帧数据中的多个数据执行读取/写入操作。当这一帧数据的操作执行完毕后,才会对下面到来的下一帧数据继续进行操作。然而,在读/写时钟发生错误或读写速度长时间失衡时,FIFO会溢出或下溢,从而导致一个或多个帧的部分数据丢失或重复,不同帧中的数据存储位置产生交错,帧的数据和结构因而改变并出错;并且,这种错误将会一直延续下去,影响到之后的所有帧的数据操作且无法自修复,直至系统重启。
鉴于上述问题,本发明提出了如图2所示的FIFO存储空间划分和读写指针设置的方案。在本发明实施例的FIFO中,粗线所示将FIFO的存储空间首先划分为多个存储块,在每个存储块中再进一步通过细线划分为多个存储单元。进一步地,在存储块划分后,通过设置嵌套的两套指针,即(rd-ptr0,wr-ptr0)和(rd-ptr1,wr-ptr1),来共同完成对多个帧和同一帧的多个数据单元的读写操作。
下面,将参照图3说明本发明一个实施例中数据处理方法的流程示意图。本发明实施例中的数据处理方法用于如图2所示的先入先出存储器,所述先入先出存储器中的存储空间包括多个存储块,每个所述存储块包括多个存储单元,其中,第一套指针(rd-ptr0,wr-ptr0)设置为指示所述多个存储块的特定存储块,第二套指针(rd-ptr1,wr-ptr1)设置为指示所述存储块内多个存储单元中的特定存储单元。
如图3所示,本发明实施例的数据处理方法包括步骤S301:确定所述第一套指针和所述第二套指针指示的第一存储器地址作为初始位置。在本发明实施例所设置的FIFO中,通过第一套指针和第二套指针共同指示FIFO内的一个存储器地址作为第一存储器地址。
具体地,在读操作时,第一存储器地址可以表示为:
rd_ptr=(rd_ptr0,rd_ptr1)
其中rd_ptr0指示存储块的地址,rd_ptr1指示存储块内存储单元的地址,第一存储器地址是存储块地址和其内部存储单元地址组合的结果(这种组合有时可以是rd_ptr0和rd_ptr1的简单拼接,即rd_ptr0作为第一地址的高位部分,rd_ptr1作为其低位部分),作为待读取的初始位置。
而在写操作时,同理也可知:
wr_ptr=(wr_ptr0,wr_ptr1)
wr_ptr0指示存储块的地址,wr_ptr1指示存储块内存储单元的地址,第一存储器地址表示为存储块地址和其内部存储单元地址组合的结果(这种组合有时可以是wr_ptr0和wr_ptr1的简单拼接,即rd_ptr0作为第一地址的高位部分,rd_ptr1作为其低位部分),作为待写入的初始位置。
在步骤S302中,根据待处理的第一数据与上次处理的第二数据是否位于相同数据块确定所述第一套指针和第二套指针指示的修正位置,其中当待处理的第一数据与上次处理的第二数据位于相同数据块时,所述第一套指针不移动,将所述第一存储器地址作为所述修正位置,所述第一数据与所述第二数据的数据处理类型相同。
本步骤中,可以根据待处理的第一数据是否包含帧头来判断待处理的第一数据与上次处理的第二数据是否位于相同数据块。当待处理的第一数据包括帧头时,判定其与上次处理的第二数据位于不同数据块;当待处理的第一数据不包括帧头时,判定其与上次处理的第二数据位于相同数据块。另外需注意的是,待处理的第一数据和上次处理的第二数据的数据处理方式需相同,即处理方式为读取时,二者均为读取;处理方式为写入时,二者均为写入。
本步骤中,也可以有另外的伴随第一数据处理的信号(称为SoF信号)来判断待处理的第一数据是否是帧头数据(一个帧的第一个数据),比如,如果处理第一数据时,SoF为有效状态,则该第一数据是帧头;否则,如果此时SoF为无效状态,则该第一数据不是帧头。在FIFO用于接口单元的场合,这种方法较有用。
或者,本步骤中,也可以有另外的伴随第一数据处理的信号(称为EoF信号)来判断待处理的第一数据是否是帧头数据(一个帧的第一个数据),比如,如果检测到EoF的有效状态,则此后收到的首个第一数据就是下一个新帧的帧头;否则,此后收到的第一个数据都是同一帧的数据。在FIFO用于接口单元的场合,这种方法较有用。
当确定待处理的第一数据与上次处理的第二数据位于相同数据块时,第一数据将在当前存储块中进行处理,因此,用于指示存储块的第一套指针将不移动,依然指示当前存储块的位置。第二套指针将移动到下一位置(与普通FIFO的指针操作一致)。
当待处理的第一数据与上次处理的第二数据位于不同数据块时,则需要在与当前存储块相邻的下一存储块中处理第一数据。此时,第一套指针rd-ptr0或wr-ptr0将被移动至下一位置(与普通FIFO的指针操作一致),第二套指针rd-ptr1或wr-ptr1移动至指示最低位存储单元的位置(有时可以是简单的回零),以使第一数据从下一存储块的最低位存储单元开始进行处理。同样的,第一套与第二套指针共同指示修正位置。
在上述对两套指针进行普通操作时,即将rd-ptr0、wr-ptr0、rd-ptr1或wr-ptr1移动到下一位置时,可以按照固定的顺序(比如常见的每次加1的自然顺序)进行,也可以是简单的环形存储顺序。此处的环形存储顺序具体指的是:当第一数据从修正位置开始处理到数据块的最后一单元时,将返回此数据块的最低单元继续进行数据处理,而不会跳出这个数据块进入到下一个数据块进行处理。
在步骤S303中,在所述修正位置处理(读取或写入)所述第一数据。在本步骤中,待处理的第一数据将在所述修正位置所在的数据块内从修正位置开始进行读或写处理。同时,保存修正后的两套指针作为FIFO新的指针,更新FIFO其他内部状态,并更新输出到外部的指示信号(如空、满、已用空间、未用空间)。
本发明实施例中的数据处理方法可以为读取方法,也可以为写入方法。在本发明实施例中,优选地,FIFO中划分的存储块的长度可以相等(也就是固定帧长的应用)。而当FIFO中存储块的长度不等时(也就是不固定帧长的应用),可以引入预设指示符来指示存储块的端点,或引入另一个FIFO通过存储每个存储块的长度来判断所述存储块的端点,或在第一数据中增加一位(bit),来指明帧的开始或结束。
下面,将以数据写入方法为例详细描述本发明实施例方法的具体步骤,而数据读取方法与下述写入方法的原理和步骤类似。
当待写入的第一数据包含帧头时,或者SoF或SoE处于有效状态时,第一数据属于新的数据块,即第一数据与上次写入的第二数据位于不同数据块时,则将FIFO的第一套指针移动到与当前存储块相邻的下一存储块,并且将第二套指针移动并指示到最低位存储单元。此时,第一套指针和第二套指针共同指示的修正位置即为新存储块的最低位存储单元。于是,在FIFO中,将从下一存储块的最低位存储单元开始写入数据。
当待写入的第一数据不包含帧头,或者SoF或SoE处于无效状态,因此不属于新的数据块时,则FIFO的第一套指针不移动,第二套指针移动到下一位置,此时,第一套指针和第二套指针共同指示的修正位置还在原来存储块的一个存储单元。于是,在FIFO中,将从修正位置开始写入数据。在写入第一数据的过程中,可以按照环形存储顺序在此存储块中进行数据写入。此时第一套指针不动,而第二套指针随写入位置移动而移动,并在写入完成后保存当前的两套指针值。如果由于系统出错,当写入到最高位存储单元后,第二套指针将移动回最低存储单元,相应地,对第一数据的写入操作也回到此存储块的最低存储单元继续进行,此时有可能会覆盖还没有被读走的数据,但是这一错误只会影响当前一个数据块(即一个帧),在系统错误或干扰消失后,当新的帧数据到达时,第一套指针会移动到下一数据块,从而使得系统重新从新的数据块写入然后读出,因而错误得以自动恢复。
在本发明实施例提供的数据处理方法中,能够通过第一套指针和第二套指针的嵌套结构确定每个数据块所对应的FIFO中存储块的位置,当需要读取/写入的数据不在新的数据块时,其所对应的存储块也不会发生变化。因此,在这种情况下,即使由于发生错误(如时钟出错,FIFO溢出或下溢),也不会使得不同数据块的数据在存储块的位置发生交错,从而导致后续的所有数据都受到影响,而是能够将错误的数据限制在其对应的一个存储块中,从而做到系统的自我修复。
本发明实施例所指的数据块(帧),并不局限于多个字(Word)组成的,也可以只有一个字组成,这对于串行(Bit-Serial)数字处理十分有用。在串行处理结构中,数据处理和传输是按位(Bit)进行的,多个位构成一个字,这里的字就相当于上述的帧,对于这种情况,本发明实施例的一切方法同样适用。位串行结构在高速数据传输、音频系统和滤波器单元等应用中,越来越流行,这也是本发明的一个重要应用场景。
下面,参照图4来描述根据本发明实施例的数据处理装置。图4示出了应用于图2所示的FIFO结构的数据处理装置400的框图。如图4所示,数据处理装置包括初始位置确定单元410、修正位置确定单元420和处理单元430。除了这些单元以外,数据处理装置400还可以包括其他部件,然而,由于这些部件与本发明实施例的内容无关,因此在这里省略其图示和描述。此外,由于根据本发明实施例的数据处理装置400执行的下述操作的具体细节与在上文中参照图3描述的细节相同,因此在这里为了避免重复而省略对相同细节的重复描述。
本发明实施例的先入先出存储器中的存储空间包括多个存储块,每个所述存储块包括多个存储单元,其中,第一套指针设置为指示所述多个存储块的特定存储块,第二套指针设置为指示所述存储块内多个存储单元中的特定存储单元。
其中,初始位置确定单元410配置为确定所述第一套指针和所述第二套指针指示的第一存储器地址作为初始位置。具体地,初始位置确定单元410用于完成帧头的判断,以确定数据是否属于新的数据块,作为第一套指针和第二套指针的处理依据。
修正位置确定单元420配置为根据待处理的第一数据与上次处理的第二数据是否位于相同数据块确定所述第一套指针和第二套指针指示的修正位置,其中当待处理的第一数据与上次处理的第二数据位于相同数据块时,所述第一套指针不移动,将所述第一存储器地址作为所述修正位置,所述第一数据与所述第二数据的数据处理类型相同。修正位置确定单元420用于完成所述第一套指针和所述第二套指针的处理,以产生第一存储器地址。另外需注意的是,待处理的第一数据和上次处理的第二数据的数据处理方式需相同,即处理方式为读取时,二者均为读取;处理方式为写入时,二者均为写入。
处理单元430配置为从所述修正位置开始处理所述第一数据。处理单元430根据第一存储器地址完成对数据的读出或写入操作,并保存第一套指针和第二套指针,以及产生FIFO所需要的其他内部状态信号及输出给外部的信号。
上述示例说明了第一套指针、第二套指针和第一地址的处理方法和设备,在系统级实现时,如在电路实现时,读出和写入的实现也可以是并行执行的。图5给出了一种FIFO结构的数据处理装置500的框图。如图5所示,数据处理装置500包括由写入处理单元501和读出处理单元503构成的处理器以及存储器502。501与503的处理过程见图3及相关的描述,502可以采用双端口存储器以提高系统的性能。
本发明实施例中的数据处理装置可以包含读取装置和写入装置。在本发明实施例中,优选地,FIFO中划分的存储块的长度可以相等。而当FIFO中存储块的长度不等时,可以通过端点判断单元(未示出)通过预设指示符来指示存储块的端点,或通过另一个FIFO存储的每个存储块的长度来判断所述存储块的端点。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的信息处理方法的具体实现,可以参考产品实施例中的对应描述。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (16)
1.一种数据处理方法,用于先入先出存储器,所述先入先出存储器中的存储空间包括多个存储块,每个所述存储块包括多个存储单元,其中,第一套指针设置为指示所述多个存储块的特定存储块,第二套指针设置为指示所述特定存储块内多个存储单元中的特定存储单元,所述方法包括:
确定所述第一套指针和所述第二套指针指示的第一存储器地址作为初始位置;
根据待处理的第一数据与上次处理的第二数据是否位于相同数据块确定所述第一套指针和第二套指针指示的修正位置,其中当待处理的第一数据与上次处理的第二数据位于相同数据块时,所述第一套指针不移动,将所述第一存储器地址作为所述修正位置,所述第一数据与所述第二数据的数据处理类型相同;
从所述修正位置开始处理所述第一数据。
2.如权利要求1所述的数据处理方法,其中,所述根据待处理的第一数据与上次处理的第二数据是否位于相同数据块确定所述第一套指针和第二套指针指示的修正位置还包括:
当待处理的第一数据与上次处理的第二数据位于不同数据块时,移动所述第一套指针至与所述第一套指针当前所指示的存储块相邻的下一存储块。
3.如权利要求1所述的数据处理方法,其中,所述待处理的第一数据与上次处理的第二数据位于相同数据块包括:
所述待处理的第一数据不包括帧头或者表示帧头的信号无效。
4.如权利要求2所述的数据处理方法,其中,所述待处理的第一数据与上次处理的第二数据位于不同数据块包括:
所述待处理的第一数据包括帧头或者表示帧头的信号有效。
5.如权利要求2所述的数据处理方法,其中,所述方法还包括;
移动所述第二套指针至存储块内多个存储单元的最低位存储单元。
6.如权利要求1所述的数据处理方法,其中,所述方法还包括:
利用预设指示符指示所述存储块的端点;
利用预先存储的每个存储块的长度判断所述存储块的端点;和/或,
通过在所述第一数据中的比特位指示所述存储块的端点。
7.如权利要求1所述的数据处理方法,其中,所述从修正位置开始处理所述第一数据包括:
根据固定顺序或环形存储顺序在所述修正位置所在的存储块内从所述修正位置开始处理所述第一数据,其中所述第一套指针始终指示所述修正位置所在的存储块,所述第二套指针随着所述第一数据的处理过程中存储器地址的变化指示其相应的存储单元。
8.如权利要求1所述的方法,其中,所述处理方法包括:
读取方法和/或写入方法。
9.一种数据处理装置,用于先入先出存储器,所述先入先出存储器中的存储空间包括多个存储块,每个所述存储块包括多个存储单元,其中,第一套指针设置为指示所述多个存储块的特定存储块,第二套指针设置为指示所述特定存储块内多个存储单元中的特定存储单元,所述装置包括:
初始位置确定单元,配置为确定所述第一套指针和所述第二套指针指示的第一存储器地址作为初始位置;
修正位置确定单元,配置为根据待处理的第一数据与上次处理的第二数据是否位于相同数据块确定所述第一套指针和第二套指针指示的修正位置,其中当待处理的第一数据与上次处理的第二数据位于相同数据块时,所述第一套指针不移动,将所述第一存储器地址作为所述修正位置,所述第一数据与所述第二数据的数据处理类型相同;
处理单元,配置为从所述修正位置开始处理所述第一数据。
10.如权利要求9所述的数据处理装置,其中,
所述修正位置确定单元当待处理的第一数据与上次处理的第二数据位于不同数据块时,移动所述第一套指针至与所述第一套指针当前所指示的存储块相邻的下一存储块。
11.如权利要求9所述的数据处理装置,其中,所述待处理的第一数据与上次处理的第二数据位于相同数据块包括:
所述待处理的第一数据不包括帧头或者其伴随的帧头指示信号无效。
12.如权利要求10所述的数据处理装置,其中,所述待处理的第一数据与上次处理的第二数据位于不同数据块包括:
所述待处理的第一数据包括帧头或者其伴随的帧头指示信号有效。
13.如权利要求10所述的数据处理装置,其中,
所述修正位置确定单元移动所述第二套指针至存储块内多个存储单元的最低位存储单元。
14.如权利要求9所述的数据处理装置,其中,所述装置还包括:
端点判断单元,配置为利用预设指示符指示所述存储块的端点;
利用预先存储的每个存储块的长度判断所述存储块的端点;和/或,
通过在所述第一数据中的比特位指示所述存储块的端点。
15.如权利要求9所述的数据处理装置,其中,
所述处理单元根据固定顺序或环形存储顺序在所述修正位置所在的存储块内从所述修正位置开始处理所述第一数据,其中所述第一套指针始终指示所述修正位置所在的存储块,所述第二套指针随着所述第一数据的处理过程中存储器地址的变化指示其相应的存储单元。
16.如权利要求9所述的装置,其中,所述处理装置为:
读取装置和/或写入装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611044388.0A CN108108148B (zh) | 2016-11-24 | 2016-11-24 | 一种数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611044388.0A CN108108148B (zh) | 2016-11-24 | 2016-11-24 | 一种数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108108148A CN108108148A (zh) | 2018-06-01 |
CN108108148B true CN108108148B (zh) | 2021-11-16 |
Family
ID=62204891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611044388.0A Active CN108108148B (zh) | 2016-11-24 | 2016-11-24 | 一种数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108108148B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597239B (zh) * | 2020-04-10 | 2021-08-31 | 中科驭数(北京)科技有限公司 | 数据对齐的方法及装置 |
WO2023050147A1 (zh) * | 2021-09-29 | 2023-04-06 | 长江存储科技有限责任公司 | 用于存储器的数据保护方法及其存储装置 |
CN115033504A (zh) * | 2022-06-30 | 2022-09-09 | 斯凯瑞利(北京)科技有限公司 | 一种带回退机制的fifo存储器及读写方法、通信系统 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0758770A1 (de) * | 1995-08-14 | 1997-02-19 | Deutsche Thomson-Brandt Gmbh | Verfahren und Schaltungsanordnung zur Resynchronisation einer Speicherverwaltung |
CN1511400A (zh) * | 2001-05-25 | 2004-07-07 | ���̴����ɷ�����˾ | 从同步传送信号/同步传送模块净荷的数据部分将ds-3信号和/或e3信号去同步的方法和设备 |
CN1547358A (zh) * | 2003-12-02 | 2004-11-17 | 烽火通信科技股份有限公司 | 一种用于以太网无源光网络的数据帧缓存设备和方法 |
CN101146091A (zh) * | 2007-09-05 | 2008-03-19 | 中兴通讯股份有限公司 | 多通道数据输出方法及系统 |
CN101788963A (zh) * | 2010-03-18 | 2010-07-28 | 烽火通信科技股份有限公司 | Dram存储控制方法及装置 |
CN102065569A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 一种适用于wlan的以太网mac子层控制器 |
CN102270444A (zh) * | 2011-09-07 | 2011-12-07 | 东莞中山大学研究院 | 视频处理芯片数据流控制及帧缓存装置 |
CN102742220A (zh) * | 2009-12-04 | 2012-10-17 | 纳派泰克股份公司 | 使用加时间戳和中央控制器由多个适配器对数据帧进行的分布式处理 |
CN102754395A (zh) * | 2009-12-04 | 2012-10-24 | 纳派泰克股份公司 | 由中央控制器控制的接收和存储数据分组的设备和方法 |
CN102752202A (zh) * | 2012-06-29 | 2012-10-24 | 华为技术有限公司 | 一种队列调度方法及系统 |
CN103902471A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 数据缓存处理方法和装置 |
CN105320632A (zh) * | 2015-09-23 | 2016-02-10 | 南京磐能电力科技股份有限公司 | 一种自主仲裁的高速差分总线实现方法 |
CN105446699A (zh) * | 2015-12-07 | 2016-03-30 | 中国电子科技集团公司第十研究所 | 数据帧队列管理方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1264096C (zh) * | 2003-11-17 | 2006-07-12 | 中兴通讯股份有限公司 | 一种fifo存储器的数据处理方法 |
US7093061B2 (en) * | 2004-02-19 | 2006-08-15 | Avago Technologies Fiber Ip (Singapore) Pte. Ltd. | FIFO module, deskew circuit and rate matching circuit having the same |
CN100411382C (zh) * | 2004-03-04 | 2008-08-13 | 华为技术有限公司 | 一种先进先出处理芯片及其数据更新方法 |
CN100396052C (zh) * | 2004-03-12 | 2008-06-18 | 华为技术有限公司 | 高可靠性的先入先出存储器及其实现方法 |
CN100531104C (zh) * | 2004-03-12 | 2009-08-19 | 华为技术有限公司 | 一种高可靠性的先入先出存储器及其实现方法 |
CN100346289C (zh) * | 2006-04-12 | 2007-10-31 | 华为技术有限公司 | 一种先入先出存储器及其输出空满标志的方法 |
CN102045258B (zh) * | 2010-12-22 | 2012-12-12 | 北京星网锐捷网络技术有限公司 | 数据缓存管理方法及装置 |
CN105183665B (zh) * | 2015-09-08 | 2018-02-13 | 福州瑞芯微电子股份有限公司 | 一种数据缓存访问方法和数据缓存控制器 |
-
2016
- 2016-11-24 CN CN201611044388.0A patent/CN108108148B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0758770A1 (de) * | 1995-08-14 | 1997-02-19 | Deutsche Thomson-Brandt Gmbh | Verfahren und Schaltungsanordnung zur Resynchronisation einer Speicherverwaltung |
CN1511400A (zh) * | 2001-05-25 | 2004-07-07 | ���̴����ɷ�����˾ | 从同步传送信号/同步传送模块净荷的数据部分将ds-3信号和/或e3信号去同步的方法和设备 |
CN1547358A (zh) * | 2003-12-02 | 2004-11-17 | 烽火通信科技股份有限公司 | 一种用于以太网无源光网络的数据帧缓存设备和方法 |
CN101146091A (zh) * | 2007-09-05 | 2008-03-19 | 中兴通讯股份有限公司 | 多通道数据输出方法及系统 |
CN102065569A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 一种适用于wlan的以太网mac子层控制器 |
CN102754395A (zh) * | 2009-12-04 | 2012-10-24 | 纳派泰克股份公司 | 由中央控制器控制的接收和存储数据分组的设备和方法 |
CN102742220A (zh) * | 2009-12-04 | 2012-10-17 | 纳派泰克股份公司 | 使用加时间戳和中央控制器由多个适配器对数据帧进行的分布式处理 |
CN101788963A (zh) * | 2010-03-18 | 2010-07-28 | 烽火通信科技股份有限公司 | Dram存储控制方法及装置 |
CN102270444A (zh) * | 2011-09-07 | 2011-12-07 | 东莞中山大学研究院 | 视频处理芯片数据流控制及帧缓存装置 |
CN102752202A (zh) * | 2012-06-29 | 2012-10-24 | 华为技术有限公司 | 一种队列调度方法及系统 |
CN103902471A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 数据缓存处理方法和装置 |
CN105320632A (zh) * | 2015-09-23 | 2016-02-10 | 南京磐能电力科技股份有限公司 | 一种自主仲裁的高速差分总线实现方法 |
CN105446699A (zh) * | 2015-12-07 | 2016-03-30 | 中国电子科技集团公司第十研究所 | 数据帧队列管理方法 |
Non-Patent Citations (1)
Title |
---|
"循环队列中的头尾指针设计";龚舒群等;《现代计算机》;20070225(第2期);第17-20页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108108148A (zh) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105320490B (zh) | 用于异步fifo电路的方法和设备 | |
CN111400205B (zh) | 一种先进先出地址轮询缓存读写方法、系统及装置 | |
US7724669B2 (en) | High speed bus with flow control and extended burst enhancements | |
US6845414B2 (en) | Apparatus and method of asynchronous FIFO control | |
US8291136B2 (en) | Ring buffer | |
CN108108148B (zh) | 一种数据处理方法和装置 | |
US7546480B1 (en) | High speed bus with alignment, re-timing and buffer underflow/overflow detection enhancements | |
CN113791994B (zh) | 一种基于AXI协议wrap访问的DDR控制器及处理方法 | |
US7870310B2 (en) | Multiple counters to relieve flag restriction in a multi-queue first-in first-out memory system | |
US7523232B2 (en) | Mark/re-read and mark/re-write operations in a multi-queue first-in first-out memory system | |
CN115905086A (zh) | 基于axi同步读写单口sram的控制方法及控制器 | |
CN114721983B (zh) | 一种ddr4加速读写装置 | |
CN113299326A (zh) | 基于fifo的数据先进后出型存储电路及读写方法 | |
CN113485672B (zh) | 基于fifo存储器的信息生成方法、装置、设备及介质 | |
CN104809093A (zh) | 对串行接口传输的数据进行处理的方法及装置 | |
CN110851390B (zh) | 一种基于fpga实现4m 1553b总线协议的方法及系统 | |
US20090097494A1 (en) | Packet forwarding method and device | |
CN108984441B (zh) | 一种保持数据传送一致性的方法及系统 | |
US20060023541A1 (en) | FIFO with multiple data inputs and method thereof | |
CN114443524A (zh) | 一种数据传输方法、系统、存储介质及设备 | |
US9582438B2 (en) | Method and apparatus for identifying cause of interrupt | |
WO2021236420A1 (en) | Wide elastic buffer | |
WO2015171657A1 (en) | Filler bank control circuit for synchronous fifo queues and other memory devices | |
CN111538622A (zh) | 星载固态存储器纠错方法 | |
JP7419944B2 (ja) | 半導体装置及び同期化方法 |
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 |