多处理器配置概述

17 Mar 2025 | 5 分钟阅读

多处理器 是一组同时执行指令的多个处理器。

多处理器基本上有三种配置

  • 协处理器配置
  • 紧耦合配置
  • 松耦合配置

协处理器配置

协处理器执行与微处理器相同的任务。它是在微处理器芯片上专门设计的电路,用于减少主处理器的负载。它共享相同的内存、I/O 系统、总线、控制逻辑和时钟发生器。

协处理器处理特殊任务,如数学计算、屏幕上的图形显示等。

Intel 8086 和 8087 无法执行复杂的数学运算,因此在这些情况下,微处理器需要像 Intel 8087 数学协处理器这样的数学协处理器,它可以轻松地快速执行复杂的数学运算。

Multiprocessor Configuration

图:协处理器配置的框图

处理器和协处理器之间的连接

  • 处理器和协处理器通过 RQ-/GT-、TEST、QS0 和 QS1 信号连接。
  • TEST 信号连接到协处理器的 BUSY 引脚,其余 3 个引脚连接到协处理器的相同引脚。
  • RQ-/GT-:该信号用于总线仲裁。
  • QS0 和 QS1:这些用于跟踪主处理器的队列状态。
  • TEST:此信号用于处理协处理器的活动,即协处理器空闲还是繁忙。

紧耦合配置

紧耦合配置与协处理器配置完全相似。与协处理器一样,它也与主处理器共享相同的内存、I/O 系统总线和控制逻辑以及控制发生器。

然而,主处理器和协处理器提取并执行它们自己的指令。系统总线由协处理器和主处理器独立处理。

Multiprocessor Configuration

图:紧耦合配置的框图

处理器和独立处理器如何连接?

  • 内存空间用于提供独立处理器和主处理器之间的连接。
  • 它不使用任何指令,如 WAIT、ESC 等进行通信。
  • 主处理器向端口发送命令,以管理内存并唤醒独立处理器。
  • 独立处理器访问内存并执行任务。
  • 当任务完成后,它通过状态信号或中断请求向主处理器发送确认信号。

松耦合配置

松耦合多处理器配置由多个基于微处理器的系统模块组成,这些模块通过公共系统总线连接。此配置的每个模块都有自己的时钟发生器、内存、I/O 设备,并通过本地总线连接。

Multiprocessor Configuration

图:松耦合配置的框图

8087 数值数据处理器

8087 数值数据处理器 也称为数学协处理器、浮点单元或数值处理器扩展。

它最初由 Intel 设计,用于与 8086/8088 配对,从而实现更容易、更快的计算。

一旦 8086/8088 处理器识别出指令,它就会被发送到 8087 协处理器以进行进一步执行。

Intel 8087 支持的数据类型有

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

8087 数值数据处理器的特点

  • 它支持不同的数据类型,如整数、浮点数和实数类型,范围从 2 到 10 字节。
  • 它遵循 IEEE 浮点标准。
  • 处理速度非常高。

8087 架构

  • 8087 架构分为两组,即
    • 控制单元 (CU)
    • 数值扩展单元 (NEU)
  • 控制单元 负责处理器和内存之间的所有通信,例如读取和写入内存操作数,接收和解码指令,维护并行队列等。
  • 数值扩展单元 (NEU) 负责所有数值处理器指令,如算术、逻辑、超越和数据传输指令。它有 8 个寄存器堆栈,用于保存指令的操作数及其结果。
  • CU 和 NEU 相互异步工作。
  • Intel 8087 使用 QS0 和 QS1 引脚来获取和识别主机 CPU 提取的指令。
  • 所有协处理器指令都由转义 (ESC) 指令代码位标识,即它们以“F”开头。协处理器仅执行转义指令,而其他指令由微处理器执行。
  • 一旦 CPU 识别出 ESC 代码,它就会触发 8087 中数值处理器指令的执行。
  • 在执行过程中,ESC 代码标识需要或不需要内存操作数的协处理器指令。如果 CPU 不需要任何内存操作数,它将直接执行,否则将使用 8086 中允许的任何一种寻址模式来计算操作数的物理地址,并且 CPU 启动 1 个虚拟读取周期。
  • 然后 8087 准备好执行输出,CU 从 8086 获取总线的控制权,并执行一个写入周期以将输出写入预先指定的地址的内存中。
  • 微代码控制单元生成执行指令所需的控制信号。
  • 可编程移位器用于在执行 FMUL 和 FDIV 等指令期间移位操作数。
Multiprocessor Configuration

图:8087 协处理器的架构

8087 引脚描述

Multiprocessor Configuration

图: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 的条件如下所示

QS0QS1地位
00无操作
01来自队列的第一个操作码字节
10清空队列
11来自队列的后续字节
  • INT:这是一个中断信号,用于指示在执行期间已接收到未屏蔽的异常。
  • BUSY (输出):当 BUSY 信号高时,它向 CPU 指示繁忙状态。
  • READY (输入):只要 CPU 需要,该信号用于拒绝协处理器的内部活动并为其准备进一步的执行。
  • S0S1S2这些是状态信号,给出操作的状态,总线控制器 8087 使用这些信号来生成内存和 I/O 控制信号。
S2S1S0地位
0XX未使用
100未使用
101内存读取
110内存写入
111无源
  • RQ/GT1RQ/GT0这些是请求/授权信号,8087 处理器使用这些信号从主机处理器 8086/8088 获取总线的控制权以进行操作数传输。
  • CLK (输入):该输入提供处理器操作的基本时序。
  • VCC:电源 +5V。