数据处理系统的制作方法

文档序号:11235316阅读:439来源:国知局
数据处理系统的制造方法与工艺

本发明涉及数据处理系统,具体涉及在数据处理系统中生成用于在显示器上显示的图像时的数据处理。



背景技术:

在数据处理系统中,经常会出现这样的情况:数据是以与随后需要的格式不同的格式生成或以其他方式提供。这可以例如是在处理用于显示的图像时的情况。在这种情况下,关于待显示的图像的数据可以以初始格式来生成,诸如为数据位置(例如“块”)的多个二维区块(阵列)的形式,但可能以数据位置的多个一维行(例如,栅格行)的形式进一步处理和/或提供给显示器(诸如显示板)。

在这种结构中,数据处理系统必须从一种格式有效地转换为另一种格式。这例如可以通过将数据以其初始格式(例如,如数据区块)写到诸如缓冲器这样的储存器,然后以其他格式(例如,如数据行)从例如缓冲器这样的储存器读出数据来实现。换言之,数据可以以一种格式或模式生成并写到缓冲器,然后以另一种不同的格式或模式从缓冲器“消耗”。

一个示例性这种结构是在显示控制器中,在显示控制器中,输入数据区块(阵列)以栅格行的形式来使用(消耗)(例如,在生成用于在显示器上显示的输出帧时)。



技术实现要素:

申请人相信以该方式操作的数据处理系统还存在改进范围。

根据本发明的第一方面,提供了一种操作数据处理系统的方法,该方法包括以下步骤:

数据处理系统的第一处理级根据第一模式产生数据;以及

数据处理系统的第二处理级根据不同的第二模式使用由第一处理级产生的数据;

方法还包括以下步骤:数据处理系统:

在第一处理级已经产生数据组时停用第一处理级,该数据组包括允许由第二处理级根据第二模式使用该数据组的足够数据;并且

基于由第二处理级对该数据组的使用来重新启动第一处理级。

根据本发明的第二方面,提供了一种数据处理系统,该数据处理系统包括:

第一处理级,该第一处理级可操作用于根据第一模式产生数据;以及

第二处理级,该第二处理级可操作用于根据不同的第二模式使用由第一处理级产生的数据;

其中,数据处理系统可操作用于:

在第一处理级已经产生数据组时停用第一处理级,该数据组包括允许由第二处理级根据第二模式使用该数据组的足够数据;以及

基于由第二处理级对该数据组的使用来重新启动第一处理级。

本发明涉及一种操作数据处理系统的方法,在该方法中,第一处理级根据第一模式产生数据,并且第二处理级根据不同的第二模式使用(即,消耗)该数据。在本发明中,当第一处理级已经(根据第一模式)产生特定的数据组时,停用第一处理级,然后可以基于第二处理级该数据组的使用而启动(即,重新启动)第一处理级。

如本领域技术人员将理解的,以本发明的方式停用第一处理级(例如且优选地,“时钟关断”第一处理级)具有降低数据处理系统的功率消耗的效果。

此外,并且如下面将更详细描述的,通过基于由第二处理级对数据组的使用来启动(即,重新启动)第一处理级,第一处理级可以在未不利地影响数据处理系统的整体操作的情况下(例如,并且优选地,在从不造成第二处理级缺乏供其使用的数据的情况下)被停用。

由此,例如(且在优选实施方式中),在第一处理级已经产生数据组并已经停用之后,并且在该数据组由第二处理级使用的同时,在第一处理级产生另数据组所花费的时间等于或足够类似于第二处理级使用(已经产生的)该数据组中的剩余数据所花费的时间的时刻或接近该时刻时,第一处理级可以重新启动。这在最大化(或至少增大)可以停用第一处理级的时间量(和相应的、任何得到的功率节省)的同时确保第二处理级不缺乏供其使用的数据。

而且,申请人已经认识到,在产生数据的模式不用于使用(消耗)该数据的模式的情况下,在停用产生数据的(第一)处理级之前(根据第一模式)产生的数据组应包括允许根据第二(不同)模式使用该数据组的足够数据(并且在本发明中就是这样进行的)。例如,在数据以区块形式产生且然后以行的形式消耗的情况下,产生数据的(第一)处理级应当且优选地被控制成在停用该处理级之前产生适当行宽度的区块。

这然后允许(例如,以行的形式)“独立地”消耗该数据组(即,在不需要在消耗该数据组的同时产生另外的数据的情况下)。这转而再次具有最大化(或至少增大)可以停用第一处理级的时间量(和相应的、任何得到的功率节省)的效果。

因此,将理解,本发明提供改进的数据处理系统和操作数据处理系统的方法。

本发明的第一处理级可以包括可操作用于根据第一模式产生数据的任何合适且期望的处理级。第一处理级例如可以包括解码器、旋转级、图形处理单元(gpu)、中央处理单元(cpu)、视频编解码器、合成器等。

可以存在可操作用于根据第一模式产生数据的单个第一处理级,或者可以存在多个第一处理级。在存在多个第一处理级的情况下,那么各第一处理级优选地以本发明的第一处理级的方式来操作。

由第一处理级产生且由第二处理级使用的数据可以包括可以由数据处理系统产生的任何合适且期望的数据。在优选实施方式中,数据包括一个或更多个数据阵列。数据阵列或各数据阵列优选地包括多个数据位置的阵列,各数据位置采取特定数据(例如,颜色)值。最优选地,数据包括用于显示或其他用途的图像数据,即,一个或更多个图像(颜色)数据阵列,例如,一帧或更多帧。

在优选实施方式中,由第一处理级产生且由第二处理级使用的数据采取多个数据字(例如,诸如多个高级可扩展接口(axi)字)的形式(包括多个数据字),其中,各字优选地包括关于数据阵列的多个数据位置的数据。

由第一处理级产生的数据根据第一模式来产生。第一模式可以包括可以产生数据的任何合适和期望模式。

在优选实施方式中,第一处理级可操作用于以多个数据区块的形式产生数据,其中,各数据区块表示数据阵列的特定区域(区)。各数据区块应当且优选地确实包括数据阵列的至少两排和至少两列的数据位置。

由此,在优选实施方式中,由第一处理级产生的数据阵列或各数据阵列根据第一模式被划分或分开成多个可识别的较小区域,各较小区域表示整个阵列的一部分,并且因此可以被表示为数据区块。

阵列或各阵列根据第一模式被细分为数据区块可以根据期望来进行,并且各数据区块可以表示整个数据阵列的任何合适且期望的区域(区)。

根据第一模式的各数据区块优选地表示整个阵列的不同部分(子区域)(但如果期望,则区块可以交叠)。各区块应当表示阵列的适当部分(区)(阵列内的多个数据位置)。

在一个特别优选的实施方式中,由第一处理级产生的数据阵列或各数据阵列根据第一模式被划分为优选地为正方形或矩形形式的规则尺寸和形状的区域(数据区块)。然而,这不是必须的,并且可以使用其他结构(如果期望)。用于第一模式的合适数据区块尺寸为例如数据阵列中的8*8、16*16或32*32个数据位置。

