首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

Intel 8087芯片:浮点加法和减法

摘要

In 1980, Intel introduced the 8087, a chip that made floating-point operations much faster in the IBM PC and other systems. Although the 8087 supports advanced operations such as tangents, square root...

the and The 8087 that operations addition circuitry chip point
2026-10-19 1 阅读 约5分钟阅读 pwg
分享:
字号:
1980 年,英特尔推出了 8087,这款芯片使 IBM PC 和其他系统中的浮点运算速度更快。尽管 8087 支持正切、平方根和对数等高级运算,但本文重点介绍基本算术运算:加法和减法。与 8086 处理器相比,8087 的速度有了惊人的提高,加法速度提高了近 100 倍,复杂运算速度则提高了更多。 1 在本文中,我将研究 8087 的微代码和电路,以准确解释浮点加法和减法的实现方式,包括无穷大和其他特殊值的许多特殊情况。为了探索 8087 的电路,我用凿子打开了芯片的盖子,并使用显微镜创建了下面的高分辨率图像。微代码 ROM 是芯片中心的大矩形区域,保存着控制芯片的 1648 条微指令。芯片的下半部分(红框)是数据路径,即对 80 位值执行浮点计算的电路。 2 8087 数据路径的特写,显示用于加法和减法的功能块。单击此图像(或任何其他图像)以获得更大的版本。放大数据路径可显示对于加法和减法很重要的功能块。关键部件是位于中心的整数加法器。它从 B 寄存器接收一个参数,从临时寄存器或堆栈寄存器等组件接收另一个参数。加法器的输出存储在和寄存器中。移位器可以将值中的位向左或向右移动。移位器占据芯片上的大量空间,因为其电路允许将值快速移位任意位数。浮点运算大量使用移位器来对齐值;前导零电路计算值左侧的零位或字节数,以便将它们移走。指数转换器处理指数,检测上溢和下溢。这些专用电路帮助 8087 实现了高性能。浮点加法和减法 大多数计算机使用整数作为数字的基本表示形式。但许多应用程序需要使用带有小数部分的数字,例如 1.23。此外,整数的范围非常有限:32 位整数可以表示大约 -20 亿到 20 亿之间的数字。为了解决这些问题,3台计算机通常实现浮点数,它提供很大范围内的小数。在大多数情况下,浮点数由符号 × 有效数 × 2 指数 表示。尾数是 1.bbb… 形式的二进制数:前导 1,后跟二进制点(相当于小数点的二进制)和其余位。 4 在二进制数中,每一位代表 2 的幂。对于小数部分,即二进制小数点之后的部分,2 的幂为负: 2 -1 、 2 -2 ,依此类推。所以二进制数 1.1 是 1 + 1/2,或者十进制数 1.5。同样,二进制 1.0011 是 1 + 1/8 + 1/16 或 1.1875。指数允许数字逃脱有效数的有限范围。例如,1.1(二进制)× 2 8 为 384。指数越大,浮点数可以覆盖的范围越大;即使是 32 位短浮点数,其范围也超过 10 -36 到 10 38 。浮点加法和减法比整数运算更复杂。在数字可以相加(或相减)之前,必须对齐它们的二进制小数点,这与对齐十进制数的小数点相同。运算结束后,必须调整结果的指数,对有效数进行归一化,使其从 1 位开始。简单浮点加法的步骤。上图说明了一个简单的浮点加法: 13.5+3.5 。前两行显示用指数和有效数表示的两个参数。两个参数都已标准化,因此最左边的位是 1。在相加之前,必须通过将第二个参数向右移动两个位置来对齐第二个参数,使指数相等。 (在这种情况下,指数之间的差是二。)然后使用对齐的有效数上的整数加法将值相加。在这种情况下,将值相加会导致溢出,即左侧出现一个“额外”位。必须通过将结果向右移动一位并将指数增加 1 来对结果进行标准化。浮点减法类似,但有更多的复杂性。结果可以是正数、负数或零。结果可能比参数小几个数量级。下图显示了一个基本减法,8-7.5。与加法一样,第二个参数右移,以便指数匹配(即二进制小数点对齐)。两个有效数通过整数减法相减。结果通过左移进行归一化,因此最高位为 1。与加法情况不同,归一化
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