在奔腾处理器中对先行进位加法器进行逆向工程

主要观点:加法比预期难,计算机使用不同权衡的多位加法器电路。文中介绍了奔腾浮点单元中的 8 位加法器为进位先行加法器(Kogge-Stone 类型),解释了其工作原理及奔腾的实现方式,包括硬件实现、使用并行前缀加法器实现进位先行、奔腾的具体实现等,还提及了其他加法器类型及奔腾中加法器的多种用途等。
关键信息:

  • 奔腾浮点单元的加法器用于除法时确定商数字,是著名的奔腾 FDIV 除法错误的一部分。
  • 进位先行加法器通过并行计算所有进位位来加快加法速度,先计算进位位再计算和位。
  • 定义了“进位产生”(Gn = An·Bn)和“进位传播”(Pn = An+Bn)信号,用于计算每个位的进位。
  • 奔腾的加法器通过四层电路实现,包括产生每位的 P 和 G 信号、合并相邻的 P 和 G 值、生成进位先行位、应用进位位到部分和得到最终和。
  • 介绍了 Kogge-Stone 加法器的工作原理及与奔腾加法器的对应关系,还提及 Brent-Kung 加法器的不同特点。
    重要细节:
  • 原始的 Kogge 和 Stone 论文与加法和进位无关,1987 年其算法才应用于进位先行。
  • 奔腾加法器使用 8 位进位先行加法器但只使用 7 位,底部输出位未连接。
  • 奔腾中用于测试查找表 PLA 的电路在 7 位加法器下方,通过线性反馈移位寄存器进行测试。
  • 关于“进位传播”信号在“1 + 1”时是否设置存在不同做法,取决于使用的门类型。
  • 实现进位先行电路可按块进行,74181 ALU 采用此方法,74182 芯片提供更高层次的进位先行。
  • 前缀加法器通过并行计算所有前缀的进位来加快加法速度。
阅读 9
0 条评论