在特别优选的实施方式中,由第一处理级产生的各数据区块对应于第一处理级产生作为其输出的“块”。由此,第一模式优选地为块模式。

在基于块的数据处理系统中,数据处理系统的二维输出阵列(例如,帧)被细分为或分成通常称为“块”的多个较小区域以用于数据处理。块(子区域)可以各单独处理(例如,一个接一个或并行)。如果期望,则可以重新组合块(子区域),以提供完整的输出阵列(帧),例如以显示。

通常用于“成块”和“基于块的”处理的其他术语包括“组块”(子区域被称为“大块(chunk)”)和“桶(bucket)”数据处理。为方便起见,这里将使用术语“块”和“成块”,但应理解,这些术语旨在包含全部另选和等同术语和技术。)

在数据被产生为数据字的情况下,各数据区块优选地包括多个数据字(例如,多个axi字),各字优选地包括关于区块的多个数据位置的数据。

在另一个实施方式中,第一处理级可操作用于产生多行的形式的数据。即,第一模式可以为行(栅格)模式。在这种情况下,由第一处理级产生的各数据行应当且优选地确实包括为一个数据位置高和多个数据位置宽(长)的数据阵列的一排数据位置。各行优选地具有对应于(等于)由第一处理级产生的整个数据阵列的宽度的宽度。然而,还将可以的是使各行具有某一其他宽度,诸如整个数据阵列宽度的一部分(例如,一半)。在如上面讨论的数据包括多个数据字的情况下,第一处理级可以按栅格(行)顺序产生数据字(即,按栅格行顺序从字到字)。

第一处理级可以以任何合适且期望的方式产生数据。第一处理级优选地生成数据,例如通过生成数据本身和/或通过从别处(诸如从数据处理系统的存储器或一个或更多个其他处理级)读取或接收数据且然后处理(例如,修改)该数据。

在数据从存储器读取的实施方式中,存储器可以包括任何合适的存储器,并且可以以任何合适且期望的方式来构造。例如,存储器可以为具有关注的处理级和/或本地于该处理级的芯片上的存储器,或者可以为外部存储器。在优选实施方式中,存储器是外部存储器,诸如数据处理系统的主存储器。存储器可以为用于该目的的专用存储器,或者它可以为也用于其他数据的存储器的一部分。在优选实施方式中,数据从帧缓冲器读取(和存储在该缓冲器中)。

对应地,在数据从存储器读取的实施方式中,数据处理系统和/或第一处理级可以包括读取控制器,诸如可操作用于从存储器读取数据的直接存储器存取(dma)读取控制器。

在特别优选的实施方式中,第一处理级包括解码器(优选的为arm帧缓冲器合成(afmc)(或其他基于区块的编码方案)解码器(美国a12013/0034309中描述了afrc)),该解码器可操作用于解码(解压缩)例如从存储器读取的、诸如一个或更多个所接收(优选地为afbc)经编码(经压缩)数据区块的数据。因此,在该实施方式中,根据第一模式产生数据的第一处理级包括(afbc)解码器,该解码器根据第一模式解码和/或解压缩(afbc)经编码数据(的区块),以产生经解码和/或经解压缩(例如,颜色)数据(例如,经解码和/或经解压缩的数据的区块)。

在另一个特别优选的实施方式中,第一处理级包括旋转级,该旋转级可操作用于旋转例如从存储器读取的数据(诸如一个或更多个所接收数据区块)。因此,在该实施方式中,根据第一模式产生数据的第一处理级包括旋转级,该旋转级旋转(例如,颜色)数据(的区块),以根据第二模式产生经旋转的数据(例如,经旋转的数据区块)。

第二处理级使用由第一处理级产生的数据。为了促进这一点,第一处理级优选地可操作用于(根据第一模式)将其数据写到数据处理系统的储存器(例如,存储器,优选的为(本地)缓冲存储器),以由第二处理级使用。

由此,在优选实施方式中:

数据处理系统还包括存储器(优选地为缓冲存储器);并且

第一处理级根据第一模式将数据写到存储器,以由第二处理级使用。

本发明的第二处理级可以包括可操作用于根据不同的第二模式使用由第一处理级产生的数据的任何合适且期望的处理级。第二处理级例如可以包括显示控制器的所谓“解块器”,该解块器可操作用于将一个或更多个数据区块(块)形式的数据转换成一个或更多个数据行的形式的数据,例如以进一步处理和/或显示。

还将可以的是使第二处理级包括显示控制器的所谓“成块器”,该成块器可操作用于将一个或更多个数据行的形式的数据转换成一个或更多个数据区块(块)形式的数据,例如以进一步处理和/或显示。

再次,可以存在可操作用于根据第二模式使用数据的单个第二理级,或者可以存在多个第二处理级。在存在多个第二处理级的情况下,那么各第二处理级优选地以本发明的第二处理级的方式来操作。

由第一处理级产生的数据由第二处理级根据第二模式来使用。由此,第二处理级应当(且优选地确实)根据除了第一模式之外的模式使用数据。第二模式可以包括可以使用数据的任何合适和期望模式,只要第二模式不同于第一模式。

在优选实施方式中,数据(阵列)由第二处理级根据数据处理系统的第二处理级和/或一个或更多个其他下游处理级被构造成将该数据用作该级输入的模式来使用。由此,例如,在数据包括用于显示的图像数据(或要用于生成用于显示的图像的数据)的一个优选实施方式中,数据(阵列)由第二处理级根据与显示器被构造成将该数据用作显示器输入的模式对应的模式(即,由第二处理级所用的模式对应于被提供给显示器以显示的数据的模式)来使用。

在特别优选的实施方式中,数据以行(优选地为栅格(行)顺序)的形式来被第二处理级使用。即,第二模式优选地为行(栅格)模式。

各数据行应当且优选地确实包括为一个数据位置高和多个数据位置宽(长)的数据阵列的一排数据位置。各行优选地具有对应于(等于)由第一处理级产生的整个数据阵列的宽度的宽度。然而,还将可以的是使各行具有某一其他宽度,诸如整个数据阵列宽度的一部分(例如,一半)。

由此,在由第一处理级产生的整个数据阵列或各整个数据阵列包括多个数据位置的阵列的情况下,数据阵列优选地由第二处理级按栅格行顺序从数据位置到数据位置使用。因此,在如上面讨论的数据包括多个数据字的情况下,第二处理级优选地按栅格(行)顺序使用数据字(即,按栅格行顺序从字到字)。

在另一个实施方式中,例如如上所述的,数据以多个数据区块的形式由第二处理级使用,其中,各数据区块表示数据阵列的特定区域(区)。在这种情况下,各数据区块应当且优选地确实包括数据阵列的至少两排和至少两列的数据位置。用于第二模式的合适数据区块尺寸将例如为数据阵列中的8*8、16*16或32*32个数据位置。

