CN106168927B - 具有在运行中可变的存储区域的fifo存储器 - Google Patents

具有在运行中可变的存储区域的fifo存储器 Download PDF

Info

Publication number
CN106168927B
CN106168927B CN201610341074.0A CN201610341074A CN106168927B CN 106168927 B CN106168927 B CN 106168927B CN 201610341074 A CN201610341074 A CN 201610341074A CN 106168927 B CN106168927 B CN 106168927B
Authority
CN
China
Prior art keywords
new
pointer
base
fifo memory
value
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
CN201610341074.0A
Other languages
English (en)
Other versions
CN106168927A (zh
Inventor
T·吉塞尔曼
K·布克
R·多施
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN106168927A publication Critical patent/CN106168927A/zh
Application granted granted Critical
Publication of CN106168927B publication Critical patent/CN106168927B/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • 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
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • 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
    • G06F5/08Methods 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 having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
    • 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
    • G06F5/10Methods 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 having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/063Dynamically variable buffer size
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/066User-programmable number or size of buffers, i.e. number of separate buffers or their size can be allocated freely
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/12Indexing scheme relating to groups G06F5/12 - G06F5/14
    • G06F2205/126Monitoring of intermediate fill level, i.e. with additional means for monitoring the fill level, e.g. half full flag, almost empty flag

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

本发明从一种具有可变存储区域的FIFO存储器出发,其中,FIFO存储器构型为线性存储器,FIFO存储器配置为环形缓冲器,FIFO存储器具有状态机,状态机包括下指针、上指针、写指针和读指针,FIFO存储器包含当前被分配的存储区域——其下边界通过下指针定义并且其上边界通过上指针定义,写指针定义当前写地址,读指针定义当前读地址。状态机包括用于定义将来被分配的存储区域的新低值和新高值,将来被分配的存储区域的下边界通过新低值定义并且将来被分配的存储区域的上边界通过新高值定义,并且状态机如此构型,使得在FIFO存储器的读运行中和/或写运行中FIFO存储器的被分配的存储区域能够通过将下指针移动到新低值和/或通过将上指针移动到新高值来改变。

Description

具有在运行中可变的存储区域的FIFO存储器
技术领域
本发明涉及一种具有在运行中可变的存储区域的FIFO(先进先出)存储器。
背景技术
本发明从具有可变存储区域的FIFO存储器出发,其中,该FIFO存储器构型为线性存储器,其中,FIFO存储器配置为环形缓冲器(Ringbuffer),其中,FIFO存储器具有状态机,所述状态机包括下指针base、上指针top、写指针wr和读指针rd,其中,该FIFO存储器包含当前被分配的存储区域,所述当前被分配的存储区域的下边界通过下指针base定义,并且所述当前被分配的存储区域的上边界通过上指针top定义,其中,写指针wr定义当前的写地址,并且读指针rd定义当前的读地址。
FIFO通常作为具有固定尺寸的环形缓冲器被实现并且可以包含确定数目的数据元素:http://en.wikipedia.org/wiki/Circular_buffer
当需要相对配置用于环形缓冲器的存储器更多的存储器时,有两种方法来处理这:
1.可以不将新数据元素接收到环形缓冲器中。
2.在将最旧的数据从缓冲器删除之后,将新的数据元素写入到环形缓冲器中。
在此或者丢失新数据(1.)或者丢失数据历史(2.)。当两种方法不可接受时,必须增大缓冲器。大多数用于改变FIFO尺寸的方法涉及软件实现,在软件实现中重新分配存储器中的缓冲器,或者将缓冲器内容从小缓冲器复制到更大的缓冲器。在此使用在硬件(HW)实现中不可用、或者是低效且费事的机制。现有技术中的另一种解决方法在存储器中使用标准区域和扩展区域。当要增大FIFO时,将数据首先写入到扩展区域中,以便然后在下一个完整运行时将所述区域一起集成到标准区域中。 http://blog.labix.org/2010/12/23/ efficient-algorithm-for-expanding-circular-buff ers
发明内容
本发明应能够实现:
1.FIFO能够在持续运行中被增大或缩小。
2.在此应将现有的存储区域向下或向上扩展或缩小。
3.在存储器中所包含的数据元素不应丢失并且应能够以同样的顺序再读入/读出。
本发明的优点
本发明从具有可变存储区域的FIFO存储器出发,其中,所述FIFO存储器构型为线性存储器,其中,FIFO配置为环形缓冲器(Ringbuffer),FIFO存储器具有状态机,所述状态机包括下指针base、上指针top、写指针wr和读指针rd,所述FIFO存储器包含当前被分配的存储区域,所述当前被分配的存储区域的下边界通过所述下指针base定义,所述当前被分配的存储区域的上边界通过所述上指针top定义,其中,写指针wr定义当前写地址,并且读指针rd定义当前读地址。本发明的核心在于,所述状态机包括用于定义将来被分配的存储区域的新低值new_base和新高值new_top,所述将来被分配的存储区域的下边界通过所述新低值new_base定义并且所述将来被分配的存储区域的上边界通过所述新高值new_top定义,并且所述状态机如此构型,使得在所述FIFO存储器的读运行中和/或在所述FIFO存储器的写运行中所述FIFO存储器的被分配的存储区域能够通过将所述下指针base移动到所述新低值new_base和/或通过将所述上指针top移动到所述新高值new_top来改变。根据本发明,在所述存储区域的上端处和下端处分别设置一个指针(base,top)和一个阴影指针(Schattenzeiger)(新值:new_base,new_top),以这些指针首先定义新的被改变的存储区域并且在合适的时刻将其固定。
本发明的一种有利的构型是,所述FIFO具有空闲区域,在所述空闲区域中不存在未读数据,并且状态机如此构型,使得选择一个时刻用于将下指针base和/或上指针top置于值new_base和/或new_top,在所述时刻不但 指针的旧值处于空闲区域中,而且指针的新值也处于空闲区域中。
本发明的一种有利的构型设置,其特征在于,状态机如此构型,使得当读指针rd=base时,实现将上指针移动到值new_top。
本发明的一种有利的构型是,状态机如此构型,使得当写指针wr=top时,实现将下指针移动到值new_base。
优点:
1.在HW方面以受限的单元(尤其存储器)实现是可能的
2.在尺寸改变发生期间,能够保持FIFO的运行
3.能够遵守写和读的实时要求,因为FIFO不必为了可能的复制过程而在尺寸改变中受阻。
特别有利地,本发明可用在具有安卓操作系统的智能手机的上下文(Kontext)中并且在那里用于传感器数据的所谓批处理(Batching)。在那里更多FIFO用于不同的传感器。本发明能够实现:对于这些FIFO中的每一个在持续运行中增大或缩小存储器或者为所需要的或不再需要的FIFO提供存储器以及将存储器重新集成到其他的FIFO中。
与上述现有技术不同,本发明更高效,因为本发明在耗尽标准区域之前避免用于扩展区域的指针管理(Poniter-Management)并且允许在准备阶段(也就是说在传感器完全运行之前)的增大。
安卓的一个重要要求(在运行中的模式切换时所有传感器还应连续提供它们的数据)被遵守,因为没有数据因为尺寸的改变而丢失。
附图说明
图1示出具有被分配的存储区域的FIFO存储器,该存储区域具有连贯的被占用区域和分离的空闲区域;
图2示出具有被分配的存储区域的FIFO存储器,该存储区域具有分离的被占用区域和连贯的空闲区域;
图3示出在运行中的根据本发明的FIFO存储器,其中,读指针rd=base,其中,可以缩小或增大上指针top;
图4示出在运行中的根据本发明的FIFO存储器,其中,写指针wr=top,其中,可以缩小或增大下指针base。
具体实施方式
如在FIFO的经典实现中那样,固定地在线性存储器中分配环形缓冲器并且通过两个地址指针base和top定义该环形缓冲器的边界。还有一个用于这样的位置的地址指针wr——从该位置开始插入新的数据元素,以及有一个用于这样的位置的地址指针rd——从该位置开始读出数据元素。
·在初始化时
1.将base置于存储区域的下端,并且
2.将top置于存储区域的上端。
3.将写指针wr和读指针rd置于base
·在wr的当前地址处将新的数据元素写入到存储器中。
1.然后使wr增值
2.当wr达到值top时,将wr置于base(warp-around:回绕式)
·从地址rd读出数据元素。
1.然后使rd增值
2.当rd达到值top时,将rd置于base(warp-around)
图1示出具有被分配的存储区域的FIFO存储器,该FIFO存储器具有连贯的被占用区域和分离的空闲区域。
图2示出具有被分配的存储区域的FIFO存储器,该FIFO存储器具有分离的被占用区域和连贯的空闲区域。
所述FIFO的特征在于,在存储器区域中具有一个部分,该部分包括当前的数据并且因此是被占用的(在图中以阴影标出),以及具有另一个部分,该部分是空闲的(未画阴影)。与指针wr和rd的当前位置相关地可以出现以下情况:
1.wr>rd:被占用区域连贯地处于存储区域中(图1)
2.wr<rd:被占用区域划分为2个部分:一个在存储器区域的下端处,一个在存储器区域的上端处(图2)
3.wr=rd:在这种情况下FIFO是空的,其可以被处理用于进一步考虑,如wr>rd的情况。
为了能够实现FIFO的尺寸改变和位置改变,根据本发明引入地址指针 new_base和new_top,这些地址指针包含目标尺寸或者也包括FIFO的在改变后的新位置。(见图1)
只有当新指针new_base和new_top的位置处于被占用区域之外时,才能够实现存储器区域边界的改变。在将数据写入到FIFO中和从FIFO中读出期间,空闲区域相对于被占用区域朝相反的方向移动。所述算法基于:对于指针base和top的改变选择一个时刻,在所述时刻不仅所述指针的旧值而且所述指针的新值处于空闲区域中。
通常能够实现FIFO的增大。然而只有当FIFO的填充高度(Füllstand)小于或等于FIFO的新尺寸时,才能够实现缩小。如果填充高度更大,则在所述时刻就不能够实现FIFO的缩小。对于这种情况下的处理,在变型方案3中描述一些可能的实施方式。
改变top和/或base:
1.通过将new_top置于与top不相同的值来告知top的改变的要求。替代地或同时地,通过将new_base置于与base不相同的值来告知base的改变。
2.数据元素的写和读如目前为止那样继续。在每次更新rd或wr时检查:
·当(rd==base)时(见图3)
·当(new_top>wr)时:将top置于值new_top
·否则:此时不能够实现top的改变
·当(wr==top)时(见图4)
·当(new_base<rd)时:将base置于值new_base
·否则:此时不能够实现base的改变
3.当top==new_top且base==new_base时,所述增大结束
图3示出在运行中的根据本发明的FIFO存储器,其中,读指针rd=base,其中,可以缩小或增大上指针top。
通过选择用于改变top的时刻(当rd达到值base时)来确保:FIFO的上方区域是未被使用的并且top的新值不破坏FIFO内容的连续性。New_top1和new_top2指示top的增大和缩小的情况。
与此类似地通过选择用于改变base的时刻来确保:FIFO的下方区域是 未被使用的。图4这里示出在运行中的根据本发明的FIFO存储器,其中,写指针wr=top,其中,可以缩小或增大下指针base。
变型方案1(对于基本变型方案替代地)
所述FIFO替代地也可以用减值指针实现,而不是增值指针wr和rd。这一般性地适用于每个FIFO并且也适用于该FIFO,然而必须相应地匹配指针更新的时刻和顺序。
变型方案2(基本变型方案的改进)
与简单的调节(在下一个Wrap-around时更新指针)相对地也有以下可能性:当读指针和写指针的、确定的条件满足时,立即执行指针的更新。这里尤其相关的是,指针wr是否位于rd之下或之上,也就是说是否越过Wraparound区域地存储有效数据。
1.通过将new_top置于与top不相同的值告知top的改变的要求。
替代地或同时地,通过将new_base置于与base不相同的值告知base的改变的要求。
2.当(wr>rd)时
·当(new_top>wr)时:将top置于值new_top
·当(new_base<rd)时:将base置于值new_base
否则:(返回到基本变型方案)
数据元素的写和读如目前为止那样继续。在每次更新rd或wr时检查:
·当(rd==base)时
·当(new_top>wr)时:将top置于值new_top
·否则:此时不能够实现top的改变
·当(wr==top)时
·当(new_base<rd)时:将base置于值new_base
·否则:此时不能够实现base的改变
3.当top==new_top且base==new_base时,所述增大结束。
这些变型方案的优点在于,在满足所述条件时能够更快地结束尺寸的改变。
变型方案3(基本变型方案的或变型方案1-2的扩展)
上面已经描述了,只有当FIFO的填充高度小于或等于FIFO的新尺寸时,才能够实现FIFO的缩小。如果不是这种情况,则有以下可能性:
1.替代地可以如此设计算法,使得在指针的下一个循环时与所要求的相比较较少地缩小FIFO并且发回关于所达到的缩小的报告,而不是等待可能永不出现的、成功的缩小。
2.丢弃FIFO中的如此多的旧值,直至能够实现所述缩小
3.如此长时间不将新值写入到FIFO中,直至填充高度足够小,以便能够实现缩小(丢弃新值)
4.所述缩小的要求一直保持,直至FIFO的填充高度足够小
附图标记列表
Base 下指针
top 上指针
wr 写指针
rd 读指针
new_base 新低值
new_top 新高值。

Claims (5)

1.一种具有可变存储区域的FIFO存储器,
其中,所述FIFO存储器构型为线性存储器,
其中,所述FIFO存储器配置为环形缓冲器,
其中,所述FIFO存储器具有状态机,所述状态机包括下指针(base)、上指针(top)、写指针(wr)和读指针(rd),
其中,所述FIFO存储器包含当前被分配的存储区域,所述当前被分配的存储区域的下边界通过所述下指针(base)定义,并且所述当前被分配的存储区域的上边界通过所述上指针(top)定义,
其中,所述写指针(wr)定义当前写地址,并且所述读指针(rd)定义当前读地址,
其中,所述状态机还包括用于定义将来被分配的存储区域的新低值(new_base)和新高值(new_top),所述将来被分配的存储区域的下边界通过所述新低值(new_base)定义,并且所述将来被分配的存储区域的上边界通过所述新高值(new_top)定义,并且
其中,在所述FIFO存储器的读运行中和/或在所述FIFO存储器的写运行中,所述状态机构型为用于通过以下方式中的至少一个来改变所述FIFO存储器的被分配的存储区域:
如果所述新低值(new_base)至少与所述读指针(rd)的当前所置于的位置一样低,则为了将所述下指针(base)移动到所述新低值(new_base):
在第一确定中确定是否满足第一条件,即所述写指针(wr)的当前所置于的位置对应于所述上指针(top)的当前值;并且
作为对所述第一确定得出满足所述第一条件的结果的响应,执行所述下指针(base)到所述新低值(new_base)的移动;以及
如果所述新高值(new_top)至少与所述写指针(wr)的当前所置于的位置一样高,则为了将所述上指针(top)移动到所述新高值(new_top):
在第二确定中确定是否满足第二条件,即所述读指针(rd)的当前所置于的位置对应于所述下指针(base)的当前值;并且
作为对所述第二确定得出满足所述第二条件的结果的响应,执行所述上指针(top)到所述新高值(new_top)的移动。
2.根据权利要求1所述的具有可变存储区域的FIFO存储器,其特征在于,所述FIFO存储器具有空闲区域,在所述空闲区域中不存在未读数据,并且所述状态机如此构型,使得选择一个时刻用于将所述下指针(base)置于所述新低值(new_base),在所述时刻,不但所述下指针的至今的值(base)处于空闲区域中,而且所述下指针的新低值(new_base)也处于空闲区域中。
3.根据权利要求1所述的具有可变存储区域的FIFO存储器,其特征在于,所述状态机构型为用于改变所述被分配的存储区域,其方式为,如果所述新高值(new_top)至少与所述写指针(wr)的当前所置于的位置一样高,则为了将所述上指针(top)移动到所述新高值(new_top):
在第二确定中确定是否满足第二条件,即所述读指针(rd)的当前所置于的位置对应于所述下指针(base)的当前值;并且
作为对所述第二确定得出满足所述第二条件的结果的响应,执行所述上指针(top)到所述新高值(new_top)的移动。
4.根据权利要求1所述的具有可变存储区域的FIFO存储器,其特征在于,所述状态机构型为用于改变所述被分配的存储区域,其方式为,如果所述新低值(new_base)至少与所述读指针(rd)的当前所置于的位置一样低,则为了将所述下指针(base)移动到所述新低值(new_base):
在第一确定中确定是否满足第一条件,即所述写指针(wr)的当前所置于的位置对应于所述上指针(top)的当前值;并且
作为对所述第一确定得出满足所述第一条件的结果的响应,执行所述下指针(base)到所述新低值(new_base)的移动。
5.根据权利要求1所述的具有可变存储区域的FIFO存储器,其特征在于,所述FIFO存储器具有空闲区域,在所述空闲区域中不存在未读数据,并且所述状态机如此构型,使得选择一个时刻用于将所述上指针(top)置于所述新高值(new_top),在所述时刻,不但所述上指针的至今的值(top)处于空闲区域中,而且所述上指针的新高值(new_top)也处于空闲区域中。
CN201610341074.0A 2015-05-22 2016-05-20 具有在运行中可变的存储区域的fifo存储器 Active CN106168927B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102015209486.3A DE102015209486A1 (de) 2015-05-22 2015-05-22 FIFO Speicher mit im Betrieb veränderbarem Speicherbereich
DE102015209486.3 2015-05-22

Publications (2)

Publication Number Publication Date
CN106168927A CN106168927A (zh) 2016-11-30
CN106168927B true CN106168927B (zh) 2021-07-27

Family

ID=57231863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610341074.0A Active CN106168927B (zh) 2015-05-22 2016-05-20 具有在运行中可变的存储区域的fifo存储器

Country Status (3)

Country Link
US (1) US9996318B2 (zh)
CN (1) CN106168927B (zh)
DE (1) DE102015209486A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491333A (zh) * 2018-03-21 2018-09-04 广州多益网络股份有限公司 环形缓冲区的数据写入方法、装置、设备及介质
CN110704021B (zh) * 2019-09-29 2022-03-15 Oppo广东移动通信有限公司 异步先进先出数据处理方法、装置、电子装置及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654856B2 (en) * 2001-05-15 2003-11-25 Microsoft Corporation System and method for managing storage space of a cache
CN101147119A (zh) * 2005-02-16 2008-03-19 桑迪士克股份有限公司 快闪存储器中的直接数据文件存储实施技术
CN101281489A (zh) * 2007-04-03 2008-10-08 中兴通讯股份有限公司 一种先进先出存储器实现方法及装置
CN101652757A (zh) * 2007-04-13 2010-02-17 Rgb网络有限公司 具有两个路径的同步动态随机存取存储器卷积交织器

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3486498B2 (ja) * 1996-01-10 2004-01-13 キヤノン株式会社 バッファ管理方法及びそれを用いた印刷装置
US7196710B1 (en) * 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US20020078317A1 (en) * 2000-12-19 2002-06-20 Matsushita Electric Industrial Co., Ltd. First-in, first-out (FIFO) memory with moving boundary
US6801991B2 (en) * 2001-12-21 2004-10-05 Agere Systems Inc. Method and apparatus for buffer partitioning without loss of data
JP2004071103A (ja) * 2002-08-08 2004-03-04 Sharp Corp 自己同期型fifoメモリ装置
US7546423B2 (en) * 2003-09-02 2009-06-09 Sirf Technology, Inc. Signal processing system control method and apparatus
US7519788B2 (en) * 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
CN100449504C (zh) * 2005-01-05 2009-01-07 华为技术有限公司 一种基于bitmap表的缓存管理方法
JP4398499B2 (ja) * 2005-12-02 2010-01-13 パナソニック株式会社 バッファ制御装置およびバッファメモリ装置
CN100517498C (zh) * 2006-05-25 2009-07-22 深圳市恒扬科技有限公司 一种无读取延迟的先进先出存储器
CN100487678C (zh) * 2006-08-23 2009-05-13 晶天电子(深圳)有限公司 带有闪存控制器的电子数据闪存卡
CN104597805A (zh) * 2014-12-09 2015-05-06 北京临近空间飞艇技术开发有限公司 一种基于fifo实现循环移位寄存器的系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654856B2 (en) * 2001-05-15 2003-11-25 Microsoft Corporation System and method for managing storage space of a cache
CN101147119A (zh) * 2005-02-16 2008-03-19 桑迪士克股份有限公司 快闪存储器中的直接数据文件存储实施技术
CN101281489A (zh) * 2007-04-03 2008-10-08 中兴通讯股份有限公司 一种先进先出存储器实现方法及装置
CN101652757A (zh) * 2007-04-13 2010-02-17 Rgb网络有限公司 具有两个路径的同步动态随机存取存储器卷积交织器

Also Published As

Publication number Publication date
DE102015209486A1 (de) 2016-11-24
CN106168927A (zh) 2016-11-30
US9996318B2 (en) 2018-06-12
US20160342390A1 (en) 2016-11-24

Similar Documents

Publication Publication Date Title
CN110008262B (zh) 一种数据导出方法及装置
US7366855B2 (en) Page replacement method using page information
CN101849222B (zh) 使用别名寻址的可变长度指令编码的实现
US8195845B2 (en) Memory system having high data transfer efficiency and host controller
US20040139441A1 (en) Processor, arithmetic operation processing method, and priority determination method
CN103003791B (zh) 分配共享堆栈的部分的系统和方法
EP3073382A1 (en) A multi-reader lock-free ring buffer
CN105512054B (zh) 主机接口控制器以及储存装置控制方法
JPS62152043A (ja) 命令コ−ドアクセス制御方式
KR100875377B1 (ko) 처리 시스템에서 스택 팝 및 푸쉬 동작들을 수행하는 장치 및 방법
US9990299B2 (en) Cache system and method
CN106168927B (zh) 具有在运行中可变的存储区域的fifo存储器
WO2007085963A2 (en) Processing of high priority data elements in systems comprising a host processor and a co-processor
CN112905365B (zh) 一种数据处理方法、装置、设备及介质
US20020078317A1 (en) First-in, first-out (FIFO) memory with moving boundary
CN101504567B (zh) 一种cpu、cpu指令系统及降低cpu功耗的方法
US20110314190A1 (en) Fifo buffer system
JP5840451B2 (ja) メモリ制御装置
GB2351166A (en) Interrupt processing device
CN110908429B (zh) 一种定时器操作方法及装置
CN111078384A (zh) 核心数据迁移的方法、装置、计算机设备及存储介质
CN101882061B (zh) 存储器控制方法和存储器控制装置
CN105608020B (zh) 主机接口控制器以及储存装置控制方法
CN115934023A (zh) 数据处理方法、数据处理装置以及相关设备
JP5505195B2 (ja) メモリの制御装置、及び制御方法

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
GR01 Patent grant
GR01 Patent grant