改进的可置换地址的处理器及方法

文档序号:6454680阅读:185来源:国知局
专利名称:改进的可置换地址的处理器及方法
技术领域
本发明涉及一种在存储装置和运算单元之间实现的可置换地址 模式处理器及方法。
背景技术
早先的计算机或处理器仅仅具有一个计算单元,因此,例如在一 个像素具有八位(字节)时每次进行一个像素的图像处理。随着图像 尺寸的不断增长,出现了对于高性能高密度流水线的向量处理处理器 的需要。向量处理器是可以在一个指令中在整个向量上操作的处理
器。单指令多数据(SIMD)是面向向量的处理的另一形式,面向向 量的处理可以在像素级应用并行。该方法适合于不依赖于前一操作结 果的图像操作。由于SIMD处理器可以在不同的数据组上并行解决类 似的问题,因此它可以被表征为比单个计算单元处理器快n倍,这里n 是SIMD中的计算单元的数目。对于SIMD操作,存储器读取必须每个 周期将数据给到每个计算单元或利用n速度的优点。典型地,例如, 在32位(四个字节)机器中,在来自存储器的两条总线上载入数据到 两个32位(四个字节)寄存器中的行中,该字节处于四个相邻的列中, 每个字节具有与其相关的计算单元。然后,在一个周期中,单个指令
可以指示所有计算单元以其自然(native)模式对寄存器字节中的数据 逐字节地执行相同的操作,并在存储器中存储该32位结果。在2D图像 处理应用中,例如,其对于垂直边缘过滤具有很好的效果。但是对于 在列中存储数据的水平边缘过滤来说,在可以开始操作之前,必须加 载所有的寄存器,以及在完成之后,不得不每次一个字节地存储结果。 这是费时且低效的,以及随着计算单元数码的增加而变得更加严重。 在适应"小字节序,,(little endian )和"大字节序,,(big endian )数据类型时,SIMD或向量处理机器也遇到问题。"小字节序"和"大字 节序,,涉及的是多字节类型中哪些字节是最高有效位,并描述在处理 器存储器中存储字节序列的顺序。在小字节序的系统中,在最低的存 储器地址(第一),存储该序列中的最低有效字节。"大字节序"相反 它在最低存储器地址存储中存储该序列中的最有效字节。当前,系统 对从用户界面到操作系统到加密到低层信号处理的所有层级提供服 务。这些导致"混合字节序,,应用,因为通常较高层级的用户界面和操 作系统使用"小字节序",而信号处理和加密使用"大字节序"。因此 在处理数据之前,程序员必须提供指令以从一种变换为另一种,或配 置该处理,以利用它给出的数据形式来工作。
SIMD操作中遇到的另 一 问题是,该数据为了算法中的下一个步 骤而实际上已被扩展或调换或置换。在该数据处于由算法中的下一步 骤调用的格式之前,这需要单独的步骤,涉及到流水线停滞。

