如圖2所示,Blackfin處理器內(nèi)核包含2個(gè)16位乘法器、2個(gè)40位累加器、2個(gè)40位ALU、4個(gè)視頻ALU和1個(gè)40位移位器。計(jì)算單元處理來自寄存器文件的8位、16位或32位數(shù)據(jù)。 計(jì)算寄存器文件包含8個(gè)32位寄存器。對16位操作數(shù)數(shù)據(jù)執(zhí)行運(yùn)算時(shí),寄存器文件作為16個(gè)獨(dú)立的16位寄存器工作。用于運(yùn)算的所有操作數(shù)都來自多端口寄存器文件和指令常數(shù)字段。 每個(gè)MAC在每個(gè)周期可以執(zhí)行一個(gè)16位乘16位乘法,結(jié)果累加到40位累加器中。支持帶符號(hào)和無符號(hào)格式、舍入以及飽和。 ALU用于對16位或32位數(shù)據(jù)執(zhí)行傳統(tǒng)的算術(shù)和邏輯運(yùn)算。此外,它還包括許多特殊指令,以便加速多種信號(hào)處理任務(wù)的執(zhí)行。特殊指令包括字段提取和二進(jìn)制位個(gè)數(shù)統(tǒng)計(jì)等位操作、模232乘法、除法原語、飽和和舍入、符號(hào)/指數(shù)檢測。視頻指令集包括字節(jié)對齊和打包操作、16位和8位截除加法、8位平均操作、8位減法/絕對值/累加(SAA)操作。此外還提供比較/選擇和矢量搜索指令。 對于某些指令,兩個(gè)16位ALU操作可以在寄存器對(一個(gè)計(jì)算寄存器的16位高半部分和16位低半部分)上同時(shí)執(zhí)行。如果使用第二個(gè)ALU,則可以同時(shí)執(zhí)行4個(gè)16位操作。 40位移位器可以執(zhí)行移位和旋轉(zhuǎn),用于支持歸一化、字段提取和字段存放指令。 程序序列器控制指令執(zhí)行流程,包括指令對齊和解碼。對于程序流程控制,該序列器支持PC相對和間接條件跳轉(zhuǎn)(帶靜態(tài)分支預(yù)測)以及子例程調(diào)用。硬件支持零開銷循環(huán)。該架構(gòu)完全聯(lián)鎖,意味著在執(zhí)行具有數(shù)據(jù)相關(guān)性的指令時(shí),編程人員無需管理流水線。 地址算法單元提供兩個(gè)地址,用于實(shí)現(xiàn)同時(shí)雙取存儲(chǔ)器操作。它包含一個(gè)多端口寄存器文件,該寄存器文件由4組32位索引、更改、長度、基礎(chǔ)寄存器(用于循環(huán)緩沖)和8個(gè)附加32位指針寄存器(用于C式索引堆棧操作)組成。 Blackfin處理器支持一種改進(jìn)型Harvard架構(gòu)和分層存儲(chǔ)器結(jié)構(gòu)。第一級(jí)(L1)存儲(chǔ)器通常以處理器最高速度工作,延遲非常短或無延遲。在L1層,指令存儲(chǔ)器僅保存指令。數(shù)據(jù)存儲(chǔ)器保存數(shù)據(jù),一個(gè)專用暫存數(shù)據(jù)存儲(chǔ)器存儲(chǔ)堆棧和本地變量信息。 提供了多個(gè)L1存儲(chǔ)器模塊。存儲(chǔ)器管理單元(MMU)為可能在內(nèi)核上工作的各個(gè)任務(wù)提供存儲(chǔ)器保護(hù),并且能夠防止對系統(tǒng)寄存器進(jìn)行非預(yù)期的訪問。 該架構(gòu)提供三種工作模式:用戶模式、管理員模式和仿真模式。用戶模式對某些系統(tǒng)資源的訪問權(quán)限是有限制的,從而提供一種受保護(hù)的軟件環(huán)境,而管理員模式則能無限制地訪問系統(tǒng)和內(nèi)核資源。 Blackfin處理器的指令集經(jīng)過優(yōu)化,16位操作碼代表最常用的指令,因而可獲得出色的編譯代碼密度。復(fù)雜的DSP指令則編碼為32位操作碼,以實(shí)現(xiàn)完備的多功能指令。 Blackfin處理器支持有限的指令級(jí)并行功能,一個(gè)32位指令可以與兩個(gè)16位指令并行發(fā)出,使得編程人員能在一個(gè)指令周期中使用許多內(nèi)核資源。 Blackfin處理器的匯編語言使用代數(shù)語法,易于編碼和閱讀。該架構(gòu)經(jīng)過優(yōu)化,能夠與C/C++編譯器一起使用,軟件實(shí)現(xiàn)快速、高效。 |