第二处理级可以以任何合适且期望的方式来使用由第一处理级产生的数据。由第二处理级使用数据的速率应当(且优选地)不同于且优选地为低于由第一处理级产生数据的速率。

为了使第二处理级根据第二模式使用(根据第一模式产生的)数据,由第一处理级(根据第一模式)产生的数据必须且在优选实施方式中是被有效转换成根据第二模式的数据。

这可以以任何合适且期望的方式来实现。然而,根据特别优选的实施方式,第二处理级可操作用于从根据第二模式存储数据的储存器(例如,存储器)读取数据。由此,第二处理级优选地通过根据第二模式从存储器读取数据来根据第二模式使用数据。

因此,在优选实施方式中:

第一处理级根据第一模式将数据写到存储器,以由第二处理级使用;并且

第二处理级根据不同的第二模式从存储器读取数据。

在如上面讨论的第一模式包括区块(块)模式且第二模式包括行(栅格)模式的情况下,第一处理级优选地将数据区块(块)写到存储器,并且第二处理级优选地从存储器读取数据行(例如,按栅格顺序读取数据)。

由此,在特别优选的实施方式中,第一处理级被构造成以输出阵列的数据位置(即,“块”)的二维区块(阵列)的形式产生区域(即,高度和宽度各大于单个数据位置的区域),并且将这些区域(数据区块)写到数据处理系统的存储器,而第二处理级优选地被构造成按栅格顺序,即,以行(一个数据位置高且多个数据位置宽(长)的数据位置的排)形式使用数据阵列(以从存储器读取数据阵列)。

因此,这将意味着第二处理级优选地被构造成连续地使用(读取)来自多个第一处理级输出的区域(区块)的数据位置中的一些数据位置但不是全部数据位置(即,而不是在开始下一区块之前使用完整区块)(例如且优选地,逐行(逐排)),例如,并且优选地,逐行(逐排),其中,各行(排)包括来自多个不同第一处理级输出的区域(区块)的、级联的各数据位置排。由此,由第二处理级使用的各数据位置行(排)可以(且优选地)从由第一处理级产生的整个数据阵列的多个区块(块)取得。

在优选的这种实施方式中,连续使用(读取)来自多个输出区域(区块)中的每一个的各对应行(排)的数据位置,即,在移至下一行上之前一个接一个地使用。例如,可以连续使用(读取)处于区块行(排)中的各个区块的顶行(排)中的数据位置。然后可以连续(一起)使用(读取)处于区块行(排)中的各个区块的第二行中的数据位置。

另一方面,在如上面讨论的第一模式包括行(栅格)模式且第二模式包括区块(块)模式的情况下,第一处理级优选地将数据行写到存储器,并且第二处理级优选地从存储器读取数据区块(块)。

由此,在优选实施方式中,第一处理级被构造成以行(一个数据位置高且多个数据位置宽(长)的数据位置排)的形式产生区域,并且将这些数据行写到数据处理系统的存储器,而第二处理级优选地被构造成以数据位置(即,“块”)的二维区块(阵列)(即,高度和宽度各大于单个数据位置的区域)的形式来使用数据阵列(以从存储器读取数据阵列)。

第二处理级使用数据还可以包括第二处理级处理数据(本身)和/或第二处理级向数据处理系统的一个或更多个随后(下游)处理级传递(可选地为经处理的)数据,例如且优选地以进一步处理。

在特别优选的实施方式中,第二处理级包括例如显示控制器的“解块器”处理级,该解块器处理级可操作用于将以一个或更多个区块(块)形式接收的数据转换成行的形式的数据,例如以进一步处理和/或显示。在该实施方式中,(第一处理级将其数据写到的)数据处理系统的存储器优选地为该解块器的一部分。由此,在该实施方式中,第一处理级优选地将其数据(根据第一模式)写到解块器的缓冲存储器,然后该解块器优选地根据第二模式从缓冲器读出数据。

在如上面讨论的数据包括多个数据字的情况下,第二处理级(解块器)优选地按栅格(行)顺序(即,按栅格行顺序从字到字)读取数据字,然后处理各字和/或向数据处理系统的一个或更多个随后(下游)处理级传递各字,例如且优选地以进一步处理。

另一方面,在第二处理级包括可操作用于将以行的形式接收的数据转换成区块(块)形式的数据例如以进一步处理和/或显示的例如显示控制器这样的“成块器”处理级的情况下,(第一处理级将其数据写到的)数据处理系统的存储器可以是该成块器的一部分。由此,在该实施方式中,第一处理级优选地将其数据(根据第一模式)写到成块器的缓冲存储器,然后成块器优选地根据第二模式从缓冲器读出数据。

在一个优选实施方式中,第二处理级还包括(像素)拆包处理级,该拆包处理级可操作用于从多个数据字中的每个数据字提取关于多个独立数据位置(像素)中的每个的数据(即,其中,各数据字包括关于整个数据阵列的多个数据位置的数据)。

关于各数据位置(像素)的数据然后可以由第二处理级进一步处理和/或向前传递到数据处理系统的一个或更多个另外(下游)处理级,例如以进一步处理。在一个优选实施方式中,第二处理级还可以包括一个或更多个层或像素处理流水线,该处理流水线可操作用于根据需要处理关于各数据位置(像素)的数据,例如以显示。

因此,在这些实施方式中,第一处理级优选地以多个数据字的形式产生数据(其中,各数据字包括关于整个数据阵列的多个数据位置的数据),然后由第二处理级逐数据位置(例如,逐像素)地使用(处理)该数据。因此,这将进一步增加使用数据组所花费的时间,并且相应地增加可以停用第一处理级的时间量。

第二处理级使用数据还可以或相反地包括第二处理级使得数据中的至少一些和/或经处理数据中的至少一些被显示。由此,在一个实施方式中,第二处理级可操作用于向显示器(直接)根据第二模式提供(可选地为经处理的)数据,以显示。

为了促进这一点,第二处理级优选地包括可操作用于向显示器提供用于显示的图像的输出级。该输出级可以为向显示器提供用于显示的图像例如以使得在(用作显示界面的)显示器上显示用于显示的图像的任何合适的这种输出级。输出级优选地包括用于显示器的适当定时控制功能(例如,输出级被构造成以适当的水平和垂直消隐时段向显示器发送像素数据)。

如上面讨论的,在本发明中,当第一处理级已经产生数据组时,停用第一处理级,然后基于由第二处理级对该数据组的使用而重新启动第一处理级。

停用第一处理级可以以任何合适且期望的方式来实现,但在优选实施方式中,停用第一处理级电路的部分,例如以降低第一处理级电路的功率消耗。最优选地,停用第一处理级包括“时钟关断”第一处理级(即,关闭第一处理级的时钟)。

对应地,(重新)启动第一处理级可以以任何合适且期望的方式来实现,但在优选实施方式中,(重新)启用第一处理级电路的部分(例如在停用第一处理级时停用的部分)。最优选地,启动第一处理级包括打开第一处理级的时钟。

