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

用于处理输入操作数值的装置和方法制造方法及图纸

技术编号:22107316 阅读:27 留言:0更新日期:2019-09-14 05:12
提供了一种用于处理输入操作数值的装置和方法。所述装置具有一组向量数据存储元件,每个向量数据存储元件提供用于存储数据值的多个部分。多个通道被认为设置在所述一组存储元件内,其中每个通道包括来自每个向量数据存储元件的对应部分。处理电路被布置为通过对多个部分中的每一个执行独立算术运算来对包括所述多个部分的输入操作数值执行算术运算,以便产生包括多个结果部分的结果值。存储电路被布置为将所述结果值存储在所述多个通道中的选定通道内,使得每个结果部分在不同的向量数据存储元件中被存储在针对所述选定通道的所述对应部分内。这样的方法允许以不受所述向量数据存储元件的大小约束的方式并且特别地以向量长度不可知的方式高效地处理输入操作数值。

Devices and methods for processing input operation values

【技术实现步骤摘要】
【国外来华专利技术】用于处理输入操作数值的装置和方法
本技术涉及数据处理的领域。
技术介绍
在数据处理系统中使用浮点(FP)表示是常见的。浮点数包括有效数和指示该有效数的位的有效性的指数。这允许使用有限数量的位来表示大范围上的数字值。然而,关于浮点运算的问题是计算通常是非关联的、使总和变得有问题的事实。特别地,即使在加少量值时,程序设计员也需要担心获得不同的结果。为了设法解决关联性问题,已提出了新的数据类型,被称作高精度锚定(HPA)数。高精度锚定(HPA)数是由长二补码整数i(例如200位)和较小的锚整数a构成的对(i,a),所述较小的锚整数a通常通过指定i的最小位的有效性来表示i的各位的权重。可将浮点值转换成HPA形式,此后可以关联方式执行加法。可在HPA数的每个长整数可以被存储在单独的向量寄存器中的向量处理电路上处理HPA值。然而,HPA数量可被处理的效率将取决于由特定向量处理电路处理的向量长度。
技术实现思路
根据第一示例配置,提供了一种装置,所述装置包括:一组向量数据存储元件,每个向量数据存储元件提供用于存储数据值的多个区段,多个通道被设置在所述组内,其中每个通道包括来自每个向量数据存储元件的对应区段;处理电路,所述处理电路用于通过对多个部分中的每一个执行独立算术运算来对包括所述多个部分的输入操作数值执行算术运算,以便产生包括多个结果部分的结果值;以及存储电路,所述存储电路用于将所述结果值存储在所述多个通道中的选定通道内,使得每个结果部分在不同的向量数据存储元件中被存储在针对所述选定通道的对应区段内。根据第二示例布置,提供了一种处理具有多个部分的输入操作数值的方法,包括:提供一组向量数据存储元件,每个向量数据存储元件提供用于存储数据值的多个区段,多个通道被设置在所述组内,其中每个通道包括来自每个向量数据存储元件的对应区段;通过对多个部分中的每一个执行独立算术运算来对输入操作数值执行算术运算,以便产生包括多个结果部分的结果值;以及将所述结果值存储在所述多个通道中的选定通道内,使得每个结果部分在不同的向量数据存储元件中被存储在针对所述选定通道的对应区段内。根据另一示例配置,提供了一种装置,所述装置包括:一组向量数据存储模块,每个向量数据存储模块用于提供用于存储数据值的多个区段,多个通道被设置在所述组内,其中每个通道包括来自每个向量数据存储模块的对应区段;处理模块,所述处理模块用于通过对多个部分中的每一个执行独立算术运算来对包括所述多个部分的输入操作数值执行算术运算,以便产生包括多个结果部分的结果值;以及存储模块,所述存储装置用于将所述结果值存储在所述多个通道中的选定通道内,使得每个结果部分在不同的向量数据存储装置中被存储在针对所述选定通道的对应区段内。在又一示例配置中,提供了一种用于控制主机数据处理装置以提供指令执行环境的计算机程序,所述计算机程序包括:一组向量数据结构,每个向量数据结构提供用于存储数据值的多个区段,多个通道被设置在所述组内,其中每个通道包括来自每个向量数据结构的对应区段;处理程序逻辑,所述处理程序逻辑用于通过对多个部分中的每一个执行独立算术运算来对包括所述多个部分的输入操作数值执行算术运算,以便产生包括多个结果部分的结果值;以及存储程序逻辑,所述存储程序逻辑用于将所述结果值存储在所述多个通道中的选定通道内,使得每个结果部分在不同的向量数据结构中被存储在针对所述选定通道的对应区段内。附图说明参考本技术的如附图中所图示的示例,将仅通过图示进一步描述本技术,在附图中:图1示意性地图示数据处理装置;图2示意性地图示数字值的不同表示;图3示意性地图示双精度浮点值与高精度锚定(HPA)值之间的关系的示例;图4示出冗余HPA值的示例,所述冗余HPA值使用包括具有重叠有效性的许多N位部分的冗余表示来表示数字值;图5示意性地图示在一个示例中HPA整数可以如何被存储在跨多个向量寄存器的选定通道内;图6是示意性地图示根据一个示例布置的可以如何将浮点数转换成HPA形式并进行处理的框图;图7示意性地图示可以在一个示例中使用的元数据的形式;图8是更详细地图示在一个示例中的可以与每个通道关联地提供的转换和处理电路的图;图9是图示根据一个示例执行来累加多个HPA数的过程的流程图;图10A至图10G提供图9中图示的操作的具体示例;图11图示在使用冗余HPA形式时可被执行来解析重叠的过程;图12图示可用于将多个通道中产生的HPA结果缩减成单个HPA结果的过程;图13图示根据一个示例的可以如何将HPA结果转换回成一系列浮点数;以及图14图示可以被使用的模拟器实施方式。具体实施方式如早先所提及的,关于浮点算术的问题在于计算通常是非关联的、使总和变得有问题的事实。例如,当加若干浮点值时,每次另一值被加到前一加法的结果时,结果被舍入和标准化,这意味着总体结果取决于值被加的顺序而不同。这使得难以使浮点算术并行化,因为除非以确切相同的顺序完成,否则总和是不可再现的。为了生成可再现的结果,通常必须顺序地执行一系列加法或减法,这可使浮点算术变得相对慢。程序设计员因此使用比他们需要的更高的准确度,希望避免这样不同的结果。程序员因此不能容易地使代码并行化,因为除非以确切相同的顺序计算,否则总和是不可再现的。问题对于程序可能需要加数百万个值的高性能计算(HPC)来说尤其严重。程序员希望使这些问题并行化,但是然后可再现性的缺乏使调试变得困难。即使针对那些机器的重新编程完美无缺,每种不同的机器配置也将产生不同的答案。如上面所提及的,为了设法解决关联性问题,已提出了新的数据类型,被称作高精度锚定(HPA)数。HPA数是由长二补码整数i(例如200位)和较小的锚整数a构成的对(i,a),所述较小的锚整数a通常通过指定i的最小位的有效性来表示i的各位的权重。该对在某种程度上类似于FP数的有效数和指数值,但不同之处在于长整数i未被标准化并且通常比FP有效数大得多,而且锚定值a对于HPA运算中的所有操作数来说是固定的。加FP数可以使指数改变,但是加HPA数不会改变锚。作为平凡示例,考虑由10位i和锚定值a=-4构成的HPA表示。在表1中给出了此格式的一些值。i(二进制)值(十进制)00000_000010.062500000_010000.500000_110001.500001_000002.000100_110009.511111_01000-1.5表1——示例HPA数(i,-4)当加这些数中的两个(假定0.5和1.5)时,锚(-4)不会改变,并且总和通过仅加i值方便地给出。由于HPA总和只是二补码加法,所以当范围足够时,HPA总和是关联的、确切的且可重复的。FP数具有大范围。双精度数(FP64)可以小于2-1000且大于21000,但是大多数累加不会横跨这整个范围。实际上,很难想象会在所有该范围上有意义地累加值的这类问题,并且甚至对于HPC来说大多数累加发生在有限范围上。预期对于要求比双精度算术宽的几乎所有应用来说,200位左右就足够了。假设程序员确定用于特定总和的所有数据具有小于2100的量值,并且量值低于2-50的位不会以任何有意义的方式影响总和。如果使用具有200位i的HPA格式(i,-50)来加数据,则累加是关联的并且可以任何顺序加这些数中的至本文档来自技高网...

