辅助处理器
目录
辅助处理器
协处理器是用于补充主处理器 (CPU) 功能的计算机处理器。 协处理器执行的操作可以是浮点算术、图形、信号处理、字符串处理、加密或与xxx设备的 I/O 接口。 通过从主处理器卸载处理器密集型任务,协处理器可以加速系统性能。 辅助处理器允许对一系列计算机进行定制,这样不需要额外性能的客户就无需为此付费。
功能
辅助处理器的自主程度各不相同。 有些(例如 FPU)依赖于通过嵌入在 CPU 指令流中的协处理器指令的直接控制。 其他人本身就是独立的处理器,能够异步工作; 它们仍然没有针对通用代码进行优化,或者由于专注于加速特定任务的指令集有限而无法进行优化。 这些通常由直接内存访问 (DMA) 驱动,主机处理器 (CPU) 构建命令列表。 PlayStation 2 的情感引擎包含一个不寻常的类似 DSP 的 SIMD 矢量单元,能够同时运行两种模式。
历史
为了充分利用大型计算机处理器时间,输入/输出任务被委托给称为通道 I/O 的独立系统。 主机根本不需要任何 I/O 处理,而只是为输入或输出操作设置参数,然后向通道处理器发出信号以执行整个操作。 通过使用相对简单的子处理器来处理耗时的 I/O 格式化和处理,整体系统性能得到提升。
用于浮点运算的辅助处理器于 1970 年代首次出现在台式计算机中,并在整个 80 年代和 90 年代初期变得普遍。 早期的 8 位和 16 位处理器使用软件来执行浮点算术运算。 在支持协处理器的情况下,浮点计算可以快很多倍。 数学协处理器是计算机辅助设计 (CAD) 软件和科学与工程计算用户的热门购买对象。 一些浮点单元,如 AMD 9511、Intel 8231/8232 和 Weitek FPU 被视为xxx设备,而其他如 Intel 8087、Motorola 68881 和 National 32081 则与 CPU 集成得更紧密。
另一种形式的协处理器是视频显示协处理器,用于 Atari 8 位系列、TI-99/4A 和 MSX 家用计算机,称为视频显示控制器。 Amiga 定制芯片组包括一个称为 Copper 的单元,以及一个用于加速内存中位图操作的 blitter。
随着微处理器的发展,将浮点运算功能集成到处理器中的成本下降了。 高处理器速度也使紧密集成的协处理器难以实现。 单独封装的数学协处理器现在在台式计算机中并不常见。 然而,对专用图形协处理器的需求已经增长,特别是由于计算机游戏中对逼真的 3D 图形的需求不断增加。
最初的 IBM PC 包括一个用于 Intel 8087 浮点协处理器(又名 FPU)的插槽,对于使用 PC 进行计算机辅助设计或数学密集型计算的人来说,这是一个流行的选择。 在该体系结构中,协处理器将浮点运算速度提高了 50 倍。 例如,仅使用 PC 进行文字处理的用户节省了协处理器的高成本,而协处理器不会加速文本处理操作的性能。
8087 与 8086/8088 紧密集成,响应插入 8088 指令流中的浮点机器代码操作码。 没有 8087 的 8088 处理器无法解释这些指令,需要 FPU 和非 FPU 系统的不同版本的程序,或者至少在运行时进行测试以检测 FPU 并选择适当的数学库函数。
8086/8088 中央处理器的另一个协处理器是 8089 输入/输出协处理器。 它使用与 8087 相同的编程技术进行输入/输出操作,例如将数据从内存传输到xxx设备,从而减轻 CPU 的负载。

但 IBM 并没有在 IBM PC 设计中使用它,Intel 也停止了这种协处理器的开发。
Intel 80386 微处理器使用可选的数学协处理器(80387)直接在硬件中执行浮点运算。 英特尔 80486DX 处理器在芯片上包含浮点硬件。 英特尔发布了一款成本降低的处理器 80486SX,它没有浮点硬件,还销售了一款 80487SX 协处理器,在安装时基本上禁用了主处理器,因为 80487SX 是一个完整的 80486DX,具有不同的引脚连接集。