使用三重缓冲来处理数据的方法

文档序号:7718423阅读:242来源:国知局
专利名称:使用三重缓冲来处理数据的方法
技术领域
本发明涉及使用三重缓冲(triple buffering)来处理数据的方法,具体地涉及在 第二数据处理系统中处理来自第一数据处理系统的数据的方法。
背景技术
数据处理中的一个已知原理为保持执行例如数学操作的特定数据操作的特殊硬 件就绪(ready)的实践,所述具体数据操作。这用于减轻中央处理单元(CPU)上的负荷。与 此相联系,经常出现在不同的单元之间必须互换数据的要求。典型地将在第二系统中处理 的数据从第一系统向第二系统传送,并且其后将其从第二系统再次传送回第一系统。系统 的特殊配置决定传送数据的方式。例如可以使用网络或借助于直接存储器存取(DMA)来传 送数据。 为了能够达到尽可能高的数据处理速度,以如此方式组织数据的传送以使得在正 在处理之前传输的数据的同时,在后台发生数据的传送。为了该目的,在作为目标系统的第 二系统中保持两个存储器区域就绪。在两个存储器区域中的一个中的数据正在被处理的同 时,将要被处理的下面的数据写入至另一存储器区域。 —旦另一存储器区域中的数据的处理已经结束,这些数据可用于处理。因为数据 总可用于处理,所以可以对处理部件进行高效的使用。理论上,不出现因为处理部件必须等 待数据而造成的其不能操作的暂停。这尤其(interalia)预先假定了该数据传输介质具有 足够宽的带宽。对于在称为双重缓冲(double buffering)的领域中的技术人员来说,这样 的方法是已知的。 IBM, Cell Broadband Engine—Programming Tutorial—Version 3. 0不出了——禾中 双重缓冲方法。该方法描述了从第一系统到目标系统的一个方向的数据的传送。为了从目 标系统向第一系统传送回已经被处理的数据,需要实施第二双重缓冲方法。
图1示出了在目标系统1中实施双重缓冲方法的存储器区域的安排,所述安排允 许数据的双向传送。为了该目的,在目标系统l中保持四个具有相同尺寸的存储器区域A、 B、 C、 D可用。两个第一存储器区域A、 B形成输入缓冲,并且实施输入数据流的双重缓冲方 法。两个第二存储器区域C、D形成输出缓冲,并且实施用于作为已经被处理的数据的输出 数据流的双重缓冲方法。在第一时间间隔tl中,在输入缓冲A、B中的第一存储器区域A中 接收数据。这由示出存储器区域A在时间间隔tl上的填充的(fill)锲形(wedge)来象征 性地指示。在时间间隔tl的开始处,该存储器区域为空,而接近时间间隔tl的结束,该存储 器区域被填充了数据。在时间间隔tl中,在该第二存储器区域B中将输入缓冲A、B中的第 二存储器区域B中的以前已经接收的数据保持可用于数据处理。在该第一时间间隔tl中, 由目标系统1处理这些数据,并且在输出缓冲C、D中的第二存储器区域D中存储结果数据。 在第一时间间隔tl的结束处,在输出缓冲C、D中的第二存储器区域D中,该结果是可用的。 使用阴影来图示在第一时间间隔tl中被保持可用于数据处理的存储器区域B和D中的每 一个。相似地,用锲形来象征性地图示时间间隔tl期间存储器区域C的清空(emptying)。
3在时间间隔tl的开始处,该存储器区域被要返回(return)的数据填充,而接近时间间隔tl 的结束,来自存储器区域C的数据已经返回。指示存储器区域的清空和填充的图示在图形 上是相反的。在第二时间间隔t2中,向这里未示出的第一数据处理系统返回来自输出缓冲 C、D中的第二存储器区域D的处理后的数据。输出缓冲C、D中的第一存储器区域C现在可 用于接收在第二时间间隔t2中处理的数据。在第二时间间隔t2中,将在第一时间间隔tl 中在第一存储器区域A中接收、并且在等待处理的数据在输入缓冲A、 B中的该存储器区域 A中保持可用。在第二时间间隔t2中,在输入缓冲A、B中的第二存储器区域B中接收输入 数据。在该方法中,从而用于接收数据的存储器区域和包含将被处理的数据的存储器区域 分别在每个时间间隔中在输入缓冲A、B中可用。用于返回已经被处理的数据的存储器区域 和用于处理数据的存储器区域分别在每个时间间隔中在输出缓冲C、D中可用。