在适当的情况下,例如可以连同第一处理级一起启动和停用数据处理系统的处理级中的任一个或更多个,优选地以进一步降低数据处理系统的功率消耗。由此,例如,可以连同第一处理级一起启动和停用读取控制器(如果期望)。

在优选实施方式中,启动第一处理级包括启动第一处理级以产生另外的数据组。在这种情况下,该另外的数据组优选地对应于(初始的)数据组(与初始的数据组尺寸相同)。

由此,在优选实施方式中,该方法包括以下步骤:

在第一处理级已经产生第一数据组时停用第一处理级,第一数据组包括允许根据第二模式使用第一数据组的足够数据;

基于由第二处理级对第一数据组的使用而启动第一处理级,以产生第二数据组,第二数据组优选地包括允许根据第二模式使用第二数据组的足够数据。

然后优选地在第一处理级已经结束产生第二数据组时再次停用第一处理级,然后优选地基于第二处理级对第二数据组的使用而重新启动第一处理级,以此类推。

由第一处理级产生的数据组或各组数据可以包括任何合适且期望的数据组,该数据组包括允许根据第二处理级的第二模式使用该数据组的足够数据。数据组或各组数据应当根据第一模式来产生。

如上面讨论的,因为产生数据的(第一)模式不同于使用(消耗)数据的(第二)模式,所以(由第一处理级)根据第一模式产生的任意数据组通常将不可(由第二处理级)根据第二模式“独立”使用,例如,在不需要在使用(消耗)该数据组的同时产生另外数据的情况下。

例如,在如上面讨论的数据以区块(块)的形式产生且然后以行的形式使用(消耗)的情况下,在可以“独立”使用该数据组之前,即,在数据可以在不需要在使用(消耗)该数据组的同时产生另外数据的情况下以行来消耗之前,必须产生适当的(例如,完全)区块(块)行宽。即,应当产生数据区块排(行),其中,数据区块排(行)具有等于第二模式下的各个行的长度(宽度)的长度(宽度)。

由此,由第一处理级(在停用第一处理级之前)产生的数据组优选地包括特定的、优选地选择的、优选地预定的数据组,该数据组优选地具有允许(由第二处理级)根据第二模式使用的、例如在该数据组内的数据位置的数量方面的尺寸(宽度和/或高度)。因此,由第一处理级(在停用第一处理级之前)产生的该数据组尺寸将优选地依赖第一模式和第二模式这两者,即,模式之间的关系。

该组或各组数据可以刚刚(仅)包括允许第二处理级使用数据的足够数据,或者可以包括比该数据多的数据。

在如上面讨论的数据以多个数据区块的形式由第一处理级产生的情况下,各组数据将优选地包括多个数据区块。由此,在特别优选的实施方式中,数据处理系统可操作用于在第一处理级已经产生一组多个数据区块时停用第一处理级。第一处理级优选地在它已经产生特定的、优选地选择的、优选地预定数量(该数量优选地基于允许第二处理级根据第二模式使用该组多个数据区块所需的区块数量)的数据区块时停用。

对应地,在如上面讨论的数据以多个(栅格)数据行的形式由第二处理级使用的情况下,各组数据将优选地包括允许以(栅格)行使用(消耗)该数据组的足够数据。

最优选地,该组或各组数据包括一组多个数据区块,该组多个数据区块包括允许以(栅格)行使用(消耗)该组多个数据区块的足够数据区块。在优选的这种实施方式中,该数据组包括一个或更多个数据区块排(或“行”),即,其中,该数据区块排或各数据区块排跨越第二模式的整个(栅格)行(的宽度))。如上面讨论的,在这种情况下,第二模式的各行优选地对应于整个数据阵列(帧)的总宽度(具有等于该总宽度的宽度),但还将可以的是使第二模式的各行具有某一其他宽度,诸如整个数据阵列(帧)的总宽度的某一部分(例如,一半)。

对应地,在如上面讨论的数据以行的形式产生且然后以区块(块)形式使用(消耗)的情况下,优选地产生适当的一组(适当数量的)数据行,该数据组行例如包括允许以区块(块)使用(消耗)该数据组行的足够数据行(例如,该数据组行对应于块的“高度”)。

如上面讨论的,基于由第二处理级对该数据组的使用(重新)启动第一处理级。

在优选实施方式中,在由第二处理级使用该数据组的同时,即,在第二处理级已经使用(已经产生的)该数据组的全部之前,第一处理级(重新)启动。

在这些实施方式中,第一处理级可以在第二处理级已经使用该数据组的全部之前的任何时刻(重新)启动。然而,在特别优选的实施方式中,第一处理级在第一处理级产生另外数据组所花费的时间等于或足够类似于第二处理级使用(已经产生的)数据组中的剩余数据所花费的时间的时刻重新启动。如上面所讨论的,这在最大化(或至少增大)停用第一处理级的时间量和得到的功率节省的同时确保第二处理级不缺乏供其使用的数据。

在一个优选实施方式中,第一处理级在第二处理级使用(已经产生的)数据组中的剩余数据所花费的时间少于或等于第一处理级产生另外数据组所花费的时间优选地加上某一余裕的时刻(重新)启动。

在(由第一处理级产生的数据组包括数据位置阵列的)特别优选的实施方式中,确定第一数据组的特定“启动”数据位置或多个特定“启动”数据位置,然后基于第二处理级是否已经使用特定数据位置或多个特定数据位置,例如,在第二处理级使用(和/或到达)特定数据位置或多个特定数据位置时,启动第一处理级。由此,在优选实施方式中,第一处理级基于第二处理级是否已经使用和/或到达关注的数据阵列的特定的、优选地选择的、优选地确定的数据位置来(重新)启动。

在该实施方式中,启动数据位置或多个启动数据位置可以根据期望来确定。然而,在特别优选的实施方式中,特定数据位置或多个特定数据位置通过确定该数据组的以下数据位置来确定:对于该数据位置,第二处理级使用该数据位置或多个数据位置之后的、该数据组的数据所花费的时间(例如,时钟周期数)少于或等于第一处理级产生另外数据组所花费的时间(例如,时钟周期数),优选地加上余裕。

在余裕用于这些实施方式中的情况下,余裕可以根据期望(例如,以时钟周期数来表达)来设定,例如,以将例如由于数据处理系统中的时延而引起的任何(不可预知或相反)的延迟考虑在内。余裕在使用中优选地可(优选地逐数据阵列(逐帧)地)例如由用于数据处理系统的驱动器来设定。

其他结构当然会是可能的。

相信在数据处理系统的数据消耗处理级使用(消耗)由产生数据的处理级产生的数据组的特定数据位置或多个特定数据位置时控制数据处理系统的产生数据的处理级的构思本身是新颖且有利的。

由此,根据本发明的另一个方面,提供了一种操作数据处理系统的方法,该方法包括以下步骤:

第一处理级根据第一模式产生第一数据组,该第一数据组包括多个数据位置;以及

第二处理级根据不同的第二模式使用第一数据组;

其中,方法还包括以下步骤:

