Intel 8087 浮点芯片核心的加法器

2026-06-13 1 阅读 pwg
Intel 8087 浮点芯片核心的加法器 1980 年,Intel 发布了 Intel 8087 浮点协处理器,这款芯片可以使数学运算速度提高 100 倍。除了算术和平方根之外,8087 还可以计算超越函数,包括正切、指数和对数。但这一切都依赖于 69 位加法器:正如该专利所描述的那样,“浮点执行单元的算术核心以由加法器及其相关寄存器、移位器和控制电路组成的纳米机器为中心”。在本文中,我将解释该加法器的电路。下图显示了显微镜下的 8087 芯片。在芯片边缘周围,细如发丝的接合线将芯片与其 40 个外部引脚连接起来。芯片上的复杂图案由其金属布线以及下方的多晶硅和硅形成。在芯片的顶部,总线接口单元连接到系统的其余部分:与主 8086 处理器和内存协调。芯片的指令是由中间的大微码ROM定义的。 Intel 8087浮点单元芯片的裸片,标有相关功能块。模具尺寸为5mm×6mm。单击查看更大的图像。芯片的下半部分是“数据路径”,即执行计算的电路;它分为处理浮点数指数的指数数据路径和处理小数部分(或有效数)的分数数据路径。加法器(红色)位于分数数据路径的中间;要对指数执行加法,必须将指数复制到分数数据路径。加法器的结构 构建二进制加法器很容易;困难的部分是让它变得更快。关键问题是如何处理从一个位到下一个位的进位。每个进位都可能依赖于所有较低的进位,但您不想等待进位波及所有 69 位的逻辑。 (这类似于使用长加法进行 999999+1:您需要进位 1,进位 1,...) 8087 的加法器通过将加法分解为 4 位块来提高性能,并使用两种技术来加快每个块内的计算速度。进位需要从一个块传送到另一个块,但这将进位步数减少了四倍。 8087 加法器中四位块的简化图。上图显示了一个4位块的结构,暂时抽象了进位生成电路。加法器有两个输入:一个 (F) 来自芯片的分数总线,该总线连接分数数据路径的组件。第二个输入 ( B ) 来自称为 B 寄存器的寄存器。和的每一位都是通过对 F 输入、B 输入以及进位到该位位置进行异或运算而产生的。 1 由于下面将解释的原因,中间值 (FXOR B) 称为“传播”。每个块的进位输出与下一个块的进位输入相关联。但是进位电路内部发生了什么? 1959年,曼彻斯特大学的研究人员为一台名为Atlas的计算机开发了一种快速进位技术。这种技术称为曼彻斯特进位链,它通过并行设置开关来计算进位值,然后让进位在开关控制下通过电线快速传播。尽管进位仍然需要逐位传输,但它以导线中信号的速度传输,不会因逻辑门而减慢。 2 曼彻斯特进位链是围绕生成、传播和删除(也称为 Kill)的概念构建的,这些概念在添加两个位和一个进位时出现。如果加上 1+1 ,无论是否有进位,都会生成进位。相反,如果添加 0+0 ,则无论进位如何,都不会出现进位;任何进位都会被删除。有趣的情况是,如果您添加 0+1 :仅当有进位输入时才会产生进位结果;也就是说,进位被传播到进位输出。用逻辑术语来说,生成信号是两个输入位的“与”,删除信号是“或非”,传播信号是“异或”。重要的是,可以在恒定时间内并行计算所有位位置的这些信号。曼彻斯特连锁店背后的理念。请注意,低位位于左侧,因此进位从左向右流动。曼彻斯特进位链的构造如上,每个位的开关根据生成/传播/删除值设置。一旦设置了开关,进位状态就会快速流过电路,在每个位置产生进位值,没有任何逻辑延迟。如果传播开关闭合,则前一个进位通过。但如果生成或删除开关闭合,则分别设置或清除进位。一旦进位值可用,就可以与 XOR 并行计算最终总和。 8087 使用曼彻斯特进位链的优化电路,结合了生成和删除情况。加法器进位链的一级如下所示。 F