发明内容
本发明的目标为改善这样一种方法。 本发明提供了处理数据以执行下列步骤的方法在第一时间间隔中向存储器区域 写入将被处理的数据块。在第二时间间隔中,在相同的存储器区域中处理该数据块。从那 里读取将被处理的数据,并且也将处理后数据写入至相同的存储器区域。在第三时间间隔 中,从相同的存储器区域转移(transfer)现在已经被处理的数据块。然后,在下一时间间 隔中,该存储器区域再次可用于接收数据。这具有分别只需要相同数目的存储器区域来接 收、处理和转移数据的优势。相反,在双重缓冲方法的情况中,所提供的用于接收和转移数 据的存储器区域是所提供的用于处理数据的存储器区域的两倍。在处理步骤期间,不需要 将数据从一个存储器区域移动至另一存储器区域。总体来说,与双重缓冲方法比较,根据本 发明的方法允许处理部件的相同利用而同时减少该目的所需的存储器区域的数目。
本发明提供了将被分组以形成存储器区域的组的存储器中的三个存储器区域。从 而清楚地构造可用的存储器,并且如果需要,可用于处理数据的方法。 在处理数据的方法中,本发明提供了将被用于该方法的一个或更多组的存储器区
域。存储器区域组中的一个存储器区域在每个时间间隔中分别用于接收、处理和发送数据。
作为使用一个或更多组的存储器区域传输和处理数据的事实的结果,该方法是灵活的,并
且可以对于可用和所要求的存储器来使该方法适配于相应的任务。该方法是普遍的。因为
在每个时间间隔中在每个存储器区域组中分别只提供一个数据块来保持数据可用,所以分
别使用每个存储器区域组中的一个存储器区域来接收、处理和传递数据的实践具有减少所
要求的存储器区域的数目的优势。而这样的结构使得能够进行双向数据互换。 在图像处理中有利地使用根据本发明的方法。在图像处理期间,特别在高分辨率
视频图像的实时处理期间,发送大量的数据。这样的使用对处理部件的存储器要求和计算
能力上施加了高要求。在该使用中,处理部件的等待时间的减少和存储器要求的减少具有
尤其有优势的效果。 在处理数据的方法中,本发明提供了不一定要随机存取以前已经被处理以在处理 数据块的步骤期间使用的数据的算法。利用这样的算法,从而不需要保持相应的存储器区 域可用于输出数据,并且可以用存储器中的结果数据来覆盖(overwrite)该结果,所述结 果即已经在该算法中使用的数据。如果该算法要求对以前已经被处理的单独数据的确定性(deterministic)的存取(例如在数字横向(horizontal)滤波器的情况中),这些值可以 被缓冲,并且因此仍然对算法可用,尽管原始数据已经被覆盖。 在第二数据处理系统中处理来自第一数据处理系统的数据的方法中,本发明提供 了在第一时间间隔中将被写入至第二数据处理系统的存储器区域的数据。在第二时间间隔 中在第二数据处理系统中的相同存储器区域中处理该数据。在第三时间间隔中从第二数据 处理系统的该存储器区域向第一数据处理系统返回该数据。使用根据本发明的方法利用来 自第一数据处理系统的数据、在第二数据处理系统中处理数据,并且将结果数据再次返回 至第一数据处理系统,使用所提出的方法的优势,并且使得能够在具有第二数据处理系统 中的减少对存储器的要求的情况下、进行第一数据处理系统和第二数据处理系统之间的双 向数据通信。 在处理数据的方法中,本发明提供了作为第一数据处理系统的子系统的第二数据 处理系统。在主系统和子系统之间频繁地互换数据。因此,在该情况中利用可能的最低存 储器要求来对子系统进行可能的最好利用是一个具体的要求。 在处理数据的方法中,本发明提供了作为中央处理单元的第一数据处理系 统和作为协处理器(coprocessor)的第二数据处理系统。在IBM, CellBroadband Engine-Programming Tutorial-Version 3. 0中,中央处理单元对应于PowerPC处理器元 件(PPE),而协处理器对应于协作(synergistic)处理器元件(SPE)。 本发明提供了将在全部被分配至相同的中央处理单元的多个协处理器中实施的 处理数据的方法。 进一步地,本发明涉及已知本质上执行根据本发明的方法的存储器的使用。
进一步地,本发明涉及执行根据本发明的方法、或包含根据本发明的存储器的数 据处理系统。 也可以从下面的对示范实施例的描述来了解(gather)本发明的优势。毋庸赘言, 除了那些明显地陈述的组合之外的其他组合、以及在本领域技术人员的实践范围之内的修 改,也同样地在本发明的范围之内。