发明内容
因此,本发明的目的是提供一种具有可置换地址模式的改进的处 理器和方法。
本发明的再一目的是提供具有可置换地址模式的这种改进的处 理器和方法,其提高诸如SIMD的面向向量的处理器的效率。
本发明的再一目的是提供具有可置换地址模式的这种改进的处 理器和方法,在运算单元之外在地址模式中实现置换,由此避免管线 停滞。
本发明的再一目的是提供具有可置换地址模式的这种改进的处 理器和方法,其可以统一数据表现(presentation),由此统一问题的
解决方案,减小编程工作和投放市场的时间。
本发明的再一 目的是提供具有可置换地址模式的这种改进的处 理器和方法,可以统一数据表现,由此统一问题的解决方案,利用更 多算术单元和更快的存储结果。
本发明的再一目的是提供具有可置换地址模式的这种改进的处理器和方法,可以在负载上置换该数据,以其自然的形式有效地利用 算术单元,并随后在存储时置换回其初始形式,使得负载、解决方案 和存储操作更快和更有效。
本发明的再一目的是提供具有可置换地址模式的这种改进的处 理器和方法,容易适合于混合字节序模式。
本发明的再一目的是提供具有可置换地址模式的这种改进的处 理器和方法,能够快速、容易和有效地重新排序计算操作之间的数据。
本发明的再一目的是提供具有可置换地址模式的这种改进的处 理器和方法,为了快速、容易的处理,能够使任意形式的数据重新排
序为机器的自然域(domain)形式,然后如果希望,重新排序回其初 始形式。
本发明源于如下认识,通过从存储装置加载数据字,并在它到达 运算单元之前将它重新排序为与面向向量的运算单元的自然顺序相 容的格式,以及对该运算单元中的数据字进行向量处理,处理器和方 法可以处理大量不同的数据格式。参见美国专利号5,961,628, Nguyen 等人的名称为LOAD AND STORE UNIT FOR A VECTOR PROCESSOR,和 VECTOR VS. SUPERSCALAR AND VLIW ARCHITECTURES FOR EMBEDDED MULTIMEDLA BENCHMARKS,作者Christoforos Kozyrakis和David Patterson, 在the Proceedings of the 35th International Symposiumon Microarchitecture, Istanbul, Turkey, November 2002, 11 pages, 在jt匕 通过这些参考文献将其全部引入。
但是,在其他实施例中,该主题发明不必实现所有这些目的,以 及由此权利要求不应该限于能实现这些目的的结构或方法。
本发明的特点在于具有可置换地址;廣式的处理器,包括具有寄存 器堆的运算单元。互连寄存器堆与存储装置的至少一个加栽总线和至 少一个存储总线。以及至少一个总线中的置换电路,用于重新排序在 该寄存器堆和存储装置之间传送的字的数据元。
在优选实施例中,该加载和存储总线可以包括置换电路。可以有两个加载总线,其每一个可以包括置换电路。该置换电路可以包括用 于重新排序在该寄存器堆和存储装置之间传送的字的数据元和/或调 换电路,用于重新排序在该寄存器堆和存储装置之间传送的字的数据 元。该寄存器堆可以包括至少一个寄存器。该映射电路可以包括至少 一个映射寄存器。该映射寄存器可以包括用于每个数据元的字段。该 映射寄存器可以从运算单元加载。该映射寄存器可以用大字节序、小
字节序映射缺省地加载。该数据元可以是字节。
本发明的特点使处理器适应于处理大量不同的数据格式的方法, 包括从存储装置加栽具有字的数据寄存器,在它到达运算单元数据寄 存器堆之前将它重新排序为与面向向量的运算单元的自然顺序相容 的第二格式,以及向量处理所述运算单元中的数据寄存器。
在优选实施例中,该向量处理的结果可以被存储在第二数据寄存 器装置中。该存储结果可以被重新排序为第一格式。该第二存储装置 和第 一存储装置可以被包括在相同的存储器中。


