本发明专利技术从一种具有可变存储区域的FIFO存储器出发,其中,FIFO存储器构型为线性存储器,FIFO存储器配置为环形缓冲器,FIFO存储器具有状态机,状态机包括下指针、上指针、写指针和读指针,FIFO存储器包含当前被分配的存储区域——其下边界通过下指针定义并且其上边界通过上指针定义,写指针定义当前写地址,读指针定义当前读地址。状态机包括用于定义将来被分配的存储区域的新低值和新高值,将来被分配的存储区域的下边界通过新低值定义并且将来被分配的存储区域的上边界通过新高值定义,并且状态机如此构型,使得在FIFO存储器的读运行中和/或写运行中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本文档来自技高网...
【技术保护点】
一种具有可变存储区域的FIFO存储器,其中,所述FIFO存储器构型为线性存储器,其中,所述FIFO存储器配置为环形缓冲器,其中,所述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)来改变。...
【技术特征摘要】
2015.05.22 DE 102015209486.31.一种具有可变存储区域的FIFO存储器,其中,所述FIFO存储器构型为线性存储器,其中,所述FIFO存储器配置为环形缓冲器,其中,所述FIFO存储器具有状态机,所述状态机包括下指针(base)、上指针(top)、写指针(wr)和读指针(rd),其中,所述FIFO存储器包含当前被分配的存储区域,所述当前被分配的存储区域的下边界通过所述下指针(base)定义,并且所述当前被分配的存储区域的上边界通过所述上指针(top)定义,其中,所述写指针(wr)定义当前写地址,并且所述读指针(rd)定义当前读地址,其特征在于,所述状态机包括用于定义将来被分配的存储区域的新低值(new_base)和新高值(new_top),所述将来被分配的存储区域的下边界通过所述新低值(new_base)定义,并且所述将来被分配的存储区域的上边界通过所述新高值(new_top)定义,并且所述状态机如此构型,使得在所述FIFO存储器的读运行中和/或在所述...
【专利技术属性】
技术研发人员:T·吉塞尔曼,K·布克,R·多施,
申请(专利权)人:罗伯特·博世有限公司,
类型:发明
国别省市:德国;DE
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。