那什么是协处理器呢?简单来说就是一个硬件电路模块(刚开始是大规模集成电路),是用来协助(辅助)CPU处理特定算法或者逻辑运算的。
弄明白了什么是协处理器,接下来就要搞清楚它为什么会出现?出现最早的应该是8087协处理器是为了增强8086和8088的运算能力,到了386的时候才能利凸显,也算是“怀孕久了才被人看出来”。当时的8086和8088运算能力特别是浮点运算能力严重不足,为了解决这个问题才出现了8087协处理器。同样
有了8087的助力,8086和8088在浮点运算方面和原来的“solo”相比提升了10倍不止。貌似有一个叫“威盛”的制造商也研发了一款内置AI协处理器的CPU,在当时拥有不错的性能也是世界上第一款内置协处理器的CPU。(这个协处理器好像是叫NCORE)
CPU大多数都是通用的,说是“杂而不精”也可以。所以后来为了增强CPU的各项能力出现了格式各样的协处理器,比如设备间的信号传输、接入设备的管理等;而执行效率、效果低下的有图形处理、声频处理等。
这些各式各样的协处理器可以归属于ARM处理器,ARM微处理器可以支持多达16个协处理器,在程序的执行过程中,每个协处理器只对与自己相关的的指令有反应,算得上是“术业有专攻”。ARM协处理器包括5条指令:
CDP:协处理器数据操作指令。
LDC:协处理器数据加载指令。
STC:协处理器数据存储指令。
MCR:ARM处理器寄存器到协处理器寄存器的数据传送指令。
MRC:协处理器寄存器到ARM处理器寄存器的数据传送指令
不过有一点要说明的是,现在的计算机中,整数运算器与浮点运算器已经集成在一起,因此浮点处理器已经不算是辅助处理器。而内建于CPU中的协处理器,同样不算是辅助处理器,除非它是独立存在。