多处理器配置概述17 Mar 2025 | 5 分钟阅读 多处理器 是一组同时执行指令的多个处理器。 多处理器基本上有三种配置 协处理器配置协处理器执行与微处理器相同的任务。它是在微处理器芯片上专门设计的电路,用于减少主处理器的负载。它共享相同的内存、I/O 系统、总线、控制逻辑和时钟发生器。 协处理器处理特殊任务,如数学计算、屏幕上的图形显示等。 Intel 8086 和 8087 无法执行复杂的数学运算,因此在这些情况下,微处理器需要像 Intel 8087 数学协处理器这样的数学协处理器,它可以轻松地快速执行复杂的数学运算。  图:协处理器配置的框图 处理器和协处理器之间的连接- 处理器和协处理器通过 RQ-/GT-、TEST、QS0 和 QS1 信号连接。
- TEST 信号连接到协处理器的 BUSY 引脚,其余 3 个引脚连接到协处理器的相同引脚。
- RQ-/GT-:该信号用于总线仲裁。
- QS0 和 QS1:这些用于跟踪主处理器的队列状态。
- TEST:此信号用于处理协处理器的活动,即协处理器空闲还是繁忙。
紧耦合配置紧耦合配置与协处理器配置完全相似。与协处理器一样,它也与主处理器共享相同的内存、I/O 系统总线和控制逻辑以及控制发生器。 然而,主处理器和协处理器提取并执行它们自己的指令。系统总线由协处理器和主处理器独立处理。  图:紧耦合配置的框图 处理器和独立处理器如何连接?- 内存空间用于提供独立处理器和主处理器之间的连接。
- 它不使用任何指令,如 WAIT、ESC 等进行通信。
- 主处理器向端口发送命令,以管理内存并唤醒独立处理器。
- 独立处理器访问内存并执行任务。
- 当任务完成后,它通过状态信号或中断请求向主处理器发送确认信号。
松耦合配置松耦合多处理器配置由多个基于微处理器的系统模块组成,这些模块通过公共系统总线连接。此配置的每个模块都有自己的时钟发生器、内存、I/O 设备,并通过本地总线连接。  图:松耦合配置的框图 8087 数值数据处理器8087 数值数据处理器 也称为数学协处理器、浮点单元或数值处理器扩展。 它最初由 Intel 设计,用于与 8086/8088 配对,从而实现更容易、更快的计算。 一旦 8086/8088 处理器识别出指令,它就会被发送到 8087 协处理器以进行进一步执行。 Intel 8087 支持的数据类型有 8087 数值数据处理器的特点 - 它支持不同的数据类型,如整数、浮点数和实数类型,范围从 2 到 10 字节。
- 它遵循 IEEE 浮点标准。
- 处理速度非常高。
8087 架构- 8087 架构分为两组,即
- 控制单元 负责处理器和内存之间的所有通信,例如读取和写入内存操作数,接收和解码指令,维护并行队列等。
- 数值扩展单元 (NEU) 负责所有数值处理器指令,如算术、逻辑、超越和数据传输指令。它有 8 个寄存器堆栈,用于保存指令的操作数及其结果。
- CU 和 NEU 相互异步工作。
- Intel 8087 使用 QS0 和 QS1 引脚来获取和识别主机 CPU 提取的指令。
- 所有协处理器指令都由转义 (ESC) 指令代码位标识,即它们以“F”开头。协处理器仅执行转义指令,而其他指令由微处理器执行。
- 一旦 CPU 识别出 ESC 代码,它就会触发 8087 中数值处理器指令的执行。
- 在执行过程中,ESC 代码标识需要或不需要内存操作数的协处理器指令。如果 CPU 不需要任何内存操作数,它将直接执行,否则将使用 8086 中允许的任何一种寻址模式来计算操作数的物理地址,并且 CPU 启动 1 个虚拟读取周期。
- 然后 8087 准备好执行输出,CU 从 8086 获取总线的控制权,并执行一个写入周期以将输出写入预先指定的地址的内存中。
- 微代码控制单元生成执行指令所需的控制信号。
- 可编程移位器用于在执行 FMUL 和 FDIV 等指令期间移位操作数。
 图:8087 协处理器的架构 8087 引脚描述 图:Intel 8087 的引脚图 - AD0 - AD15:这些是时间复用的地址/数据线,在 T1 时钟周期期间携带地址,在 T2、T3、Tw 和 T4 时钟周期期间携带数据。
- A19/S6 - A16/S3:这些是时间复用的地址/状态线。这些功能类似于 Intel 8086 的引脚。
- BHE/S7:在第一个时钟周期期间,它用于将数据启用到 8086 数据总线的高字节,之后在 T2、T3、Tw 和 T4 时钟周期期间,它用作状态线 S7。
- QS1 - QS0:这些是队列状态输入信号,负责指令队列的状态。
QS1 - QS0 的条件如下所示 QS0 | QS1 | 地位 |
---|
0 | 0 | 无操作 | 0 | 1 | 来自队列的第一个操作码字节 | 1 | 0 | 清空队列 | 1 | 1 | 来自队列的后续字节 |
- INT:这是一个中断信号,用于指示在执行期间已接收到未屏蔽的异常。
- BUSY (输出):当 BUSY 信号高时,它向 CPU 指示繁忙状态。
- READY (输入):只要 CPU 需要,该信号用于拒绝协处理器的内部活动并为其准备进一步的执行。
- 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 获取总线的控制权以进行操作数传输。
- CLK (输入):该输入提供处理器操作的基本时序。
- VCC:电源 +5V。
|