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

使用重叠位的数值的冗余表示制造技术

技术编号:18580306 阅读:33 留言:0更新日期:2018-08-01 14:44
提供了一种其中M位数据值使用多个N位部分来表示P位数值的冗余表示,其中M>P>N。锚值标识每个N位的位的有效数,并且在至少两个相邻N位部分的组内,该组的较低N位部分的两个或多个重叠位具有与该组的至少一个较高N位部分的两个或更多个最低有效位相同的有效数。多个运算电路单元可以并行地执行多个独立的N位运算,每个N位运算包括计算具有冗余表示的至少两个M位操作数值的相应N位部分的函数,以生成具有冗余表示的M位结果值的对应N位部分。这使得能够在执行N位运算所花费的时间内快速关联处理相对长M位值。

Redundant representation of the number of overlapped bits

A redundant representation of M bit data values using multiple N bits to represent P bit values is provided, M>P>N. The anchor value identifies the valid number of bits of each N bit, and within a group of at least two adjacent N bit parts, two or more overlapped bits of the lower N bit part of the group have the same valid number as two or more lowest valid bits of at least one higher N bit part of the group. Multiple operation circuit units can perform a plurality of independent N bit operations in parallel, each N bit operation includes a function to calculate the corresponding N bits of at least two M bit operation values with redundant representations to generate corresponding N bit parts with the M bit result values with redundant representations. This enables fast relative processing of relatively long M bits in the time taken to perform N bit operations.

