具有多个存储体的数据处理的制作方法

文档序号:6455992阅读:309来源:国知局
专利名称:具有多个存储体的数据处理的制作方法
技术领域
本发明涉及处理电路和用于处理数据的多维阵列的方法。
背景技术
WO 2005/104027公开了具有存储器的图像处理电路,它支持对一块 像素位置的像素值的并行访问。众所周知,视频图像可以使用比如说约 1000x500像素位置的二维阵列来代表,每个像素位置具有对应的像素值。 为了处理目的,在这样的图像中来自比如说32x32位置的较小窗口的像素 值被存储在快速存储器中。已知的处理电路提供对于在这样的窗口内一一 比如说4x4像素——的较小块中像素的像素值的并行访问。
为了提供这种形式的并行访问,快速存储器包括具有被组织成组的多 个可并行访问的存储体的工作存储器。沿来自窗口的像素位置行的接连位 置的像素值被分散存储在存储体,典型地,是在不同存储体中的相同地址 以及回绕(wraparound)到接连的地址。每个下一行从前一行的末尾继续 进行存储,任选地,在接连的行之间带有某些存储器空间以便预取装 (prefetch)用于与当前窗口邻接的区域的像素值。
块包含所存储的窗口的像素位置的子组。当在工作存储器中寻址块 时,块的左上角的坐标被指示。从这个信息,处理电路识别包含在行开始 点处的像素位置的像素值的存储体和它们在存储体中的地址。处理电路把 来自这些存储体和相继的存储体的像素值路由到计算电路的相应输入,这 里需要来自相对于块坐标的特定位置的像素值。
控制这种形式的对工作存储器的访问需要块的左上角的坐标,加上在 以下方面描述窗口的像素值如何被存储的信息,即其中窗口左上角的像 素值被存储的开始存储体、这个像素值在该存储体中的地址、窗口的被存 储行的长度、在行回绕之前的存储体的数目等等。
对于来自块的像素值执行的典型操作包括块匹配,例如作为运动矢量 估计的一部分,DCT(离散余弦变换)计算等等。这些操作的某些操作牵涉 到取自不同图像的多个块。为了支持这样的多重访问,可以提供上述类型的多个工作存储器。然而,这需要相当多的电路面积。 发明概要
一个目的尤其是提供用于处理数据的多维阵列,其中当必须访问多个 不同的窗口时需要较少的开销。本发明由独立权利要求限定。从属权利要 求限定有利的实施例。
按照本发明的数据处理电路包括指令执行电路和多个存储体,用于执 行对于位置块的、对数据值的并行访问的指令,所述数据值是诸如对于像
素位置块的像素值。执行的指令规定平面(plane)的多个选择及在该平面 中位置块的多个选择的指示。提供了多个转换(translation)电路用来把所
时寻址多个块的指令。
有利地,路由电路提供用于在指令执行电路的任何的块数据端口与任
用于指令中不同功能的块的不同块数据端口可以共享对所有的存储体或 存储体组的访问,这样,如果指令执行电路的不同块端口必须在不同的时 间寻址相同窗口 ,则不需要进行从一个存储体到另 一个存储体的复制。
在一个实施例中,平面的选择的指示可以规定其中可以放置对于一个 块的数据值的可变数目的存储体。因此,例如, 一个或多个第一块的数据 可被放置分布在一个存储体组中,以及一个或多个第二块的数据可被放置 分布在两个存储体组中。任选地, 一个或多个第三块的数据可被放置分布 在四个存储体组中。指令规定使用哪些和使用多少存储体。取决于存储体 的规定的数目,可以使用或多或少的存储体,通过指令执行电路来访问位 置块的数据值。因此,对块的不同形式的并行访问可以互相混合地被支持。
在一个实施例中,平面信息查找存储器被提供来并发地存储对于各个 平面的平面信息。平面信息通过使用由所执行的指令提供的平面的标识而 被访问。对于每个平面的平面信息包括指示哪些存储体被使用来存储对于 该平面的数据值的信息。
在一个实施例中,每个转换电路被耦合到各自的存储体组,用于控制 在各自组中的存储体的寻址。另外的路由电路被提供来在所选择的平面的 控制下把位置块的选择的指示路由到转换电路中相应的一个。因此,在转 换电路与存储体组之间不需要另外的电路。
5在另一个实施例中,另外的路由电路被配置成把位置块的选择的指示 从块寻址输出的至少单个块寻址输出路由到 一个以上的转换电路。这支持 其中可能放置对于 一个块的数据值的可变数目的存储体的使用。
在一个实施例中,指令规定被寻址的位置块的尺寸和/或形状。每个块
可以具有在二维阵列中N乘M个位置的形状,例如,不同的形状对应于 整数N, M值的不同组合。在这种情形下,N和M的乘积是尺寸。转换 电路根据所指示的尺寸和/或形状执行转换。
通过使用以下附图,从示例性实施例的说明将明白这些和其它目的及 优点。
附图简述