【技术保护点】
1.一种装置,包括:一组向量数据存储元件,每个向量数据存储元件提供用于存储数据值的多个区段,多个通道被设置在所述组内,其中每个通道包括来自每个向量数据存储元件的对应区段;处理电路,所述处理电路用于通过对多个部分中的每一个执行独立算术运算来对包括所述多个部分的输入操作数值执行算术运算,以便产生包括多个结果部分的结果值;以及存储电路,所述存储电路用于将所述结果值存储在所述多个通道中的选定通道内,使得每个结果部分在不同的向量数据存储元件中被存储在针对所述选定通道的所述对应区段内。

【技术特征摘要】
【国外来华专利技术】2017.01.30 US 62/452,035;2017.12.06 US 15/833,3721.一种装置,包括:一组向量数据存储元件,每个向量数据存储元件提供用于存储数据值的多个区段,多个通道被设置在所述组内,其中每个通道包括来自每个向量数据存储元件的对应区段;处理电路,所述处理电路用于通过对多个部分中的每一个执行独立算术运算来对包括所述多个部分的输入操作数值执行算术运算,以便产生包括多个结果部分的结果值;以及存储电路,所述存储电路用于将所述结果值存储在所述多个通道中的选定通道内,使得每个结果部分在不同的向量数据存储元件中被存储在针对所述选定通道的所述对应区段内。2.根据权利要求1所述的装置,其中,所述处理电路被布置为在执行所述独立算术运算时将所述输入操作数值的每个部分作为整数值来处理。3.根据权利要求1或2所述的装置,其中,所述处理电路被布置为顺序地多次执行所述独立算术运算,以便每次所述处理电路执行所述独立算术运算时在所述选定通道内产生所述结果值的结果部分中的一个。4.根据前述权利要求中的任一项所述的装置,其中:所述处理电路被布置为执行用于将所述输入操作数值与包括所述多个部分的另一操作数值累加的累加运算作为算术运算,以便产生包括所述多个结果部分的所述结果值。5.根据权利要求4所述的装置,其中:所述另一操作数值是现有结果值,并且所述处理电路被布置为执行所述累加运算以便生成更新的结果值以形成要存储在所述选定通道中的结果值。6.根据权利要求5所述的装置,其中,所述存储电路被布置为在所述选定通道内的多个向量数据存储元件上存储所述现有结果值,并且利用由所述处理电路在执行所述累加运算时生成的所述结果值的对应结果部分覆写所述现有结果值的每个部分。7.根据前述权利要求中的任一项所述的装置,其中,所述处理电路被布置为基于锚定值识别所述输入操作数值的每个部分的位的有效性。8.根据权利要求7所述的装置,进一步包括用于为所述选定通道保持元数据的元数据存储装置,所述元数据包括针对所述输入操作数值的每个部分的元数据部分,并且提供使得所述处理电路能够识别所述输入操作数值的每个部分的位的有效性的信息。9.根据权利要求8所述的装置,其中,所述处理电路包括转换电路,所述转换电路用于从提供的值和对应的元数据部分生成所述输入操作数值的每个部分的。10.根据权利要求9所述的装置,其中,所提供的值是浮点值,并且与每个独立算术运算关联地,所述转换电路用于从所述浮点值和所述对应的元数据部分生成所述输入操作数值的对应部分。11.根据权利要求10所述的装置,其中:所述处理电路被布置为执行用于将来自所述输入操作数值的对应部分与包括所述多个部分的另一操作数值的对应部分累加的独立累加运算作为所述独立算术运算,以便产生所述结果值的对应结果部分;并且所述转换电路在所述独立累加运算期间用于从所述浮点值和与所述对应部分相关联的所述元数据部分生成所述输入操作数值的对应部分。12.根据权利要求11所述的装置,其中,所述输入操作数值和所述另一操作数值的对应部分具有相同的位有效性。13.根据前述权利要求中的任一项所述的装置,其中:所述输入操作数值包括具有使用所述多个部分来表示P位数值的冗余表示的M位值,其中每个部分包括N位,并且其中M>...

【专利技术属性】
技术研发人员:克里斯托弗·尼尔·海因兹内尔·伯吉斯戴维·雷蒙德·卢茨
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

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

1