图形处理系统转让专利

申请号 : CN201010294392.9

文献号 : CN102033728B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : D·克罗克斯福德L·埃里克森J·E·奥特哈尔斯J·尼斯塔德E·利兰

申请人 : ARM有限公司

摘要 :

本发明涉及图形处理系统。事物消除硬件单元(5)控制将基于区块的图形处理器产生的区块写到存储器(2)中的帧缓冲器,并且其具有签名生成器(20),其为每个区块产生代表该区块的内容的签名。签名比较器(23)然后将从图形处理器接收的新区块的签名与已经存储到帧缓冲器中的一个或多个区块的签名比较以便了解这些签名是否匹配。如果签名不匹配,那么签名比较器(23)控制写控制器(24)将新区块写到帧缓冲器。另一方面,如果签名匹配,那么没有数据写到帧缓冲器并且现有的区块被允许保留在帧缓冲器中。通过这种方式,仅在签名比较发现区块与已经存储到存储器中的它与之比较的一个或多个区块不同的情况下,才将区块写到帧缓冲器。

权利要求 :

1.一种操作数据处理系统的方法,其中数据处理系统产生的数据用来形成输出缓冲器中的输出数据阵列,该方法包括:数据处理系统通过将代表输出数据阵列的特定区域的数据块写到输出缓冲器来将输出数据阵列存储到输出缓冲器中;

其中数据处理系统被配置成关于每个数据块位置总是周期性地将新产生的数据块写到输出缓冲器,并且其中,在对特定数据块位置的周期性写入操作之间并且当已经为输出数据阵列的该数据块位置产生了数据块时,数据处理系统将该数据块与至少一个其他数据块比较,并且根据该比较确定是否将产生的数据块写到输出缓冲器。

2.权利要求1的方法,其中所述比较过程包括比较代表各数据块的内容的签名。

3.权利要求1的方法,其中产生的数据块与仅仅一个其他数据块比较。

4.权利要求1的方法,其中关于为给定输出数据阵列产生的一些而不是全部数据块执行所述数据块比较。

5.权利要求1的方法,其中数据处理系统是基于区块的图形处理系统并且每个数据块与该图形处理系统产生的渲染的区块相应。

6.权利要求1的方法,其中数据处理系统是图形处理系统并且输出数据阵列是由该图形处理系统产生的输出帧。

7.权利要求1的方法,其中数据处理系统是图形处理系统并且输出缓冲器是向其写入该图形处理系统的输出的帧缓冲器。

8.权利要求1的方法,其中数据处理系统是图形处理系统并且输出缓冲器是向其写入该图形处理系统的输出的纹理或其他表面。

9. 一种数据处理系统,包括:

数据处理器,其用于产生数据以形成该数据处理器提供的输出数据阵列;以及处理器,其用于通过将代表数据阵列的特定区域的数据块写到输出缓冲器而将数据处理器产生的数据存储为输出缓冲器中的数据阵列;

其中数据处理系统被配置成关于每个数据块位置总是周期性地将新产生的数据块写到输出缓冲器;

并且其中,该处理器在对特定数据块位置的周期性写入操作之间将已经为输出数据阵列的该数据块位置产生的数据块与至少一个其他数据块比较并且根据该比较确定是否将产生的数据块写到输出缓冲器。

10.权利要求9的系统,其中产生的数据块与仅仅一个其他数据块比较。

11.权利要求9的系统,还包括用于选择要与给定输出数据阵列的另一个数据块或另外多个数据块比较的所述产生的数据块的数量的装置。

12.权利要求9的系统,其中数据处理系统是基于区块的图形处理系统并且每个数据块与该图形处理系统产生的渲染的区块相应。

13.权利要求9的系统,其中数据处理系统是图形处理系统并且输出缓冲器是向其写入该图形处理系统的输出的帧缓冲器。

14.权利要求9的系统,其中数据处理系统是图形处理系统并且输出缓冲器是向其写入该图形处理系统的输出的纹理或其他表面。

15.权利要求9-14中任何一项的系统,包括写事物消除硬件元件,该写事物消除硬件元件包括处理器,该处理器用于通过将代表数据阵列的特定区域的数据块写到输出缓冲器而将数据处理器产生的数据存储为输出缓冲器中的数据阵列;以及用于将为输出数据阵列产生的数据块与至少一个其他数据块进行比较并且用于根据该比较确定是否将产生的数据块写到输出缓冲器。

16.权利要求15的系统,其中写事物消除硬件元件是数据处理器的组成部分。

17.权利要求9的系统,其中所述处理器比较代表各数据块的内容的签名。

18.一种用在数据处理系统中的写事物消除装置,其中通过将代表输出数据阵列的特定区域的数据块写到输出缓冲器而将数据处理系统产生的输出数据阵列存储到输出缓冲器中,其中所述数据处理系统被配置为关于每个数据块位置总是周期性地将新产生的数据块写到输出缓冲器,所述装置包括:用于在对特定数据块位置的周期性写入操作之间将为输出数据阵列的该数据块位置产生的数据块与至少一个其他数据块进行比较并且用于根据该比较确定是否将产生的数据块写到输出缓冲器的处理器。

19.权利要求9的装置,其中所述处理器比较代表各数据块的内容的签名。

20.一种操作数据处理系统的方法,其中输出数据阵列由数据处理系统产生,该数据处理系统将代表输出数据阵列的特定区域的数据块写到用于存储输出数据阵列的输出缓冲器,其中数据处理系统被配置成关于每个数据块位置总是周期性地将新产生的数据块写到输出缓冲器,该方法包括:在对特定数据块位置的周期性写入操作之间并且当要将该数据块位置的数据块写到输出缓冲器时,数据处理系统将该数据块与已经存储到输出缓冲器中的至少一个数据块比较,并且使用多个数据块的比较结果估计数据处理系统的不同输出阵列之间的相关性。

21.一种数据处理系统,包括:

数据处理器,其用于产生数据以形成数据处理系统提供的输出数据阵列;

处理器,其用于通过将代表数据阵列的特定区域的数据块写到输出缓冲器而将数据处理器产生的数据存储为输出缓冲器中的数据阵列,其中数据处理系统被配置成关于每个数据块位置总是周期性地将新产生的数据块写到输出缓冲器;

并且其中所述处理器被配置为在对特定数据块位置的周期性写入操作之间,将要写到输出缓冲器的该数据块位置的数据块与已经存储到输出缓冲器中的至少一个数据块比较,并且使用多个数据块的比较结果估计数据处理系统的不同输出阵列之间的相关性。

说明书 :

图形处理系统

技术领域

[0001] 本发明涉及图形处理系统,特别地,涉及图形处理系统中的帧缓冲器生成和类似的操作。

背景技术

[0002] 如本领域中已知的,要显示的图形处理系统的输出通常在其准备用于显示时被写到存储器中的所谓的“帧缓冲器”。该帧缓冲器然后由显示控制器读取并且输出到显示器(其可以例如为屏幕或打印机)以便显示。
[0003] 将图形数据写到帧缓冲器消耗相对大量的功率和存储带宽,特别是在像通常的情况那样帧缓冲器驻留在图形处理器外部的存储器中的情况下,尤其如此。例如,新的帧可能需要以每秒30帧或者更高的速率写到帧缓冲器,并且每帧可能需要大量的数据,对于更高分辨率的显示器和高清晰度(HD)图形而言,情况尤其如此。
[0004] 因此,已知的是希望设法降低帧缓冲器操作的功耗,并且提出了各种不同的技术来设法实现这点。
[0005] 这些技术包括提供片上(与外部相反)帧缓冲器、帧缓冲器缓存(缓冲)、帧缓冲器压缩以及动态颜色深度控制。然而,这些技术中的每一种具有其自身的缺陷和不足。
[0006] 例如,特别是为较高分辨率显示器使用片上帧缓冲器可能需要大量的片上资源。帧缓冲器缓存或缓冲可能不实用,因为帧生成通常与帧缓冲器显示异步。帧缓冲器压缩可能有所帮助,但是必要的逻辑相对复杂,并且帧缓冲器格式被改变。有损帧缓冲器压缩会降低图像质量。类似地,动态颜色深度控制是一种有损方案并且因而降低图像质量。
[0007] 因此,申请人相信,存在改进图形处理系统中的帧缓冲器生成和类似操作的余地。

发明内容

