複製鏈接
請複製以下鏈接發送給好友

協處理器

鎖定
協處理器(coprocessor),一種芯片,用於減輕系統微處理器的特定處理任務。
協處理器,這是一種協助中央處理器完成其無法執行或執行效率、效果低下的處理工作而開發和應用的處理器。這種中央處理器無法執行的工作有很多,比如設備間的信號傳輸、接入設備的管理等;而執行效率、效果低下的有圖形處理、聲頻處理等。為了進行這些處理,各種輔助處理器就誕生了。需要説明的是,由於現在的計算機中,整數運算器與浮點運算器已經集成在一起,因此浮點處理器已經不算是輔助處理器。而內建於CPU中的協處理器,同樣不算是輔助處理器,除非它是獨立存在。
中文名
協處理器
外文名
coprocessor
類    型
一種芯片
用    途
用於減輕系統微處理器
功    能
協助中央處理器完成其無法執行或執行效率、效果低下的處理工作
示    例
控制數字處理;處理視頻繪製等

協處理器簡介

協處理器特定處理任務

例如,數學協處理器可以控制數字處理;圖形協處理器可以處理視頻繪製。例如,intel pentium 微處理器就包括內置的數學協處理器。

協處理器內核相連

協處理器可以附屬於ARM處理器。一個協處理器通過擴展指令集或提供配置寄存器來擴展內核處理功能。一個或多個協處理器可以通過協處理器接口與ARM內核相連 [1] 
協處理器可以通過一組專門的、提供load-store類型接口的ARM指令來訪問。例如協處理器15(CP15),ARM處理器使用協處理器15的寄存器來控制cache、TCM存儲器管理

協處理器擴展指令集

協處理器也能通過提供一組專門的新指令來擴展指令集。例如,有一組專門的指令可以添加到標準ARM指令集中,以處理向量浮點(VFP)運算。
這些新指令是在ARM流水線的譯碼階段被處理的。如果在譯碼階段發現是一條協處理器指令,則把它送給相應的協處理器。如果該協處理器不存在,或不認識這條指令,則ARM認為發生了未定義指令異常。這也使得編程者可以用軟件來仿真協處理器的行為(使用未定義指令異常服務子程序)。

協處理器內部結構

圖1 圖1
協處理器80x87的內部結構如圖1所示。它可分為二個主要部分:控制部件(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] 
參考資料