图1示出了双向数据互换的已知方法,以及在子系统中其对存储器的要求;
图2示出了根据本发明的双向数据互换的方法,以及其在子系统中的减少的存储 器要求; 图3示出了依照根据本发明的方法的存储器的存储区域的分配。
具体实施例方式
图2示出了实施根据本发明的方法的存储器区域的安排,其通过目标系统2中的 三重缓冲来进行第一数据处理系统和目标系统2之间的双向数据互换。为了该目的,在目 标系统2中保持三个存储器区域A、 B、 C可用。对于每个时间间隔tl, t2, . . . , t5, t6,每 个存储器区域A、 B、 C的功能用途改变。对于每个时间间隔图示了在相应的时间间隔tl, t2,. . . ,t5,t6中怎样使用这些存储器区域,所述时间间隔的长度典型地从处理数据所需的 时段产生。在第一时间间隔tl中,在第一存储器区域A中接收数据。在第二时间间隔t2中,在第一存储器区域A中处理这些数据。在第三时间间隔t3中,从第一存储器区域A向 第一数据处理系统返回数据。借助存储器区域B、C来执行的任务的相同轮换(rotation) 在两个其他存储器区域B、 C中发生。以一个时间间隔的偏移发生该轮换,其结果为在每个 时间间隔tl, t2, . . . , t5, t6中,精确地保持一个存储器区域A、B、C可用于接收数据、处理 数据以及返回数据。 如果使用多个具有三个相应的存储器区域的组,那么以相似的方式发生轮换。于 是也总有相同数目的存储器区域可用于接收数据、处理数据和返回数据。
对于本领域技术人员来说,也从图形卡(graphics card)的生产中已知术语三重 缓冲。就此而论,意图提供三个存储器。在该情况中,在时间间隔中,一个存储器保持当前 所显示的图像就绪,而在该时间间隔中,第二存储器保持用于下一时间间隔的图像就绪。在 该时间间隔中,第三存储器接收用于下一时间间隔之后的时间间隔的图像。这使得在光束 (light beam)的返回阶段(return phase)期间内可以总是改变将要显示的图像数据,以便 从而能够重现无颤抖(judder)的图像。与根据本发明的方法对比,这不是双向方法。
在根据本发明的三重缓冲方法中,在相应的不同的时间间隔中,每个存储器区域 执行三个任务。每个存储器区域被用于发送、处理和转移数据。在双重缓冲方法中,如同从 现有技术已知的那样,存储器区域执行两个任务。存储器区域被用于接收数据和处理数据。 其他存储器区域被用于处理数据和转移数据。 换言之,本发明涉及处理数据的方法。在第一时间间隔tl, t2, t3,...中向存储 器区域A、B、C写入将被处理的数据块。在第二时间间隔t2,t3,t4,...中在相同的存储器 区域A、 B、 C中处理该数据块。在第三时间间隔t3, t4, t5,...中从相同的存储器区域A、 B、C返回处理后的数据块。 图3概略地示出了目标系统2的存储器3的细分(subdivision)。存储器3的一 个部分31用于目标系统2和第一数据处理系统之间的双向数据传输,而存储器3的另一部 分30用于其他任务。用于双向数据传输的存储区域31被细分为存储区域A、B、C的组32, 33,34...。每个组32,33,34...包括具有相同尺寸、并且用于执行根据本发明的方法的三 个存储器区域A、B、C。该细分使得按照根据本发明的方法可以同时地执行多个双向数据传 输操作,存储器区域A、 B、 C的一个或更多的组32,33,34...分别用于所述数据传输操作。 为了双向数据传输操作可以组合存储器区域A、B、C的多个组32,33,34...。根据用于该数 据传输操作的存储器区域A、B、C的组32, 33, 34...的数目而增加用于该双向传输操作的、 分别可用于接收数据、处理数据和返回数据的存储器的容量。
权利要求
处理数据的方法,将要被处理的数据块-在第一时间间隔(t1)中写入至存储器区域中,并且-在第二时间间隔(t2)中在相同的存储器区域中进行处理,其特征在于在第三时间间隔(t3)中从相同的存储器区域转移处理后的数据块。
2. 根据权利要求1的方法,其特征在于将存储器中的三个存储器区域进行分组以形 成存储器区域的组。
3. 根据权利要求2的方法,其特征在于_存储器区域的一个或多个组被用于所述方法,并且-在每个时间间隔(tl,t2,...,t6)中,分别使用存储器区域的组中的一个存储器区域 来接收、处理和转移数据。
4. 根据权利要求1至3中的任一项的方法,其特征在于该方法被用于图像处理。
5. 根据权利要求1至4中的任一项的方法,其特征在于在处理数据块的步骤期间执 行不对已经被处理的数据进行随机存取的算法。
6. 根据权利要求1至5中的任一项的方法,其特征在于在第二数据处理系统中处理 来自第一数据处理系统的数据,将要被处理的数据块-在第一时间间隔(tl)中写入至第二数据处理系统的存储器区域中, -在第二时间间隔(t2)中在第二数据处理系统中的相同的存储器区域中进行处理,并且-在第三时间间隔(t3)中从第二数据处理系统中的该存储器区域中返回至第一数据处理系统。
7. 根据权利要求6的方法,其特征在于第二数据处理系统为第一数据处理系统的子系统。
8. 根据权利要求6或7的方法,其特征在于第一数据处理系统为中央处理单元,第二数据处理系统为协处理器。
9. 根据权利要求6至8中的任一项的方法,其特征在于第一数据处理系统为PowerPC 处理器元件,第二数据处理系统为协作处理器元件。
10. 存储器,其特征在于它用于执行根据权利要求1至9中的任一项的方法。
11. 数据处理系统,其特征在于它执行根据权利要求1至9中的任一项的方法,或包含 根据权利要求10的存储器。
全文摘要
本发明涉及处理数据的方法。在第一时间间隔(t1,t2,t3,...)中,将要被处理的数据块写入至存储器区域(A、B、C)。在第二时间间隔(t2,t3,t4,...)中,在相同的存储器区域(A、B、C)中处理该数据块。在第三时间间隔(t3,t4,t5,...)中,从相同的存储器区域(A、B、C)返回处理后的数据块。
文档编号H04L12/56GK101741727SQ20091022127
公开日2010年6月16日 申请日期2009年11月11日 优先权日2008年11月11日
发明者英戈·休特尔 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1