确定第一数据组的特定数据位置或多个特定数据位置,特定数据位置或多个特定数据位置用于控制第一处理级产生数据;以及

基于第二处理级是否已经使用特定数据位置或多个特定数据位置来控制第一处理级产生数据。

根据本发明的另外方面,提供了一种数据处理系统,该数据处理系统包括:

第一处理级,该第一处理级可操作用于根据第一模式产生第一数据组,第一数据组包括多个数据位置;和

第二处理级,该第二处理级可操作用于根据不同的第二模式使用第一数据组;

其中,数据处理系统被构造成:

确定第一数据组的特定数据位置或多个特定数据位置,特定数据位置或多个特定数据位置用于控制第一处理级产生数据;并且

基于第二处理级是否已经使用特定数据位置或多个特定数据位置来控制第一处理级产生数据。

如本领域技术人员将理解的,本发明的这些方面可以根据需要(且优选地确实)包括这里描述的本发明的优选和可选特征中的任一个或更多个或全部。

由此,例如,特定数据位置或多个特定数据位置优选地通过确定第一数据组的以下数据位置来确定:对于数据位置或多个数据位置,第二处理级使用数据位置或多个数据位置之后的、第一数据组的数据所花费的时间(例如,时钟周期数)少于或等于第一处理级产生第二数据组所花费的时间(例如,时钟周期数)优选地加上余裕。

类似地,第一处理级优选地在它已经产生第一数据组时停用,例如且优选地如上所述。然后优选地基于第二处理级是否已经使用特定数据位置或多个特定数据位置来控制第一处理级产生数据,例如,由第一处理级产生数据优选地通过在第二处理级使用特定数据位置或多个特定数据位置时启动第一处理级以产生第二数据组来控制,例如且优选地如上所述。

从上述将理解,在优选实施方式中,由第一处理级产生数据基于相对的数据的产生(第一)模式与该数据的使用(消耗)(第二)模式来控制,即,基于模式之间的关系来控制。

本发明的数据处理系统可以包括任何合适且期望的数据处理系统。然而,如本领域技术人员将理解的,本发明与显示控制器或包括显示控制器的数据处理特性特别相关且特别用于显示控制器或包括显示控制器的数据处理系统中。

由此,在特别优选的实施方式中,本发明的数据处理系统包括显示控制器。

对应地,根据本发明的另一个方面,提供了一种操作用于数据处理系统的显示控制器的方法,该方法包括以下步骤:

显示控制器的第一处理级根据第一模式产生数据;以及

显示控制器的第二处理级根据不同的第二模式使用由第一处理级产生的数据;

方法还包括以下步骤:显示控制器:

在第一处理级已经产生数据组时停用第一处理级,该数据组包括允许根据第二模式使用该数据组的足够数据;以及

基于由第二处理级对该数据组的使用来启动第一处理级。

根据本发明的另一个方面,提供了一种用于数据处理系统的显示控制器,该显示控制器包括:

第一处理级,该第一处理级可操作用于根据第一模式产生数据;和

第二处理级,该第二处理级可操作用于根据不同的第二模式使用由第一处理级产生的数据;

其中,显示控制器可操作用于:

在第一处理级已经产生数据组时停用第一处理级,该数据组包括允许根据第二模式使用该数据组的足够数据;并且

基于由第二处理级对该数据组的使用来启动第一处理级。

如本领域技术人员将理解的,本发明的这些方面可以根据需要(且优选地确实)包括这里描述的本发明的优选和可选特征中的一个或更多个或全部。

显示控制器可以为任何合适且期望的显示控制器,并且可以包括显示控制器可以包括的任何合适且期望的另外处理级。显示控制器应当且优选地可操作用于向显示器提供用于显示的图像。

显示控制器(的第一处理级)优选地包括解码器和/或旋转级,优选地和阅读控制器,并且例如优选地如上所述。显示控制器(的第二处理级)优选地例如如上面讨论的包括解块器处理级,该解块器处理级可操作用于将以一个或更多个区块(块)形式接收的数据转换成行的形式的数据,例如以进一步处理和/或显示;(像素)拆包处理级,该拆包处理级可操作用于从多个数据字中的每一个提取关于多个独立数据位置(像素)中的每一个数据;一个或更多个层或像素处理流水线,该处理流水线可操作用于根据需要处理关于各数据位置(像素)的数据,例如以显示;和/或输出级,该输出级可操作用于向显示器提供用于显示的图像,并且例如且优选地如上所述。

虽然上面具体参照给定数据阵列(例如,用于显示的帧)的处理描述了本发明,但如本领域技术人员将理解的,本发明可以且优选地用于处理多个数据阵列(例如,提供用于显示的多个帧),并且优选地用于处理数据阵列的序列(例如,向显示器提供要显示的帧序列)。

数据处理系统的各种级可以根据期望来实现,例如,以一个或更多个固定功能单元(硬件)(即,专用于不可变化的一个或更多个功能的单元)的形式、或被实现为一个或更多个可编程处理级,例如借助于可以被编程为执行期望操作的可编程电路来实现。可以存在固定功能级和可编程级这两者。

本发明的各种处理级中的一个或更多个可以作为单独的电路元件提供给数据处理系统的其他级。然而,一个或更多个级还可以至少部分由共享数据处理电路来形成。

本发明的各种级中的一个或更多个可以操作用于总是对任何和全部所接收数据执行它的功能。另外或另选地,级中的一个或更多个可以操作用于对所接收数据选择性执行它的功能(即,在期望和/或适当时)。

数据处理系统可以且优选地确实包括中央处理单元、图形处理单元、视频处理器(编解码器)、系统总线、存储控制器、图像信号处理器、显示处理单元以及如为本领域技术人员所知的另外元件中的一个或更多个,并且优选地包括全部。

数据处理系统可以且优选地是被构造成与外部存储器(例如,经由存储控制器)、一个或更多个本地显示器和/或一个或更多个外部显示器中的一个或更多个(并且本发明还扩展到包括上述部件中的一个或更多个的结构)通信。

在实施方式中,数据处理系统还包括显示器。与显示控制器一起使用的显示器可以为任何合适且期望的显示器,诸如例如,屏幕(诸如平板电脑)或打印机。

本发明可以在任何合适的系统中实现,诸如基于合适构造的微处理器的系统。在实施方式中,本发明实现在计算机和/或基于微处理器的系统中。

本发明的各种功能可以以任何期望且合适的方式来执行。例如,本发明的功能可以实现在硬件或软件中(根据期望)。由此,例如,除非以其他方式指示,本发明的各种功能元件和“装置”可以包括合适的处理器、控制器、功能单元、电路、处理逻辑、微处理器结构等,它们可操作用于执行各种功能等,诸如适当专用硬件元件(处理电路)和/或可以被编程为以期望方式操作的的可编程硬件元件(处理电路)。

这里还应当注意的是,如本领域技术人员将理解的,本发明的各种功能等可以在给定处理器上重复和/或并行执行。等同地,各种处理级可以共享处理电路等(如果期望)。

