在寄存器中使用硬件辅助功能处理多个任意规模数据元素的系统和方法技术方案

技术编号:2866346 阅读:172 留言:0更新日期:2012-04-11 18:40
公开了在寄存器中处理多个任意规模数据元素所用的一种系统和方法。本发明专利技术的一种方法包括以下步骤:产生一个屏蔽寄存器,它为一个寄存器定义一组任意规模的片段;在一个分段的数据寄存器中,按照屏蔽寄存器排列,存储多个任意规模的数据元素,其中任意规模的数据元素经过了符号扩展;响应一条机器指令,对分段的数据寄存器中的每个数据元素同时进行运算,以产生一组结果数据元素,其中结果数据元素彼此相关;以及压缩恢复结果数据元素,以提供相互独立的多个任意规模的结果。

【技术实现步骤摘要】

一般说来,本专利技术涉及在一个计算机寄存器中处理多个数据元素,更确切地说,涉及一种系统和方法,使用一个屏蔽寄存器和若干硬件辅助指令,同时处理任意规模的多个数据元素。
技术介绍
计算机处理器的功能在于,按照一个计算机程序提供的若干指令,通过多种寄存器来处理数据元素。寄存器的容量通常是二的幂。例如,一个寄存器的容量可能是8位,它将能够在单一的处理周期中,处理一个最多有八位的数据元素。举例来说,一个8位的寄存器能够在单一周期中,处理一个4位数据元素。当然,典型情况下寄存器的规模大于8位,即寄存器的容量可以是16位、或32位、或64位等等。寄存器承担的运算类型,以非穷尽的、说明性的实例来说,包括以一个常数相乘、相加、相减、逻辑左移、逻辑右移、AND和OR运算。数据元素经过处理之后,可以把它们发送到另一个寄存器以便进一步处理,或者把它们存储或输出。例如在打印机应用中,一个服务器微处理器按照一个计算机程序,通过其多种寄存器处理输入数据流,而且它可能以所谓的JPEG格式,向一个打印机处理器输出压缩后影像数据的一个数据流,后者再对该数据进行适当的运算,以便指示一个打印机装置如何打印该影像。处理器本身以机器语言的形式执行指令,它们是低级指令,涉及通过哪些寄存器处理哪些数据元素。不过,大多数软件是以高级编程代码比如C写成的,其优点是人可读,以及使用比较简短、编写快速的命令,体现相对复杂的处理运算。一个编译器接收高级编程代码,在许多选择中决定把它映射到汇编语言的最佳方式,把映射结果传送到一个汇编器,汇编器再把汇编语言映射为处理器可读的所谓的机器语言。有时,一个程序员可能选择直接以一种低级语言来编写比其它部分执行得更加频繁的程序。虽然编写更加麻烦,但是这些所谓的“手工制作的”代码部分无须由一个高级语言编译器翻译,因此能够以更加优化的方式编写,以便在运行时实现更快的处理。无论处理器从一个编译器还是直接从一个手工制作的程序接收机器代码,本专利技术都得出了关键的观察结果往往会发生浪费寄存器空间的情况。更具体地说,如上所述一个寄存器可能不会在每一个处理周期中都使用其全部容量。例如,当一个16位容量的寄存器用于处理4位的数据元素时,每个周期就浪费了寄存器的12位。这就减慢了处理时间,产生了附加的数据高速缓存需求(以及伴随的高速缓存缺失问题),通常不能充分利用处理器的能力。所以本专利技术认识到,有助于改善处理器性能的潜力在于,在单一的周期中在一个寄存器内处理多个数据元素。本专利技术进一步理解,对于以上问题,实施一个解决方案并非微不足道,尤其是当正的和负的(即“带符号的”)数值都要处理时,因为在处理期间超出寄存器容量和/或数据被破坏的可能性都存在。换言之,正如本专利技术所用的,一个“带符号的”数据元素是一个不限制为非负的元素,并且需要在单一的处理周期中,在单一的寄存器内处理多个带符号的数据元素。不仅如此,本专利技术还理解,为了稳健,需要做到不是由制造商来限制在处理器中每个寄存器只能接受预定位数的多个数据元素,而是程序员能够灵活地任意定义寄存器能够接受的数据元素位数,以满足具体应用程序可能发出的指令。2000年9月29日提交的、标题为SYSTEM AND METHOD FORENABLING MULTIPLE SIGNED INDEPENDENT DATA ELEMENTSPER REGISTER的、序列号为09/675779的美国专利申请书介绍了涉及以上问题的一个软件解决方案,其内容在此引用作为参考。这个解决方案允许多个带符号的、独立的数据元素压缩到一个寄存器中。该寄存器以标准的运算运行,还带有若干特定情况下的某些附加运算。然后再把该数据“压缩恢复”,并返回其2的补码形式。术语“压缩”表明该数据可能依赖于其右面的元素。不过,已介绍的方法还有多种增强的可能性。首先,压缩和压缩恢复过程构成了开销,对于较小的循环规模,在某些情况下这种开销是不可接受的。其次,某些指令需要附加的运算以确保数据没有改变。还有,处理器没有能够设置多个错误旗标或者说条件码的机制。例如,假若“压缩”在一个寄存器中的若干元素超出了已经分配给它们的空间精度,就没有设定的错误旗标或者说条件码。程序员负责确保数据不从其设计的精度溢出。所以,对于上述问题需要一个更加稳健的解决方案。
技术实现思路
本专利技术针对上述问题以及其它问题,提供了一种系统和方法,使用一个屏蔽寄存器和若干硬件辅助功能,同时处理任意规模的多个数据元素。在第一方面,本专利技术提供了一种方法,在一个寄存器中处理多个任意规模的数据元素,该方法包括产生一个屏蔽寄存器,它定义了一个寄存器的一组任意规模的片段;提供一个分段数据寄存器,包含按照屏蔽寄存器分段安排的多个任意规模的数据元素;以及响应一条机器指令,在分段数据寄存器内对每个数据元素同时运算。在第二方面,本专利技术提供了一个处理单元,它具有硬件辅助功能,用于在单一寄存器内对多个带符号的、独立的数据元素进行运算,该处理单元进行的运算所响应的机器指令包括(1)归并指令,它把来自一个源寄存器的一个数据值归并到一个能够保持多个分段数据元素的第一分段寄存器,其特征在于按照一个屏蔽寄存器,以任意规模的片段来安排这些分段数据元素;(2)压缩指令,它对每个分段数据元素进行符号扩展,并且把结果存储在一个第二分段寄存器中,其特征在于,这些分段数据元素能够同时运算,以提供一组相互依赖的结果分段数据元素;(3)压缩恢复指令,它把这组结果数据元素中的每个元素压缩恢复到第一分段寄存器,使得这组结果数据元素相互独立;(4)分离指令,它把若干数据元素从第一分段寄存器传递到多个独立的寄存器。在第三方面,本专利技术提供了一种方法,在一个寄存器中处理多个任意规模的数据元素,该方法包括产生一个屏蔽寄存器,它定义了一个寄存器的一组任意规模的片段;按照屏蔽寄存器的安排,在一个分段数据寄存器中存储多个任意规模的数据元素,其特征在于这些任意规模的数据元素经过了符号扩展;响应一条机器指令,在分段数据寄存器内对每个数据元素同时运算以产生一组结果数据元素,其特征在于结果数据元素相互依赖;以及压缩恢复结果数据元素,以提供相互独立的多个任意规模的结果。所以,本专利技术的一个优点是采用能够增加到标准算术逻辑单元(ALU)的硬件辅助功能。换言之,这种解决方案配备了特殊的硬件操作,以便在单一的时钟周期内,执行若干功能,比如“压缩”、“压缩恢复”、右移n位等,在一个标准的ALU中这些功能需要多个时钟周期。这种解决方案也可能配备了一种特殊的错误和条件状态位寄存器,标准的ALU核心无须了解有关它的任何情况。采用标准ALU的一个优点在于,使用经过优化和验证的ALU组件,设计定制的硬件(FPGA、ASIC等)时便于实现快速布局。经过优化和验证的组件,其功能、功耗、运算速度、空间占用、峰值电流等,将是已经经过核实。附图简要说明连同附图阅读本专利技术之不同方面的以下详细说明,本专利技术的这些和其它特性将会更加易于理解,其中附图说明图1展示了依据本专利技术实施例的一个处理单元;图2展示了实施本专利技术示范方法的流程图;图3展示了依据本专利技术实施例的一个寄存器概要;图4展示了依据本专利技术实施例的核心辅助指令之间的逻辑关系;图5展示了依据本专利技术实施例的压缩指令所用的寄存器概要;图6展示了依据本专利技术实本文档来自技高网
...

【技术保护点】
一种在一个寄存器中处理多个任意规模数据元素的方法,包括:创建一个屏蔽寄存器,它为一个寄存器定义一组任意规模的片段;提供一个分段的数据寄存器,它包含多个按照屏蔽寄存器以片段形式排列的任意规模的数据元素;以及响应一条机器指令,对分段的数据寄存器中的每个数据元素同时进行运算。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:迈克尔T布拉迪詹妮弗Q特拉勒维奇琼L米切尔
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1