具有顺序和非顺序块访问的缓冲器系统的制作方法

文档序号:6426706阅读:96来源:国知局
专利名称:具有顺序和非顺序块访问的缓冲器系统的制作方法
技术领域
本发明涉及处理领域和/或通信领域,特别涉及用于在两个系统之间提供接口的缓冲器的控制,所述两个系统之一被配置成以非顺序方式来访问该缓冲器。
缓冲器常被用于在系统,特别是异步传输数据的系统之间提供接口。这种数据传输缓冲器常被配置成从第一系统同步或者异步地接收数据,并根据第二系统的需要而将数据提供到第二系统。缓冲器管理器被用于确保在相应数据项被提供到第二系统之前从第一系统接收所述数据。也就是说,缓冲器管理器把接收器接收数据的速度调整到发送器发送数据的对应速度上。


图1图解了示例缓冲器100,它被配置成在写指针110所指示的位置存储来自于发送系统的每个数据项。随着存储每个数据项,写指针110被递增,以指示要存储下一数据项的位置。数据被提供到接收系统是通过将读指针120初始化为等于写指针110,然后根据请求顺序地把每个数据项提供到该接收系统。随着每个数据项被提供到接收系统,递增读指针120,以指示下一可用数据项的位置。为了确保读指针120不会指向还未被写入的位置处,限制读指针120不超过界限130。随着数据项被存储到缓冲器100中,该界限也被不断调整,并且通常对应于写指针110。为了易于参考和理解,此后把界限130作为一个特定参数来讨论,即便它可以是和写指针110相同的参数。
界限130由存储器访问控制器实施或者直接由接收系统实施。也就是说,通常来说存储器访问控制器使得界限130可用,但是维护读指针120并确保其不会超出界限130却是接收系统的责任。
通常,缓冲器100的大小是有限的,并且远远小于由缓冲器100接收的数据项的总数目。为了连续使用缓冲器,通常将缓冲器配置为“循环的”,这样当指针到达缓冲器的终点时,它被复位到缓冲器的起点。通常使用算法,以便在循环缓冲器中实施上述界限130。取决于特定实施例,也会限制写指针110,以使其在循环该循环缓冲器之后不会超出对应于读指针120的界限。也就是说,如果现有数据还未被接收系统读出,将防止发送系统把数据存储到缓冲器100中。备选地,强迫读指针120前进(advance),以便在新数据到达时保持在写指针的前面,未读数据被新到达的数据覆盖。为了便于参考和理解,本发明此后给出关于读指针界限的实施,而对写指针110界限的实施基本等价。
缓冲器100的大小确定了写入缓冲器的速度和从缓冲器读出的速度之间可允许的失配,和/或在不受控发送器的情形下,缓冲器100的大小确定了由于发送器和接收器之间的速度失配而引起的数据丢失量。在受控发送器的情形下,缓冲器100用于强迫平均发送和接收数据速率均衡,并且缓冲器100的大小确定了关于该平均数据速率所允许的变化程度。
如上所述,提供数据给缓冲器100的系统和从缓冲器100接收数据的系统是异步的。因而,对于界限130的更新只能和其中的一个系统同步。为了确保指针或界限在它们被递增时不被误读,通常使用格雷码来编码和递增指针,其中在递增转换期间只有指针的一位被改变。以这种方式,在界限130转换时异步读出界限130将会提供界限130的前一值或者下一值。因为界限130的前一值的实施仍然可以防止读指针120超出写指针110,所以使用格雷码序列确保读取过程的完整性,而不论界限130何时被读取。
用于异步读和写访问的传统两端口(数据输入,数据输出)缓冲方案假定的基本前提为数据是顺序写入到缓冲器100的。也就是说,固有地假定在读指针120和界限130之间的所有存储器位置都包含了有效数据。以下进一步讨论,在某些应用中,可以更有效地使得数据可以被用于以某种非序列方式写入到缓冲器。
本发明的一个目的是提供一种存储器访问方法和设备,它允许非序列访问诸如缓冲器的存储器设备。本发明进一步的目的是提供一种可以使可用存储器的使用最优化的存储器访问方法和设备。
通过提供一个分级的存储器访问控制方法和系统实现了这些和其它目的。该分级存储器访问控制区分数据块和每个块的内容,所述数据块已知要被顺序访问而块的内容可以被顺序访问也可以不被顺序访问。如果块的内容在块中是以顺序的方式提供的,但是由于在块内该序列开始时的非零偏移,该序列没有对应高层的序列,存储器访问控制被配置成通过信令来表示何时块内序列对应高层的序列,以最优化可用存储器的使用。当块内序列不同于高层的序列时,对缓冲器的访问被限制在缓冲器高层的分区上。当块内序列对应于高层的序列时,对缓冲器的访问在缓冲器的块内分区上提供。以这种方式,根据块内序列相对于高层序列的偏移程度,通常在整个块被提供给缓冲器之前,就已很好地提供了对于存储器的访问,由此最优化了存储器访问的速度。
参考以下附图,通过实例更详细地解释了本发明,其中图1说明了示例的现有技术缓冲系统,具有顺序的读和写指针。
图2说明了依照本发明具有非顺序访问指针的示例缓冲系统。
图3说明了依照本发明的缓冲器管理系统的示例方框图。
图4说明了用于确定依照本发明的缓冲器管理系统的存储器访问限定的示例逻辑图。
图5说明了依照本发明用于跟踪存储器访问的示例时序图。
在附图中,相同的参考标记指示相似或者相应的特征或功能。
在许多应用中,以一种分级的方式来存储具有明显顺序的数据,其中单独的数据项被逻辑或者物理地划分成块。例如,MPEG编码图像被存储为一系列构成图像的8×8象素块;n维数据数组被存储为一维数组块的序列;等等。
这种信息的块划分为减少存储器管理的复杂性提供了机会。例如,当一块数据被从一个部件经由缓冲器传送到另一个部件时,可以在块级上进行缓冲器管理,而不是在数据级上进行。也就是说,例如,当一块数据被写入时,缓冲器管理器只需要将图1的界限130设置在块的开始,直到整个块都被传送,由此避免在传送块时同步读指针和写指针的需要。
除了简化读和写指针的同步之外,提供块级的缓冲器管理还允许块内非顺序的读和写操作。也就是说,因为在块正被写入时不允许在该块中的读访问,所以写进程可以把数据以任意顺序放在块中,而不用担心读进程将会在块中读取旧数据和新数据的混合。以相似的方式,如果读进程正在访问块时,将阻止写进程修改所述块中的任意数据项。
通过在块级上管理缓冲器访问,块内读和写访问可以被最优化,以用于被用来传输数据的特定进程,而不限于如图1的现有技术中只是对顺序传输的最优化。
数据访问的最优化对于涉及在高速管道数据进程,或者其它多访问进程中的数据访问的应用特别重要。对高速存储器的数据访问的执行常常通过预装载(pre-charge)一组存储器中的读数据线(datareadline),然后根据正被读出的数据值来驱动适当的输出设备。优选地,预装载发生在读请求到达时刻之前,因此在发生预装载时读请求不会招致延时。如果特定组的存储器在一个存储器访问循环中被访问,则下一循环优选地用于预装载。
一种避免连续两次访问同一存储体的方法是,根据需要,偏移块内访问序列的开始地址。例如,一个MPEG宏块对应于一个8×8象素块,而在视频处理中使用的平常存储器结构被设定为8个存储体,其中每个存储体为8象素宽。也就是说,在8行段(8-line-segment)宏块的每个8象素宽行段中的数据被容纳在不同的存储体中。因此,访问每个行段避免了上面提到的预装载延时。然而,如果提供对于这些存储体的多路并行访问,这些多路访问会导致对于同一存储体的顺序访问。通过允许修改块中行段的访问顺序,可以避免对于同一存储体的重复访问。也就是说,例如,如果在另一个进程开始访问块时,一个进程当前正在访问存储体1,则另一进程被配置成以7-8-1-2-3-4-5-6的顺序来访问这8个存储体,而不是传统的1-2-3-4-5-6-7-8的顺序,后者将招致预装载延时。
图2说明了依照本发明具有非顺序块内访问指针的示例缓冲器系统。如从写指针210中流出的多个箭头所示,在本发明中写指针210被配置成能够指向缓冲器100中的多个存储元件或存储元件块(B8,B9,...)中的任意一个。本例和以上的示例行段访问方案一致,其中正在访问一个8行段的块。使用本例,存储元件B8被配置成存储对应于第一行段的8个象素值,存储元件B9被配置成存储对应于第二行段的8个象素值,依此类推。在以上的实例中,当第8行段的数据被首先提取时,写指针210只是指向存储元件Bf,它被配置来存储对应于第八行段的8象素值。随后,当提取第一行段的数据时,写指针210指向存储元件B8,依此类推,直到8组8象素值的每一组都被载入到存储元件B8-Bf中。
还应指出,尽管在块B8-Bf中的存储器访问可以是非顺序的,或使用对于块的非零偏移时是顺序的,但是从第一个8×8块到第二个8×8等等的块级上的存储器访问是顺序的,如图2中的箭头211所示。因此,上面提到的、基于顺序界限参数的可靠双访问进程的实施,可以在块级上实现,但是它也可以应用于块内级。
根据本发明的一个方面,界限230被配置成设定在存储元件B8-Bf的块的开始,以防止读指针220延伸到块B8-Bf中,直到该块中的每个存储元件都载入了适当数据,而无论写指针210是以怎样的顺序将数据提供到该块中的。
在该块传输完成之后,写指针210前进到下一块的8个存储元件,并且界限230被设定到块B8-Bf的结束。此后,读指针220能够前进到块B8-Bf中,以允许将数据传输到示例的编码器。以这种方式,通过在块级上控制界限参数230,能够提供可靠的缓冲器访问。
注意,尽管以上描述给出了用于在一个块中的非顺序写访问期间在块级上控制读访问的技术,对于在非顺序地从缓冲器100中读取期间在块级上控制写访问同样可以实现这个相同的过程。例如,读指针220可被配置成首先读取第八个存储元件,将这些值存储在包含该第八行段其它值的行缓冲器中,类似于上面提到的对于缓冲器100的非顺序写访问。在本例中,将限定写指针210,以免延伸到特定块中,直到8个存储元件的每一个都被读出。如以上指出的,为了便于参考和理解,使用对于缓冲器的非顺序写访问来给出本发明,但是,对于阅读了本发明的公开内容的本领域技术人员来说显然也可以将此处公开的原理应用到其它对于缓冲器的非顺序访问中。
图3说明了依照本发明的缓冲器管理系统300的示例方框图。如所示,缓冲器管理系统300管理从发送器设备或者部件310到接收器设备或者部件320的数据传输。根据本发明,缓冲器管理器350基于块级的顺序写访问来确定读访问的界限230。根据用于读访问的特定协议,缓冲器管理器350或者通过拒绝访问超出界限230的存储元件来实施界限230,或者将界限230传送到接收器设备320,以用于界限230的自实施。图2和图3中的循环箭头212用于说明块内存储器访问,它们可以是顺序的也可以不是,而循环箭头211说明了顺序的块到块存储器访问。根据本发明的第一方面,缓冲器管理器350确定界限230,以便当潜在的非顺序块内访问212正在进行时,防止读指针220延伸到块中。
根据本发明的第二方面,通过确定何时存储器访问的顺序对应于高层的顺序,进一步增强系统300的性能。考虑以下的示例存储器访问,其中顺序方向随着每个下一块访问而改变,首先是通过递增的地址顺序,然后是通过递减的地址顺序。假设在读过程期间是递增的地址顺序,缓冲器管理器350最好被配置成在块正以递减的地址顺序被写入时,防止读指针220延伸到块中,但是在块正以递增的地址顺序被写入时,允许读指针220延伸到块中,因为写顺序在与高层的都顺序同相的方向上。以这种方式,读指针220只被延时半个块访问,而块内写过程与高层的读顺序的方向相反。
同样考虑,具有初始的非零块内偏移的上述顺序访问,诸如序列7-8-1-2-3-4-5-6。在本例中,假设通常的更高级顺序访问的地址是从低到高,块内顺序访问与块顺序的方向相同,即从低到高,并且在访问最后一项之后循环被复位到第一项。当写指针210最初前进到“8”时,通过读指针220的存储器访问必须被从块内排除,这是因为至少在第八个数据项下面的某些存储器位置还未被写入。然而,当写指针210前进到“2”时,允许读指针访问在写指针为“1”时存储的数据项。相似地,当写指针210前进到“4”时,则允许读指针220访问数据项1、2、3中的任一个,而不用担心会从还没有被写入的存储器位置进行读取。
根据本发明,该缓冲器管理器350被配置成当写入存储器单元“下面”的任何单元还未被写入时(即还未“有效”),维护界限230,以及将界限230复位到值230′,它对应于一个存储器单元,在该单元下面的每个其它单元都有效。以这种方式,一旦块内写指针与块级的顺序相同,读访问就可以开始。在本文中,“下面”被定义为在块级顺序的方向上,位于受支配的(subject)单元之前的存储器单元。也就是说,如果块级顺序为由低到高,则“下面”的存储单元具有比所述单元更低的地址,或者指针;而如果块级顺序是由高到低,则“下面”的存储器单元具有比受支配的单元更高的地址,或者指针。
当下面的存储器单元都有效时,可以采用多种技术的任何一种。如图2中所示,在优选实施例中,写指针210对应于一个相对于块地址250的偏移260。如果块内序列的顺序和块到块序列在相同方向上(高到低或者低到高),则一旦偏移260等于0,所有随后在块内在地址250处的写指针210访问都使得所有下面的存储器单元以前都已经被访问,因而都是有效的。
注意,在以上的例子中为了便于参考,使用了固定的块大小。但对于本领域技术人员来说非常显然,影响以上过程所需的最合适的参数是块的开始和块的结束(或者,等价地,块的大小)。此外,块的大小可以随着每次处理而改变。
图4说明了依照本发明的优选实施例,用于确定缓冲器管理系统的存储器访问界限的示例逻辑框图。而图5说明了对应于图4的逻辑,用于跟踪存储器访问的示例时序图。在这个示例实施例中,“缠绕(wrap)”信号指示写指针210(图2)何时被初始偏移,这样一个或者多个“更低的”存储器单元以及地址250处的块被跳过,并且还未被写入。“空闲”信号指示一个非写状态(可替换地,其中读指针被偏移,“空闲”信号指示非读状态)。
当断言了缠绕信号或者空闲信号时,NOR门410通过选择器420选择块地址250以便形成界限230。当既没有断言缠绕信号也未断言空闲信号时,NOR门410选择块地址250和偏移260的和430来形成界限230。也就是说,如果当前激活的写指针210使得所有的“下面”地址都未被跳过,则界限参数230被设定为对应于这个写指针210。(在本示例实施例中,读指针220将被限定为在界限230“下面”,“下面”的含义如以上所述)。
图5说明了用于跟踪和图4的逻辑相对应的存储器访问的示例时序图。在该例中,示例了两个块操作,块510包含地址0到7,块511包含地址8到f(十六进制)。第一个块510在地址“6”被初始访问,并且随后顺序通过地址7,然后复位到地址0,然后是地址1-5。第二块511最初在地址“d”被访问,随后顺序通过地址e和f,然后复位到8,然后是地址9,a,b和c。为了方便,在520、521和550、551分别示例了与指针地址510,511对应的偏移值和块值。
如本例所示,通过在地址“d”开始第二块511,第二块511中的第一偏移值(5)与第一块510中的最后偏移值相同。如上所述,如果,每个新偏移值需要一个存储器访问操作或者其它消耗时间的操作,例如将一行数据读入到行缓冲器中,则图5所示的序列通过保留在前的偏移值而消除了每个块访问的一个这样的操作。
当第一块510在地址6和7被访问时,缓冲器管理器(图3中的350)断言缠绕信号530,从而将界限560设定为块地址550。当缠绕信号被解除断言(deassert)530’时,指示块内顺序对应于块级顺序,界限560被设定为对应于地址510,它是块地址550与偏移520的组合。同样,当第二块511在地址d,e和f被访问时,界限560被设定为块地址551,之后设定为块地址551和偏移521的组合。
在本发明的优选实施例中,界限560的传送是通过格雷码序列,这样,如果接收系统在转换期间读到该界限,如以上关于格雷码序列的传统使用所论述的那样,它或者是该转换之前的值,或者是该转换之后的值。提供跟踪信号570,以便将界限560传送到接收系统,来跟踪对应于块地址510的写指针。只有在写指针前进到地址“1”之后,读指针才被允许前进到地址“0”;此后,跟踪信号顺序跟踪通过地址1-7。注意通过在跟踪信号570中提供完整的序列,而没有对应于实际界限560的间隙或者跳跃,对应于该跟踪信号的格雷码序列提供了将该界限传送到接收系统的可靠通信。也就是说,例如,在时刻501,界限560实际为8,指示接收系统可以访问值0-7的任一个。然而,在时刻501之前,界限为5。该界限从5到8的变化不能被可靠地传送,因为,在界限值改变时,接收机也许会尝试读出该界限。格雷码序列提供了这个可靠性,只要该序列是连续的。跟踪信号570提供了这种连续序列,而不会有序列中的间隙或跳跃。
以上只是示例了本发明的基本原理。因而,本领域技术人员能够设计各种方案,尽管没有在此清楚描述和示出,但采用了本发明的基本原理,因而它们也在附加的权利要求的精神和范围之内。
权利要求
1.一种缓冲器系统,包括一个缓冲器,被设定成通过第一指针和第二指针而被访问,以及一个缓冲器管理器,被设定成根据第一指针来限定第二指针,其中第一指针被设定成提供对该缓冲器的顺序块级访问,以及对该缓冲器的独立块内访问,以及缓冲器管理器被设定成将该第二指针限定为一个界限值,其对应于该第一指针的顺序块级访问。
2.权利要求1的缓冲器系统,其中当对缓冲器的独立块内访问对应于对该缓冲器的顺序块级访问时,缓冲器管理器还被设定成将该界限值复位到对应于第一指针。
3.权利要求1的缓冲器系统,其中该第一指针包括块地址和偏移地址,以及该缓冲器管理器被设定成当对缓冲器的独立块内访问没有对应于顺序块级访问时,把界限值设定为对应于块地址,以及当对缓冲器的独立块内访问对应于顺序块级访问时,把界限值设定为对应于该块地址和偏移地址的组合。
4.权利要求1的缓冲器系统,其中第一指针和第二指针对应于写指针,用于将数据写入到缓冲器,以及读指针,用于从该缓冲器读出数据。
5.权利要求1的缓冲器系统,其中第一指针包括块地址和偏移地址,该块地址对应于顺序块级访问,以及该偏移地址对应于独立块内访问;以及该缓冲器管理器还被配置成最小化对于顺序块级访问之间偏移访问的改变。
6.权利要求1的缓冲器系统,其中缓冲器管理器还被配置成在完成该缓冲器的块级访问之前,通过第一指针来使该界限值前进。
7.权利要求6的缓冲器系统,其中该缓冲器管理器还被配置成通过和该界限值的前进相对应的格雷码序列来传送该界限值。
8.权利要求1的缓冲器系统,其中该缓冲器管理器还被配置成通过格雷码序列来传送该界限值。
9.一种用于控制对缓冲器的访问的缓冲器管理系统,包括缓冲器管理器,被配置成当对于该缓冲器的第一访问是非顺序访问时,断言一个缠绕信号,并且还被配置成根据该缠绕信号来限定对于该缓冲器的第二访问。
10.权利要求9的缓冲器管理系统,其中对于缓冲器的第一访问包括基于块地址和偏移地址的访问,以及在断言了缠绕信号时,对于缓冲器的第二访问被限定到该块地址,并且当缠绕信号被解除断言时,对于缓冲器的第二访问被限定到该块地址被限定到该块地址和偏移地址的组合。
11.权利要求10的缓冲器管理系统,其中第二访问的界限的改变通过格雷码序列而被传送。
12.权利要求10的缓冲器管理系统,其中该缓冲器管理器还被配置成当对于缓冲器的第一访问结束时,断言一个空闲信号,以及当断言该空闲信号时,对于缓冲器的第二访问被进一步限定到该块地址。
13.权利要求9的缓冲器管理系统,其中第一访问和第二访问对应于对于缓冲器的写访问,和对于缓冲器的读访问。
14.一种用于控制对缓冲器访问的方法,包括确定对应于对该缓冲器的第一访问的块地址和偏移地址,确定该偏移地址何时相对于该块地址是非顺序的,以及当该偏移地址是非顺序的时,把对于该缓冲器的第二访问限定到该块地址。
15.权利要求14的方法,还包括确定该偏移地址何时相对于该块地址是顺序的,以及当该偏移地址是顺序的时,把对于该缓冲器的第二访问限定到该块地址和该偏移地址的组合。
16.权利要求14的方法,其中限定该第二访问包括确定对应于该块地址中的改变的格雷码序列。
全文摘要
一种分层存储器访问控制区分数据块和每个块中的内容,数据块已知要被顺序访问,而每个块的内容可以被顺序访问也可以不被顺序访问。如果块的内容在块中是以顺序的方式提供的,但是由于在块内该序列开始时的非零偏移,该序列没有对应高层的序列,存储器访问控制被用于通过信令来表示何时块内序列对应高层的序列,以最优化可用存储器的使用。当块内序列不同于高层的序列时,对缓冲器的访问被限制在缓冲器高层的分区上。当块内序列对应于高层的序列时,对缓冲器的访问在缓冲器的块内分区上提供。以这种方式,根据块内序列相对于高层序列的偏移程度,通常在整个块被提供给缓冲器之前,就已很好地提供了对于存储器的访问,由此最优化了存储器访问的速度。
文档编号G06F5/10GK1549963SQ02817134
公开日2004年11月24日 申请日期2002年8月21日 优先权日2001年8月29日
发明者J·A·罗维, J A 罗维 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1