8087 是由 Intel 所设计的第一个数学 辅助处理器,并且它是建造来与 Intel 80888086 微处理器成对工作。它是 x87 家族中的第一个,8087 的目的是用来加速应用程式有关 浮点 运算的运算需求。效能的加强依照特定的应用,从 20% 到 500% 不等。

Intel 8087 数学辅助处理器

辅助处理器推出约 60 个新的可利用指令给程式设计师,所有的指令都是以 "F" 开头跟其他的标准 8086/8088 整数运算指令有所区别,举例来说,相对于 ADD/MUL,8087 提供 FADD/FMUL。

8087(以及事实上整个 x87 家族)并不提供自由和线性的暂存器集合(像是 8086/88 和 80286 处理器中的 AX/BX/CX/DX 暂存器)-- x87 暂存器的结构是某些 堆叠 的形式(尽管它并不十分像传统的堆叠资料结构),范围从 ST0 到 ST7。80x87 辅助处理器的浮点指令借由推出和推入数值到堆叠上来运算。

当 Intel 设计 8087 时,他的目标是建立一个标准的浮点格式给未来的设计。事实上,从这个辅助处理器的历史观点来看,一件最成功的事情是为 x86 PC 推出了第一个浮点格式:IEEE 754。8087 提供两个基本的 32/64 位元浮点资料形态和额外的扩展 80 位元之内部支援来改进较大和复杂的运算之精准度。除此之外,8087 提供一个 80 位元/17 位数封装 BCD (二进位编码之十进位 格式以及 16, 32 和 64 位元整数资料形态。

8087 是于 1980年 公开,然后由 80287、80387DX/SX 和 487SX 所替代。Intel 80486DXPentium 和之后的处理器都在CPU核心含有内建的辅助处理器。

8087辅助处理器

通常称能进行浮点运算的处理器为辅助处理器,8087是由英特尔在1980年发布的辅助处理器。这样就可以同时使用8086,8087来提供整数和浮点运算,486DX之后的处理器,均内建了辅助处理器。486DX,奔腾,AMD K5,K6,K7,K8都内建了辅助处理器,486SX,386,386之前的处理器没有,在linux下可以通过开起内核中的

代码: [*] Math emulation

选项来模拟一颗辅助处理器

浮点运算

一个CPU的浮点运算能力,整数运算能力是一颗CPU处理能力的强大重要标志。程序的运行,即是数据的处理过程,一个输入,一个输出。当中经过的就是整数,浮点,逻辑运算

名词解释

  • 浮点数:用科学计数法来表示的数,
    • 通常表示成 其中Z是尾数,S是基数,E是指数。142可以表示成 浮点数应该规格化,即尾数表示成大于等于1小于10的数,在2进制中应该是小于2
    • C语言中的float,double即是浮点数
  • 整数:定点数来表示的数
    • 只能表示整数,或者是纯小数

参考书籍

  • 编码的奥秘