[0008] 依照本发明的第一方面,提供了一种操作图形处理系统的方法,其中图形处理系统产生的数据用来形成输出缓冲器中的输出数据阵列,该方法包括:
[0009] 图形处理系统通过将代表输出数据阵列的特定区域的数据块写到输出缓冲器来将输出数据阵列存储到输出缓冲器中;以及
[0010] 当已经为输出数据阵列产生了数据块时,图形处理系统将该数据块与至少一个其他数据块比较,并且根据该比较确定是否将产生的数据块写到输出缓冲器。
[0011] 依照本发明的第二方面,提供了一种图形处理系统,该系统包括:
[0012] 图形处理器,其包括用于产生形成图形处理器提供的输出数据阵列的数据的装置;
[0013] 用于通过将代表数据阵列的特定区域的数据块写到输出缓冲器而将图形处理器产生的数据作为数据阵列存储到输出缓冲器中的装置;并且其中:
[0014] 图形处理系统还包括:
[0015] 用于将已经为输出数据阵列产生的数据块与至少一个其他数据块比较并且用于根据该比较确定是否将产生的数据块写到输出缓冲器的装置。
[0016] 依照本发明的第三方面,提供了一种图形处理器,该图形处理器包括:
[0017] 用于将由图形处理器产生且代表图形处理器提供的输出数据阵列的特定区域的数据块写到输出缓冲器的装置;以及
[0018] 用于将已经为输出数据阵列产生的数据块与至少一个其他数据块比较并且用于根据该比较确定是否将该数据块写到输出缓冲器的装置。
[0019] 本发明涉及图形处理系统并且在该图形处理系统中实现,在所述系统中,通过将代表输出数据阵列(其可以例如是并且在一个优选的实施例中为要显示的帧)的特定区域的数据块(其可以例如是并且在一个优选的实施例中为图形处理器产生的渲染的区块)写到输出缓冲器(其可以例如是并且在一个优选的实施例中为帧缓冲器)来将输出数据阵列存储到输出缓冲器中。
[0020] 因此,实际上,本发明涉及图形处理系统且预期在图形处理系统中实现,在所述系统中,在逐块的基础上而不是直接作为单个总输出“帧”将图形处理系统的“最终”总输出存储到存储器中。
[0021] 在基于区块的图形处理系统中,情况例如就是这样并且应当为本领域技术人员所理解,在这种情况下,以本发明的方式考虑和比较的每个数据块可以(并且在一个优选的实施例中确实)与图形处理器的渲染过程产生的“区块”相应(尽管如下面将进一步讨论的,这不是必需的)。
[0022] (如本领域中已知的,在基于区块的渲染中,将渲染过程的二维输出阵列或帧(“渲染目标”)(例如以及典型地,其将被显示以显示被渲染的场景)细分或分割成多个更小的区域(通常称为“区块”)以用于渲染过程。这些区块(子区域)中的每一个被独立地渲染(典型地一个接一个地)。然后,将渲染的区块(子区域)重新组合以提供完整的输出阵列(帧)(渲染目标)例如以用于显示。
[0023] 通常用于“分块”(tiling)和“基于区块”的渲染的其他术语包括“形成组块”(chunking)(子区域称为“组块”(chunk))和“小块”(bucket)渲染。为了方便起见,将在本文使用术语“区块”和“分块”,但是应当理解的是,这些术语预期涵盖所有的替换物以及等效的术语和技术。)
[0024] 在本发明中,代替一旦每个输出数据块(例如渲染的区块)准备好则简单地将其向外写到帧缓冲器的是,改为首先将输出数据块与另一个或另一些数据块(例如一个或多个区块)(与至少一个数据块)比较,并且然后根据该比较确定是否将该(新)数据块写到输出(例如帧)缓冲器(或者不写)。
[0025] 如下面将进一步讨论的,申请人已经发现并且认识到,这个过程可以用来显著地减少使用中将被写到输出(例如帧)缓冲器的数据块(例如渲染的区块)的数量,从而显著地减少输出(例如帧)缓冲器事物的数量以及因而与输出(例如帧)缓冲器操作有关的功率和存储带宽消耗。
[0026] 例如,如果发现新产生的数据块与已经或将要存在于输出缓冲器中的数据块(例如渲染的区块)相同,那么可以(并且优选地)确定将新产生的数据块写到输出缓冲器是不必要的,从而消除了对于该输出缓冲器“事物”的需要。
[0027] 而且,申请人已经认识到,例如在不从帧到帧改变的图像区域(例如天空、当相机位置静止时的玩耍场地、许多应用的大部分用户界面等等)中,新数据块(例如渲染的区块)与已经或将要在输出(例如帧)缓冲器中的数据块(例如渲染的区块)相同或相似可以是相对普遍的事件。因此,通过促进识别这样的区域(例如区块)并且然后(如果希望的话)避免再次将这样的区域(例如区块)写到输出(例如帧)缓冲器的能力,可以实现到输出(例如帧)缓冲器的写通信量(写事物)方面的显著节省。
[0028] 例如,申请人已经发现,对于一些常见的游戏而言,每帧中高达20%(或者甚至更多)的渲染的区块可能是不变的。如果帧中20%的区块没有重写到帧缓冲器(通过使用本发明),那么对于30帧/秒(fps)的HD 1080p图形来说,估计的功率和存储带宽的节省可能为大约30mW和50MB/s。在其中甚至更多渲染的区块不从帧到帧改变的情况下,可以实现甚至更大的功率和带宽节省。例如,如果90%的渲染的区块没有重写(不变),那么节省可能是大约135mW和220MB/s。
[0029] 因此,本发明可以用来有效地通过促进不必要的输出(例如帧)缓冲器事物的识别和消除而显著地降低用于帧和其他输出缓冲器操作的功耗和存储带宽。
[0030] 此外,与上面讨论的现有技术方案相比,本发明需要相对较少的片上硬件,可以是无损过程,并且不改变帧缓冲器格式。它也可以容易地与现有的帧缓冲器功率降低方案结合以及与其互补,从而促进进一步的功率节省(如果希望的话)。
[0031] 图形处理系统产生的数据用来形成的输出数据阵列可以是任何适当的和希望的这类数据阵列,即图形处理器可以用来产生的数据阵列。在一个特别优选的实施例中,它包括用于显示的输出帧,但是它也可以或者替代地包括图形处理器的其他输出(例如图形纹理,其中例如渲染“目标”是使用图形处理器产生的纹理(例如在“渲染到纹理”操作中)),或者要向其写入图形处理器系统的输出的其他表面。
[0032] 类似地,要向其写数据的输出缓冲器可以包括任何适当的这种缓冲器并且可以在存储器中以任何适当的和希望的方式配置。例如,它可以是片上缓冲器或者它可以是外部缓冲器(并且实际上,可以更可能是外部缓冲器(存储器),如下面将讨论的)。类似地,它可以是用于该目的的专用存储器,或者它可以是也用于其他数据的存储器的一部分。在一个优选的实施例中,输出缓冲器是用于图形处理系统和/或用于向其提供图形处理系统的输出的显示器的帧缓冲器。
[0033] 产生的数据块与其比较的其他一个或多个数据块可以根据需要进行选择。在一个特别优选的实施例中,它们是已经存储到输出缓冲器中的数据块。
[0034] 因此,在特别优选的实施例中,所述数据块比较包括将已经为(例如并且优选地准备写到输出缓冲器的)输出数据阵列而产生的数据块与已经存储到输出缓冲器中的至少一个其他数据块比较(并且然后根据该比较确定是否将该新数据块写到输出缓冲器)(的步骤或装置)。
[0035] 在这种情况下,已经存储到输出缓冲器中的(一个或多个)数据块可以是已经为当前输出数据阵列而存储的数据块,但是在特别优选的实施例中,其是或者也是来自前面的数据阵列(即先前存储到输出缓冲器中的数据阵列)的一个数据块(或多个数据块)。因此,在优选的实施例中,将产生的数据块与来自前面的输出数据阵列的一个或多个块比较。在一个优选的实施例中,产生的数据块只与来自前面的输出数据阵列的一个或多个块比较。
[0036] 因此,在特别优选的实施例中,所述比较包括来自已经存储到输出(例如帧)缓冲器中的前面的数据阵列的数据块。这于是可以避免在其已经存在于来自前面的数据阵列的输出缓冲器中的情况下,必须再次将相似的数据块写到用于当前(新)数据阵列的输出缓冲器。这在产生一系列相似数据阵列(例如视频序列的帧)的情况下是特别有用的。
[0037] 在另一个优选的实施例中,所述数据块比较过程仅仅关于(通过比较)为相同数据阵列(当前数据阵列)而产生的块执行。
[0038] 在这种情况下,所述比较例如可以针对当前阵列的已经存储到输出缓冲器中的数据块,和/或所述比较可以(并且在一个优选的实施例中)针对为当前输出阵列而产生但是还必须存储到输出缓冲器中的其他块。
[0039] 在这种情况下,当产生要写到数据阵列的每个数据块时,可以将它与数据阵列的另一个或另一些数据块比较,并且新数据块根据该比较写到或不写到数据阵列。因此,在特别优选的实施例中,存在当用于数据阵列的数据块完成时,将该数据块与数据阵列的至少一个其他数据块比较并且根据该比较确定是否将完成的数据块写到数据阵列的步骤或装置。
[0040] 在一个特别优选的实施例中,所述数据块比较针对目前(当前)数据阵列的数据块以及已经存储到输出缓冲器中的前面的数据阵列的数据块。
[0041] 因此,在优选的实施例中,所述比较针对要存储到或者已经存储到输出缓冲器中的数据块。
[0042] 在存在与当前输出数据阵列的其他数据块的比较的情况下,使得即使对于讨论的数据块位置可能不存在已经在输出缓冲器中的数据块,为阵列产生的数据块也可以不写到输出缓冲器,尽管数据块本身可能不写到输出缓冲器,但是优选地为讨论的块位置产生和存储指示应当处理数据阵列的哪个其他块的讨论的块位置的元数据。这于是将允许使用或处理数据阵列的任何设备识别要为讨论的块处理数据阵列的哪个其他数据块。
[0043] 被考虑和比较的数据块中的每一个可以代表要存储到输出缓冲器中的整个输出数据阵列的任何适当的和希望的区域(区)。只要整个输出数据阵列被划分或分割成多个可识别的更小的区域,每个区域代表整个输出阵列的一部分,并且其可以相应地表示为可以以本发明的方式识别和比较的数据块,那么可以根据需要完成将输出阵列细分成数据块。
[0044] 每个产生的数据块优选地代表整个输出阵列的不同部分(子区域)(尽管如果希望的话,块可以重叠)。每个块应当代表输出阵列的适当部分(区),例如阵列内的多个数据位置。适当的数据块大小将是输出数据阵列中的例如8x8、16x16或32x32数据位置。
[0045] 在一个特别优选的实施例中,优选地以正方形或矩形的形式将输出数据阵列划分成规则大小和形状的区域(数据块)。然而,这不是必需的并且如果希望的话,可以使用其他的设置
[0046] 在一个特别优选的实施例中,每个数据块与图形处理器作为其渲染输出而产生的渲染的区块相应。这是实现本发明的特别直接的方式,因为图形处理器将直接产生这些渲染的区块,并且因而将无需任何进一步的处理以便“产生”将以本发明的方式考虑和比较的数据块。因此,在这种情况下,由于图形处理器产生的每个渲染的区块要写到输出(例如帧)缓冲器,因而将它与另一个或另一些渲染的区块比较并且然后根据该比较将新渲染的区块写到或不写到输出缓冲器。
[0047] 因此,依照本发明的第四方面,提供了一种操作基于区块的图形处理系统的方法,其中图形处理系统产生的渲染的区块一旦被产生,则将它们写到输出缓冲器,该方法包括:
[0048] 当用于输出到输出缓冲器的区块完成时,图形处理系统将该区块与已经存储到或者将要存储到输出缓冲器中的至少一个其他区块比较,并且根据该比较确定是否将完成的区块写到输出缓冲器。
[0049] 依照本发明的第五方面,提供了一种图形处理系统,该图形处理系统包括:
[0050] 基于区块的图形处理器,其包括用于产生由该图形处理器提供的输出的输出区块的装置;
[0051] 用于一旦图形处理器产生的输出区块完成,则将该输出区块写到输出缓冲器的装置;并且其中:
[0052] 图形处理系统还包括:
[0053] 用于将完成的输出区块与已经存储到或者将要存储到输出缓冲器中的至少一个区块比较,并且用于根据该比较确定是否将完成的区块写到输出缓冲器的装置。
[0054] 依照本发明的第六方面,提供了一种基于区块的图形处理器,该图形处理器包括:
[0055] 用于产生由该图形处理器提供的输出的输出区块的装置;
[0056] 用于一旦图形处理器产生的输出区块完成,则将该输出区块写到输出缓冲器的装置;以及
[0057] 用于将图形处理器完成的输出区块与已经存储到或者将要存储到输出缓冲器中的至少一个区块比较,并且用于根据该比较确定是否将完成的区块写到输出缓冲器的装置。
[0058] 本领域技术人员应当理解的是,本发明的这些方面和实施例适当地可以并且优选地确实包括这里描述的本发明优选的和可选的特征中的任何一个或多个或者全部特征。因此,例如,在一个优选的实施例中,输出缓冲器是帧缓冲器。
[0059] 在本发明的这些方面和设置中,出于渲染的目的将渲染目标(输出数据阵列)划分的(渲染)区块可以是任何希望的且适当的大小或形状。本领域已知的是,渲染的区块优选地大小和形状都相同,尽管这不是必需的。在一个优选的实施例中,每个渲染的区块是矩形的,并且优选地大小为8x8、16x16或32x32采样位置。
[0060] 在特别优选的实施例中,可以并且优选地使用渲染过程操作(产生)的区块的不同大小和/或形状的数据块实现、也实现或者替代地实现本发明。
[0061] 例如,在优选的实施例中,本发明中被考虑和比较的某个或每个数据块可以由一组多个“渲染的”区块组成,和/或可以包括仅仅渲染的区块的子部分。在这些情况下,可以存在中间阶段,其有效地根据图形处理器产生的(一个或多个)渲染的区块“生成”希望的数据块。
[0062] 在一个优选的实施例中,在整个输出数据阵列上使用相同的块(区域)配置(大小和形状)。然而,在另一个优选的实施例中,不同的块配置(例如在其大小和/或形状方面)用于给定输出数据阵列的不同区域。因此,在一个优选的实施例中,不同的数据块大小可以用于相同输出数据阵列的不同区域。
[0063] 在特别优选的实施例中,可以在使用中例如在逐输出数据阵列(例如输出帧)的基础上改变块配置(例如在被考虑的块的大小和/或形状方面)。最优选地,可以在使用中例如并且优选地根据消除(避免)的输出缓冲器事物的数量或速率适应地改变块配置。例如并且优选地,如果发现使用特定块大小仅仅导致块无需写到输出缓冲器的概率低,那么可以对随后的输出数据阵列改变考虑的块大小(例如并且优选地使得更小)以便设法提高避免需要将数据块写到输出缓冲器的概率。
[0064] 在使用中改变数据块大小的情况下,那么这可以根据需要例如在整个输出数据阵列上或者在输出数据阵列的仅仅特定部分上进行。
[0065] 可以根据需要并且以任何适当的方式执行新产生的输出数据块(例如渲染的区块)与另一数据块的比较。该比较优选地是为了确定新数据块是否与其他数据块相同(或者至少充分地相似)。因此,例如可以将新数据块的一些或全部内容与其他数据块的一些或全部内容进行比较(并且在一个优选的实施例中,这样进行)。
[0066] 在特别优选的实施例中,所述比较通过将代表和/或源自新输出数据块的内容的信息与代表和/或源自其他数据块的内容的信息进行比较例如并且优选地以便评估数据块的相似性或其他方面而实现。
[0067] 代表每个数据块(例如渲染的区块)的内容的信息可以采取任何适当的形式,但是优选地基于或源自该数据块的内容。最优选地,它处于产生自或者基于数据块内容的数据块“签名”的形式。这样的数据块内容“签名”可以包括例如以及优选地任何适当的导出的信息集,该信息集可以被认为代表数据块内容,例如从数据块导出的(为其产生的)校验和(checksum)、CRC或者散列值(hash value)等等。适当的签名将包括标准的CRC,例如CRC32,或者其他形式的签名,例如MD5、SHA-1等等。
[0068] 因此,在特别优选的实施例中,为要比较的每个数据块产生指示或代表和/或源自数据块内容的签名,并且比较过程包括比较各数据块的签名。
[0069] 因此,在特别优选的实施例中,当系统以本发明的方式操作时,对于为输出数据阵列而产生的每个数据块(例如以及优选地对于产生的每个输出的渲染区块)产生诸如CRC值之类的签名。诸如CRC函数或散列函数之类的任何适当的“签名”生成过程可以用来产生数据块的签名。优选地,当产生数据块的签名时,以选定的、优选地特别的或预定的顺序处理数据块(例如区块)数据。这可以进一步帮助降低功耗。在一个优选的实施例中,使用希尔伯特(Hilbert)顺序(希尔伯特曲线)处理数据。
[0070] 在需要的情况下,应当适当地存储存储到输出(例如帧)缓冲器中的数据块(例如渲染的区块)的签名。优选地,利用输出(例如帧)缓冲器存储它们。于是,当需要比较签名时,可以适当地检索存储的数据块的签名。
[0071] 优选地,一个或多个数据块(优选地多个数据块)的签名可以是并且本地地缓存到比较阶段或例如图形处理器本身上的装置,例如缓存到片上签名(例如CRC)缓冲器中。这可以避免在每次做出比较时需要从外部缓冲器中取出数据块的签名并且因而有助于降低用于读取数据块的签名的存储带宽。
[0072] 当诸如数据块签名之类的数据块内容的表示本地地缓存,例如存储到片上缓冲器中时,那么优选地以适当的顺序(例如希尔伯特顺序)处理数据块,以便增大与其签名等被本地地缓存(存储到片上缓冲器中)的数据块匹配的可能性。
[0073] 本领域技术人员应当理解的是,尽管数据块(例如渲染的区块)的签名的生成和存储将需要一些处理和存储资源,但是申请人相信,可以由本发明提供的功耗和存储带宽方面的潜在节省将胜过于此。
[0074] 例如将可能的是为例如RGBA数据块(例如渲染的区块)产生单个签名,或者可以为每个彩色平面产生独立的签名(例如CRC)。类似地,可以执行颜色转换,并且如果希望的话,为Y、U、V平面产生独立的签名。
[0075] 本领域技术人员应当理解的是,为数据块产生的签名越长(签名越精确地表示该数据块),那么签名之间越不太可能存在假“匹配”(以及因而例如错误地不将新数据块写到输出缓冲器)。因此,通常,根据希望的精度(以及作为关于例如签名生成和处理所需的存储和处理资源的折衷),可以使用更长或更短的签名(例如CRC)。
[0076] 在特别优选的实施例中,与数据块内容的其他方面相比(例如并且优选地与数据块的数据(该数据代表数据块的内容)的特定方面或部分相比),可以针对数据块内容的特定方面对签名加权。这可以通过向那些对总输出具有更多影响的数据块内容(数据)部分加权签名允许例如给定总长度的签名提供更佳的总体结果(例如如图像的观察者所感知的)。
[0077] 在优选的这种实施例中,与颜色的LSB比特相比,为颜色的MSB比特产生更长的(更精确的)签名。(通常,颜色的LSB比特没有MSB比特重要,并且因而申请人认识到,为LSB比特使用相对不精确的签名可以是可接受的,因为申请人相信,对于不同的输出数据块(例如渲染的区块)比较LSB比特的误差将对总体输出产生不那么有害的影响。)[0078] 同样可能的是根据例如应用的例如显示要求对于不同的应用等使用不同长度的签名。这可以进一步帮助降低功耗。因此,在优选的实施例中,使用的签名的长度可以在使用中变化。优选地,可以根据使用的应用改变签名的长度(可以根据使用的应用适应地调谐)。
[0079] 在特别优选的实施例中,如果作为比较的结果确定完成的数据块(例如渲染的区块)应当被认为与输出阵列的另一数据块(例如并且优选地与已经存储到输出缓冲器中的数据块)相同,那么不将完成的数据块写到输出缓冲器。这因而避免了将被确定为与已经或者将存储到输出缓冲器中的数据块相同的数据块写到输出缓冲器。
[0080] 因此,在特别优选的实施例中,本发明包括将代表数据块(例如渲染的区块)的内容的签名与存储到或者要存储到输出(例如帧)缓冲器中的数据块(例如区块)的签名比较,并且如果签名相同,则不将该(新)数据块(例如区块)写到输出缓冲器(但是如果签名不同,则将该(新)数据块(例如区块)写到输出缓冲器)。
[0081] 在对于被认为匹配的块而言比较过程要求被比较的数据块之间(例如其签名之间)的完全匹配以便新块不被写到输出缓冲器的情况下,于是如果忽略由于错误匹配块引起的任何影响,那么本发明有效地提供了一种无损过程。如果比较过程仅需要充分相似的(但是非完全的)匹配,那么该过程将是“有损的”,因为数据块可以由不是其完全匹配的数据块代替。
[0082] 可以将当前完成的数据块(例如渲染的区块)(例如以及优选地其签名)与一个或者与超过一个其他数据块(例如已经存储到输出缓冲器中的数据块)进行比较。
[0083] 优选地,(新)数据块与其比较的数据块(例如区块)中的至少一个(或者(新)数据块与其比较的唯一数据块)包括存储到输出缓冲器中占据完成的新数据块要写入的相同位置(相同数据块(例如区块)位置)的数据块。因此,在优选的实施例中,将新产生的数据块与已经存储到输出缓冲器中的等效数据块(或者如果适当的话,多个块)进行比较。
[0084] 在一个优选的实施例中,将当前(新)数据块与仅仅单个其他数据块进行比较。
[0085] 在另一个优选的实施例中,将当前完成的数据块(例如其签名)与(例如已经存储到输出缓冲器中的)多个其他数据块(的签名)比较。这可以帮助进一步减少需要写到输出缓冲器的数据块的数量,因为它将允许消除将与其他位置的数据块相同的数据块写到输出数据阵列。
[0086] 在这种情况下,其中数据块与数据阵列中不同位置的数据块匹配,系统优选地输出并且存储哪个其他数据块要用于讨论的数据块位置的指示。例如,可以维持指示数据块是否与输出数据阵列中具有不同数据块位置(坐标)的另一数据块相同的列表。于是,当出于例如显示的目的读取数据块时,可以读取相应的列表项,并且如果它是例如“空”(null),那么读取“正常”数据块,但是如果它包含不同数据块的地址,那么读取不同数据块。如上面讨论的,优选地也这样做,其中将数据块与为当前输出阵列产生的其他数据块(即其不一定已经存储到输出缓冲器中)比较,因而允许在这种情况下读取输出阵列的任何设备知道代替未写到该数据阵列的输出缓冲器的数据块而处理哪个数据块。
[0087] 在将数据块与(例如已经存储到输出缓冲器中的)多个其他数据块比较的情况下,那么虽然可以将每个数据块与输出阵列的所有其他(例如现有的)数据块(例如输出缓冲器中的所有其他块)进行比较,但是优选地每个数据块仅与输出阵列的一些而不是全部其他数据块比较,例如并且优选地与和新数据块处于输出数据阵列(例如在输出缓冲器中)的相同区块的那些数据块(例如覆盖以及围绕该新数据块的预期位置的那些数据块)进行比较。这将提供增大的检测数据块匹配的可能性,而无需检查输出阵列中的所有数据块。
[0088] 在一个优选的实施例中,将为输出数据阵列产生的每一个数据块与另一个数据块或另一些数据块比较。然而,这不是必需的,并且因而在另一个优选的实施例中,关于给定输出数据阵列(例如输出帧)的一些而不是全部数据块执行该比较。
[0089] 在特别优选的实施例中,例如并且优选地在逐输出阵列(例如逐帧)的基础上或者在输出阵列(例如帧)序列的基础上改变与对应数据阵列的另一个数据块或另一些数据块比较的数据块的数量。这优选地基于(或不基于)连续输出数据阵列(例如帧)之间的期望相关。
[0090] 因此,本发明优选地包括选择要与给定输出数据阵列的另一个数据块或另一些数据块比较的要写到输出缓冲器的数据块的数量的装置或步骤。
[0091] 优选地,当(预期)不同输出数据阵列之间存在很小的相关性(从而例如在这种情况下在更少的数据块上产生签名)时,更少的数据块经受比较,而当(预期)不同输出数据阵列之间存在大量相关性(从而应当预期大量新产生的数据块将在输出缓冲器中复制)时,输出数据阵列中更多的(以及优选地全部)数据块经受比较阶段(并且具有为它们产生的签名)。在可以预期将消除更少的数据块写事物(其中在输出数据阵列之间存在很小的相关性)的情况下,这有助于减少将执行的比较和签名生成等(其将消耗功率和资源)的量,同时在可以预期那是特别有益的(即其中在输出数据阵列之间存在大量相关性)的情况下,仍然促进本发明的比较过程的使用。
[0092] 在这些设置中,优选地出于这个目的估计不同(例如连续)输出数据阵列之间的(期望)相关量。这可以根据需要完成,但是优选地基于早先的输出数据阵列之间的相关性。最优选地,(例如并且优选地通过以本发明的方式比较数据块而确定的)前面的输出数据阵列对或序列中以及最优选地,前面紧接的输出数据阵列(例如输出帧)对中的匹配数据块的数量用作当前输出数据阵列的期望相关性的度量。因此,在特别优选的实施例中,在前面的输出数据阵列中被发现匹配的数据块的数量用来选择应当以本发明的方式比较当前输出数据阵列中的多少数据块。
[0093] 在特别优选的实施例中,可以并且优选地改变在输出数据阵列的不同区域之间的以本发明的方式比较的数据块的数量。在一个这种设置中,这基于输出阵列内前面的数据块匹配的位置,即使得输出阵列的期望具有高相关性(以及相反的情况)的那些区域的估计被确定并且然后相应地控制和选择要以本发明的方式处理的输出阵列的不同区域中的数据块的数量。例如以及优选地,前面的数据块匹配的位置可以用来确定是否以及哪些输出阵列区域很可能保持相同,于是在这些区域增加以本发明的方式处理的数据块的数量。
[0094] 在优选的实施例中,(例如使用和/或接收图形处理系统产生的输出阵列的)软件应用程序有可能指示和控制以本发明的方式处理输出数据阵列的哪些区域,并且特别地以及优选地,指示应当为输出阵列的哪些区域执行数据块签名计算过程。这于是将允许该应用程序对于该应用程序“知道”总会更新的输出阵列区域“关闭”签名计算。
[0095] 这可以根据需要实现。在优选的实施例中,提供为输出阵列区域启用/禁用数据块(例如渲染的区块)签名计算的寄存器,并且软件应用程序然后相应地设置寄存器(例如通过图形处理器驱动器)。这样的寄存器的数量可以例如选择成寄存器所需的额外逻辑、希望的控制粒度以及来自能够禁用签名计算的潜在节省之间的折衷。
[0096] 在特别优选的实施例中,所述系统被配置成总是关于每个给定数据块(数据块位置)周期性地(例如每秒一次)将新产生的数据块写到输出缓冲器。这于是将确保对于每个数据块位置至少周期性地将新数据块写入输出缓冲器,并且从而避免例如错误匹配的数据块(例如因为即使数据块的内容实际上发生变化,数据块的签名也碰巧匹配)保留在输出缓冲器中超过给定的(例如希望的或选择的)时间段。
[0097] 这可以例如通过周期性地(例如每秒一次)简单地写出整个新输出数据阵列来完成。然而,在特别优选的实施例中,在滚动(rolling)的基础上将新数据块单独地向外写到输出缓冲器,使得胜过一次性写出整个新输出阵列的是,每次在循环(cyclic)模式下产生新输出阵列时,将输出阵列中的数据块的选择的部分向外写到输出缓冲器,从而随着时间的推移所有数据块最终像新的一样被写出。在一个优选的这种设置中,系统被配置成使得每输出阵列(例如帧)完全写出数据块的(不同的)选择的1/n部分(例如25分之一),从而在n(例如25)个输出阵列(例如帧)的序列结束时,所有数据块将完整地写到输出缓冲器至少一次。
[0098] 这个操作优选地通过对于相关数据块(即对于要完全写到输出缓冲器的那些数据块)禁用数据块比较来实现。(优选地,对于完全写到输出缓冲器的数据块,仍然产生数据块签名,因为这于是将允许将这些块与未来的数据块比较。)
[0099] 在本发明与双缓冲输出(例如帧)缓冲器一起使用的情况下,所述缓冲器即并发地(concurrently)存储两个输出阵列(例如帧)的输出缓冲器,例如一个输出阵列正被显示以及一个输出阵列已经被显示并且因而作为下一输出阵列(例如帧)正被写到显示器,那么本发明的比较过程优选地将新产生的数据块与输出缓冲器中的最老的输出阵列比较(即将新产生的数据块与当前未被显示,而是作为下一要显示的输出阵列正被写的输出阵列比较)。
[0100] 在特别优选的实施例中,本发明结合另一个或另一些帧(或其他输出)缓冲器功率和带宽降低方案使用,所述方案例如以及优选地为输出(例如帧)缓冲器压缩(其根据需要可以是有损的或无损的)。
[0101] 在后一情况的优选的设置中,如果在比较过程之后,要将新产生的数据块写到输出(例如帧)缓冲器,那么在其写到输出(例如帧)缓冲器之前,相应地压缩该数据块。
[0102] 在数据块被写到输出缓冲器之前经历某种进一步的处理(例如压缩)的情况下,那么可能的是无论如何对该数据块例如执行附加的处理,例如压缩,并且然后根据比较将这样处理的数据块写到或不写到输出缓冲器。然而,在特别优选的实施例中,首先执行本发明的比较过程,并且仅在确定要将数据块写到输出缓冲器的情况下执行数据块的进一步的处理,例如压缩。这于是将允许在确定不需要将数据块写到输出缓冲器的情况下避免该数据块的进一步的处理。
[0103] 区块比较过程(以及在使用的情况下,签名生成)可以在图形处理器的组成部分中实现,或者可以例如存在介于图形处理器与输出(例如帧)缓冲器之间的独立的“硬件元件”。
[0104] 在特别优选的实施例中,存在执行比较过程并且控制将数据块写(或不写)到输出缓冲器的“事物消除”硬件元件。优选地,在这样做的情况下,该硬件元件也进行签名生成(并且缓存存储的数据块的签名)。类似地,在本发明对其操作的数据块不与例如渲染过程产生的渲染的区块相同的情况下,该硬件元件优选地从渲染过程产生的渲染的区块产生或聚集数据块。
[0105] 在一个优选的实施例中,该硬件元件独立于图形处理器,并且在另一个优选的实施例中集成到图形处理器(的一部分)中。因此,在一个优选的实施例中,比较装置等是图形处理器本身的一部分,但是在另一个优选的实施例中,图形处理系统包括图形处理器和包含比较装置的独立的“事物消除”单元或元件等等。
[0106] 不管图形处理器可能向输出缓冲器提供的输出的形式如何,都可以使用本发明。因此,例如,它可以用在数据块和输出数据阵列预期形成用于(例如在屏幕或打印机上)显示的图像的情况下(并且在一个优选实施例中,情况就是如此)。然而,本发明也可以用在输出并不预期用于显示的情况下,例如用在输出数据阵列(渲染目标)是使用图形处理器产生(例如在“渲染到纹理”操作中)的纹理的情况下,或者实际上用在使用图形处理器产生的输出是任何其他形式的数据阵列的情况下。
[0107] 类似地,尽管上面特别结合图形处理器操作描述了本发明,但是申请人已经认识到,本发明的原理同样可以应用到以与例如基于区块的图形处理系统相似的方式处理块形式的数据的其他系统。因此,本发明同样可以用于例如视频处理(因为视频处理对类似于图形处理中的区块的数据块操作)以及用于合成图像处理(因为同样地合成帧缓冲器将被处理为不同的数据块)。
[0108] 本发明也可以例如在数码相机处理相机的传感器产生的数据(图像)的情况下使用。相机(视频的或静止的)可以例如在逐块的基础上处理其传感器产生的图像以便存储到存储器中。在这种情况下,来自相机的传感器的数据可以例如如上面讨论的由相机的控制器处理以便控制将图像数据写到存储器。
[0109] 因此,依照本发明的第七方面,提供了一种操作数据处理系统的方法,其中数据处理系统产生的数据用来形成输出缓冲器中的输出数据阵列,该方法包括:
[0110] 数据处理系统通过将代表输出数据阵列的特定区域的数据块写到输出缓冲器来将输出数据阵列存储到输出缓冲器中;以及
[0111] 当已经为输出数据阵列产生了数据块时,数据处理系统将该数据块与至少一个其他数据块比较,并且根据该比较确定是否将产生的数据块写到输出缓冲器。
[0112] 依照本发明的第八方面,提供了一种数据处理系统,该系统包括:
[0113] 数据处理器,其包括用于产生数据以形成由处理器提供的输出数据阵列的装置;
[0114] 用于通过将代表数据阵列的特定区域的数据块写到输出缓冲器而将数据处理器产生的数据作为数据阵列存储到输出缓冲器中的装置;并且其中:
[0115] 数据处理系统还包括:
[0116] 用于将已经为输出数据阵列产生的数据块与至少一个其他数据块比较并且用于根据该比较确定是否将产生的数据块写到输出缓冲器的装置。
[0117] 依照本发明的第九方面,提供了一种数据处理器,该数据处理器包括:
[0118] 用于将由数据处理器产生且代表数据处理器提供的输出数据阵列的特定区域的数据块写到输出缓冲器的装置;以及
[0119] 用于将已经为输出数据阵列产生的数据块与至少一个其他数据块比较并且用于根据该比较确定是否将产生的数据块写到输出缓冲器的装置。
[0120] 本发明也扩展到提供用于执行所述比较以及随之发生的本发明的确定的特定硬件元件。如上面所讨论的,该硬件元件(逻辑)可以例如作为例如图形处理器的组成部分而提供,或者可以是可以例如在例如图形处理器与外部存储控制器之间形成接口的孤立(standalone)元件。它可以是可编程的或专用硬件元件。
[0121] 因此,依照本发明的第十方面,提供了用在数据处理系统中的写事物消除装置,其中通过将代表输出数据阵列的特定区域的数据块写到输出缓冲器而将数据处理系统产生的输出数据阵列存储到输出缓冲器中,所述装置包括:
[0122] 用于将为输出数据阵列产生的数据块与至少一个其他数据块进行比较并且用于根据该比较确定是否将产生的数据块写到输出缓冲器的装置。
[0123] 本领域技术人员应当理解的是,本发明的所有这些方面和实施例可以并且优选地确实包括本文描述的本发明优选的和可选的特征中的任何一个或多个或者全部特征。因此,例如,所述比较优选地包括比较代表各数据块的内容的签名。类似地,数据块比较步骤或装置优选地包括将准备写到输出缓冲器的数据块与至少一个已经存储到(和/或要写到)输出缓冲器的数据块比较并且根据该比较确定是否将该数据块写到输出缓冲器的步骤或装置。
[0124] 在这些设置中,数据块可以例如是并且优选地为基于区块的图形处理系统(图形处理器)产生的渲染的区块、视频处理系统(视频处理器)产生的视频数据块、合成处理系统产生的合成帧区块和/或相机传感器产生的图像块等等。
[0125] 同样可能的是在存在例如多个主设备,所有主设备都将数据块写到输出缓冲器的情况下使用本发明。例如,当主机(host)处理器在图形处理器产生的图像上产生要显示的“覆盖”(overlay)时,情况就是这样。
[0126] 在这种情况下,所有不同的主设备都可以例如让其输出经受数据块比较过程。可替换地,可以在存在两个或更多为输出数据阵列产生数据块的主设备时禁用数据块比较过程。在这种情况下,可以例如对于整个输出数据阵列或者仅对于有可能两个主设备为其产生输出数据块的输出数据阵列的那些部分(例如仅对于其中要出现主机处理器的“覆盖”的输出数据阵列的区域)禁用比较过程。
[0127] 在特别优选的实施例中,所产生的用于本发明的数据块签名在其被创建时是“加盐的”(salted)(即具有添加到产生的签名值的另一数字(盐值))。盐值可以方便地为例如自启动以来的数据输出阵列(例如帧)数或者随机值。如本领域中已知的,这将帮助使得由本发明的比较过程中的任何不精确性造成的任何误差是非确定性的(即例如在所述过程用来显示电影或电视节目的情况下,例如对于给定图像序列的重复观察,避免了在相同点处总是出现误差)。
[0128] 典型地,相同的盐值将用于帧。可以对于每个帧或者周期性地更新盐值。对于周期性加盐而言,有益的是在无效签名比较的同时(在这样做的情况下)改变盐值,以便最小化写签名的带宽。
[0129] 申请人进一步认识到,本发明的技术可以用来在例如基于区块的图形处理系统中通过例如对本发明识别的数据块(例如区块)“匹配”数计数来评估或估计连续输出数据阵列(例如帧)和/或输出数据阵列(例如帧)序列之间的相关性(即输出数据阵列(例如帧)彼此相似的程度)。而且,申请人认识到,该信息会是有用的,例如因为如果它指示连续帧相同(相关性高),那么这将意味着例如图像对于一定时间段是静止的。如果情况如此,那么例如可能降低帧速率。
[0130] 因此,依照本发明的另一方面,提供了一种操作数据处理系统的方法,其中输出数据阵列由数据处理系统产生,该数据处理系统将代表输出数据阵列的特定区域的数据块写到用于存储输出数据阵列的输出缓冲器,该方法包括:
[0131] 当要将数据块写到输出缓冲器时,数据处理系统将该数据块与已经存储到输出缓冲器中的至少一个数据块比较,并且使用多个数据块的比较结果估计数据处理系统的不同输出阵列之间的相关性。
[0132] 依照本发明的另一个方面,提供了一种数据处理系统,该系统包括:
[0133] 用于产生数据以形成数据处理系统提供的输出数据阵列的装置;
[0134] 用于通过将代表数据阵列的特定区域的数据块写到输出缓冲器而将数据处理系统产生的数据作为数据阵列存储到输出缓冲器中的装置;以及
[0135] 用于将要写到输出缓冲器的数据块与已经存储到输出缓冲器中的至少一个数据块比较的装置;以及
[0136] 用于使用多个数据块的比较结果估计数据处理系统的不同输出阵列之间的相关性的装置。
[0137] 本领域技术人员应当理解的是,本发明的所有这些方面和实施例可以并且优选地确实包括本文描述的本发明优选的和可选的特征中的任何一个或多个或者全部特征。因此,例如,所述比较优选地包括比较代表各数据块的内容的签名。
[0138] 类似地,数据块可以例如是并且优选地为基于区块的图形处理系统产生的渲染的区块、视频处理系统产生的视频数据块和/或合成处理系统产生的合成帧区块等等。
[0139] 在这些设置中,不同输出阵列(例如帧)之间的估计的相关性优选地用来控制与输出阵列或帧有关的系统的另外的过程,例如它们的生成频率和/或格式等等。因此,在特别优选的实施例中,根据不同输出阵列(帧)之间的估计的相关性控制或选择输出阵列(帧)生成速率和/或显示刷新速率和/或用于输出阵列(帧)的反混叠的形式。
[0140] 本发明可以在任何适当的系统中实现,例如适当配置的基于微处理器的系统。在优选的实施例中,本发明在基于计算机和/或微处理器的系统中实现。
[0141] 本发明的各个不同的功能可以以任何希望的和适当的方式执行。例如,本发明的功能可以根据需要以硬件或软件实现。因此,例如,本发明的各个不同的功能元件和“装置”可以包括可操作来执行各个不同的功能的一个或多个适当的处理器、一个或多个控制器、功能单元、电路、处理逻辑、微处理器设置等等,例如适当的专用硬件元件和/或可以被编程为以希望的方式操作的可编程硬件元件。
[0142] 在优选的实施例中,图形处理器和/或事物消除单元被实现为硬件元件(例如ASIC)。因此,在另一个方面中,本发明包括包含本文描述的本发明的任何一个或多个方面的装置的或者依照所述方面的方法操作的硬件元件。
[0143] 在这里还应当指出,本领域技术人员应当理解的是,本发明的各个不同的功能等可以在给定处理器上并行地复制和/或执行。
[0144] 本发明可应用到任何适当形式或配置的图形处理器和渲染器,例如具有“流水线”(pipelined)渲染设置(在这种情况下,渲染器将是渲染管道的形式)的处理器。它特别可应用到基于区块的图形处理器和图形处理系统。
[0145] 根据以上所述应当理解的是,本发明特别地但非排他性地可应用到2D和3D图形处理器和处理设备,并且相应地扩展到包含本文描述的本发明的任何一个或多个方面的装置的或者依照所述方面的方法操作的2D和/或3D图形处理器以及2D和/或3D图形处理平台。除了执行上面讨论的特定功能所需的任何硬件,这样的2D和/或3D图形处理器另外地可以包括2D和/或3D图形处理器包括的通常的功能单元中的任何一个或多个或者全部。
[0146] 本领域技术人员还应当理解的是,本发明的所有描述的方面和实施例可以适当地包括本文描述的优选的和可选的特征中的任何一个或多个或者全部特征。
[0147] 依照本发明的方法可以至少部分地使用软件(例如计算机程序)来实现。因此,可以看到,当从另外的方面来看时,本发明提供了:计算机软件,其在安装到数据处理装置上时特别适于执行本文描述的方法;计算机程序元件,其包括用于在该程序元件在数据处理装置上运行时执行本文描述的方法的计算机软件代码部分;以及包括代码的计算机程序装置,适于在该程序运行在数据处理系统上时执行本文描述的方法或者所有方法步骤。所述数据处理系统可以是微处理器、可编程FPGA(现场可编程门阵列)等等。
[0148] 本发明也扩展到包括这种软件的计算机软件载体,其在用来操作包括数据处理装置的图形处理器、渲染器或其他系统时与所述数据处理装置结合使得所述处理器、渲染器或系统执行本发明的方法的步骤。这种计算机软件载体可以是物理存储介质,例如ROM芯片、CDROM或盘,或者可以是信号,例如导线上的电子信号、光学信号或者例如到卫星的无线电信号等等。
[0149] 还应当理解的是,不是本发明方法的所有步骤都需要由计算机软件执行,并且因而从更宽广的方面来看,本发明提供了计算机软件和安装到计算机软件载体上的这种软件:其用于执行本文阐述的方法的至少一个步骤。
[0150] 本发明相应地可以适当地实施为与计算机系统一起使用的计算机程序产品。这种实现可以包括固定在有形、非临时性介质(例如计算机可读介质,如磁盘、CD ROM、ROM或者硬盘)上的,或者可通过有形介质(包括但不限于光学的或模拟通信线路)经由调制解调器或其他接口设备或者使用无线技术(包括但不限于微波、红外或其他传输技术)无形地传输到计算机系统的一系列计算机可读指令。该计算机可读指令系列包含了本文前面描述的所有或部分功能。
[0151] 本领域技术人员应当理解的是,这样的计算机可读指令可以以若干编程语言书写以便与许多计算机架构或操作系统一起使用。此外,这样的指令可以使用任何存储技术(现在的或未来的,包括但不限于半导体、磁性的或光学的)来存储,或者使用任何通信技术(现在的或未来的,包括但不限于光学的、红外的或者微波)来传输。可以设想的是,这些的计算机程序产品可以作为可移除介质与伴随的印刷或电子文件(例如紧缩包装软件)一起分发、利用计算机系统预装载到例如系统ROM或固定盘上,或者通过网络(例如因特网或万维网)从服务器或电子公告板分发。

