转载自:百度百科 https://baike.baidu.com/item/%E5%8D%8F%E5%A4%84%E7%90%86%E5%99%A8/7361259?fr=aladdin
协处理器(coprocessor),一种 芯片,用于减轻系统微处理器的特定处理任务。
协处理器,这是一种协助 中央处理器完成其无法执行或执行效率、效果低下的处理工作而开发和应用的处理器。这种中央处理器无法执行的工作有很多,比如设备间的信号传输、接入设备的管理等;而执行效率、效果低下的有图形处理、声频处理等。为了进行这些处理,各种辅助处理器就诞生了。需要说明的是,由于现在的计算机中,整数运算器与浮点运算器已经集成在一起,因此浮点处理器已经不算是辅助处理器。而内建于CPU中的协处理器,同样不算是辅助处理器,除非它是独立存在。

简介

特定处理任务

例如, 数学协处理器可以控制数字处理;图形协处理器可以处理视频绘制。例如,intel pentium 微处理器就包括内置的数学协处理器。

内核相连

协处理器可以附属于 ARM处理器。一个协处理器通过 扩展指令集或提供配置寄存器来扩展内核处理功能。一个或多个协处理器可以通过协处理器接口与ARM内核相连  [1] 。
协处理器可以通过一组专门的、提供load-store类型接口的ARM指令来访问。例如协处理器15(CP15),ARM处理器使用协处理器15的 寄存器来控制cache、 TCM和 存储器管理。

扩展指令集

协处理器也能通过提供一组专门的新指令来扩展指令集。例如,有一组专门的指令可以添加到标准ARM指令集中,以处理向量 浮点(VFP)运算。
这些新指令是在ARM流水线的 译码阶段被处理的。如果在译码阶段发现是一条协处理器指令,则把它送给相应的协处理器。如果该协处理器不存在,或不认识这条指令,则ARM认为发生了未定义指令异常。这也使得编程者可以用软件来仿真协处理器的行为(使用未定义指令异常服务 子程序)。

内部结构

协处理器80x87的内部结构如图所示。它可分为二个主要部分:控制部件(CU)和数值执行部件(NEU)。

控制部件(CU)把协处理器接到CPU的系统总线上,协处理器和CPU都监视正在执行的指令流。如果当前将要执行的指令是协处理器指令(即:ESCape指令),那么,协处理器会自动执行它,否则,该指令将交给CPU来执行。
数值执行部件(NEU)复制执行所有的协处理器指令,它有一个用8个80位的寄存器组成的堆栈,该堆栈用于以扩展精度的浮点数据格式来存放数学指令的操作数和运算结果。在协处理器指令的执行过程中,要么指定该堆栈寄存器中的数据,要么使用压栈/出栈机制来从栈顶存放或读取数据。
在NEU部件中,还有一些记录协处理器工作状态的寄存器,如: 状态寄存器、 控制寄存器、标记寄存器和异常指针寄存器等。有关这些寄存器的作用将在后面给予分别介绍。

现代PC协处理器

2006年, AGEIA宣布了PhysX物理加速卡, PhysX被设计来处理那些耗时复杂的物理计算。2008年,Nvidia收购了AGEIA, NVIDIA将PhysX物理引擎,利用CUDA技术,由显示核心加速运算。
2008年,Khronos Group发布OpenCL,这是一个通用语言,支持ATI/AMD和Nvidia的 GPU。
2012年,Intel宣布Intel Xeon Phi协处理器。
2013年,苹果在iPhone 5s上首次推出了M7运动协处理器  [2] 。

超级CPU

协处理器的消亡

80486CPU之前有协处理器,提高 浮点运算能力,那时cpu较弱才有的协处理器,速度是原来数百倍不止,pc机一般不存在协处理器了。

ARM 微处理器

ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的 寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。 ARM 协处理器指令包括以下 5 条: — CDP 协处理器数操作指令— LDC 协处理器数据加载指令— STC 协处理器数据存储指令— MCR ARM 处理器寄存器到协处理器寄存器的 数据传送指令— MRC 协处理器寄存器到ARM 处理器寄存器的数据传送指令。
ARM:协处理器包括以下5条:
CDP:协处理器数据操作指令。
LDC:协处理器数据加载指令。
STC:协处理器数据存储指令。
MCR:ARM处理器寄存器到协处理器寄存器的 数据传送指令。
MRC:协处理器寄存器到ARM处理器寄存器的数据传送指令  [3]

