独立的浮点转换单元的制作方法
【技术领域】
[0001] 本公开涉及数据处理领域。
【背景技术】
[0002] 在数据处理装置中,数字可以被以多种不同格式中的一种格式表示。例如,32位整 数格式使用32位来表示整个二进制数。另一示例是64位整数格式,其使用64位来表示整 个二进制数。64位格式中使用的增多的位数可以使得相比32位整数格式表示的数值范围 更大范围的值被表示。
[0003] 另一示例格式是浮点数。浮点数可以被用来表示任何实数(而不仅仅是任何整 数)。与利用整数格式的情况一样,增大用于表示浮点数的位数一般会增大可以被表示的值 的范围。另外,增大用于表示浮点数的位数可以增加表示数字的精确度。
[0004] 通常,在数据处理装置中,期望能够从多种不同的格式转换到浮点格式。例如,如 果程序员希望将整数与小数相加,则一种方法是首先将整数转换为浮点数。替代地,如果要 求更高的精度,则期望增大用于表示浮点数的位数,并且在这种情形下,更少的位表示的输 入浮点数提供了输入格式。
[0005] 期望允许多种不同格式之间的直接转换,因为这可以减少转换到中间格式导致的 延时(这使得两个以上转换成为必要)。但是,操控多个直接转换的电路通常更为复杂,因 此相比支持较少直接转换的电路需要更多空间。更大的电路会导致具有更高功耗的更大设 备,这在低功耗设备中是不期望的。
【发明内容】
[0006] 根据一个方面,提供了一种数据处理装置,包括:浮点加法器电路;以及浮点转换 电路,该浮点转换电路通过对具有格式列表中的格式的任意输入执行转换来生成作为输出 的浮点数,该格式列表包括整数、定点数、以及具有小于输出浮点数的格式的浮点数,其中 浮点转换电路物理上不同于浮点加法器电路。
[0007] 根据第二方面,提供了一种操作数据处理装置的方法,该数据处理装置包括浮点 加法器电路和浮点转换电路,其中所述浮点转换电路物理上不同于所述浮点加法器电路, 并且所述方法包括由数据处理装置执行的以下步骤:接收具有格式列表中的格式的任意输 入,其中格式列表包括整数、定点数、以及具有小于所述输出浮点数的格式的浮点数;以及 通过对输入执行转换生成作为输出的浮点数。
[0008] 根据第三方面,提供了一种数据处理装置,包括:用于执行浮点加法的装置;以及 用于执行浮点转换的装置,所述用于浮点转换的装置通过对具有格式列表中的格式的任意 输入执行转换生成作为输出的浮点数,该格式列表包括整数、定点数、以及具有小于所述输 出浮点数的格式的浮点数,其中,所述用于执行浮点转换的装置物理上不同于所述用于执 行浮点加法的装置。
【附图说明】
[0009] 仅通过示例,参考附图中示出的本发明的实施例来进一步描述本发明,其中:
[0010] 图1是示意性地示出根据一个实施例的电路配置的示意图;
[0011] 图2是示意性地示出根据一个实施例用于对输入的有效数进行规范化的电路的 示意图;
[0012] 图3是示出根据一个实施例的各种输入可以被如何调整的示意图;
[0013] 图4是示意性地示出根据一个实施例的用于舍入经规范化的有效数的电路的示 意图;
[0014] 图5是示出根据一个实施例的用于通过对输入执行转换来生成作为输出的浮点 数的方法的流程图,其中输入可以具有多种不同格式;
[0015] 图6是示出根据一个实施例的对输入的有效数进行规范化、生成指数、对经规范 化的有效数执行舍入、以及调整指数的处理的流程图;以及
[0016] 图7是示出根据一个实施例的将从输入生成的不同值相结合以产生经转换的输 出的处理的流程图。
【具体实施方式】
[0017] 浮点(FP)是使用少数的位来近似实数的有用途径。IEEE 754-2008浮点标准提出 了浮点数的多种不同格式。示例包括二进制64 (也称为双精度或DP)、二进制32 (也称为单 精度或SP)、以及二进制16 (也称为半精度或HP)。数字64、32、和16是指每种格式需要的 位数。
[0018] 浮点数非常类似于科学课中教的"科学计数法",其中负两百万可以替代写 成-2. 0X106。这个数字的各部分是符号(在这个示例中为负)、有效数(2.0)、指数的基数 (10)、以及指数(6)。所有这些部分在浮点数中具有类似物,尽管存在不同,其中最重要的不 同是组成部分被存储为二进制数,并且指数的基数(base of exponent)总是2。浮点数一 般包括符号位、一些数目的偏置指数位、以及一些数目的小数位:
[0019]
[0020] 负数的符号是1,正数的符号是0。包括零在内的每个数字都具有符号。
[0021] 指数被偏置,意味着真指数不同于数字中存储的指数。例如,经偏置的SP指数是8 位长,并且在0到255范围内变化。指数0和255是特例,所有其他指数都具有偏差127,这 意味着真指数比经偏置的指数小127。最小的经偏置的指数是1 (其对应于真指数-126)。 最大的经偏置的指数是254 (其对应于真指数127)。HP和DP指数以相同的方式工作,具有 以上表格中指示的偏差。SP指数255 (或者DP指数2047、或者HP指数31)被保留用于无 穷大和被称为NaN(没有这样的值)的特殊符号。无穷大(可以是正或者负)具有为零的 小数。具有指数255和非零小数的任意数是NaN。无穷大提供饱和值,所以其实际上表示 "这种计算导致比我们可以用这种格式表示的数更大的数"的意思。NaN针对实数上没有数 学定义的操作(例如,除以零、或者将负数作为平方根)被返回。
[0022] 指数零(在任意格式)被保留用于次正规数和零。正规数(normal number)表示 这样的值:符号XI小数X2%其中e是根据经偏置的指数计算出的真指数。术语"1.小 数"被称为有效数,1不作为浮点数的部分被存储,但是替代地从指数推定得出。除了零和 最大指数以外的所有指数指示形式"1.小数"的有效数。指数零指示形式"〇.小数"的有 效数、以及针对给定格式等于(1-偏差)的真指数。这样的数字被称为次正规数(历史上, 这些数字被称为"非正规数",但是现代用法更喜欢用术语"次正规数")。
[0023] 具有等于零的指数和小数(fraction)二者的数为零。下面的表格具有HP格式的 一些示例数字。条目是二进制的,并且添加了字符" 来增加可读性。注意,次正规条目 (表格的第四行,具有零指数)相对于在前行中的正规条目产生了不同的有效数。
[0024]
[0025] '浮点实现中的大部分复杂度是由于次正规数,因此它们通常由微代码或者软件操 控。
[0026] 操控符号的方式被称为符号-量值,并且不同于整数被存储在计算机中的通常方 式(二进制补码)。在符号-量值表示中,同一数字的正版本和负版本仅在符号位不同。包 括符号位和3个有效数位的4位符号-量值整数将如下表示+1和-1 :
[0027] +1 = 0001
[0028] -1 = 1001
[0029] 在二进制补码表示中,η位整数i由二进制n+1位值2n+i的低η位表示,所以4位 ^进制补码整数将如下表不+1和 _1 :
[0030] +1 = 0001
[0031] -1=1111
[0032] 二进制补码格式实际上对有符号整数是通用的,因为其简化了计算机运算。
[0033] 定点数可以看上去与整数类似甚至相同,但是实际上表示具有一定数目的小数位 的值。传感器数据通常是定点格式的。利用定点数,程序员通常必须追踪"二进制点"(即, 数字的整数和小数部分之间的分隔符),并且还必须不停地对数字移位以保持这些位处于 正确的位置。
[0034] IEEE-754标准要求大多数浮点操作被计算(如同该操作是利用无界范围和精度 进行一样)然后被舍入,以纳入浮点数。如果计算精确匹配浮点数,则该值总是被返回,但 是通常计算会产生介于两个连续的浮点数之间的值。舍入(rounding)是选择两个连续数 字中的哪个应该被返回的处理。
[0035] 存在多种舍入方式(称为舍入模式);这里示出了六个示例:
[0036]
[0037] -种常见的实施方式是进行操作,查看截断值(即,纳入浮点格式的值)以及所有 剩余位,然后如果某些条件满足则调整截断值。这些计算全部基于以下三个值:
[0038] L-(最低)截断值的最低有效位
[0039] G-(保护)下一个最高有效位(即,没有包括在截断中的第一个位)
[0