【技术实现步骤摘要】
【国外来华专利技术】使用重叠位的数值的冗余表示
本技术涉及数据处理的领域。
技术介绍
在数据处理系统中通常使用浮点(FP)表示。浮点数包括有效数和指示有效数的位的有效值的指数。这允许使用有限数目的位来表示大范围上的数值。然而,浮点运算的一个问题是计算通常是非关联的。例如,当将多个浮点值相加时,每次将另一值加到前一加法的结果中时,结果被舍入并且标准化,这意味着总体结果根据将值相加的顺序而不同。这使得难以并行化浮点算法,因为总和是不可重现的,除非以完全相同的顺序完成。为了生成可重现的结果,通常必须按顺序执行一系列加法或减法,这可能使得浮点运算相对较慢。
技术实现思路
至少一些示例提供了一种装置,包括:处理电路,用于处理具有使用多个N位部分来表示P位数值的冗余表示的M位数据值,其中M>P>N,其中,处理电路被配置为基于锚值来标识冗余表示的每个N位部分的位的有效数,并且在至少两个相邻N位部分的组内,该组的较低N位部分的多个重叠位具有与该组的至少一个较高N位部分的多个最低有效位相同的有效数;并且处理电路包括多个运算电路单元以并行地执行多个独立的N位运算,每个N位运算包括计算具有冗余表示的至少两个M位操作数值的相应N位部分的函数,以生成具有冗余表示的M位结果值的对应N位部分。至少一些示例提供了一种数据处理方法,包括:处理具有使用多个N位部分来表示P位数值的冗余表示的M位数据值,其中M>P>N,其中,基于锚值来标识冗余表示的每个N位部分的位的有效数,并且在至少两个相邻N位部分的组内,该组的较低N位部分的多个重叠位具有与该组的至少一个较高N位部分的多个最低有效位相同的有效数;并且处理包括并行地执行多个独立的N位运算,每个N位运算包括计算具有冗余表示的至少两个M位操作数值的相应N位部分的函数,以生成具有冗余表示的M位结果值的对应N位部分。附图说明现在将参考附图仅以示例的方式描述本专利技术的实施例,其中:图1示意性地示出了数据处理装置;图2示意性地示出了数值的不同表示;图3示意性地示出了双精度浮点值和高精度锚(HPA)值之间的关系的示例;图4示出了冗余HPA(RHPA)值的示例,其使用包括具有重叠有效值的多个N位部分的冗余表示来表示数值;图5示出了用于定义冗余HPA值的每个部分的有效值并且用于定义重叠位的数目的元数据的示例;图6示出了使用RHPA表示的累加运算的示例;图7示出了在单个运算中将三个或更多个RHPA值相加的示例;图8示出了其中在单个运算中相加的每个RHPA值都转换自输入向量的相应元素的示例;图9示出了使用RHPA表示来累加值的方法;图10和11示出了将浮点值转换为RHPA值的示例;图12示出了用于生成非冗余形式的RHPA值的重叠传播运算的第一示例;图13示出了用于生成限制冗余形式的RHPA值的重叠传播运算的第二示例;图14示出了将限制冗余RHPA值转换为非冗余RHPA值的示例;图15示出了用于将来自RHPA累加器的重叠位添加到重叠累加器值的重叠累加操作的示例;图16示出了同时将转换自浮点值的转换RHPA值加到限制冗余RHPA累加器并且执行重叠传播以将经更新的RHPA累加器保持为限制冗余形式的示例;图17示出了将非冗余形式的RHPA值转换为浮点值的示例;图18示出了将限制冗余形式的RHPA值转换为浮点值的示例;图19示出了将RHPA值转换为浮点值的第三示例;图20示出了使用RHPA值的加法来将两个操作数值的部分乘积相加的示例;图21示出了使用通道位置信息来基于将由该通道生成的结果元素在相应结果值中的相对位置来控制每个处理通道的示例;图22示出了使用通道位置信息来控制比结果向量长度更宽或更窄的结果值的生成的若干示例;图23示出了为每个处理通道指定锚值、重叠位的数目和通道位置信息的元数据寄存器的示例;图24示出了使用输入映射信息来标识输入向量的哪些元素将由与单个向量内的独立结果值相对应的处理通道的不同子集来处理的示例;图25示出了其中RHPA值的不同N位部分具有不同数目的重叠位的示例;图26示出了使用RHPA格式将两个长整数相乘以将整数的各个部分的部分乘积相加的示例;图27是示出可以如何使用一系列流水线化部分乘积累加运算来计算两个长整数的乘积的示例的时序图;图28是示出用于将最终乘法结果转换为非冗余格式的一些重叠传播加法可以如何与用于累加部分乘积的一些加法并行执行的示例的另一时序图;图29示出了将长整数操作数映射到浮点值的向量的示例;以及图30示出了使用浮点乘法器来确定输入操作数的部分的各个对的部分乘积的示例;图31和32示出了分别将正浮点值和负浮点值转换为RHPA格式的数值示例;图33示出了在两个RHPA操作数的加法期间的通道溢出的示例;图34示出了从RHPA值消除通道溢出的示例;图35示出了将RHPA值转换为非冗余形式的示例;以及图36到39提供了为什么图16所示的运算产生限制冗余形式的结果的解释。具体实施方式下面将描述一些具体示例。应理解,本技术不限于这些示例。下面讨论高精度锚(HPA)格式。关于HPA格式的更多信息可以在美国专利申请62/074,149、14/582,974、14/582,875、14/582,812、14/582,836、14/582,978、14/606,510和14/582,968中找到,这些专利申请的内容通过引用整体结合于此。浮点数浮点(FP)是使用少数位来近似实数的有用方法。IEEE754-2008FP标准提出了用于FP数的多种不同格式,其中一些是二进制64(也称为双精度或DP)、二进制32(也称为单精度或SP)和二进制16(也是称为半精度或HP)。数字64、32和16指每种格式所需的位数。表示FP数与科学课程中教导的“科学记数法”非常相似,其中,负200万我们写作-2.0×106。该数字的各部分是符号(在这种情况下为负)、有效数(2.0)、指数的底数(10)和指数(6)。所有这些部分在FP数中都有类似物,尽管存在差异,但其中最重要的是组成部分被存储为二进制数,并且指数的基数始终为2。更确切地,FP数包括符号位、一些偏置指数位和一些小数位。具体地,DP、SP和HP格式包括下列位:格式符号指数小数指数偏置DP[63:0]6362:52(11位)51:0(52位)1023SP[31:0]3130:23(8位)22:0(23位)127HP[15:0]1514:10(5位)9:0(10位)15负数的符号为1,正数的符号为0。每个数(包括零)都具有符号。指数被偏置,这意味着真指数(trueexponent)与存储在数字中的指数不同。例如,偏置SP指数长为8位,范围从0到255。指数0和255是特殊情况,但所有其他指数都有偏置127,这表示真指数比偏置指数小127。最小偏置指数为1,对应于-126的真指数。最大偏置指数为254,对应于127的真指数。HP和DP指数的工作方式相同,具有上表示出的偏置。SP指数255(或DP指数2047或HP指数31)被保留用于无穷和称为NaN(不是数字)的特殊符号。无穷(可以是正或负)具有零小数。具有指数255和非零小数的任何数字都是NaN。无穷提供了饱和值,因此它实际上表示类似于“该计算产生比我们可以以该格式表示的数字本文档来自技高网...

【技术保护点】
1.一种装置,包括:处理电路,用于处理具有使用多个N位部分来表示P位数值的冗余表示的M位数据值,其中M>P>N,其中,所述处理电路被配置为基于锚值来标识所述冗余表示的每个N位部分的位的有效数,并且在至少两个相邻N位部分的组内,该组的较低N位部分的多个重叠位具有与该组的至少一个较高N位部分的多个最低有效位相同的有效数;并且所述处理电路包括多个运算电路单元以并行地执行多个独立的N位运算,每个N位运算包括计算具有所述冗余表示的至少两个M位操作数值的相应N位部分的函数,以生成具有所述冗余表示的M位结果值的相应N位部分。

