內(nèi)核相連
協(xié)處理器可以附屬于ARM處理器。一個(gè)協(xié)處理器通過擴(kuò)展指令集或提供配置寄存器來擴(kuò)展內(nèi)核處理功能。一個(gè)或多個(gè)協(xié)處理器可以通過協(xié)處理器接口與ARM內(nèi)核相連。
協(xié)處理器可以通過一組專門的、提供load-store類型接口的ARM指令來訪問。例如協(xié)處理器15(CP15),ARM處理器使用協(xié)處理器15的寄存器來控制cache、TCM和存儲(chǔ)器管理。
擴(kuò)展指令集
協(xié)處理器也能通過提供一組專門的新指令來擴(kuò)展指令集。例如,有一組專門的指令可以添加到標(biāo)準(zhǔn)ARM指令集中,以處理向量浮點(diǎn)(VFP)運(yùn)算。
這些新指令是在ARM流水線的譯碼階段被處理的。如果在譯碼階段發(fā)現(xiàn)是一條協(xié)處理器指令,則把它送給相應(yīng)的協(xié)處理器。如果該協(xié)處理器不存在,或不認(rèn)識(shí)這條指令,則ARM認(rèn)為發(fā)生了未定義指令異常。這也使得編程者可以用軟件來仿真協(xié)處理器的行為(使用未定義指令異常服務(wù)子程序)。
超級CPU協(xié)處理器的消亡
80486CPU之前有協(xié)處理器,提高浮點(diǎn)運(yùn)算能力,那時(shí)cpu較弱才有的協(xié)處理器,現(xiàn)在速度是原來數(shù)百倍不止,pc機(jī)一般不存在協(xié)處理器了。
ARM 微處理器
ARM 微處理器可支持多達(dá) 16 個(gè)協(xié)處理器,用于各種協(xié)處理操作,在程序執(zhí)行的過程中,每個(gè)協(xié)處理器只執(zhí)行針對自身的協(xié)處理指令,忽略 ARM 處理器和其他協(xié)處理器的指令。ARM 的協(xié)處理器指令主要用于 ARM 處理器初始化 ARM 協(xié)處理器的數(shù)據(jù)處理操作,以及在ARM 處理器的寄存器和協(xié)處理器的寄存器之間傳送數(shù)據(jù),和在 ARM 協(xié)處理器的寄存器和存儲(chǔ)器之間傳送數(shù)據(jù)。 ARM 協(xié)處理器指令包括以下 5 條: — CDP 協(xié)處理器數(shù)操作指令— LDC 協(xié)處理器數(shù)據(jù)加載指令— STC 協(xié)處理器數(shù)據(jù)存儲(chǔ)指令— MCR ARM 處理器寄存器到協(xié)處理器寄存器的數(shù)據(jù)傳送指令— MRC 協(xié)處理器寄存器到ARM 處理器寄存器的數(shù)據(jù)傳送指令
ARM協(xié)處理器包括以下5條:
CDP:協(xié)處理器數(shù)據(jù)操作指令。
LDC:協(xié)處理器數(shù)據(jù)加載指令。
STC:協(xié)處理器數(shù)據(jù)存儲(chǔ)指令。
MCR:ARM處理器寄存器到協(xié)處理器寄存器的數(shù)據(jù)傳送指令。
MRC:協(xié)處理器寄存器到ARM處理器寄存器的數(shù)據(jù)傳送指令
內(nèi)容來自百科網(wǎng)