从优选实施例的以下描述和附图,所属领域的技术人员将想到其
他目的、特点和优点,其中
图l是根据本发明具有可置换地址模式的处理器的示意性框图2是图1的处理器的更详细的视图3是根据本发明的大字节序载入映射的示意图4是根据本发明的小字节序载入映射的示意图5是根据本发明的另 一载入映射的示意图6是根据本发明的存储映射的示意图7是根据本发明的调换的示意图8A-C图示了本发明对于图像边缘过滤的应用;
图9是根据本发明的映射电路的更详细示意图10是根据本发明的调换电路的更详细示意图;以及
图ll是根据本发明的方法的流程图。
具体实施例方式
除了下面公开的优选实施例或实施例以外,本发明可以是其他实 施例和能够用多种方式实施或进行。因此,应当理解,本发明不被在 以下描述或图中所示的结构细节和部件布置所限制。如果在此仅仅描 述了一个实施例,那么权利要求不仅限于那个实施例。此外,权利要 求不应被限制性地解读,除非有清楚的和令人信服的证据表明某种排 除、限制或放弃。
图1示出了根据本发明的处理器10,具有外部存储装置、存储器 12。处理器10典型地包括以普通方式工作的运算单元14、数字数据地 址发生器16和序列发生器18。数据地址发生器16是相对于存储器12的 所有加载和存储的控制器,序列发生器18控制指'令的顺序。具有存储 总线20和一个或多个加载总线22和24,其将各种运算单元14和数据地 址发生器16与外部储存器12互连。根据本发明,在一个或多个总线20、 22和24中,布置了置换电路26a、 b、 c。
图2中,运算单元14典型地包括数据寄存器堆30和一个或多个计 算单元32,该计算单元32可以包含,例如,乘法累加器电路36、运算 逻辑单元38和移位器40,结果总线21为所有上述部件提供服务。与现 有技术相同,数据地址发生器16包括指针寄存器42和数据地址发生器 (DAG)寄存器44。序列发生器18包括指令译码电路48和序列发生器 电路50。由置换电路26a例示的每个置换电路26a、 26b和26c可以包括 映射电路54a、 b和调换电路56a、 b中的一个或两个。如相对于映射电 路54a说明的每个相关映射电路与一组寄存器57a相关联,寄存器57a 包括缺省寄存器58a和附加映射寄存器,如映射A寄存器60a和映射B 寄存器62a。每个映射寄存器包含用于大量不同的映射变换的指令。 例如,缺省寄存器58a和58b可以被设为执行大字节序变换。大字节序 变换是这样的变换,其中序列中的最低存储地址字节被载入寄存器的 最高有效字节段中以及最高地址位置中的信息被载入该寄存器的最 低有效字节位置。例如,如图3所示,在存储器12中存储有两个数据字70和72,在 字节的情况下,每个数据字具有被标识为O, 1, 2和3的四个字节数据 元。在字70中,字节O, 1, 2和3分别包含值5, 44, 42和10,而在字 72中,数据序列或字节O, 1, 2, 3包含值66, 67, 68和69。在数据地 址发生器44中有两个指针寄存器,指针寄存器74和76。指针寄存器74 对字70进行寻址,而指针寄存器76对字72进行寻址。根据缺省寄存器 58a中的指令,根据矩阵80,字70将被映射到数据寄存器78,或字70 中的字节0将被映射至数据寄存器78的段0,字70的字节1将被映射到 数据寄存器78的段1,字70的字节2将被映射至数据寄存器78的段2和 字70的字节3将被映射至数据寄存器78的段3。以此方式,最低地址 ——具有值5的字节0,结束在数据寄存器78的最有效字节段和最高存 储地址中,值10的第三字节结束在最低有效字节段——数据寄存器78 的段3中。可以看出,利用相同的大字节序变换,矩阵82中应用的映 射寄存器58b中的指令的应用将具有值66, 67, 68和69的字72的字节0, 1, 2和3分别移动到数据寄存器84中。亦即,具有值66的字72的零字 节处于寄存器84的最高有效字节段以及,字72的最高地址字节3的值 69处于数据寄存器84的最低有效字节段。
在图4中,利用缺省寄存器58a和58b中的默认指令,以类似方式 完成小字节序变换。在该小字节序变换中,在矩阵80和矩阵82的最终 布置中,最低存储地址字节结束在每个数据寄存器78和84的最低有效 字节段。
图3和4分别图示的大字节序和小字节序映射是简单的,但是本发 明的映射不局限于那些,用本发明可以完成任意方式的扩展或混合。 例如,如图5所示,映射寄存器60a可以对逻辑矩阵80a进行编程,从 而在最高有效字节段中放置字70的字节3,在接下来的两个段中放置 字节l,在最低有效字节段中放置字节O,并忽略字节2。类似地,在 字72中,映射寄存器60b可以使得字72的字节l被放入数据寄存器84的 最高有效字节段中,字节O被放入下一段中,字节3被放入下一个段中 以及字节2被放入最低有效字节段中。置换电路可被用于加栽总线22和24中的一个或二者,以及也可以被用于存储总线。
在图6中,数据寄存器92可以将字90传递到存储器12,映射A或 映射B寄存器58c或68c将提供映射矩阵94,该映射矩阵94仅仅简单地 忽略数据寄存器92中的最高有效字节段和下一段的内容,并将数据寄 存器92的最低有效字节段中的值放置在字90的字节位置0和3中,同时 将寄存器92的段2的值放置在字90的字节位置1和2中。尽管从寄存器 和部分存储器或存储装置发生映射,但是调换电路56a, 56b和56c进 行的调换实际上可以从存储装置或存储器到多个寄存器或从多个寄 存器到存储装置。例如,在图7中,指针寄存器74和指针寄存器76对 存储器12中的位置100和102进行寻址。存储器100中的字是四个字节 例如A, B, C和D的32位字,同样,存储器102中的字是具有四个字节 E、 F、 G和H的32位字。被标识为"高调换"101的调换获取存储器字节 A、 B、 C、 D,并将它们载入四个数据寄存器106, 108, 110和112的 第一列104中。指针寄存器76从存储位置102获取四个字节E、 F、 G和 H,并将它们放置在相同的四个数据寄存器106, 108, 110和112的下 一列114中。DAG指针寄存器74和76接下来可以指向存储器12中的存 储位置116和118,以在列120和122中分别放置它们的字节I、 J、 K、 L 以及M、 N、 O、 P。在"低调换,,模式103中,字节A、 B、 C、 D将被放 入列120中,字节E、 F、 G、 H将補j欠入列122中,字节I、 J、 K、 L将 净皮方丈入列104中,和字节N、 M、 O、 P将被放入列114中。
关于图8A、 8B和8C,描述了表现出其显著通用性和益处的本发 明的一个应用。在图8A中,示出了由十六个子块132组成的图像的宏 块130。每个4x4子块包括十六个像素。例如,包含所示的像素值p0-p3 的子块32a,包含四朽"像素134, 136, 138和140。为了去除边缘142的 边缘效应,执行垂直与水平143过滤。由于每一行包含所有相同的数 据,由此可以在用于高速处理的面向向量的机器中进行单指令多数据 操作,因此垂直过滤足够容易。因此,分别通过四个不同的算术单元 152, 154, 156和158,可以在每一列144, 146, 148, 150上同时进行 过滤算法。而当并行处理结束时,例如,在行140中,将出现全部结果,并且将在一个周期中被递交到下一操作寄存器或存储寄存器。通
过机器以用于处理的自然顺序排列该数据的图8A中出现的另一个优 点是,例如, 一旦当两个DAG指针寄存器74和76加载行134和136时, 算术单元152-158就可以工作。
相反,对于水平过滤,在图8B中,在算术单元168, 170, 172, 174可以开始操作之前,所有四行160, 162, 164, 166必须被加载。 此外,当过滤操作结束时,与图8A中容易地读出行140中的像素po的 情况相反,由于列176中的输出p0处于四个不同的寄存器,它们必须 被每次放入一个字节。为了做到这点,必须有附加的编程来处理该数 据的非自然布局。通过使用置换电路,例如,调换电路26a或26b之一, 如图8C所示,可以通过四个算术单元数据寄存器RO、 Rl、 R2和R3的 加载来调换行160, 162, 164, 166中的像素数据,由此使得它目前与 图8A的处理机器的自然域对准。现在,加载进行得更加迅速,运算单 元可以更快的开始工作,以及结果可以每次输出整个字四个字节。
尽管在到目前为止的例子中,通过字节操作的方面解释本发明, 但是这不是本发明的必需限制。其他更大的或更小的数据元可以被使 用,以及典型地可以使用多个字节,在一种应用中,例如,两个字节 或十六位可以是数据元。因此,利用该可置换地址模式,如SIMD的 面向向量的处理的效率被大大提高。由于置换在运算单元之外在地址 模式中发生,因此该置换是特别有效的。它们由此避免了流水线停滞 并且没有干扰算术单元的操作。在加载或存储操作的地址模式过程 中,在DAG16和序列发生器18的控制下在运行中完成该转换或置换。 本发明允许统一的数据表现,因此统一了问题解决方法。这不仅减轻 了编程工作,而且缩短了新设备投放市场的时间。如刚刚说明的,处 理器的自然域中的这些统一的数据表现也使算术单元的使用和存储 变得更快。其容易适应于大字节序、小字节序或混合字节序的操作。 能够将任意形式的数据重新排序为用于快速处理的机器的自然域形 式,如果希望,那么其可以随后被重新排序回到其初始形式,或用于 后续运算操作或在存储器中永久或临时存储使用的某些其他形式。在图9中示出了映射电路54a、 b、 c的一种实施方式, MAPA/MAPB寄存器中的一个,例如60a,被编程。这里再一次,包 括用于每个数据元的字段180, 182, 184和186,所述数据元例如是, 典型地可从运算单元14加载的字节。映射寄存器60a驱动开关188, 190, 192, 194。在操作中,具有寄存器204的四个部分196, 198, 200, 202中的四个字节A、 B、 C和D的32位字被映射到寄存器204a,以便寄 存器部分196a、 198a、 200a、 202a分别接收字节C、 D、 A和B。这通 过将每一字段180, 182, 184, 186中的指令应用到开关188, 190, 192 和194来完成。例如,用于字段180的指令是1告知开关188连接C,这 使能寄存器204的部分200中的字节C的输入1;字段182提供0到开关 190,这促使它从寄存器204的部分202传递字节D到寄存器204a的部分 198a等。调换电路56a、 b、 c的一种实施方式可以包括简单的硬布线 网络210,在图10中,其分别将寄存器212中的字节A、 B、 C、 D的行 连接到寄存器222, 224, 226和228的第一部分214, 216, 218和220。 来自寄存器228的E、 F、 G和H同样通过网络210硬布线连接。
在图ll中示出了根据本发明的方法。开始,240,为向量处理242 加载并重新排序数据,然后对该数据进行向量处理244,随后该数据 被重新排序用于存储246。该数据可以以任意格式进入并将会被重新 格式化为向量处理机器的自然域。在例如SIMD处理的向量处理之后, 如果是其希望的格式或它可以被再次重新排序为初始格式或某些其 他格式,那么该数据可以被原样存储。其可以被存储在初始存储器中 或其它存储装置中,如对于后续处理将很快被使用的运算单元中的寄 存器堆。
尽管在某些图中示出了和在其它部分没有示出本发明的具体特 点,但是这些仅仅是为了方便起见,根据本发明,每一特征可以与任 意或所有其他特点相结合。在此 <吏用的单词"including"、 "comprising"、 "having,,和"with"将,皮广泛地和全面地理解,以及并 不局限于任意物理关联。此外,在该主题应用中公开的任意实施例不 被认为是仅仅可能的实施例。此外,在本专利的专利申请的法律程序中出现的任何修改不是提
出的该申请中任意权利要求元素的放弃所属领域的技术人员不能合 理地期望草拟一个将字面上包含所有可能等价的权利要求,在该修改 的时候,许多等效权利将不可预见,并超出所放弃权利的公平解释(如 果有的话),在该改正下的基本原理可以不超过与许多等效权利相关 的关系,和/或有许多其他原因,本申请人不能预期描述用于修改的任 意权利要求元素的某些无实质替代。
在以下权利要求范围内所属领域的技术人员将容易想到其他实施例。
权利要求
1、一种具有可置换地址模式的处理器,包括包括寄存器堆的运算单元;互连所述寄存器堆与存储装置的至少一条加载总线和至少一条存储总线;以及至少一条所述总线中的置换电路,用于重新排序在所述寄存器堆和存储装置之间传送的字的数据元。
2. 如权利要求1的处理器,其中每个所述加载和存储总线包括所 述置换电路。
3. 如权利要求1的处理器,其中存在两条加载总线,以及其每一 个都包括置换电路。
4. 如权利要求1的处理器,其中所述置换电路包括映射电路,用 于重新排序在所述寄存器堆和存储装置之间传送的字的数据元。
5. 如权利要求1的处理器,其中所述置换电路包括调换电路,所 述调换电路用于重新排序在所述寄存器堆和存储装置之间传送的字 的数据元。
6. 如权利要求4的处理器,其中所述寄存器单元包括至少一个寄存器。
7. 如权利要求5的处理器,其中所述寄存器堆包括至少一个寄存器。
8. 如权利要求4的处理器,其中所述映射电路包括至少一个映射 寄存器。
9. 如权利要求8的处理器,其中所述映射寄存器包括用于每个数 据元的字段。
10. 如权利要求8的处理器,其中能够从所述运算单元加栽所述映 射寄存器。
11. 如权利要求8的处理器,其中至少一个所述映射寄存器是用大 字节序小字节序映射缺省加载的。
12. 如权利要求1的处理器,其中所述数据元是字节。
13. —种使处理器适于处理多种不同数据格式的方法,包括 用来自存储装置的字加载数据寄存器;在该字到达运算单元数据寄存器堆之前,将该字重新排序为与面 向向量的运算单元的自然顺序相容的第二格式;以及 向量处理所述运算单元中的数据寄存器字。
14. 如权利要求13的方法,在第二数据寄存器装置中存储该向量 处理的结果。
15. 如权利要求13的方法,其中该存储结果可以被重新排序为所 述第一格式。
16. 如权利要求13的方法,其中所述第二存储装置和所述第一存 储装置被包括在相同的存储器中。
全文摘要
适应处理器以处理大量不同的数据格式,包括从第一存储装置载入第一格式的数据字;在它到达运算单元之前,将第一格式的数据字重新排序为与运算单元的自然顺序相容的第二格式;以及向量处理运算单元中的数据字。
文档编号G06F15/00GK101432710SQ200780015628
公开日2009年5月13日 申请日期2007年3月1日 优先权日2006年3月6日
发明者C·J·普伦德加斯特, C·M·梅尔, G·M·尤克纳, J·A·卡布罗特斯基, J·A·海登, J·威尔逊, Y·斯坦恩 申请人:阿纳洛格装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1