受制于必须执行上面讨论的特定功能的任何硬件,显示处理流水线可以以其他方式包括显示处理流水线包括的通常功能单元等中的任一个或更多个或全部。

如本领域技术人员还将理解的,本发明的全部描述的实施方式可以(且在实施方式中确实)根据需要包括这里描述的特征中的任一个或更多个或全部。

根据本发明的方法至少部分地可以使用软件(例如,计算机程序)实现。由此将看到当从另外的实施方式看时,本发明提供计算机软件,该计算机软件当安装在数据处理器上时专门适用于执行这里描述的方法;计算机程序元件,该计算机程序元件包括计算机软件代码部,用于在程序元件在数据处理器上运行时执行这里描述的方法;和计算机程序,该计算机程序包括代码,该代码当程序在数据处理系统上运行时适用于执行这里描述的方法的全部步骤。数据处理器可以是微处理器系统、可编程fpga(场可编程门阵列)等。

本发明还扩展到计算机软件载体,该计算机软件载体包括这种软件,这种软件当用于操作图形处理器、渲染器或包括数据处理器的微处理器系统时与所述数据处理器、所述处理器、渲染器或系统结合使处理器执行本发明的方法的步骤。这种计算机软件载体可以是物理存储介质,诸如rom芯片、cdrom、ram、闪存或盘,或可以是信号,诸如电线上的电信号、光信号或诸如到卫星的无线电信号等。

还将理解的是,不是本发明的方法的全部步骤都需要由计算机软件执行,并且由此根据更宽实施方式,本发明提供了计算机软件并且这种软件安装在计算机软件载体上,用于执行这里阐述的方法的步骤中的至少一个。

本发明可以因此适当地具体实施为用于与计算机系统一起使用的计算机程序产品。这种实现可以包括一系列计算机可读指令,该一系列计算机可读指令固定在有形、永久介质上,诸如计算机可读介质,例如,磁盘、cdrom、rom、ram、闪存或硬盘。还应当包括一系列计算机可读指令,在有形介质(包括但不限于,光学或模拟通信线)上,或无形地使用无线技术(包括但不限于,微波、红外或其他传输技术),这些指令经由调制解调器或其他界面装置可发送到计算机系统。该系列计算机可读指令具体实施这里之前描述的功能的全部或一部分。

本领域技术人员将理解,这种计算机可读指令可以以多种编程语言来写,用于与多个计算机架构或操作系统一起使用。进一步地,这种指令可以使用任何存储技术来存储(存储技术现在或将来包括但不限于半导体、磁或光),或使用任何通信技术来发送(通信技术现在或将来包括但不限于光学、红外或微波)。预期的是,这种计算机程序产品可以作为可去除介质来分发,附有已打印的文档或电子文档,例如,现成软件;例如在系统rom或固定盘上预加载有计算机系统;或在网络(例如,因特网或万维网)上从服务器或电子公告栏分发。

附图说明

现在将仅以示例的方式并参照附图来描述本发明的各种实施方式,在附图中:

图1示意性示出了根据本发明的实施方式的数据处理系统;

图2示意性示出了根据本发明的实施方式的显示控制器;

图3示意性示出了根据本发明的实施方式的显示控制器的一部分;

图4示意性示出了根据本发明的实施方式的显示控制器的操作;

图5示意性示出了根据本发明的实施方式的显示控制器的解块器;

图6示意性示出了根据本发明的实施方式的显示控制器的操作;

图7示意性示出了根据本发明的另一个实施方式的显示控制器的一部分;

图8示意性示出了根据本发明的实施方式的、数据阵列到区块的划分;以及

图9示意性示出了根据本发明的实施方式的显示控制器的操作。

类的附图标记贯穿附图在适当的情况下用于类似的部件。

具体实施方式

现在将参照附图描述本发明的优选实施方式。

图1示意性示出了根据本发明的实施方式的数据处理系统。数据处理系统包括视频编解码器1、中央处理单元(cpu)2、图形处理单元(gpu)3、显示控制器4以及存储控制器7。如图1所示,这些单元经由互连器6通信并访问片外主存储器8。视频编解码器1、cpu2和/或gpu3生成输出表面,并且经由存储控制器7将表面存储在片外存储器8中的帧缓冲器中。显示控制器4然后经由存储控制器8从片外存储器8中的帧缓冲器读取输出表面,并且向显示器5发送表面以显示。

图2示意性示出了根据本发明的实施方式的显示控制器4。在图2中,矩形表示显示控制器的功能单元,而标有箭头的线表示各种功能单元之间的连接。

图2示出了与本实施方式的操作有关的、显示控制器4的主要元件。如本领域技术人员将理解的,将存在图2中未例示的、显示控制器4的其他元件。这里还应当注意的是,图2仅是示意性的,并且例如,在实践中,所示的功能单元和级可以共享重要的硬件电路,即使它们在图2中被示意性示出为单独的级。还将理解,如图2所示的显示控制器4的各个级、元件以及单元等可以根据期望来实现,并且因此将包括例如用于执行必要操作和功能的适当电路和/或处理逻辑等。

在本实施方式中,显示控制器4包括直接存储器存取(dma)读取控制器10形式的读取控制器。读取控制器10被构造成经由诸如高级可扩展接口(axi)的接口从主存储器8(图2中未示出)读取一个或更多个表面。一个或更多个表面通常将为(可选地为经压缩的)rgb数据的形式。

与读取控制器10位于一处的是解码器11,该解码器11可以用于在向前发送一个或更多个经解码(经解压缩)表面之前按需(选择性地)解码(解压缩)所接收的压缩表面。解码器11可以包括arm帧缓冲器压缩(afbc)解码器(美国a12013/0034309中描述了afbc)。当然,可以使用其他压缩方案。压缩的使用减小了与显示控制器4从片外存储器8读取表面关联的带宽。

类似地,旋转单元12可以用于在向前发送一个或更多个输入表面之前按需选择性旋转输入表面中的一个或更多个。

在所例示的实施方式中,读取控制器4被构造成(读取)要用于生成合成输出帧的多达三个不同的输入表面(层)。在该实施方式中,三个输入层包括例如由视频处理器(编解码器)生成的一个视频层和两个图形层(例如,由图形处理单元(gpu)生成的两个图形窗口)。因此,图2示出了经由三层流水线或通道(即,视频通道13a、第一图形通道13b以及第二图形通道13c)向前发送三个输入表面(显示层)的显示控制器。所发送输入表面中的任一个或全部可以如上所述的已经经受由解码器11进行的解码(解压缩)和/或由旋转单元12进行的旋转。

虽然图2的实施方式例示了使用三个输入表面,但将理解,在本发明中可以使用任何数量的输入表面(层),这依赖于关注的应用(并且还依赖于任何硅面积限制等)。等同地,可以根据期望提供并使用任何数量的层流水线或通道。