【BASE】协处理器相关推荐

  1. 鸿蒙轻内核源码分析:MMU协处理器

    摘要:本系列首先了解下ARM CP15协处理器的知识,接着介绍下协处理器相关的汇编指令,最后分析下MMU相关汇编代码. 本文分享自华为云社区<鸿蒙轻内核A核源码分析系列六 MMU协处理器> ...

  2. arm 协处理器cp14 cp15

    ARM926EJ-S/ARM920T 协处理器 CP14, CP15详解 ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令, ...

  3. CP 15 协处理器

    4.1.1   访问 CP15 寄存器的指令 访问 CP15 寄存器指令的编码格式及语法说明如下: 31  28 27  24 23  21 20 19  16 15  12 11  8 7  5 4 ...

  4. 关于ARM9中的协处理器CP15及MCR/MRC指令

    最近在看2440的启动代码, 刚开始就被卡住了,同时发现自己不会的东西是越来越多啊,收藏一下 http://6xudonghai.blog.163.com/blog/static/3364062920 ...

  5. MIPS指令集:运算指令、访存指令、分支和跳转、协处理器0指令

    计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程.通常一条指令包括两方面的内容: 操作码和操作数,操作码决定要完成的操作,操作数指参加运算 ...

  6. 《Linux内核剖析》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+Makefile+块设备驱动+字符设备驱动+数学协处理器+文件系统+内存管理+GDB+立钻哥哥+==)

    <Linux内核剖析> <Linux内核剖析> 版本 作者 参与者 完成日期 备注 YanlzLinux_Kernel0.12_V01_1.0 严立钻 2020.02.06 # ...

  7. ARM9协处理器CP15及MCR和MRC指令

    在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的.CP15包含16个32位的寄存器,其编号为0~15. 访问CP15寄存器的指令 MCR   ARM寄存器到协处理器寄存 ...

  8. 协处理器CP15介绍—MCR/MRC指令

    概述:在基于ARM的嵌入式应用系统中,存储系统的操作通常是由协处理器CP15完成的.CP15包含16个32位的寄存器,其编号为0-15. 而访问CP15寄存器的指令主要是MCR和MRC这两个指令. 例 ...

  9. 协处理器CP15介绍—MCR/MRC指令(6)

    概述:在基于ARM的嵌入式应用系统中,存储系统的操作通常是由协处理器CP15完成的.CP15包含16个32位的寄存器,其编号为0-15. 而访问CP15寄存器的指令主要是MCR和MRC这两个指令. 例 ...

最新文章

  1. Linux多线程编程(一)---多线程基本编程
  2. oracle desc能看约束,ORACLE 12C新特性-DESC显示不可见字段 | 信春哥,系统稳,闭眼上线不回滚!...
  3. java io读取文件夹_JavaIO利用迭代读取文件夹所有目录及文件
  4. 上传到服务器gd不支持,安装dedecms出现GD不支持。我的php5.5的。怎么解决?
  5. 计算机里的东西不小心删除如何恢复,原先在电脑界面上的文件不小心删除了怎么恢复,谢谢了...
  6. 联想rd650怎么装系统win7_Lenovo g50重装win7系统|U盘重装联想g50笔记本系统
  7. css中如何实现帧布局_浅谈web前端中的表格布局与CSS盒子布局
  8. threadlocal的set()方法中的内存回收
  9. HTML5 3D爱心动画及其制作过程
  10. Java多线程——Condition条件
  11. java过滤器执行按什么排序_servlet过滤器及监听器
  12. JS中Ajax的方法和应用
  13. 一键生成ai伪原创文章的方法
  14. 20155305《网络对抗》信息搜集与漏洞扫描
  15. SpringBoot自动装配的魔力
  16. Shannon-Fano编码——原理与实现
  17. DPDK 编译安装(meson ninja)
  18. 无盘服务器chkdsk *: /f)修复命令,巧用CHKDSK命令修复U盘文件或目录损坏问题
  19. Data too long for column 'name' at row 1
  20. http://www.dewen.net.cn/q/15800/php如何生成十进制00到20之间的2位随机数

热门文章

  1. 10、JSP快速入门
  2. ASCLL码表的区域划分
  3. python 用geopandas,rasterio,gdal完成arcgis分区统计功能(zonal)
  4. MOSFET规格书导读
  5. vim8.0 c++开发环境配置
  6. 基于javaweb+jsp的校园快递管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap)
  7. io模型之完成端口简单实现,详解
  8. Android使用ExoPlayer播放音频实现报听写功能
  9. 图像增强的计算机实现实验报告,数字图像(图像增强)实验报告
  10. ISO27001电脑硬性要求。