图1显示处理电路;
图2显示矢量访问单元和存储体组;
图3图示存储体的使用;
图4显示组访问电路;
图5显示矢量访问单元;
图6图示存储体的使用;以及
图7显示存储器访问的流程图。
实施例详细说明
图l显示处理电路,包括联组的(banked)存储器电路10、矢量访问单 元12、多个功能单元14、指令控制电路16、存储器访问单元18和主存储 器19。指令控制电路16具有输出,该输出被耦合到功能单元14用于选择 要被执行的操作、被耦合到矢量访问单元12 ^于选择在操作中牵涉到的 数据的存储单元(memory location )、和被耦合^存储器访问单元18用于 控制在主存储器与联组的存储器电路之间的传送。功能单元14被耦合到 矢量访问单元12的多个端口,用于接收在操作中牵涉到的操作数数据, 以及任选地被耦合到用于写回结果数据的端口。矢量访问单元12被耦合 到联组的存储器电路10以便访问数据。存储器访问单元18被耦合在联组 的存储器电路10与主存储器19之间。在一个实施例中,可以使用单个功 能单元来代替多个功能单元。
图2更详细地显示矢量访问单元12和联组的存储器电路10。联组的 存储器电路IO包括多组20存储体26,用于组20中的相应组的地址计算
6电路22,以及控制电路24。为了说明起见,显示了每组四个存储体和四
个组。实际上,可以使用不同数目的组和/或每组不同数目的存储体。
联组的存储器电路10被使用来把部分数据值的拷贝存储到主存储器 19中。在主存储器19中的数据代表对于位置阵列(典型地,二维或更高维 阵列)中的相应位置的数据值。联组的存储器电路IO把这些对于位置窗口 、 而不是对于所有位置的数据值存储到这样的阵列中。联组的存储器电路10 提供对于在窗口内的可选择位置块的、对数据值的并行访问。典型地,这 些块的尺寸小于窗口的尺寸。
在工作期间,窗口被移动,使得联组的存储器电路10逐步存储对于 在阵列中在不同位置处的窗口的数据值。为了使实现窗口移动的数据移动 量最小化,对于既属于老窗口又属于新窗口的位置的数据值保持在存储体 的相同位置处。结果,窗口的逐步移动具有在窗口中的位置与联組的存储 器电路10中的存储单元之间的关系逐步改变的效果。
指令控制电路16可包括程序存储器、用来寻址程序存储器中接连的 指令的定序器和用于存储一个一个操作数的寄存器堆。被寻址的指令可以 是VLIW类型的指令,包含用于不同功能单元的多个操作的操作选择代码 以及操作数与结果寄存器地址选择代码。替换地,可以使用用于单个功能 单元的单个操作指令,具有单个操作选择代码和操作数选择代码以及用于 所选择的操作的结果寄存器地址。在一个实施例中,操作数选择代码地址 寄存器和被寻址的寄存器的输出可被耦合到矢量访问单元12,以便控制块 选择。替换地,来自指令本身的操作数选择代码可被耦合到矢量访问单元 12,或可以使用来自指令的代码与由指令寻址的寄存器的组合。
虽然该电路可应用于将数据用于二维和更高维的位置阵列的任何种 类的处理,但该电路将就牵涉到二维阵列的图像处理操作来进行描述。这 例如可应用于视频图像处理,诸如视频压缩或解压缩。应当意识到,在用 于本说明的附图上,许多并行信号导线用单线表示。而且,应当意识到, 优选地,可以使用大量的流水线技术,即,所描述的操作的不同接连级可 以在不同的执行周期中执行,而同时稍晚的操作的较早级也在进行中。然 而,对流水线技术将不作描述,因为对于理解这些操作并不需要它。
在工作时,处理电路处理程序一一例如用于处理图像的程序一一的指 令。主存储器19存储代表全部图像的数据。图像由像素位置和对于所有 这些像素位置的像素值的二维阵列定义。程序包含指令,用来对像素位置块的像素值施加并行操作。块比全部图像小得多,例如是4x4位置或8x8
位置的块。用于执行并行操作的指令寻址一个块,且指令的执行可以牵涉
到在联组的存储器电路10中并行装载或者存储对于块中的像素位置的像素值。
联组的存储器电路10提供对于一个完整块的像素值的并行访问。事 实上,联组的存储器10存储对于像素位置的窗口的像素值,所述窗口大 于一个块。存储器访问单元18控制像素值在主存储器19与联组的存储器 IO之间的传送。为此,存储器访问单元18可被配置成执行多种不同类型 的命令作为指令执行的一部分,包括初始化命令、窗口移动命令、装载命 令和存储命令。
初始化命令向控制电路24定义平面。初始化命令可以具有定义 plane—id的参数;选择对于该平面的像素值将被存储于其中的一组或多组 存储体的参数;定义像素位置的窗口的维数的参数,该像素位置的像素值
将被并发地存储在选择的存储体组中;定义与当前窗口相邻的像素位置的 预取装区域的维数的参数;以及定义将存储对于平面的像素值的存储体中 的开始地址的参数。任选地,初始化命令可以具有定义在选择的存储体组 内要被使用于像素位置的不同行的子組的参数。任选地,窗口和预取装区 域的维数可以通过参考标准窗口尺寸^^皮定义。
窗口移动命令在被执行时会使得控制电路24改变当前的窗口在图像
中的位置。这牵涉到更新代表在存储体中该窗口的开始地址的平面信息。 此外,可以使用执行触发对于下 一个窗口中像素位置的像素值的预取装, 和/或停顿(stalling),直至当前窗口中对于所有像素位置的像素值被装载 为止。窗口移动命令可以具有定义命令所施加到的plane—id的参数;扫描 模式选择参数;和任选地用于选择所牵涉到的存储体组的选择参数。
装载和存储命令在被执行时会使得对于所选择的平面去访问像素位 置的被寻址块的像素值。这些命令可以具有参数来选择plane—id和坐标, 该plane—id和坐标寻址在命令中牵涉到的块。任选地,也选择所牵涉到的 组。装载或存储命令的执行牵涉到在由所选择的块的地址、用于所选择的 平面的存储体中的开始地址和当前窗口的开始地址所确定的地址处,访问 存储该平面的存储体组。
当指令控制电路16处理指令以对像素块施加操作时,指令控制电路 16把具有选择信息的命令施加到矢量访问单元12,来指示一个块或多个
8块被选择为用于指令的操作数。作为响应,矢量访问单元12并行地提供 被选择的块的像素值到功能单元14。指令控制电路16把操作选择代码施
加到功能单元14,用来控制被施加到像素值的操作。
操作的典型例子是块比较,它可被使用于运动矢量估计作为视频压缩 计算的 一 部分或作为帧内压缩操作。块比较牵涉到在可能来自不同图像的 一对选择的块中像素值的逐个像素的相减。对于这样的操作,在不同块中
对应位置的像素值必须组合地被提供给功能单元14 。
联组的存储器10提供用于多个窗口的像素值的共同存储,使得来自 不同窗口的像素位置块的像素值可以互相混合地被访问。在典型的例子 中,每个窗口包含来自不同图像的像素值,或对于不同的彩色平面是来自 相同的或不同的图像,但替换地,不同的窗口可以包含在不同的窗口位置 处来自相同图像和/或彩色平面的像素值。
图3示意地图示在联组的存储器10中多个窗口的存储的第一实施例 的例子。矩形30象征对于各个窗口的像素值30的存储,每个矩形分散在 一个组中接连的地址上,地址的数目由矩形的高度来象征。当要执行访问 一个或多个块的指令时,指令控制电路16把窗口中块的x,y坐标和 "plane—id,,提供到矢量访问单元12。 plane—id标识被寻址的窗口 。 plane—id 涉及到可以与x,y坐标相组合以便计算像素值在存储体中的地址的平面信 息。该计算取决于对于所述平面的像素值被存储在存储体中的方式。
对于窗口的像素值以本身已知的方式被存储分布在存储体像素上,使 得对于沿窗口中的 一 行的 一 段像素位置的像素值和对于 一 组接连行的像 素值可以从不同的存储体并行地访问。也就是,像素值被存储分布在存储 体中,使得可以属于相同块的像素值不被存储在相同存储体的不同地址 处。这是本身已知的。
在一个实施例中,分布牵涉到使用足够数目的存储体,使得那些间隔 小于块高度的、块的不同行可被存储在不同的存储体中。而且,在所述实 施例中,它牵涉到使用相互不同的存储体来存储那些间隔小于块宽度的、 一行中的不同像素位置的像素值。另外,在一个实施例中,对于相邻的像 素位置的多个像素值任选地可以 一起存储在某一存储体中相同地址处。
初始地,对于在窗口的左上角处的像素位置的像素值被存储在第一存 储体中被保留给某一平面的一系列地址的第一地址处。然而,当窗口移动 时,在存储体中在"新"窗口中的像素位置的像素值接连地替代在"老"窗口中的像素位置的像素值。这具有以下效果在多次移动后,该第一存储体 在被保留给某一平面的一系列地址的第一地址处不再存储对于在当前窗
口的左上角处的位置的像素值,而是替代地存储在窗口内的别的地方的像 素位置的像素值。
在一个实施例中,平面信息指示在存储体中被使用来存储相关联的窗 口中的像素值的该系列地址、所存储的窗口的坐标、和其中存储有窗口的 左上角处的像素值的开始存储体地址。在其中可以使用存储窗口的不同方 式的另一个实施例中,平面信息还包含指示像素值被分布在存储体上的方 式的信息。
图4示意地显示用于访问一组存储体的组访问电路40。当使用多组存 储体时,可以使用多个这种类型的组访问电路,至少对于每个分别的存储 体组一个分别的组访问电路。组访问电路40包括平面信息查找存储器42、 地址转换电路44、和充当路由电路的数据纵横交换机(crossbar switch) 46。
对于平面信息查找存储器存在有几种替换实施方案。在一个实施例 中,平面信息查找存储器42包括多组寄存器,每组用于各自的planejd, 不同的寄存器控制不同的平面属性。作为替换例,平面信息查找存储器42 可包括存储器矩阵,具有包含用于控制平面属性的数据的不同存储单元。 作为另一个替换例,由指令寻址的寄存器堆中的通用寄存器可被使用来存 储和检索平面信息。在这个替换例中,平面信息的检索作为常规的寄存器 访问被执行。
所述电路具有被耦合到平面信息查找存储器42的plane—id选择输入 41。平面信息查找存储器42具有被耦合到地址转换电路44和数据纵横交 换机46的控制输入的输出。地址转换电路44被耦合到用于接收块坐标信 息的输入43。地址转换电路44具有地址输出44a,其被耦合到不同的存 储体(未示出)。数据纵横交换机46具有被耦合到存储体(未示出)的数据输 出的输入和用于把像素值并行地提供到功能单元(未示出)的输出45。虽然 作为举例显示了仅仅具有数据输出45的实施例,但应当意识到,替换地, 可以提供数据输入或数据输入/输出,电路被耦合到存储体的数据输入或数 据输入/输出。
工作时,指令控制电路16把plane—id和块坐标提供到组访问电路40。 作为应答,组访问电路40使用planejd来从平面信息查找存储器42检索
10平面信息。地址转换电路44使用检索的平面信息和块坐标来计算用于访
问存储体(未示出)的地址。数据纵横交换机46使用检索的平面信息和任选 地块坐标来控制在存储体(未示出)的数据连接与到功能单元(未示出)的数 据连接之间的连接。
平面信息查找存储器42具有存储器空间,用于并发地存储对于多个 plane jd值的平面信息,用于在相同存储体组中的不同窗口 (例如,用于不 同的窗口 30)。平面信息查找存储器42为由所提供的plane—id值选择的平 面提供平面信息。
在第一实施例中,组访问电路40支持在某一时间从不同存储体的、 对于在窗口的仅仅一行中的像素位置分段的像素值的并行访问,即对Nxl 尺寸的块的访问,N是块宽度。用于这个目的的地址计算本身是已知的。 作为供参考的例子,在这个实施例中,地址转换电路44可以从 AO+x/K+w'*y mod L计算存储该块的开始点(例如,左上角)的像素值的存 储体的索引。这里AO是存储当前窗口的第 一像素值的存储体的索引(正如 在平面信息中定义的),以及x和y形成块的开始点的地址(相对于窗口的 开始的坐标),K是被存储在每个存储体中的位置的数目,w'是在窗口的接 连行的开始存储体之间的间隔(正如在平面信息中定义的)以及L是被使用 于窗口的存储体的数目(正如在平面信息中定义的)。
存储开始点的像素值的存储体的被计算的索引被使用来控制数据纵 横交换机,以便把来自具有该索引的存储体的像素值路由到其中应当提供 对于开始点的像素值的端口 54的一部分。
此外,地址转换电路44可以计算存储体中存储该块中的像素值的地 址。地址转换电路44可以例如从B0 (其中存储有窗口左上角的像素值的 地址,正如由平面信息规定的)力。上(x/K+w"y-AO)/L的整数部分,计算开 始点的地址。地址转换电路44可以计算这个地址加上在具有比初始存储 体更低的索引的那些存储体中的一个像素值。所计算的地址被使用来寻址 在存储体中的存储单元。
在第二个更复杂的实施例中,组访问电路40可被配置成支持从不同 存储体的、对于在多个相邻行中多个分段中的像素位置的像素值的访问, 即对NxM尺寸的块的访问,块宽度N和块高度M大于一个像素位置。正 如将意识到的。这牵涉到由地址转换电路44对于块中的不同行进行的类 似的地址计算和在不同的存储体上对于在相同列不同行中的像素位置的
ii像素值的分布存储。
在另一个实施例中,块的尺寸和/或形状是动态地可选择的。因此,例 如,可以选择NxM块,其中整数N和M对于不同的指令可以取多个不同
的值,N和M例如可以在指令中或在平面信息中被指明。在这个实施例的 一个例子中,地址转换电路44接收有关所选择的N和M值的信息,并使 用这个信息来计算必要的存储体。
指令控制电路16具有用于选择多个块的输出。多个组访问电路40被 提供以便能够并行处理来自所有输出的选择。在一个实施例中,组访问电 路40被提供用于一组存储体和指令控制电路16的输出的相应组合。因此, 当处理器执行具有用于选择操作数块的多个字段的指令时,每个字段可以 与预定的组访问电路40相关联。在指令中该字段将块例如定义为文字的 planejd和块坐标,或通过表明包含plane—id和块坐标的寄存器的选择值 来定义,或被定义为文字数据和寄存器选择的组合,例如在指令中的文字 的plane—id和在表明包含块坐标的寄存器的字段中的选择值的组合。
在这个实施例中,从指令的每个字段得到的plane—id和块坐标被提供 到与字段相关联的组访问电路40。来自组访问电^各40的输出45的数据被 传送到功能单元,该功能单元执行指令中被选择的操作,以该字段作为操 作数。当所述字段是用于选择操作的结果的字段时,使用输入来代替输出 45,以及数据从执行操作的功能单元被传送。
图5示意地显示矢量访问单元的实施例,它提供指令字段与存储体组 的更灵活的关联。矢量访问单元包括平面关联电路50、用作为另一个路由 电路的操作数纵横交换机52、和多个组访问电路40。所述单元具有多个 端口54,具有被耦合到指令控制电路(未示出)的控制输入,该指令控制电 路把每个端口 54与要执行的指令中的各自的预定字段相关联。端口 54还 具有被耦合到功能单元(未示出)的数据输出和/或输入,该功能单元使用或 产生由字段选择的数据。虽然显示了四个端口 54,但应当意识到,可以使 用更多或更少数目的端口。
操作数纵横交换机52被耦合在组访问电路40与端口 54之间,并充 当路由电路,取决于从端口 54提供的planejd,把平面和块选择从每个端 口 54路由到任何的组访问电路40。端口 54的plane—id连接被耦合到平面 关联电路50,它具有被耦合到操作数纵横交换机52的输入的输出。平面 关联电路50可被看作为平面信息查找存储器的共享的部分,但为了清晰
12起见,它们;故分开地显示。
平面关联电路50控制在组访问电路40与多个端口 54之间的交叉耦 合,把各个端口耦合到用于存储由plane—id标识的平面的存储体组的组访 问电路40。在一个实施例中,平面关联电路50存储与每个分别的plane—id 值相关联的组访问电^各40的标识,响应于所^接收的plane—id值而4企索这 些标识,并使得操作数纵横交换机52把每个端口 54耦合到由端口 54的 planeJd输入所标识的组访问电路40。操作数纵横交换机52把plane—id 和块坐标从端口 54传递到所选择的组访问电路40。操作数纵横交换机52 从选择的组访问电路40传回数据,或把数据传递到组访问电路40。
优选地,操作数纵横交换机52提供可选择的路由路径,这样,指令 的任何操作数选择字段被路由到任何组访问电路40。因此,每个操作数选 择字段可以寻址任何的存储体组。任选地,所有的组访问电路40的数据 纵横交换机46也被配置成与由操作数纵横交换机52进行的路由相一致 地、在任何的存储体组与任何端口 54之间路由数据。替换地,操作数纵 横交换机52可包括另外的数据纵横交换机,以提供这种程度的路由。结 果,并不需要存储相同像素值的拷贝来供不同的端口使用。
替换地,操作数纵横交换机52可以提供有限的可变交叉耦合,允许 端口耦合到存储体组的重叠的组合,而不允许把所有的端口耦合到所有的 组。这允许了存储体的某种程度的共享,在端口之间不共享其它存储体(或 至少在少于所有的端口之间共享那些存储体)。这样,如果事先知道某些存 储体组不需要被共享,则可以减小电路开销。
原理上,平面信息查找存储器可以与每个端口 54相关联,在这种情 形下,操作数纵横交换机被配置成把平面信息路由到相关的组访问电路 40。在另一个实施例中,仅仅路由plane—id,平面信息查找存储器是与组 访问电路相关联的,这里它是通过被路由的plane—id来寻址的。
虽然显示了其中组访问电路40与存储体组相关联以使得块地址必须 在plane—id或平面信息的控制下从端口 54被路由到组访问电路40 的实施例,但应当意识到,替换地,组访问电路40可以与端口 54相关联, 以使得存储体寻址将必须被路由。在这个实施例中,存储体选择可以在路 由之前或之后,即,相对于操作数纵横交换机52而言是在存储体一侧或 是在端口 54—侧被实施。
图6图示在其中窗口 60,62,64,66可被存储分布在可适配的多个存储
13体组上的一个实施例中联组的存储器10的使用。在该例子中, 一个窗口
60的像素值被存储分布在所有的组上。另一个窗口 62的像素值被存储分 布在两个组上。另外的窗口 64, 66的像素值被存储在各自的组中。应当 意识到,图上仅仅给出存储的一个例子。实际上,可以使用窗口的存储的 其它组合。对于每个平面,可以使用存储体组的选择的组合,以及在选择 的组中的存储体中的 一 系列或多系列地址。例如,可以选择使用 一个组的 平面、使用两个组的平面、和使用四个组的平面。更多组的使用允许对于 选择的组的更大的并4亍性。
这种形式的存储的 一个优点在于,它支持使用不同尺寸的块作为操作 数。例如,如果在一个组中存储窗口 64的像素值支持对4x4像素位置块 的并行访问,则在四个组中存储窗口 60的像素值支持对8x8像素位置块 的并行访问。
在一个实施例中,矢量访问单元被配置成支持图6所示的存储类型。 为此,可以使用具有图5所示的结构的电路,其中操作数纵横交换机52 被构建成当对于单个端口 54的plane—id的平面信息指示多个组被使用 于 一 个平面时,把块坐标与plane一id(或平面信息)从该单个端口传递到多个 组访问电路40,以及在该多个组与该单个端口和/或与该单个端口一起4皮 使用来访问块的一组端口之间传递像素值。
在数据一侧,端口 54可被解释为支持可变数目的像素值的输入和/或 输出,当对于单个端口 54的plane—id的平面信息指示多个组被使用于所 指示的平面时,来自多个组访问电路40的像素值被提供到该单个端口 54。 替换地,分开的路由控制一方面可被使用于数据,另一方面可被使用于 plane—id和块坐标。因此,例如,操作数纵横交换机52可被配置成当对于 单个端口 54的plane—id的平面信息指示多个组被使用于所指示的平面时, 把由该单个端口 54寻址的像素值路由到包括单个端口 54和一个或多个逻 辑相邻的端口 54的一组端口 。
在替换实施例中,可以支持一种模式,其中被提供到功能单元的像素 值的数目不取决于^f皮使用的组的数目。在这个实施例中,可以在组访问电 路40与操作数纵横交换机52之间提供附加像素值选择电路(未示出)来从 由多个组访问电路提供的像素值中选择像素值,以提供到端口。在这个实 施例中,像素值选择电路在例如经由平面相关联电路50、由相关端口 54 处的plane—id选择的平面信息的控制下执行选择。在一个实施例中,存储器访问单元18控制像素值的逐步替代,以实 施移位窗口。因此,像素值在主存储器与存储体之间被复制,以使得移位
的窗口的像素值在存储体中是可访问的。这具有优点存储体的尺寸可保 持为相对较小。然而,替换地,大的存储体可被使用,其可以存储完全的 平面。在这种情形下,不需要使用主存储器以及存储体与主存储器之间的 复制。
存储器访问单元18按照平面信息的拷贝计算对于不同平面的像素位 置的主存储器地址和存储体地址,以及在计算的位置处读出和写入像素 值。典型地,由存储器访问单元18执行的计算量比由功能单元执行的计 算量小得多,因为窗口每次仅仅在用功能单元执行多个指令后移动。因此, 存储器访问单元18典型地不需要与功能单元相同的大量并行访问。在一 个实施例中,存储器访问单元18可被实施为编程的处理器,它被编程来 按照平面信息的拷贝计算对于不同平面的像素位置的主存储器地址和存 储体地址,以及在计算的位置处读出和写入像素值。在另一个实施例中, 可以使用为了执行逐步替代而设计的电路。
窗口在水平方向上向右移位牵涉到用在窗口右面的列的像素值替换 在窗口左面的列的像素值。在例如数据从主存储器19传送到联组的存储 器IO的情形下,存储器访问单元18用在窗口右面的列中像素位置的像素 值盖写在存储体中的、存储在窗口左面的列中像素位置的像素值的存储单 元。正如将会理解的,这意味着,存储当前存储的窗口的左上角像素位置 的像素值的存储单元在进行期间逐步改变。窗口在水平方向上向左移位可 以以类似的方式#皮实施。
在一个实施例中,存储器访问单元18在预取装的基础上在后台运行, 而功能单元14处理施加到当前的窗口位置的指令。为此,附加空间可以 在存储体中被保留,其中在当前窗口外面的位置的像素值被在接下来的移 动中将进入窗口的位置的像素值替代。对存储体的交叉访问和/或多端口访 问可被使用于这样的后台操作。这允许替代窗口外面的位置的像素值,而 同时全部窗口保持为对于并行访问是可用的。
因此,例如,如果NxM窗口以一次S个像素位置的步阶逐步移动到 右面,则对于至少(N+S)xM像素位置区域的像素值被存储。初始地,最左 面的N个像素位置规定窗口 。对于这些像素位置的像素值被保持存储在存 储体中,用于并行访问。同时,存储器访问单元18把右面接着的S个像素位置的随后的像素值装载到存储体中。在窗口向右移动S个像素位置后, 存储窗口左面的S个像素位置的像素值的存储单元变为可利用,然后存储 器访问单元18把窗口右面的接着的S个像素位置的随后的像素值装载到 存储体中的这些位置,以此类推。在作必要的修正后,类似的方法可被使 用来4巴窗口向左移动。
此外,可以支持窗口在垂直方向上向上或向下移动,牵涉到用窗口右
面的列的像素值替代窗口左面的列的像素值。类似地,如果窗口以s个像
素位置的步阶向上或向下移动,则用于Nx(M+S)像素位置的存储器空间可 以被保留。动态地可选择的运动方向甚至可以通过保留用于(N+S)x(M+S) 像素位置的存储器空间和预装载对于窗口周围的L形边缘的像素值而被提 供。类似的方法也可以被使用于输出像素值。例如,在输出窗口以S像素 位置的步阶向右移动的情形下,存储器访问单元18把当前窗口左面的S 个像素位置的像素值写回到主存储器,这样产生空间来用于在下一次移动 后窗口右面的S个像素位置。
替换地,存储器访问单元18可以用窗口底部或顶部的行的像素位置 的像素值来盖写在存储体中、存储对于在窗口顶部或底部的行的像素位置 的像素值的存储单元,然而,在这种情形下,使用功能单元来进行像素访 问可被避免或暂停,而同时像素值被更新。
当被用信号通知当前窗口的处理已结束时,如果必要的话,存储器访 问单元18完成下一个窗口的预取装,并且更新对于该窗口的平面信息。 正如将会意识到的,在窗口具有由功能单元14产生的像素值的情形下, 存储器访问单元18可以执行对主存储器的写回,可能也是在后台对于处 在当前窗口外面的像素位置执行。存储器访问单元18可以对由不同 plane—id标识的多个窗口执行预取装和/或写回。
在一个实施例中,用于不同窗口的平面信息在程序控制下动态地生 成。替换地,可以使用在整个程序执行过程中保持相同的预定义的平面信 息。在动态定义的情形下,平面的定义可以牵涉到把用于plane—id以标识 对于该plane_id的一系列地址的数据写入到查找存储器42,加上窗口的坐 标和指向对于该plane—k1的窗口的第一像素位置的像素值位置的指针的初 始化。此外,如果可以选择窗口的尺寸,则规定尺寸的信息被写入用于该 plane一id。信息被写入到查找存储器42,用于其中存储该窗口的该组的组 访问电路。在其中不同的组可以从相同端口 54^皮寻址的实施例中,信息
16也被写入到平面关联电路50,用来把plane—id与其中存储平面的像素的组 相关联。
在其中平面的像素值可被存储分布在多个组上的实施例中,平面的定 义牵涉到把数据存储在每个组访问电路40,以便在组中标识对于plane一id 的 一 系列地址,加上窗口的坐标和指向对于该plane Jd的窗口的第 一像素 位置的像素值位置的指针的初始化。在这个实施例中,信息也被写入到平 面关联电路50,用来把planejd与其中存储平面的像素的多个组相关联。 正如将会意识到的,这使能在工作期间对于不同种类的窗口再利用联组的 存储器。
图7显示指令处理的流程图。在第一步骤71,接收和译码指令。在第 二步骤72,从指令的操作数计算像素位置偏移。在任选的第三步骤73, 如果在存储体中没有足够的数据来完成指令,则指令处理被延时(如果电路 被配置成保证在指令的执行开始之前有足够的数据是可用的,则这个步骤 是不需要的)。另外任选地,如果必要的话,执行访问仲裁,以防止由于同 时访问相同数据而导致的沖突。如果与另一个访问有沖突,则可以例如通 过延时另一个访问或延时指令的执行而解决沖突。在第四步骤74,来自指 令的plane一id被使用来检索平面信息。在第五步骤75,平面信息被使用来 计算在存储体中需要为该指令而被访问的地址。在第六步骤76,访问存储 体。在第七步骤77,对来自存储体的不同行的像素位置的数据进行重新排 序。在第八步骤78,对来自存储体的像素位置的行内不同位置的数据进行 重新排序。本领域技术人员将意识到,对于不同的指令,多个不同的步骤 可以以流水线方式4丸行。
重新排序步骤本身是已知的,所以这里不作详细说明。概略地,块的 不同行的像素值被存储在存储体中的不同地址(或接连的地址组)和被存储 在不同的存储体。由于数据的逐步替代,取决于替代进行了多远,块中最 顶部的行可被存储在这些(组)地址的任一个和任一个存储体,随后的行 被存储在随后的地址或存储体,循环地滚动(roll around)。行重新排序把 来自那些包含在块顶部处的像素位置的像素值的存储体的像素值路由到 必须接收来自块顶部的像素值的数据端口的部分等。像素重新排序把来自 那些包含块最左面像素位置的像素值的存储体的像素值路由到必须接收 来自块左面的像素值的数据端口的部分等等。
存储体的至少一部分可被共享,诸如,举例而言被用于可以从指令执行电路的不同端口被寻址的窗口的那一部分。
应当指出,上述的实施例是说明而不是限制本发明,本领域技术人员 将能够设计许多替换实施例而不脱离所附权利要求的范围。在权利要求 中,被放置在括号之间的任何参考标号不应当看作为限制权利要求。单词
单元前面的单词"一个"不排除多个这样的单元的存在。本发明和在其中使 用的电路可以藉助于包括几个不同单元的硬件,和/或藉助于适当地编程的 处理器被实施。在枚举单元的设备权利要求中,这些单元中的几个单元可 以由同 一个硬件项目体现。单纯是某些措施在互相不同的从属权利要求中 被阐述的事实并不表示这些措施的组合不能被使用来获益。
权利要求
1.一种数据处理电路,包括指令执行电路(14),其具有块数据端口,和块寻址输出,用于为该块数据端口中至少一个块数据端口的各自组的每个,输出由所执行的指令规定的平面的和在所述平面中位置块的选择的指示;多个存储体(26),具有地址输入和并行存储器访问端口;多个转换电路(22),被耦合在块寻址输出和地址输入之间,每个转换电路用来把平面和位置块的选择的指示之一转换成存储体(26)的选择和在所选择的存储体(26)中的地址;以及路由电路(46),被耦合在并行存储器访问端口与块数据端口之间,用来在所选择的存储体(26)中所选择的地址与各个组的块数据端口之间并行路由对于每个块的多个数据值。
2. 按照权利要求1的数据处理电路,其中路由电路(46)还被配置成在 所执行的指令的控制下,在任何各自组中的块数据端口与任何存储体(26) 之间,或从存储体(26)被编组到的多个组(20)中的任何组,选择性地路由数 据值。
3. 按照权利要求1的数据处理电路,其中平面的选择的指示以以下形 式被编码,即该形式能够规定为该平面存储数据值的有依赖于指示的数 量的存储体(26),该数据处理电路包括另外的路由电路(52),该另外的路由 电路(52)被配置成取决于由该指示所规定的存储体(26)的数量,把该指示中 的至少 一个指示同时路由到 一个以上的转换电路(22)。
4. 按照权利要求1的数据处理电路,还包括平面信息查找存储器(42), 用于并发地存储各个平面的平面信息,每个平面的平面信息包括指示哪些 存储体被使用来存储对于该平面的数据值的信息,该平面信息查找存储器 (42)被耦合到转换电路,用于提供由所执行的指令选择的平面信息,供转 换时使用。
5. 按照权利要求1的数据处理电路,其中每个转换电路(22)被耦合到 存储体(26)的各自组(20),用于控制在各个组(20)中的存储体(26)的寻址, 该数据处理电路包括另外的路由电路(52),该另外的路由电路被耦合在指 令执行电路(l4)的块寻址输出与转换电路(22)之间,被配置成在由所执行的 指令为各自块寻址输出选择的平面的控制下把位置块的选择的指示路由 到转换电路(22)中各自的转换电路(22)。
6. 按照权利要求5的数据处理电路,其中该另外的路由电路(52)被配 置成如果由块寻址输出的单个块寻址输出选择的平面的平面信息指明该 平面的数据值被存储分布在耦合到一个以上的转换电路(22)的存储体(26) 的组(20),则响应于那个平面信息,在为该块寻址输出的单个块寻址输出 选择的平面的控制下,把位置块的选择的指示至少从块寻址输出的单个块 寻址输出路由到该 一 个以上的转换电路(2 2)。
7. 按照权利要求1的数据处理电路,其中在指令执行电路的块寻址输 出处提供的位置块的指示每个都包括位置块的尺寸和/或形状的指示,转换 电路(22)被配置成取决于所指示的尺寸和/或形状执行所述转换。
8. —种执行用于处理在位置阵列中位置块的数据值的指令的方法,该 方法包才舌在指令中,提供多个指示,每个有平面的和在所述平面中的位置块的 选择;并行提供对于所指示的平面的平面信息,对于每个平面的平面信息包 括从联组的存储器电路(10)的、用于数据值的存储的存储体(26)的选择,通过使用对于所指示的平面的平面信息,把位置块的选择转换成所选 择的存储体(26)的寻址;以及在被寻址的存储体(26)与指令处理器(14)的每个至少一个数据端口的 组之间路由数据值,以便装载和/或存储对于该位置块的数据值作为指令的 ^执行的一部分。
9. 如在权利要求8中要求的方法,其中所述路由提供用于把来自任何 存储体(26)的数据值可选择地路由到任何的数据端口组。
10. 如在权利要求8中要求的方法,还包括提供为该平面存储数据值的多个存储体(26)的定义,存储体(26)的数 量取决于选择的平面;以及对于该存储体中的各个存储体,依赖于平面地多次并行转换位置块的 选择的指示中的至少一个。
全文摘要
数据处理电路包括指令执行电路(14)和多个存储体。指令执行电路(14)能够并行处理数据值块(例如,对于二维像素块的像素值)。数据值被存储(优选地超高速缓存)在存储体中且被并行地提供。多个转换电路(22)被耦合在指令执行电路的块寻址输出和存储体的地址输入之间。转换电路提供并行地从不同的存储体寻址一个以上的块的可能性。数据被路由电路从选择的存储体路由到执行电路。在一个实施例中,每个转换电路能够寻址存储体中的所有的存储器。在另一个实施例中,转换电路支持把像素图像的数据分布在存储体上的多种方式,例如对在小的块中被访问的数据仅仅使用几个存储体,而对于以较高的平行性被访问的数据使用更多的存储体。
文档编号G06T1/60GK101558649SQ200780035874
公开日2009年10月14日 申请日期2007年9月21日 优先权日2006年9月26日
发明者C·A·艾巴平托, R·塞图拉曼 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1