附图说明

[0152] 现在,将仅通过实例且参照附图描述本发明的若干优选实施例,在附图中:
[0153] 图1示意性地示出了其中结合基于区块的图形处理器使用本发明的第一实施例;
[0154] 图2示意性地示出了依照本发明第一实施例如何将相关数据存储到存储器中;
[0155] 图3示意性地且更详细地示出了图1中所示实施例的事物消除硬件单元;
[0156] 图4a和图4b示意性地示出了本发明优选实施例的操作的可能的修改;
[0157] 图5示出了合成多个图像源以提供用于显示的输出;
[0158] 图6示意性地示出了存在多个图像源的本发明实施例;
[0159] 图7示意性地示出了存在多个图像源的本发明的另一实施例;以及[0160] 图8和图9示出了本发明的另外的实施例。

具体实施方式

[0161] 现在,将描述本发明的若干优选实施例。这些实施例将主要针对本发明在图形处理系统中的使用来加以描述,但是如上面指出的,本发明可应用到处理成块(所述块代表整个输出的部分)的数据(例如视频处理)的其他数据处理系统。
[0162] 类似地,以下实施例将主要针对以本发明的方式比较基于区块(tile-based)的图形处理器产生的渲染的区块来加以描述,但是同样地且如上面指出的,本发明并不限于这样的设置。
[0163] 图1示意性地示出了依照本发明的图形处理系统的设置。
[0164] 该图形处理系统如图1所示包括基于区块的图形处理器或图形处理单元(GPU)1,其如本领域中已知的产生诸如要产生的输出帧之类的输出数据阵列的区块。如本领域中已知的,输出数据阵列典型地可以是预期用于在显示设备(例如屏幕或打印机)上显示的输出帧,但是也可以例如包括图形处理器的“渲染到纹理”(render to texture)输出等等。
[0165] 如本领域中已知的,在这种设置中,一旦图形处理器1产生了区块,那么通常经由连接到存储控制器4的互连3将它写到存储器2(所述存储器可以是DDR-SDRAM)中的帧缓冲器。一段时间以后,帧缓冲器将例如由显示控制器读取并且输出到显示器。
[0166] 在当前实施例中,这个过程通过使用事物(transaction)消除硬件单元5来修改,该单元控制将图形处理器1产生的区块写到存储器2中的帧缓冲器。实际上并且如下面更详细地讨论的,事物消除硬件5操作来为每个区块产生代表该区块的内容的签名,并且然后将该签名与已经存储到帧缓冲器中的一个或多个区块的签名进行比较以便了解签名是否匹配。(因此,在该实施例中,比较的数据块包括图形处理器产生的渲染的区块。)[0167] 如果签名匹配,那么假定新区块与已经存储到帧缓冲器中的区块相同,并且因而事物消除硬件单元5放弃将该新区块写到帧缓冲器。
[0168] 通过这种方式,当前实施例可以为从一帧到下一帧实际上不变化的帧缓冲器部分避免写通信量(在游戏的情况下,对于用户界面、天空等等的大部分以及当相机位置静止时玩耍场地的大部分而言,情况通常如此。)这可以节省与帧缓冲器操作有关的大量带宽和功耗。
[0169] 另一方面,如果签名不匹配,那么将新区块写到帧缓冲器并且也将为该区块产生的签名写到存储器。
[0170] 图2示出了用于这点的示例性存储布局,其中将构成帧的区块存储到存储器的一部分10中(从而形成“帧缓冲器”)并且将用于构成帧的区块的关联的签名存储到存储器的另一部分11中。(当然,其他设置是可能的。)对于高清晰度(HD)帧而言,如果具有16x1632比特区块,那么使用32比特签名会将30KB添加到8MB帧。
[0171] (在帧缓冲器是双缓冲的情况下,那么优选地为每个帧(以及与每个帧一起)存储签名数据。然后,将新区块与存储器中最老的帧比较。)
[0172] 图3更详细地示出了事物消除硬件单元5。
[0173] 如图3所示,由事物消除硬件单元5从图形处理器1接收的区块数据被传送到缓冲器21和签名生成器20,所述缓冲器21在签名生成和比较过程发生的同时临时地存储区块数据。
[0174] 签名生成器20操作来为区块产生必要的签名。在当前实施例中,签名是区块的32比特CRC的形式。
[0175] 如果希望的话,也可以使用或者改为使用诸如散列函数等等之类的其他签名生成函数和其他签名形式。同样可能的是例如为RGBA区块产生单个签名,或者为每个彩色平面产生独立的签名。类似地,可以执行颜色转换,并且为Y、U和V中的每一个产生独立的签名。为了降低功耗,如果希望的话,可以重新排列(例如使用希尔伯特(Hilbert)曲线)签名生成器20处理的区块数据。
[0176] 一旦为新区块产生了签名,那么将它传送到签名比较器23,该签名比较器操作来将新区块的签名与已经存在于帧缓冲器中的一个或多个区块的一个或多个签名进行比较。在当前实施例中,该比较是和帧缓冲器中已经在所讨论的区块的区块位置处的区块的签名进行的。
[0177] 将来自前面的帧的多个区块的签名缓存到事物消除硬件单元5的签名缓冲器22中(该缓冲器可以以许多方式(例如缓冲或缓存)实现)以促进在系统操作中检索它们,并且因而签名比较器23从签名缓冲器22中取出相关签名(如果该签名在那里的话)(或者如本领域中已知的,触发从主存储器2中取出签名),并且将前面帧的区块的签名与从签名生成器接收的签名比较以便了解是否存在匹配。
[0178] 如果签名不匹配,那么签名比较器23控制写控制器24将新区块及其签名写到存储器2中存储的帧缓冲器和关联的签名数据。另一方面,如果签名比较器发现新区块的签名与已经存储到帧缓冲器中的区块的签名匹配,那么写控制器24无效该区块并且没有数据写到帧缓冲器(即允许现有的区块保留在帧缓冲器中并且保留其签名)。
[0179] 通过这种方式,仅在签名比较发现区块与已经存储到存储器2中的区块不同的情况下,才将区块写到存储器2中的帧缓冲器。这有助于减少产生帧时到存储器2的写事物的数量。
[0180] 在当前实施例中,为了阻止错误匹配的区块在帧缓冲器中存在太长的长时间段,周期性地禁用(优选地每秒一次)为帧缓冲器中的每个存储的区块的签名比较。这因而意味着当新产生了其签名比较被禁用的区块时,该新产生的区块将不可避免地写到存储器2中的帧缓冲器。通过这种方式,可以确保随着时间的推移误配的区块将总是被全新的(以及因而正确的)区块代替。(用随机区块,例如32比特CRC将每2^32区块一次地产生错误匹配(即其中为具有不同内容的区块产生相同的签名),其在1080HD分辨率30帧/秒下将相当于大约每4小时由比较过程引起区块误配。)
[0181] 在当前实施例中,以预定的循环(cyclic)的序列禁用存储的区块的签名比较,使得每秒(和/或在一组比如25或30帧上)每个区块将让其签名比较禁用(以及因而为其写新区块)一次。
[0182] 其他设置是可能的。例如,系统可以简单地被设置成以与MPEG视频类似的方式周期性地(例如每秒一次)写出全新的帧。此外或者可替换地,更长的签名可以用于每个区块,因为这于是应当显著地降低由于用于事实上不同的区块的相同签名而引起的任何错误区块匹配发生的速率。例如,诸如64比特CRC之类的更大的CRC可以将误配减少到每1.2百万年一次。
[0183] (可替换地,由于因为区块无论如何将仍然是相似的并且误配的区块只可能显示大约1/30秒或者更少这一事实,任何这样的错误区块匹配不太可能是可察觉的,因而可以决定在这个方面没有预防措施是必要的。)
[0184] 同样可能的是例如对于被认为更重要(例如根据用户如何感知最终显示的区块)的区块内容的那些方面加权签名生成。例如,与颜色的LSB比特相比,可以为颜色的MSB比特产生更长的签名(因为通常,颜色的LSB比特没有MSB比特重要)。签名的长度也可以在使用中例如根据应用而适应性改变,以帮助最小化功耗。
[0185] 在特别优选的实施例中,被产生用于本发明的数据块签名在其被创建时是“加盐的”(salted)(即具有添加到产生的签名值的另一数字(盐值))。盐值(salt value)可以方便地为例如自启动以来的数据输出阵列(例如帧)数或者随机值。如本领域中已知的,这将帮助使得由本发明的比较过程中的任何不精确性造成的任何误差是非确定性的(即例如在所述过程用来显示电影或电视节目的情况下,例如对于给定图像序列的重复观察,避免了在相同点处总是出现误差)。
[0186] 如上面所讨论的,在当前实施例中,签名比较过程操作来将新产生的区块与帧缓冲器中相应区块位置存储的区块进行比较。
[0187] 然而,在另一个优选的实施例中,将给定产生的区块与已经存储到帧缓冲器中的多个区块进行比较。在这种情况下,为区块产生的签名将相应地与存储在帧缓冲器中的多个区块的签名比较。在这种情况下,优选的是与存储到事物消除硬件单元5的签名缓冲器22中的区块的签名(即与该帧的所有存储的区块的子集)发生这样的比较,但是如果希望的话,诸如将新区块与所有存储的区块比较之类的其他设置是可能的。优选地,以诸如希尔伯特顺序之类的适当顺序处理区块,以便增大与其签名存储到签名缓冲器22中的区块匹配的可能性。
[0188] 在这种情况下,为新区块产生的签名将相应地与当前输出帧中的多个区块的签名比较(本领域技术人员应当理解的是,所述区块可以是新写到当前帧的区块或者来自因为匹配当前帧的区块而有效“转入”当前帧的前面帧的区块)。
[0189] 在该实施例中,维持指示区块是否与前面的帧中具有不同区块坐标的另一区块相同的列表。于是,当读取要显示的区块时,读取相应的列表项。如果列表项值为空(null),那么读取存储到该区块的正常区块位置的数据。否则,列表项将包含要读取的不同区块的地址,其可以例如自动地由事物消除硬件单元5转换以便确定应当为当前区块位置读取的帧缓冲器中区块的位置。
[0190] 在本发明的一个优选的实施例中,对于产生的每一个区块执行区块比较过程。然而,在另一个优选的实施例中,使用自适应方案,其中当预期在帧之间存在很小的相关性时,分析更少的区块。在这种设置中,历史区块匹配数用作帧之间相关性的度量(因为如果存在大量区块匹配,那么可以假定帧之间存在大量相关性,反之亦然)。事物消除硬件可以包括用于执行该操作的适当控制器。
[0191] 因此,在这种情况下,当确定帧之间存在大量相关性(即许多区块与已经存在于帧缓冲器中的区块匹配)时,那么为所有区块产生签名并且执行比较,而当确定帧之间存在很小的相关性(从而很少或者没有区块被发现与已经存储到帧缓冲器中的区块匹配)时,那么为较少的区块产生签名并且执行区块比较过程。
[0192] 图4示出了这点。图4a示出了其中帧之间存在大量相关性并且因而为所有区块产生签名的情况。图4b示出了其中帧之间存在很小的相关性并且因而在这种情况下仅为区块的子集31产生签名并且进行比较的相反情形。
[0193] 同样可能的是使用这些原理以便例如设法确定帧的哪些特定位置具有更高的相关性,并且然后如果希望的话,增加仅在帧的特定区域中经受比较的区块数量。
[0194] 本领域技术人员应当理解的是,事物消除硬件单元5可以关于图形处理器1产生的任何输出(例如图形帧缓冲器、图形渲染到纹理等等)操作。
[0195] 本领域技术人员应当理解的是,在包括图形处理器1的典型系统中,可以存在多个图像源,例如GUI、图形和视频。这些源可以例如利用使用层的显示控制器或专用合成引擎或者使用图形处理器来合成。图5示出了这种合成帧的实例。
[0196] 在这样的设置中,可以例如仅关于图形处理器使用本发明的事物消除过程。图6示出了用于这种设置的可能系统配置。在这种情况下,存在图形处理器1、视频编解码器60和CPU 61,每个产生用于显示的潜在图像源。事物消除单元5设置在图形处理器1与存储互连3之间。
[0197] 然而,申请人认识到,本发明的事物消除过程同样可以用于以与基于区块的图形处理器(例如产生用于视频帧缓冲器的视频块的视频处理器(视频编解码器))的区块相似的方式成块地处理的其他形式的数据以及用于图形处理器图像合成。因此,本发明的事物消除过程同样可以应用到例如由视频处理器60产生的图像。
[0198] 图7因而示出了其中事物消除硬件单元5可以上面讨论的方式操作以便处理来自图形处理器1、视频处理器60和CPU 61的适当图像输出的可替换设置。在该设置中,事物消除硬件单元5被启用以便为特定主ID和/或对于地址映射的特定定义的和选择的部分操作。
[0199] 当然,其他设置是可能的。
[0200] 同样可能的是在例如存在多个主设备,所有主设备将数据块写到输出缓冲器的情况下使用本发明。例如,当主机(host)处理器在图形处理器产生的图像上产生要显示的“覆盖”(overlay)时,情况就是这样。
[0201] 在这种情况下,所有不同的主设备都可以例如让其输出经受数据块比较过程。可替换地,可以在存在两个或更多产生用于输出数据阵列的数据块的主设备时,对于整个输出数据阵列或者仅对于其中有可能两个主设备可以产生输出数据块的输出数据阵列的那些部分(例如仅对于其中要出现主机处理器的“覆盖”的输出数据阵列的区域)禁用数据块比较过程。
[0202] 图8和图9示出了本发明的另外的实施例。图8示意性地示出了本发明的设置,并且图9为示出该实施例中的数据块比较过程的步骤的流程图。
[0203] 在该实施例中,如图8所示,事物消除硬件单元是图形处理器(GPU)1的组成部分。如下面将进一步讨论的,事物消除硬件单元5也操作来将新数据块与为讨论的输出阵列(帧)产生的其他数据块比较,而不是与已经存储到输出数据阵列中的数据块比较。
[0204] 因此,在该实施例中,图形处理器1在其区块渲染逻辑40之后包括事物消除单元5,该事物消除单元包括数据块生成逻辑41和块比较逻辑43。块生成逻辑41用来根据区块渲染逻辑40产生的区块产生适当的数据块。在当前实施例中,块生成逻辑产生与区块渲染逻辑40产生的区块的子区块相应的块。然而,如这里讨论的,其他大小和形式的数据块将是可能的,并且如果希望的话,可以由块生成逻辑41产生。
[0205] 块生成逻辑将其产生的连续块存储到缓冲器42中。然后,比较逻辑43比较存储到缓冲器42中的各数据块(在这种情况下将新数据块与前面紧接的数据块进行比较),并且根据该比较产生指示块是否可以被认为相同的输出元数据比特。将多个块的元数据输出比特收集且合并在缓冲器中(以便提高存储效率),并且然后适当地存储到与讨论的输出数据阵列关联的主存储器2中的元数据位图45中(写到片外存储器)。(当然,其他的设置是可能的。)
[0206] 数据块也从缓冲器42中读取并且经受下面讨论的写消除过程,适当地存储到存储器2中的帧(输出)缓冲器4中。
[0207] 在该实施例中,元数据被设置成使得存储器2中的输出数据阵列44中的每个数据块(子区块)位置与元数据位图45中的比特关联,如果数据块被认为与输出数据阵列中的前面的数据块相同,则数据块位图中的比特置为“1”,或者如果该数据块被认为与前面的数据块不同,则将该比特置为“0”。如下面将进一步讨论的,这于是允许读取输出数据阵列44的任何设备确定哪个数据块用于每个对应数据块位置。
[0208] 为了有利于该操作,组成输出帧的数据块以特定的预定义顺序处理(将它们写到帧缓冲器以及从中读取它们都是这样)。优选地,使用可以利用块之间的任何空间一致性的顺序。
[0209] 数据阵列和元数据生成过程在图9中以流程图示出。
[0210] 如图9所示,块生成逻辑41根据区块渲染逻辑40产生的渲染的区块产生数据块(在这种情况下,与子区块相应)(步骤51)。然后,将数据块存储到缓冲器42中。
[0211] 然后,比较逻辑43将新数据块与前面的数据块(其已经存储到缓冲器42中)进行比较(步骤52)。在当前实施例中,比较逻辑43将数据块的内容彼此比较。其他设置是可能的。例如,如上面讨论的,比较逻辑可以比较块的签名而不是块的实际内容。
[0212] 然后,比较逻辑确定新块是否应当被认为与前面的块相似(步骤53)。在当前实施例中,该评估基于被比较的两个块的内容如何相似。例如,设置像素的LSB的特定差异量的阈值,并且如果两个块的内容之间的差异小于该阈值,那么块被确定为相似,反之亦然。
[0213] (使用中可以改变阈值(例如对其编程)。可以在使用中例如对于每个应用基于静态和动态帧数据的比例和/或基于功率模式(例如低功率模式或者非低功率模式)等等设置该阈值。)
[0214] 如果希望的话,可以使用其他数据块比较方案。
[0215] 如果在步骤53中比较逻辑确定块是不同的(即不相似),那么比较逻辑操作来将值“0”写进元数据位图45中的适当位置(步骤54)。新数据块从缓冲器42写到主存储器2中的帧缓冲器44(步骤55)。
[0216] 另一方面,如果在步骤53处确定块应当被认为是相似的,那么比较逻辑43操作来使得“1”被写进元数据位图45中的适当位置(步骤56)。
[0217] 此外,在两个块被认为彼此相似的情况下,不将新块写进帧缓冲器44中的数据阵列(步骤58)。
[0218] 其效果在于,如果数据块被确定为与前面的数据块相同(即它与将存储到帧缓冲器44中的前面的数据块相同),那么也不将该新数据块写进帧缓冲器44。通过这种方式,可以对于彼此相同的数据阵列(帧缓冲器)44的部分避免写通信量。(另一方面,如果数据块被确定为不同的,那么将新数据块写到帧缓冲器44)。
[0219] 在该设置中,当诸如显示控制器之类的设备开始读取输出数据阵列44时,它也读取相应的元数据位图45。对于预定处理的数据阵列的每个数据块,它将读取相应的位图项,并且如果该位图项设置为“1”,则将知道该数据块被认为与存储到输出数据阵列44中的前面的数据块相同,并且因而将输出数据阵列44中的适当的前面的数据块作为新块而显示。可替换地,如果与要处理的数据块关联的元数据为“0”,那么显示控制器将知道它应当将读取来自数据阵列44的新数据块并且显示该新块。
[0220] 通过这种方式,即使数据阵列44可能不为数据阵列44中的每一个数据块位置包含数据块项,也可以读取和处理适当的数据块数据。
[0221] (因此,在这些设置中,尽管可能不将数据块本身写到数据阵列44,但是仍然应当为讨论的块位置产生比较元数据45并且将其存储,因为读取数据阵列的处理设备(例如显示控制器)将使用该信息以便确定应当转而处理哪个其他块。)
[0222] 在这里应当理解的是,如果存在相似块序列,那么元数据在该实施例中将相应地包括“1”序列,并且读取数据阵列的任何设备将因而为每个连续相似块重新使用该序列中的第一块。
[0223] 同样可能的是将数据块与数据阵列的多个其他块(例如多个前面的数据块)比较,以便了解它是否与这些其他块中的任何块相似。在这种情况下,每个元数据项可以包括多个比特,以便能够指示讨论的块被认为与其他数据块中的哪些相似。
[0224] 如上面讨论的,在该实施例的特别优选的设置中,其中数据块比较可能不准确(可能错误地匹配实际上不同的块),系统被配置成关于每个给定数据块(数据块位置)总是周期性地(例如每秒一次)将新产生的数据块写到帧缓冲器44。
[0225] 如果希望的话,可以使用本发明的上述实施例的许多其他可替换方案和设置。
[0226] 例如,可能的是提供为特定帧区域启用/禁用区块签名计算的硬件寄存器,使得仅在用于区块驻留在其中的帧区域的寄存器被设置的情况下,才对该区块执行事物消除签名生成和比较。
[0227] 于是,用于图形处理器(例如)的驱动器可以被配置成允许软件应用程序访问和设置这些区块签名启用/禁用寄存器,从而给予该软件应用程序直接控制是否以及何处(哪些帧区域)发生签名生成和比较的机会。这将允许软件应用程序例如控制如何以及是否执行签名计算和比较。然后,这可以用来例如为该应用程序“知道”总会更新的输出帧区域消除签名计算消耗的功率(系统因而总是更新帧的这样的区域,而不首先执行任何签名校验)。
[0228] 这样的寄存器的数量可以例如选择成实现和使用它们所要求的额外逻辑与希望的控制粒度之间的折衷。
[0229] 同样可能的是进一步利用以下事实:如上面讨论的,帧中区块匹配的数量可以用作连续帧之间的相关性的度量。例如,通过使用计数器跟踪给定帧中区块匹配的数量,可以确定连续帧之间和/或对于一定时间段而言图像是否静止的。如果因而确定对于一定时间段而言图像是静止的,那么例如可以降低处理器帧速率(从而节省功率),可以降低显示刷新速率,和/或可以使用更好的反混叠(anti-aliasing)(从而提高(感知)图像质量)重新渲染帧,反之亦然。
[0230] 当前设置也可以与诸如帧缓冲器压缩之类的其他帧缓冲器功率和带宽降低技术结合使用。在这种情况下,优选地在执行压缩(或其他)操作之前首先执行本发明方式的写事物消除。然后,如果比较过程发现区块的签名是相同的,那么前面压缩的区块可以保留作为用在当前输出帧中的区块,但是如果该区块未“消除”,那么将新区块发送到帧缓冲器压缩(或其他)硬件并且然后继续发送到存储器中的帧缓冲器。这因而意味着,如果区块的签名匹配,则可以避免压缩操作。
[0231] 尽管上面特别针对要写到帧缓冲器的渲染的区块的比较描述了本发明的实施例,但是如本文所讨论的,形成输出数据阵列的区域的被比较的(并且例如具有为其产生的签名的)数据块不一定与图形处理器产生的渲染的区块完全地对应。
[0232] 例如,考虑和比较的数据块可以由多个渲染的区块组成,和/或可以包括渲染的区块的子部分。事实上,不同的数据块大小可以用于相同输出阵列(例如输出帧)的不同区域,和/或如果希望的话,可以例如根据写事物消除速率适应地改变数据块大小和形状。
[0233] 在使用不完全与渲染的区块的大小相应的数据块大小的情况下,那么事物消除硬件单元5可以方便地配置成有效地根据它从图形处理器(或者向它提供用于输出阵列的数据的其他处理器)接收的诸如渲染的区块之类的数据聚集或产生适当的数据块(以及例如这些数据块的签名)。
[0234] 由上可见,本发明在其优选的实施例中至少可以有助于降低例如图形处理器的功耗和存储带宽。
[0235] 在本发明的优选实施例中,这至少通过消除不必要的帧缓冲存储器事物来实现。这减少了提供给帧缓冲器的数据量,从而显著地降低了系统功耗和消耗的存储带宽量。它可以应用到图形帧缓冲器、图形渲染到纹理、视频帧缓冲器以及合成帧缓冲器事物等等。
[0236] 本申请人发现,对于图形和视频操作而言,事物降低率很可能介于0与30%之间。(诸如雷神之锤(Quake)4和毁灭战士(Doom)3之类的一些共用游戏的分析表明,每帧中介于0与30%之间的区块通常可能相同。)对于合成帧缓冲器操作而言,据信事物消除率很可能非常高(大于90%),因为大部分时间只有鼠标指针移动。
[0237] 当使用本发明时的功率节省可以是相对显著的。
[0238] 例如,32比特移动DDR-SDRAM传输可以每32比特传输消耗大约2.4nJ。因此,假定图形处理器帧输出速率为30Hz,并且仅考虑一阶效应,那么图形处理器帧缓冲器写(不存在本发明时)对于HD图形将消耗大约(1920x1080x4)x(2.4nJ/4)x30=150mW。
[0239] 另一方面,如果对于HD图形能够消除20%的帧缓冲器通信量,那么这将节省大约30mW(以及50MB/s)。对于HD合成帧缓冲器,移除90%的帧缓冲器通信量将节省135mW(以及220MB/s)。