文章摘要
1980年英特尔发布的8087浮点协处理器大幅提升了数学运算速度,其核心是一个69位加法器,配合寄存器、移位器和控制电路完成复杂运算。文章详细解析了该加法器的电路设计,并展示了芯片显微照片,包括总线接口单元和微码ROM等关键部件。
文章总结
英特尔8087浮点芯片的核心加法器解析
1980年,英特尔发布了8087浮点协处理器,这款芯片能将数学运算速度提升高达100倍。除了算术和平方根运算,8087还能计算正切、指数和对数等超越函数。但所有这些功能都依赖于一个69位加法器——正如专利所述,浮点执行单元的算术核心正是围绕这个加法器及其相关寄存器、移位器和控制电路构建的纳米机器。
芯片结构概览
显微镜下的8087芯片显示,其边缘通过细如发丝的键合线连接40个外部引脚。芯片顶部是总线接口单元,负责与主8086处理器和内存通信;中部是庞大的微码ROM;下半部分则是执行计算的"数据路径",分为处理浮点数指数的"指数数据路径"和处理尾数的"尾数数据路径"。红色标注的加法器位于尾数数据路径中心,指数加法需将指数复制到尾数路径处理。
加法器的设计精髓
构建二进制加法器的难点在于速度优化。8087采用两项关键技术: 1. 4位分块处理:将69位加法分解为4位块,通过曼彻斯特进位链技术,使进位信号以电线传输速度(而非逻辑门延迟)在块内快速传递。 2. 进位预测机制:当块内所有位都处于"传播"状态时,进位可直接跳过该块(进位预测),将进位步骤减少四分之三。
每位的和由三个输入异或产生:两个操作数位(F总线和B寄存器)和进位输入。曼彻斯特进位链通过生成(Generate)、传播(Propagate)和删除(Delete)三种状态控制晶体管开关,其中: - 生成(1+1):强制产生进位 - 删除(0+0):强制消除进位 - 传播(0+1):传递进位输入
电路实现细节
8087采用NMOS工艺,通过预充电技术(将进位线预充至5V代表无进位,接地代表有进位)解决晶体管下拉速度优于上拉的缺陷。每个4位块包含: - 4个多路复用器构成的进位链 - 或非门实现的进位预测电路 - 特殊设计的传播信号电路(含预充电强制高电平功能)
芯片实物显示,金属布线层几乎覆盖整个加法器区域,左右侧分别布置地线和电源线。去除金属层后可见多晶硅与掺杂硅形成的晶体管阵列,其中进位预测电路位于区块中央。
扩展功能设计
虽然8087名义支持64位尾数,但加法器实际设计为: - 69位输入:包含3个舍入位(Guard/Round/Sticky)、1个B寄存器倍增位、1个补码符号位 - 70位输出:支持溢出位,后续通过"和移位器"右移压缩至68位
外围电路协同
加法器与特殊寄存器配合实现复杂运算: - 乘法:采用基4布斯算法,通过跳位移位器快速处理两位乘数 - 除法/平方根:通过硬件循环实现减法和移位操作,比微码实现更高效
历史意义
8087专利强调:"所有算术运算最终都归结为二进制加法。"尽管现代处理器采用更快的Kogge-Stone加法器,但在8087的晶体管限制下,曼彻斯特进位链与进位预测的组合实现了性能与复杂度的完美平衡。
(注:本文保留核心技术细节,删减了部分电路实现图片说明及参考文献列表,完整内容可查看原文。)
评论总结
总结评论内容:
- 作者兴趣说明(kens)
- 主要观点:作者解释对加法器和ALU感兴趣的原因
- 关键引用: "adders and ALUs interesting because they are key to the performance"("加法器和ALU很有趣,因为它们是系统性能的关键") "every system implements them differently"("每个系统的实现方式都不同")
- 技术细节探讨(throwaway152321)
- 主要观点:询问电路供电方式和片上电容问题
- 关键引用: "how power was delivered to these circuits"("电力如何输送到这些电路") "no on die capacitance surrounding these circuits"("电路周围没有片上电容")
- 功能缺失调侃(nine_k)
- 主要观点:幽默指出缺少"vipition"功能
- 关键引用: "a bummer that there is addition but no vipition"("可惜有加法但没有vipition")
- 芯片设计现状观察(JdeBP)
- 主要观点:指出8087缺少可综合RTL设计的情况
- 关键引用: "no-one seems to have produced similar for the 8087"("似乎没有人制作过8087的类似设计") "produced synthesizable RTL HDL for the 8086/8088"("为8086/8088制作了可综合RTL HDL")
注:所有评论均无评分数据。观点分布包括:作者自述(1)、技术提问(1)、幽默评论(1)和行业观察(1)。