本实施方式的显示控制器4可选地包括多工器/数据流控制器14。当存在时,显示控制器可以被构造成使得多工器14从输入表面通道中的任一个或更多个(或全部)接收输入。多工器14可操作用于向多工器14的输出中的任一个或更多个选择性发送所接收输入(即,表面)中的任一个或更多个(或全部)。

本实施方式的显示控制器4可选地包括合成单元15。当存在时,显示控制器可4以被构造成使得合成单元15直接从通道13中的任一个或更多个或全部和/或从多工器14接收输入。合成单元15可操作用于合成所接收的输入表面,以生成合成的输出帧(即,由适当的混合操作等)。在所例示的实施方式中,合成的输出帧可以由合成单元15向前发送到多工器14和/或后处理流水线16。

后处理流水线16被构造成对(所合成的)输出表面(帧)选择性执行任何期望的处理操作。后处理流水线16例如可以包括颜色转换级,该颜色转换级可操作用于向(所合成的)输出帧应用颜色转换;抖动级,该抖动级可操作用于向(所合成的)输出帧应用抖动;和/或伽马校正级,该伽马校正级可操作用于对(所合成的)输出帧进行伽马校正。

在本实施方式中,后处理流水线16被构造成向输出级发送(经处理的)合成输出帧,该输出级包括用于在(本地)显示器(未示出)上适当显示的显示定时单元17。显示定时单元17被构造成以适当的水平和垂直消隐时段向显示器发送像素数据。

本实施方式的显示控制器4可选地包括缩放引擎18。当存在时,缩放引擎18操作用于(选择性)缩放(即,放大或缩小)任一个或更多个所接收表面(帧),以生成经缩放表面(帧)。

在本实施方式中,显示控制器可选地包括例如为dma写控制器形式的写控制器19。当存在时,写控制器19可以被构造成将所接收表面(帧)写出到外部存储器8(例如,帧缓冲器),例如经由axi。

由此,本发明的该优选实施方式包括集成了解码器11和旋转单元12(可选地连同合成单元15和/或能够放大和缩小表面的缩放引擎18)的显示控制器。解码器11和旋转单元12嵌在显示控制器内,使得可以在仅需要从帧缓冲器单个读取(各输入表面)的情况下在显示由显示控制器4读取的表面之前解码(解压缩)和/或旋转(然后可选地另外处理(例如,合成和/或缩放))这些表面。

图3更详细地示出了特别与优选实施方式的操作有关的、显示控制器4的一部分。在该优选实施方式中,片外存储器8中的帧缓冲器中所存储的一个或更多个表面使用afbc或另一个基于区块的编码方案来压缩。

在afbc和其他基于区块的编码方案中,各经压缩的表面被编码为多个数据区块(块),其中,各数据区块(块)表示表面的特定区域。因此,显示控制器4以区块(块)(即,逐区块(逐块))从片外存储器8的帧缓冲器取得各表面。与此相反,显示控制器4以栅格行(即,一个像素位置高和多个像素位置宽(长)的像素位置排)向显示器5提供用于显示的输出图像。因此,显示控制器4将所读取区块(块)数据转换成栅格行数据,然后向显示器5发送栅格行数据,以显示。

在本实施方式中,读取控制器10被构造成经由诸如高级可扩展接口(axi)这样的接口从主存储器8读取经压缩表面的一个或更多个区块(块)。为此,读取控制器10经由(axi)地址通道向存储器8发送请求,并且经由(axi)数据通道从存储器8接收数据。读取控制器10可以包括重新排序缓冲器,如果期望,则该重新排序缓冲器允许重新排序由读取控制器10混乱接收的区块(块)。

一个或更多个经压缩区块(块)将为afbc经编码rgb数据的形式。各区块(块)通常将具有16x8x4b=0.5kb的尺寸。

由读取控制器10读取的经压缩区块(块)然后经由(axi)接口向前发送到解码器11。解码器11操作用于解码经压缩区块(块),以产生例如rgb数据的未压缩块。未压缩区块然后以诸如axi字的数据字的形式向前发送到解块器20。各字将包括关于区块(块)的多个像素(数据位置)的数据。

解块器20操作用于将区块(块)数据转换成栅格行数据。如图3所示,为了这样做,解块器20包括缓冲存储器21。由解块器20接收的区块(块)数据被逐区块(逐块)写到缓冲器21,然后通过从缓冲器21读取用于各栅格行的适当字从缓冲器21读出数据字(诸如axi宽度字)形式的栅格行数据。

然后,(axi)字形式的行数据经由时延隐藏先入先出(fifo)缓冲器22馈送到像素拆包器或层控制器23。像素拆包器23从所接收的(axi)字提取用于各像素(数据位置)的数据,并且向适当的通道或层流水线13以每个时钟周期一个像素的速率向前发送数据,以进一步处理(例如,如上面讨论的)。

图4示意性例示了在取得经压缩区块(块)数据并将其转换成行数据时显示控制器4的操作。如图4所示,经由(axi)接口从外部存储器8取得(例如,afbc经压缩层)的经压缩区块(步骤30)。解压缩区块并将区块写到解块器20(步骤31)。然后从解块器20读取数据字(axi字),并向像素拆包器23发送数据字(步骤32)。从(axi)字提取关于独立像素的数据,并且以每个时钟周期1个像素的速率向层或像素处理流水线13发送该数据(步骤33)。

在本实施方式的结构中,由像素拆包器或层控制器23接收的各(axi)字包括关于多个像素(数据位置)的数据,并且独立像素数据以每个时钟周期一个像素的速率发送给层流水线13。因此,解块器20的耗尽速率与可以填充解块器20的速率相比较低。另外,如图3所示,对应于区块(块)的整个行(帧)宽度的x个区块(块)的序列应该在可以以行读出区块数据之前写到解块器缓冲器21。

在本实施方式中,这些事实被用来降低显示控制器4的功率消耗。具体地,解码器11在它已经产生整个数据区块行时停用(时钟关断),并且在由解块器20读出该数据的同时,在或接近于使解码器11产生另一个区块(块)行所花费的时间等于或足够类似于使解块器20读出已经产生的区块行的剩余数据所花费的时间的时刻重新启动解码器11。由此,解码器11被设置为在尚未从解块器缓冲器21读出的在缓冲器21中的数据低于阈值时例如定期生成对数据区块(块)的多组请求。

这在最大化(或至少增大)可以时钟关断解码器11的时间量和对应产生的功率节省的同时确保了解块器20和下游级不缺乏供其使用的数据。申请人已经发现,例如,在通常的使用情况下,解码器11可以被时钟关断达大约60%的时间,这将解码器的功率消耗降低超过50%。因为解码器11在通常的使用情况下通常消耗显示控制器4所用功率的大约20%,所以该功率降低重要。

在本实施方式中,用于停用解码器11(即,通过关闭解码器时钟)的阈值thresholdturnoffclock被设定为整个区块(块)行被写到解块器缓冲器21的时刻:

thresholdturnoffclock=整个行的块被写到解块器。

