Intel 8087 浮点芯片核心的加法器1980 年Intel 推出了 Intel 8087 浮点协处理器能让数学运算速度提升高达 100 倍。除基本算术和开方运算外还能计算超越函数这依赖于一个 69 位的加法器。专利中描述浮点执行单元的算术核心围绕着一个由加法器及其相关寄存器、移位器和控制电路组成的纳米机器。显微镜下的 8087 芯片裸片边缘键合线将芯片与 40 个外部引脚相连裸片图案由金属布线、多晶硅和硅构成。芯片顶部的总线接口单元与系统其他部分相连负责与主 8086 处理器和内存协调指令由中间的大型微代码只读存储器定义。裸片下半部分是“数据路径”分为指数和小数数据路径加法器位于小数数据路径中间指数加法需将指数复制到小数数据路径。加法器的结构构建二进制加法器不难难的是让它运行更快关键在于处理进位。8087 的加法器将加法运算拆分为 4 位一组的块采用两种技术加快块内计算速度减少进位步骤。加法器有两个输入每一位的和通过对输入及进位进行异或运算得到中间值被称为“传播”。1959 年曼彻斯特大学研究人员为 Atlas 计算机开发了曼彻斯特进位链技术基于生成、传播和删除的概念构建信号可并行计算。8087 采用优化的曼彻斯特进位链电路将生成和删除情况合并。进位链被分成 4 位一组的块由“进位跳过”电路刷新进位。加法器为优化性能使用 NMOS 晶体管进位线预充电到 5V 再拉低块中最后一个多路复用器有四个输入。生成“propagate”信号的电路存在复杂情况“B”输入可被“forceZero”信号阻断。加法器划分为 4 位一组的块使用曼彻斯特进位链和进位跳过电路优化性能但仍需两个时钟周期完成一次加法运算。硅片中的加法器4 位块电路在裸片上垂直堆叠形成完整加法器。金属层呈现为白色线条8087 只有一层金属层金属布线紧密排列。左侧粗垂直金属走线是接地右侧是电源水平走线为加法器块内部提供布线两侧垂直线是控制信号及与芯片底部电路的连接。移除金属层后能看到硅和多晶硅电路多晶硅与掺杂硅交叉形成晶体管电路复杂不规则通过水平金属线连接。图片左右两侧无晶体管多晶硅线加宽以降低电阻硅被“浪费”用于垂直布线。加法器的规模尽管 8087 名义上小数采用 64 位值但加法器接收 69 位输入并生成 70 位输出。原因包括使用三个额外低位比特用于舍入B 寄存器值可加倍需多一位小数总线和 B 值取反需多一位。两个大数相加结果可能需多一位和移位器可将输出右移两位缩减至 68 位“额外”的位由专用寄存器支持。周边电路加法器输入来自小数总线和 B 寄存器输出存储在和寄存器中。8087 为加快乘法运算使用基 4 Booth 乘法乘数存储在跳过移位器中根据位情况加上不同值加法器输出由和移位器右移两位后存储在和寄存器。除法通过重复减法、加法和移位操作实现结果比特位在商寄存器中累加。平方根实现类似手工开平方跳过移位器提供两位附加到加法器输入右侧进行减法或加法操作平方根在 B 寄存器中形成。乘法、除法和开平方运算的循环操作在硬件中实现指令需大量微代码准备参数、处理指数、处理特殊情况并存储结果。结论8087 专利强调加法器的重要性其性能对 8087 整体性能至关重要。虽有更快加法方法但对 8087 有限晶体管数量不可行8087 在复杂度和性能之间平衡采用带有进位跳过加法器的曼彻斯特进位链。
揭秘 Intel 8087 浮点芯片加法器:69 位运算提速 100 倍,性能优化有何奥秘?
Intel 8087 浮点芯片核心的加法器1980 年Intel 推出了 Intel 8087 浮点协处理器能让数学运算速度提升高达 100 倍。除基本算术和开方运算外还能计算超越函数这依赖于一个 69 位的加法器。专利中描述浮点执行单元的算术核心围绕着一个由加法器及其相关寄存器、移位器和控制电路组成的纳米机器。显微镜下的 8087 芯片裸片边缘键合线将芯片与 40 个外部引脚相连裸片图案由金属布线、多晶硅和硅构成。芯片顶部的总线接口单元与系统其他部分相连负责与主 8086 处理器和内存协调指令由中间的大型微代码只读存储器定义。裸片下半部分是“数据路径”分为指数和小数数据路径加法器位于小数数据路径中间指数加法需将指数复制到小数数据路径。加法器的结构构建二进制加法器不难难的是让它运行更快关键在于处理进位。8087 的加法器将加法运算拆分为 4 位一组的块采用两种技术加快块内计算速度减少进位步骤。加法器有两个输入每一位的和通过对输入及进位进行异或运算得到中间值被称为“传播”。1959 年曼彻斯特大学研究人员为 Atlas 计算机开发了曼彻斯特进位链技术基于生成、传播和删除的概念构建信号可并行计算。8087 采用优化的曼彻斯特进位链电路将生成和删除情况合并。进位链被分成 4 位一组的块由“进位跳过”电路刷新进位。加法器为优化性能使用 NMOS 晶体管进位线预充电到 5V 再拉低块中最后一个多路复用器有四个输入。生成“propagate”信号的电路存在复杂情况“B”输入可被“forceZero”信号阻断。加法器划分为 4 位一组的块使用曼彻斯特进位链和进位跳过电路优化性能但仍需两个时钟周期完成一次加法运算。硅片中的加法器4 位块电路在裸片上垂直堆叠形成完整加法器。金属层呈现为白色线条8087 只有一层金属层金属布线紧密排列。左侧粗垂直金属走线是接地右侧是电源水平走线为加法器块内部提供布线两侧垂直线是控制信号及与芯片底部电路的连接。移除金属层后能看到硅和多晶硅电路多晶硅与掺杂硅交叉形成晶体管电路复杂不规则通过水平金属线连接。图片左右两侧无晶体管多晶硅线加宽以降低电阻硅被“浪费”用于垂直布线。加法器的规模尽管 8087 名义上小数采用 64 位值但加法器接收 69 位输入并生成 70 位输出。原因包括使用三个额外低位比特用于舍入B 寄存器值可加倍需多一位小数总线和 B 值取反需多一位。两个大数相加结果可能需多一位和移位器可将输出右移两位缩减至 68 位“额外”的位由专用寄存器支持。周边电路加法器输入来自小数总线和 B 寄存器输出存储在和寄存器中。8087 为加快乘法运算使用基 4 Booth 乘法乘数存储在跳过移位器中根据位情况加上不同值加法器输出由和移位器右移两位后存储在和寄存器。除法通过重复减法、加法和移位操作实现结果比特位在商寄存器中累加。平方根实现类似手工开平方跳过移位器提供两位附加到加法器输入右侧进行减法或加法操作平方根在 B 寄存器中形成。乘法、除法和开平方运算的循环操作在硬件中实现指令需大量微代码准备参数、处理指数、处理特殊情况并存储结果。结论8087 专利强调加法器的重要性其性能对 8087 整体性能至关重要。虽有更快加法方法但对 8087 有限晶体管数量不可行8087 在复杂度和性能之间平衡采用带有进位跳过加法器的曼彻斯特进位链。