【技术特征摘要】
【国外来华专利技术】2015.11.12 US 14/939,1751.一种装置,包括:处理电路,用于处理具有使用多个N位部分来表示P位数值的冗余表示的M位数据值,其中M>P>N,其中,所述处理电路被配置为基于锚值来标识所述冗余表示的每个N位部分的位的有效数,并且在至少两个相邻N位部分的组内,该组的较低N位部分的多个重叠位具有与该组的至少一个较高N位部分的多个最低有效位相同的有效数;并且所述处理电路包括多个运算电路单元以并行地执行多个独立的N位运算,每个N位运算包括计算具有所述冗余表示的至少两个M位操作数值的相应N位部分的函数,以生成具有所述冗余表示的M位结果值的相应N位部分。2.根据权利要求1所述的装置,其中,所述多个运算电路单元包括多个加法电路单元以并行地执行多个N位加法,每个N位加法包括将所述至少两个M位操作数值的所述相应N位部分相加以生成所述M位结果值的所述相应N位部分。3.根据权利要求1和2中的任一项所述的装置,其中,所述处理电路被配置为执行转换操作以将输入值转换为具有所述冗余表示的转换M位数据值。4.根据权利要求3所述的装置,其中,所述转换操作包括根据所述输入值的符号来设置所述重叠位。5.根据权利要求4所述的装置,其中,当所述输入值为正时,所述处理电路被配置为将所述重叠位设置为0,并且当所述输入值为负时,所述处理电路被配置为将所述重叠位设置为1。6.根据权利要求4所述的装置,其中,当所述输入值包括浮点值时,所述转换操作包括:根据所述锚值和所述浮点值的指数来将所述浮点值的有效数的位映射到所述M位数据值中的相应有效数的位,其中,至少一个N位部分的所述重叠位被设置为0;当所述输入值为正时,输出所述映射的结果作为所述转换M位数据值;并且当所述输入值为负时,对所述映射的所述结果取反以生成所述转换M位数据值。7.根据前述权利要求中的任一项所述的装置,其中,所述处理电路被配置为对具有所述冗余表示的第一M位值执行重叠减少操作以生成具有所述冗余表示的第二M位值,其中,所述第二M位值的至少一个N位部分中的所述重叠位表示比所述第一M位值的至少一个相应N位部分的所述重叠位更小的大小。8.根据权利要求7所述的装置,其中,所述重叠减少操作包括重叠传播操作以将具有所述冗余表示的第一M位值的一个或多个N位部分的所述重叠位传播到所述第一M位值的一个或多个后续N位部分,以生成具有使用不同的重叠位模式来表示与所述第一M位值相同的P位数值的冗余表示的第二M位值。9.根据权利要求8所述的装置,其中,在所述第二M位值中,所述重叠位等于0。10.根据权利要求8和9中的任一项所述的装置,其中,所述重叠传播操作包括执行多个连续加法,包括:初始加法,用于将所述第一M位值的最低有效N位部分的重叠位加到所述M位值的后续N位部分M位值以生成修改非重叠位和修改重叠位;以及至少一个其他加法,用于将来自对所述第一M位值的下一N位部分的前一加法的所述修改重叠位相加以生成修改非重叠位和修改重叠位;其中,所述处理电路被配置为基于在每个连续加法中生成的所述修改非重叠位来生成所述第二M位值,并且所述重叠位被设置为0。11.根据权利要求8所述的装置,其中,在所述第二M位值中,对于具有重叠位的每个N位部分,两个最低有效重叠位具有值00、01、11中的一个,并且任何其余重叠位具有与第二最低有效重叠位相同的值。12.根据权利要求8和11中的任一项所述的装置,其中,所述重叠传播操作包括执行多个并行加法,每个并行加法包括将所述第一M位值的给定N位部分的所述重叠位加到所述第一M位值的后续N位部分的非重叠位以生成与所述第一M位值的所述后续N位部分在有效数上相对应的所述第二M位值的N位部分。13.根据权利要求7所述的装置,其中,所述重叠减少操作包括重叠累加操作,以将所述第一M位值的一个或多个N位部分的所述重叠位加到重叠累加器值的相应N位部分,并且将所述第一M位值的所述一个或多个N位部分的所述重叠位设置为零以生成所述第二M位值。14.根据权利要求7到13中的任一项所述的装置,其中,所述处理电路被配置为维持运算计数,所述运算计数指示为生成所述第一M位值而执行的运算的数目,并且当所述运算计数指示运算的数目等于或大于预定数目时,执行所述重叠减少操作。15.根据权利要求14所述的装置,其中,运算的所述预定数目小于或等于2V-1-1,其中,V是具有重叠位的任何所述N位部分所包括的重叠位的最小数目。16.根据权利要求14和15中的任一项所述的装置,其中,所述处理电路被配置为在执行所述重叠减少操作时重置所述运算计数。17.根据权利要求7到16中的任一项所述的装置,其中,所述处理电路被配置为响应于检测到所述第一M位值的所述N位部分中的一个N位...

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

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

1