8087 数字数据处理器
8087 数字数据处理器也称为数学协处理器、数字处理器扩展和浮点单元。它是英特尔设计的第一款与 8086/8088 配对的数学协处理器,可实现更轻松、更快速的计算。
一旦 8086/8088 处理器识别出指令,就会将其分配给 8087 协处理器进行进一步执行。
8087 支持的数据类型为 −
- 二进制整数
- 压缩十进制数
- 实数
- 临时实数格式
8087 数字数据处理器最突出的特点如下 −
它支持 2-10 个字节的整数、浮点和实数类型的数据。
处理速度非常快,可以计算乘法两个 64 位实数的计算时间约为 27 µs,还可以在 ~35 µs 内计算平方根。
它遵循 IEEE 浮点标准。
8087 架构
8087 架构分为两组,即 控制单元</b> (CU) 和 数字扩展单元 (NEU)。
控制单元</b>处理处理器与内存之间的所有通信,例如接收和解码指令、读取和写入内存操作数、维护并行队列等。所有协处理器指令都是 ESC 指令,即它们以"F"开头,协处理器仅执行 ESC 指令,而其他指令由微处理器执行。
数字扩展单元处理所有数字处理器指令,如算术、逻辑、超越和数据传输指令。它有 8 个寄存器堆栈,用于保存指令的操作数及其结果。
8087 协处理器的架构如下 −
8087 引脚说明
我们先来看看 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 获得总线控制权以进行操作数传输。