
例如,數(shù)學協(xié)處理器可以控制數(shù)字處理;圖形協(xié)處理器可以處理視頻繪制。例如,intel pentium 微處理器就包括內(nèi)置的數(shù)學協(xié)處理器。
內(nèi)核相連協(xié)處理器可以附屬于ARM處理器。一個協(xié)處理器通過擴展指令集或提供配置寄存器來擴展內(nèi)核處理功能。一個或多個協(xié)處理器可以通過協(xié)處理器接口與ARM內(nèi)核相連。
協(xié)處理器可以通過一組專門的、提供load-store類型接口的ARM指令來訪問。例如協(xié)處理器15(CP15),ARM處理器使用協(xié)處理器15的寄存器來控制cache、TCM和存儲器管理。
協(xié)處理器也能通過提供一組專門的新指令來擴展指令集。例如,有一組專門的指令可以添加到標準ARM指令集中,以處理向量浮點(VFP)運算。這些新指令是在ARM流水線的譯碼階段被處理的。如果在譯碼階段發(fā)現(xiàn)是一條協(xié)處理器指令,則把它送給相應的協(xié)處理器。如果該協(xié)處理器不存在,或不認識這條指令,則ARM認為發(fā)生了未定義指令異常。這也使得編程者可以用軟件來仿真協(xié)處理器的行為(使用未定義指令異常服務(wù)子程序)。
協(xié)處理器80x87的內(nèi)部結(jié)構(gòu)如圖1所示。它可分為二個主要部分:控制部件(CU)和數(shù)值執(zhí)行部件(NEU)。控制部件(CU)把協(xié)處理器接到CPU的系統(tǒng)總線上,協(xié)處理器和CPU都監(jiān)視正在執(zhí)行的指令流。如果當前將要執(zhí)行的指令是協(xié)處理器指令(即:ESCape指令),那么,協(xié)處理器會自動執(zhí)行它,否則,該指令將交給CPU來執(zhí)行。數(shù)值執(zhí)行部件(NEU)復制執(zhí)行所有的協(xié)處理器指令,它有一個用8個80位的寄存器組成的堆棧,該堆棧用于以擴展精度的浮點數(shù)據(jù)格式來存放數(shù)學指令的操作數(shù)和運算結(jié)果。在協(xié)處理器指令的執(zhí)行過程中,要么指定該堆棧寄存器中的數(shù)據(jù),要么使用壓棧/出棧機制來從棧頂存放或讀取數(shù)據(jù)。在NEU部件中,還有一些記錄協(xié)處理器工作狀態(tài)的寄存器,如:狀態(tài)寄存器、控制寄存器、標記寄存器和異常指針寄存器等。有關(guān)這些寄存器的作用將在后面給予分別介紹。
2006年,AGEIA宣布了PhysX物理加速卡, PhysX被設(shè)計來處理那些耗時復雜的物理計算。2008年,Nvidia收購了AGEIA,NVIDIA將PhysX物理引擎,利用CUDA技術(shù),由顯示核心加速運算。2008年,Khronos Group發(fā)布OpenCL,這是一個通用語言,支持ATI/AMD和Nvidia的GPU。2012年,Intel宣布Intel Xeon Phi協(xié)處理器。2013年,蘋果在iPhone 5s上首次推出了M7運動協(xié)處理器。