1980 年发布的 Intel 8087 是 x86 架构史上首款浮点协处理器,它将原本需要软件模拟的浮点运算速度提升了百倍。这颗芯片的核心是一个 69 位加法器 —— 专利文档将其描述为 "浮点执行单元的算术心脏"。理解这个加法器的设计,有助于把握早期硬件浮点运算在精度、速度与硅片面积之间的工程权衡。
Manchester 进位链与 4 位分块架构
8087 加法器面临的核心问题是进位延迟。传统行波进位加法器中,每一位的进位输出都依赖低位的进位输入,导致进位信号必须逐位传递。对于 69 位宽的数据通路,这种设计的延迟无法接受。
8087 采用了 1959 年曼彻斯特大学为 Atlas 计算机开发的 Manchester 进位链技术。该技术的核心思想是将进位传播分解为三个并行计算的信号:Generate(生成进位,对应 1+1)、Propagate(传播进位,对应 0+1 或 1+0)、Delete(消除进位,对应 0+0)。这三个信号可在所有位位置并行计算,不受低位进位影响。
具体实现上,8087 将 69 位划分为多个 4 位块。每个块内部使用 Manchester 进位链,通过传输管(pass transistor)构建开关网络。当 Propagate 信号有效时,进位输入直接传递至输出;当 Generate 或 Delete 有效时,输出被强制置 1 或置 0。这种设计使进位以导线信号速度传播,而非经过逻辑门延迟。
为进一步优化,每个 4 位块配备进位跳跃(carry-skip)电路。当块内所有位均为 Propagate 状态时,进位输入直接跳转至块输出,跳过块内传播路径。这种分层策略将进位传递步骤减少为块间跳转,显著降低关键路径延迟。
69 位精度架构的设计考量
8087 名义上支持 64 位尾数(significand),但加法器实际采用 69 位输入和 70 位输出。这一设计包含多层精度考量:
扩展精度与舍入位:IEEE 754 标准定义了 Guard、Round、Sticky 三个附加位用于精确舍入。Guard 位捕获右移操作丢失的最高位,Round 位记录后续位,Sticky 位则汇总所有更低位(只要有 1 即置位)。8087 的 69 位宽度预留了这三个舍入位,确保向最近偶数舍入等模式能正确执行。
Booth 乘法支持:8087 采用 radix-4 Booth 算法实现乘法,每次迭代处理两位乘数,根据编码选择加 2B、加 B、加 0 或减 B。支持 "2B" 操作需要尾数左移一位,因此输入宽度需额外预留一位。
补码运算支持:减法通过补码加法实现,需要在最高位前添加符号扩展位。负数的补码表示要求数据通路宽度比原码多一位。
综合上述需求,69 位输入恰好容纳:64 位尾数 + 3 位舍入位 + 1 位 Booth 移位 + 1 位补码扩展。70 位输出则处理了两个大数相加可能产生的进位溢出。
物理实现与性能权衡
8087 采用 NMOS 工艺制造,这种工艺中晶体管下拉信号(至地)的速度远快于上拉(至电源)。为优化性能,设计团队采用预充电策略:运算开始前将所有进位线预充至 5V(对应无进位状态),随后通过下拉操作置位进位。这解释了为何进位信号采用负逻辑 —— 高电平表示无进位,低电平表示有进位。
传输管作为开关使用时会损失电压,信号经过多级传输后可能衰减至无法可靠识别。8087 通过 4 位分块和块级进位刷新解决此问题:每个块生成 "新鲜" 的进位输出,消除前级累积的电压降。
即便如此,69 位仍需要约 17 个 4 位块,块间进位仍需逐级传递。因此 8087 的加法操作需要两个时钟周期完成 —— 第一个周期完成块内进位计算,第二个周期处理块间进位和最终求和。这种设计在晶体管数量受限的 1980 年代是合理的折衷:相比纯行波进位大幅提升速度,又避免了 Kogge-Stone 等超前进位网络所需的庞大硬件开销。
从 8087 到现代 FPU 的演进
8087 的加法器设计为后续 x87 架构奠定了基础。其微码控制、条件执行和硬件循环等特性,使单条指令可触发数百个内部操作步骤,高效计算三角函数、对数和指数等超越函数。
对比现代处理器,8087 的设计显得朴素。Pentium 处理器采用的 Kogge-Stone 树形进位网络实现了对数级进位延迟,单周期完成 64 位加法。但这种进步以晶体管数量为代价 ——Kogge-Stone 网络的硬件复杂度随位数平方增长,在 8087 的 4.5 万晶体管预算中不可实现。
8087 的设计启示在于:在资源受限环境下,算法优化与架构创新的价值不亚于工艺进步。Manchester 进位链和进位跳跃技术至今仍是教学案例,展示了如何用电路级技巧突破理论延迟下限。对于现代 FPGA 和 ASIC 设计者,理解这些经典权衡仍有助于在面积、功耗和性能之间做出明智决策。
资料来源
- Ken Shirriff, "The adder at the heart of Intel's 8087 floating-point chip", righto.com, 2026 年 6 月
- Intel Corporation, "Data Processing Apparatus", US Patent USRE33629E, 1985 年(8087 浮点单元专利)
内容声明:本文无广告投放、无付费植入。
如有事实性问题,欢迎发送勘误至 i@hotdrydog.com。