8087 数值数据处理器



8087 数值数据处理器也称为数学协处理器、数值处理器扩展浮点单元。它是英特尔设计的第一款数学协处理器,与 8086/8088 配合使用,从而简化并加快了计算速度。

一旦 8086/8088 处理器识别出指令,就会将其分配给 8087 协处理器进行进一步执行。

8087 支持的数据类型如下:

  • 二进制整数
  • 压缩十进制数
  • 实数
  • 临时实数格式

8087 数值数据处理器的最突出特点如下:

  • 它支持整数、浮点数和实数类型的数据,范围从 2 到 10 字节。

  • 处理速度非常快,可以计算两个 64 位实数的乘法,大约需要 27 微秒,还可以计算平方根,大约需要 35 微秒。

  • 它遵循 IEEE 浮点标准。

8087 架构

8087 架构分为两部分,即控制单元 (CU) 和数值扩展单元 (NEU)。

  • 控制单元处理处理器和内存之间所有通信,例如接收和解码指令、读取和写入内存操作数、维护并行队列等。所有协处理器指令都是 ESC 指令,即它们以“F”开头,协处理器只执行 ESC 指令,而其他指令由微处理器执行。

  • 数值扩展单元处理所有数值处理器指令,如算术、逻辑、超越和数据传输指令。它有 8 个寄存器堆栈,用于保存指令的操作数及其结果。

8087 协处理器的架构如下:

Architecture of 8087

8087 引脚描述

让我们首先看一下 8087 的引脚图:

Pin Diagram 8087

以下列表提供了 8087 的引脚描述:

  • AD0 – AD15 - 这些是时间复用的地址/数据线,在第一个时钟周期内传输地址,从第二个时钟周期开始传输数据。

  • A19 / S6 – A16/S - 这些线是时间复用的地址/状态线。它的功能类似于 8086 的对应引脚。S6、S4 和 S3 永久为高电平,而 S5 永久为低电平。

  • $\overline{BHE}$/S7 - 在第一个时钟周期内,$\overline{BHE}$/S7 用于使能 8086 数据总线上的高字节数据,之后作为状态线 S7 工作。

  • QS1, QS0 - 这些是队列状态输入信号,提供指令队列的状态,其条件如下表所示:

QS0 QS1 状态
0 0 无操作
0 1 队列中的操作码的第一字节
1 0 清空队列
1 1 队列中的后续字节
  • INT - 它是一个中断信号,当执行过程中接收到未屏蔽的异常时,它会变为高电平。

  • BUSY - 它是一个输出信号,当它为高电平时,表示 CPU 处于繁忙状态。

  • READY - 它是一个输入信号,用于通知协处理器总线是否准备好接收数据。

  • RESET - 它是一个输入信号,用于重置协处理器的内部活动,并在 CPU 需要时准备它进行进一步执行。

  • CLK - CLK 输入提供处理器操作的基本时序。

  • VCC - 它是一个电源信号,电路工作需要 +5V 电源。

  • S0, S1, S2 - 这些是状态信号,提供操作的状态,8087 的总线控制器使用这些信号生成内存和 I/O 控制信号。这些信号在第四个时钟周期内有效。

S2 S1 S0 队列状态
0 X X 未使用
1 0 0 未使用
1 0 1 内存读取
1 1 0 内存写入
1 1 1 被动
  • RQ/GT1 & RQ/GT0 - 这些是请求/授予信号,8087 处理器使用它们从主机处理器 8086/8088 获取总线控制权,以进行操作数传输。

广告