对应地,用于重新启动解码器11的阈值被设定为使得解码器11在或接近使解码器11用另一个区块(块)行完全填充解块器缓冲器21所花费的时间等于或足够类似于使解块器缓冲器21内的剩余数据被读出所花费的时间的时刻重新启动。

用于启动解码器11(即,通过打开其时钟)的阈值thresholdturnonclock可以通过如下比较解块器缓冲器21的填充和耗尽速率来确定:

thresholdturnonclock=cyclesdrainde-tilernm<(cyclesfillde-tiler+余裕),

其中,cyclesdrainde-tilernm是假定当前输出像素位置是(n,m)时耗尽解块器缓冲器21所花费的时钟周期数,并且如下来计算:

cyclesdrainde-tilernm=[(块高度*行中的axi字)-[((n-1)*行中的axi字)+m/axi字中的像素]]*axi字中的像素,

cyclesdrainde-tiler是完全填充解块器缓冲器21所花费的周期数,并且可以如下来计算:

cyclesfillde-tiler=块数*解码一个块的周期,

并且余裕是允许(补偿)由于系统时延而引起的任何(潜在延迟)的可设定(例如,可软件编程)周期的数量。

图5例示了该处理。对于(重新)启动解码器11确定特定“启动”数据位置(像素)23。在用数据区块(块)行装满整个解块器缓冲器21之后,关闭解码器框11,直到解块器缓冲器21中剩余的数据(即,尚未从解块器缓冲器21读出的数据)低于阈值为止(即,直到由解块器20读出包含特定数据位置23的数据字为止)。此时,再次启用(启动)解块器11,以再次装满解块器缓冲器21。一旦解块器缓冲器21包含被写到它的下一组行(如区块),则再次关闭解码器11。继续该处理,直到已经解块了整个图像(帧)为止。

图6示意性示出了本实施方式的操作。处理在要显示新帧时开始(步骤40)。例如以水平方向上的区块总数x和垂直方向上的区块总数y表达的由驱动器设定帧要被划分成以处理的区块(块)的数量(步骤41)。用于补偿系统时延的余裕也由驱动器设定(步骤42)。然后确定满足启动阈值thresholdturnonclock的数据位置(像素)n,m(步骤43),并且将水平区块(块)计数和垂直区块(块)计数计数器初始化为零(步骤44)。

接着,打开解码器的时钟,即,以启动解码器11(步骤45)。解码器(连同读取控制器10)操作用于取得并解码(解压缩)经压缩区块并将经解码(经解压缩)区块写到解块器缓冲器21(步骤46)。

按栅格顺序从区块到区块(块到块)执行该处理。由此,对于各区块(块),使水平区块计数器递增(步骤47),并且关于是否已经到达区块排的末端进行确定。这通过将水平区块计数与水平方向上的总区块(块)数x进行比较来进行(步骤48)。当确定尚未到达区块排的末端时,处理环回,以处理区块排中的下一区块(步骤46)。当确定已经到达区块排的末端时,将水平块计数器重新初始化为零,并且使垂直块计数器递增(步骤49)。

此时,不是解码器11立即处理帧中的下一区块(块)(即,下一区块排中的第一区块),而是关闭解码器的时钟,即,以停用解码器11(步骤50)。解块器20然后操作用于读出解块器缓冲器21中的数据(步骤51),即,按栅格行顺序从字到字。

对于各字,确定该字在数据位置n,m处是否包含特定启动像素23(步骤52)。当确定字不含特定启动像素23时,处理环回到步骤51,即,以读出下一字。另一方面,当确定字确实包含特定启动像素23时,然后确定是否已经处理帧的最后一个区块排。这通过将垂直块计数与垂直方向上的总块数y进行比较来进行(步骤53)。

当确定尚未处理最后一个区块排时,处理环回为打开解码器的时钟(步骤45),以处理下一区块排,以此类推。另一方面,当确定已经处理最后一个区块排时,然后确定是否已经读出存在于解块器缓冲器21内的全部数据(步骤54)。

当情况不是这样时,处理环回到继续读出数据的步骤51。当确定已经读出存在于解块器缓冲器21内的全部数据时,对于当前帧结束处理(步骤55)。然后可以以对应的方式处理下一帧,以此类推。

虽然已经鉴于处理(afbc)经压缩的区块(块)描述了上述优选实施方式,但通常本发明适用于使用基于栅格扫描的数据处理但具有一个或更多个基于区块输入的结构。由此,本发明例如可以用于解块器、显示处理器(显示引擎)、独立经压缩块(例如,afbc)解码器、视频处理器(视频引擎)等。

本发明还适用于数据以行的形式产生且以区块形式使用的结构,诸如在在处理级产生数据行且将数据行写到(例如,“块”的)缓冲器的情况和从缓冲器读出数据区块(块)例如以编码且写到存储器的情况。

图7示意性示出了根据另一个优选实施方式的显示控制器4。图7类似于图3,并且以大致类似的方式来操作。然而,旋转级12代替了图3的解码器11,该旋转级例如操作用于使所接收的数据区块旋转。

由此,在图7的实施方式中,读取控制器10操作用于从存储器8读取一个或更多个(未压缩)表面,并且向旋转级12传递该数据。如图8所示,在本实施方式中,这通过读取数据帧被划分成的数据区块或列来进行。

如图7所示,这些列被馈送到旋转框12,旋转框12根据需要旋转数据并以(axi)字将数据写到解块器缓冲器21。解块器20按栅格扫描顺序从缓冲器21读出数据作为(axi)字,并且将字馈送到层控制器23。

图9示意性示出了根据本实施方式的、在取得未压缩数据、旋转数据并将其转换成栅格行数据时显示控制器4的操作。

如图9所示,从外部存储器8中的未压缩表面的列读取从(axi)字的突发(burst)创建的区块(块)(步骤60)。由旋转级12根据期望旋转区块(块)内的像素数据(步骤61)。然后将经旋转的区块写到解块器缓冲器(步骤62)。从解块器缓冲器21读取数据字(axi字),并向像素拆包器23发送数据字(步骤63)。从(axi)字提取像素,并且以每个时钟周期一个像素的速率向像素处理流水线16发送像素(步骤64)。

在本实施方式中,旋转级12在它已经产生整个数据区块(块)行时停用(时钟关断),并且在由解块器20读出该数据时,旋转级12例如以与上述方式对应的方式在或接近于旋转级12产生另一个区块(块)行所花费的时间等于或足够类似于旋转级20读出已经产生的数据区块(块)行的剩余数据所花费的时间的时刻重新启动。这在最大化(或至少增大)可以时钟关断旋转级12的时间量和对应产生的功率节省的同时确保解块器20和下游级不缺乏供其使用的数据。

从上述可以看到,本发明的优选实施方式使得能够降低例如其中将区块(块)数据转换成行数据的数据处理系统内的功率消耗。这至少在优选实施方式中通过以下方式来实现:当数据产生(第一)处理级已经产生特定的数据组时,停用该处理级,然后基于由数据消耗(第二)处理级对该数据组的使用而重新启动数据产生处理级。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1