针对块操作的片上存储器寻址制造技术

技术编号:2952300 阅读:248 留言:0更新日期:2012-04-11 18:40
一种用值序列来循环访问多个存储器地址的方法,所述方法包括:确定多个值,所述多个值中值的数量为m,每个值由预定数量的n个位表示。所述方法还包括:在包括按有效性排序的可寻址的多个位的处理器的寄存器(20)中识别m乘n个连续位的序列,从而定义m个单元(21、22、23、24)的集,每个单元中有n个连续位。所述方法包括:以表示所述多个值中不同值的位来初始化所述单元集中的每个单元;以及以等于n的整数倍的位数来循环移位寄存器(20)的所识别的位。所述方法还包括:读取单元以获得由该单元表示的值。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种用于循环访问多个存储器地址的方法。 本专利技术还涉及一种计算机程序产品以及一种用于循环使用值序列的 系统。
技术介绍
一般而言数字信号处理以及特别而言图像处理常常包括执行块类型操作。块类型操作可包括执行使用诸如3x3像素或5x5像素的块之类的 像素块的计算。可以通过在快速存储器的存储缓冲器中分别加载多个行, 然后对加载的缓冲器中包括的块执行相关计算,来有效地执行上述计算, 其中行的数量与块的大小相对应。例如,在3x3块的情况下,可以将像素 的三个连续的行加载进快速存储器中。随后,对由此可用的块进行计算, 同时将第四连续的行加载进快速存储器中。在完成了对前三个连续行的计 算之后,丢弃这些行中的第一行。剩余的两个像素行与第四行结合再次形 成用于执行3x3块的块处理的三个行。在快速存储器中对像素行进行寻址 在计算成本上相对较高。保持指向与像素的连续行相对应的存储缓冲器的 开头的四个指针,且在处理与前三个行相对应的块之后以及在将像素的第 四行加载进存储器中之后,处理与第二至第四行相对应的块并将第五个行 加载进最初包含第一行的像素的存储缓冲器中。重复该处理,直到整个图 像都被处理。保持其中包含指向缓冲器的指针的索引表,并保持索引,所 述索引用于指示哪个行会在哪个缓冲器中处理以及下一行会被加载进哪 个缓冲器中。在处理了块并加载了下一行之后,以表中的指针数即缓冲器 数为模对索引递增,以便以循环的方式有差别地使用每个指针。由此,如 果指针个数为四,则需要模四运算。然而,模计算是计算上成本较高的运 算。在序列号为5,463,749的美国专利中,公开了简化的循环缓冲器。所 述缓冲器具有整数个存储器位置M,关于所述M个存储器位置,需要在 单次操作中访问多个连续的存储器位置STEP,并令预定的START位置定 义待访问的初始存储器位置。M被限制为STEP的整数倍,且START的k 个最低有效位为O,其中k是满足关系2、M-ISTEPI的最小整数。结果与 传统循环缓冲器中应用的一般模算法相同,但不需要实现完整模函数的成 本。用于产生连续地址的装置包括经由多路复用器耦合到地址寄存器的加 法器和k位比较器,以便根据k位比较器的输出,将加法器的k个最低有 效位或M- ISTEPI或0馈入到地址寄存器的k个最低有效位。这是对循环 缓冲器进行寻址的相对复杂的方式。
技术实现思路
本专利技术的目的是提供循环访问多个存储器地址的更有效方式。 通过提供使用数量为m的多个值的序列来循环访问多个存储器地址的方法来实现该目的,其中数量为m的多个值中每个值都由预定数量的n位来表示,所述方法包括- 以位序列来初始化处理器(51)的寄存器(58)的多个位,所述位序 列包括数量为m的各个值的m位表示的拼接;以及- 反复地以等于n的整数倍的位数来循环移动寄存器的多个位; 读取寄存器中与m位表示之一相对应的n个预定位,以获得数 量为m的各个值之一;以及基于所获得的值来识别存储器地址。 所述方法可包括执行以下步骤在寄存器的多个位的连续循环移动之 间,多次读取寄存器的n个预定位并识别存储器地址,每一次读取n个不 同的预定位。下文中,单元应指示用于表示m个值之一的寄存器的n个位 的序列。可以读取多个单元,紧跟着进行循环移动,在所述循环移动之后 再次读取多个单元。整数倍数确定了所述方法在所述多个值中步进有多 快。如果整数倍数等于1,则值一个接一个地步进。如果整数倍数大于或 等于2,则一些值可被跳过。如果整数倍数为负,则步进的顺序与正整数 倍数相反。如果整数倍数为0,则每次都访问相同的值。本专利技术的实施例进一步包括- 识别表式基地址;以及- 在所识别的存储器地址处读取或写入存储器;其中,识别存储器地址的所述步骤也是根据表式基地址来执行的。 该实施例是在存储于不同存储器地址处的多个值中进行循环的特别 实用的方式。当可由多于n个位来表示所述值时,这种方式是有利的。 本专利技术的实施例进一步包括- 在所识别的存储器地址处读取指针值;- 在基于指针值的地址处读取或写入存储器。在这种方式下,可以在指针中循环。此外,还可以在与指针相关联的 数据块中循环。在本专利技术的实施例中,多次执行以下步骤,从而在两次连续执行循环 移动多个位的步骤之间得到不同的各个读取指针值 获得由寄存器的n个预定位表示的值, 识别存储器地址, 读取指针值,以及 读取或写入存储器。该实施例使得以循环方式将不同处理步骤应用到不同的缓冲器成为 可能。该实施例还允许在对第一缓冲器中的数据执行处理步骤的同时用新 数据加载第二缓冲器。在另一个实施例中,针对所有m个值,执行获得由寄存器的n个预定 位表示的值的步骤,所有m个值中每个值都分别由n个位表示。如果处理算法包括以不同的方式同时对多个缓冲器进行处理,则有利 地使用这个方面,每个缓冲器的作用在处理步骤之间以重复方式改变。在另一个实施例中,各个读取指针值与相应的存储缓冲器相关联,并 且所述方法包括处理存储在多个相应的存储缓冲器中的数据。如果存储缓冲器是快速存储器或高速缓冲存储器的一部分,则可以更 有效地执行所述处理。特别地,如果太大而不能在快速存储器中完整加载 的数据集需要处理,则所述数据集的一部分可在存储缓冲器中加载以进行 处理。在另一个实施例中,处理数据的步骤包括对至少二维的图像执行块 类型操作,每个存储缓冲器都用图像的行来加载,所加载的行共同包括图 像的块状子集,且通过从存储缓冲器中读取对应的像素值来对图像的像素 块执行块类型操作。这允许高效地循环使用缓冲器。在本专利技术的另一个实施例中,计算机程序产品包括用于使处理器执行 权利要求1的方法的指令。本专利技术还涉及权利要求9中所限定的系统。附图说明本专利技术的这些和其他方面将会在下文中附图描述中说明,其中图1是本专利技术如何应用于快过滤操作的图2是数据访问模式的图3是对存储器地址进行索引的方式的图4是在索引中进行循环的图5是在索引中进行循环的另一幅图6是本专利技术实施例的系统图。具体实施例方式图1示出了本专利技术的典型示例应用。本专利技术的其他应用对本领域技术 人员而言是显而易见的。在该示例中,将块过滤器应用于图像。该示例的 过滤器具有3x3的核(kernel) 10。其他的核(也称为覆盖区(footprint)) 大小也是可能的,例如3x10核或5x20过滤器,或任何MxN核。过滤操 作的步骤可包括将像素值与核元素相乘以及将乘法所得的值相加。结果 被存储为所得到的过滤后图像中的像素12。用过滤器核来处理图像的有效方式是通过在快速存储器中加载三个连续的行并反复执行以下步骤来开 始的- 利用在快速存储器中加载的三个行来执行所需操作,- 在快速存储器中加载下一连续的行,- 释放存有第一连续行的快速存储器。此处,执行所需操作以及加载下一行的步骤可并行执行。为了使所述 方法更有效,不对保存有第一连续行的快速存储器进行释放,而是保留该 快速存储器以在快速存储器中加载下一连续行。这意味着在快速存储器中 分配四个存储缓冲器,每个缓冲器都能够保存图像的单个行的像素值。每 个行保存在缓冲器中以用于三次迭代处理,在所述三次迭代处理之后,用 图像的新的行对缓冲器进行盖写。每个缓冲器在迭代中可具有四种不同的 角色与核的第一行相乘的角色、与核的第二行相乘的角色、本文档来自技高网
...

【技术保护点】
一种使用数量为m的多个值的序列来循环访问多个存储器地址的方法,其中,数量为m的多个值中每个值都由预定数量的n位来表示,所述方法包括 -以位序列来初始化处理器(51)的寄存器(58)的多个位,所述位序列包括数量为m的各个值的m位表示的拼接;以及 -反复地 以等于n的整数倍的位数来循环移动寄存器的多个位; 读取寄存器中与m位表示之一相对应的n个预定位,以获得数量为m的各个值之一;以及 基于所获得的值来识别存储器地址。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:汤姆森G乔治毕尤托马斯兰杰斯乔帕拉克里斯兰
申请(专利权)人:NXP股份有限公司
类型:发明
国别省市:NL[荷兰]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1