当前位置: 首页 > 专利查询>ARM有限公司专利>正文

处理数据的装置和方法制造方法及图纸

技术编号:2884423 阅读:195 留言:0更新日期:2012-04-11 18:40
浮点单元配备一个包含32个既可用作向量寄存器又可用作标量寄存器的寄存器的寄存器组。数据处理指令包括至少一个指向含有要在该操作中使用的数据值的寄存器的寄存器指定字段。通过在寄存器字段本身内对某寄存器要按向量寄存器还是按标量寄存器对待进行编码,能增加可用来编码更多操作码或容纳更多寄存器的指令位空间。此外,指令的一个寄存器的寄存器字段可以编码另一个寄存器是向量寄存器还是标量寄存器。一开始可以不管操作码如何,而用指令的寄存器字段内的值来访问寄存器,这更加易于译码。(*该技术在2019年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及数据处理领域。更具体来说,本专利技术涉及带向量和标量数据处理寄存器的数据处理系统。数据处理指令一般包含一个操作码部分和一个或多个寄存器指定字段。在有些系统中,可以将寄存器按向量寄存器或标量寄存器对待。一个向量寄存器指定一序列的寄存器,每个存储其自己的数据值,这些数据值在数据处理指令重复其对该序列中的每个数据值操作时,被单独地操作。相反,一个标量寄存器则是存储着单一值的、独立于其它寄存器而操作的单一的寄存器。使用向量寄存器的数据处理指令比纯粹标量的操作有许多优点。所需要的指令带宽可以缩减,因为只要一条数据处理指令就能指定多个要执行的类似数据处理操作(这在诸如FIR滤波器的DSP功能中是普遍的)。就因其简单可取的单发布机(即每个周期提取并解码一条指令)而言,用多个并行地执行不同的向量指令的功能单元,能取得更高的性能。附图中的附图说明图16和17分别表示一个克雷(Cray)1处理器寄存器组和一个数字设备公司(Digital Equipment Corporation)的MultiTitan处理器寄存器组。这两个现有技术的处理器都提供向量和标量寄存器。就克雷1来说,提供单独的向量和标量寄存器组10、12。16位指令提供的各个操作码,对应于在按向量或标量处理的指令中指定的寄存器的不同组合。这样的缺点是,需要提供更多的操作码来代表这些不同的组合。此外,由于向量和标量寄存器是在独立的寄存器组10、12中提供的,要确定将哪个寄存器组10、12用于指定的特定寄存器,至少需要将操作码部分地解码。这额外的解码要求对能够尽早读取寄存器中存储的数据值增加了困难。克雷1处理器用3位的寄存器指定字段R1、R2、R3,使得能寻址到8个标量寄存器和8个向量寄存器。实际上,每个向量寄存器包含一组寄存器,它们每个能存储不同的数据值,每个都能被依次访问,而取决于长度寄存器16内存储的向量长度值和屏蔽寄存器18内存储的屏蔽位。然而,3位寄存器字段所允许的仅8个标量寄存器的限制,对于现代编译程序来说是个重大的缺陷。如果能有更多的寄存器为目标,这些编译程序就能生成更快的程序码。MultiTitan处理器提供一个寄存器组20,其中的每个寄存器都可以按一个标量寄存器或一部分向量寄存器那样操作。MultiTitan处理器用一个32位指令来指定其数据处理操作。这么大的指令位空间允许指令本身包含字段VS2、VS3确定寄存器是向量还是标量的,包含向量的长度(Len)。尽管这个方法具有很大的灵活性,却有这样的缺点,即在许多情况下,如果不限制可用来提供一个丰富指令集的操作码空间,就没有足够的指令位空间可用来使向量/标量字段能被包含在指令内。此外,在指令本身内提供向量长度,使得如果不借助自修改代码,就难以对向量长度作全局改变。MultiTitan技术也相当不充分地利用其指令位空间,因为该技术将相等的指令位空间资源分配给实际上极不可能被使用的向量和标量寄存器的组合(例如V=SopS,一序列的向量寄存器被填充以对两个标量寄存器的操作的结果)。本专利技术的一个目的是解决上述各系统的至少一些缺陷。从一方面来说,本专利技术提供一种用于数据处理的装置,该装置包含一个有多个寄存器的寄存器组;以及一个用于译码数据处理指令的指令译码器,至少一条所述数据处理指令有至少一个指定要执行的操作的操作指定码和一个指定所述寄存器组内的一个第一寄存器的寄存器指定字段;其中所述指令译码器用一个给定的寄存器作为标量寄存器或向量寄存器来执行操作,以所述给定寄存器作为标量寄存器的执行,包含对存储在所述给定寄存器的一个操作数执行一次所述操作,以所述给定寄存器作为向量寄存器的执行,包含对存储在依赖所述给定寄存器的一个寄存器指定字段而选择的所述寄存器组的一个预定序列的寄存器中的操作数执行多次所述操作;和所述指令译码器响应所述第一寄存器指定字段并独立于所述操作指定码,确定要将所述第一寄存器作为向量寄存器还是标量寄存器用来执行所述操作。本专利技术认识到可以用寄存器字段本身来指出要将该寄存器作为向量寄存器还是标量寄存器对待。这样就不需要对操作码进行译码,使得仅根据寄存器字段就较早地对寄存器进行存取,并且由于标量和向量寄存器二者都一起在一个寄存器组内提供,这样就使得它们的使用具有更大的灵活性。此外,用寄存器指定字段来编码寄存器是标量寄存器还是向量寄存器,为其它用途释放了指令位空间。实际上本专利技术的技术提供一种高效的指令编码方法,该编码方法又使指令位空间可用来使更大的寄存器组能被寻址。在本专利技术的较佳实施例中,所述的至少一个所述数据处理指令有一个指定一个第二寄存器的第二寄存器指定字段;所述指令译码器用所述第二寄存器作为标量寄存器或向量寄存器来执行所述操作;和所述指令译码器响应所述第一寄存器指定字段,确定要将所述第二寄存器作为向量寄存器还是标量寄存器用来执行所述操作。这种较佳实施例建立并利用一个相关关系-即第一寄存器是向量寄存器还是标量寄存器以及第二寄存器是向量寄存器还是标量寄存器。实际上已经发现有些组合是常用的,有些是不常用的。这一点是可以利用的,方法是支持常用的组合并用第一寄存器字段值编码它们,由此避免不得不单独地编码第二寄存器的性质(nature)。当实际上需要不常用的组合时,可以用额外的指令来满足。不可能的组合是足够地难得见到的,不必为每条指令编码第二寄存器的性质的好处,远超过偶尔的对为规定想要的不常用操作而提供额外指令的需要。尽管可能在有些实施例中,该相关关系是当第一寄存器是标量寄存器时,第二寄存器是向量寄存器,已经发现,第一寄存器和第二寄存器有益的相关关系应当是,或者二者同为向量寄存器,或者二者同为向量寄存器。本专利技术的原理可以有益地进一步用于较佳实施例,其中,所述至少一个数据处理指令有一个指定一个第三寄存器的第三寄存器指定字段;所述指令译码器用所述第三寄存器作为标量寄存器或向量寄存器来执行所述操作;和所述指令译码器响应所述第二寄存器指定字段,确定要将所述第三寄存器作为向量寄存器还是标量寄存器用来执行所述操作。这个理想的特征用第二寄存器指定字段来编码第三寄存器的向量或标量性质,由此节省更多的指令位空间。用寄存器指定字段来编码寄存器的向量或标量性质,并非是使标量和向量寄存器的所有组合都能容易地被编码。对于非交换性(non-commutative)运算来说有一个特别的问题,非交换性操作中,VopS或SopV的次序是有差别的,而在寄存器字段内却没有为这两种可能提供单独的编码。这个问题可以在较佳实施例中解决,在较佳实施例中,当所述操作指定码没有对应于非交换性运算的非交换性码值时,至少成对地提供一些对应于相同的操作但具有相反的操作数顺序的所述非交换性码值。向量长度和向量跨距(序列中寄存器号之间的间隔)可以在指令操作码内规定。然而,最好由存储在一个向量控制寄存器中的值来控制向量长度和向量跨距。这些长度和跨距对所使用的所有向量寄存器都普遍地适用。尽管这可能会被认为引入了不利的不灵活性,实际上,对混合长度和跨距值的需求是不常见的,本方法具有的无需自修改代码就能全局地改变向量长度和跨距的能力,远远抵销了这种缺点。此外,向量控制寄存器中存储的长度值,可用来获得对是否某数据处理指令的所有寄存器都是标量寄存器的快速指示,本文档来自技高网...

【技术保护点】
一种用于处理数据的装置,该装置包含: 一个有多个寄存器的寄存器组;和 一个用于译码数据处理指令的指令译码器,至少一条所述数据处理指令有至少一个定义要执行的操作的操作指定码和一个指定所述寄存器组内的一个第一寄存器的第一寄存器指定字段;其中 所述指令译码器用一个给定的寄存器作为标量寄存器或向量寄存器来执行操作,以所述给定寄存器作为标量寄存器的执行,包含对存储在所述给定寄存器的一个操作数执行一次所述操作,以所述给定寄存器作为向量寄存器的执行,包含对存储在依赖所述给定寄存器的一个寄存器指定字段而选择的所述寄存器组的寄存器的一个预定序列中的操作数执行多次所述操作;和 所述指令译码器响应所述第一寄存器指定字段并独立于所述操作指定码,确定要将所述第一寄存器作为向量寄存器还是标量寄存器用来执行所述操作。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:CN欣德斯DV雅加DT马特尼DJ西尔
申请(专利权)人:ARM有限公司
类型:发明
国别省市:GB[英国]

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

1
相关领域技术
  • 暂无相关专利