可定制軟微處理器內(nèi)核的配置策略
可定制微處理器內(nèi)核有兩個(gè)特性:可配置性和可擴(kuò)展性??膳渲眯允侵冈O(shè)計(jì)工程師可以更改處理器的現(xiàn)有特性??蓴U(kuò)展性是指能加入處理器本身沒有的功能特點(diǎn),從而增加處理器的基本功能。
本文引用地址:http://m.butianyuan.cn/article/85720.htm從底層修改CPU結(jié)構(gòu)的能力使得用戶可定制處理器很顯著地區(qū)別于傳統(tǒng)的結(jié)構(gòu)固定的CPU,設(shè)計(jì)工程師在設(shè)計(jì)處理器功能時(shí)有更大的自由度,例如:在設(shè)計(jì)時(shí)可以根據(jù)具體的應(yīng)用需要定義一組指令;加入新的通用寄存器;定義新的條件代碼;根據(jù)在仿真器上運(yùn)行的軟件反饋信息來精細(xì)地調(diào)整指令和數(shù)據(jù)緩存的大小和結(jié)構(gòu);在SRAM或邏輯電路內(nèi)實(shí)現(xiàn)內(nèi)核寄存器文件以及加入本地中間結(jié)果暫存RAM;加入強(qiáng)大的DSP處理功能,如乘法累加(MAC)指令和本地XY數(shù)據(jù)存儲器。
此外,輸入輸出(I/O)的配置也很靈活。為了達(dá)到高的I/O速率,設(shè)計(jì)工程師可以將指令總線和數(shù)據(jù)總線分開(哈佛結(jié)構(gòu));為了減少管腳數(shù)和減小封裝成本,數(shù)據(jù)和指令總線用統(tǒng)一總線(馮•諾曼結(jié)構(gòu))。可以把特定應(yīng)用邏輯與處理器內(nèi)核緊密相連,用其本身的I/O總線加入輔助寄存器文件。用戶定義的指令可以提高一些關(guān)鍵軟件算法的性能,從而提高整個(gè)系統(tǒng)的性能。
以前這種設(shè)計(jì)只能是由CPU廠商的高級工程師完成。在可綜合的HDL、先進(jìn)的EDA工具以及可定制的軟處理器內(nèi)核出現(xiàn)后,一般的嵌入式系統(tǒng)設(shè)計(jì)工程師在他們的SoC、ASIC和ASSP設(shè)計(jì)時(shí)就擁有控制系統(tǒng)架構(gòu)的自由。
可定制IP的優(yōu)越性
采用IP供應(yīng)商提供的微處理器可綜合HDL源代碼(VHDL或Verilog格式)的優(yōu)點(diǎn)包括:軟內(nèi)核獨(dú)立于加工工藝、庫、代工廠,因此在生產(chǎn)上有很大的靈活性;用戶可以在這些HDL源代碼基礎(chǔ)上進(jìn)行修改并保護(hù)專有的技術(shù)訣竅。
對用戶可定制處理器內(nèi)核進(jìn)行開發(fā)的初期,只有IP供應(yīng)商定義的最低限度的規(guī)范或基本內(nèi)核。對于一些不需特別優(yōu)化的深度嵌入式應(yīng)用可以使用這種基本內(nèi)核。但是,可定制處理器的真正魅力是其可被修改的特點(diǎn),設(shè)計(jì)工程師可以對基本內(nèi)核進(jìn)行配置并根據(jù)需要進(jìn)行功能擴(kuò)展。
對可定制處理器的配置和功能擴(kuò)展并不一定采用HDL編碼。通過處理器配置圖形工具,設(shè)計(jì)工程師甚至不用看HDL源代碼就可以作大量的修改。通過簡單的“點(diǎn)擊、選擇”界面進(jìn)行選項(xiàng)設(shè)置,配置工具能自動(dòng)生成HDL文件以及用于邏輯綜合的腳本文件。例如對于ARCtangen-A4處理器, ARC處理器內(nèi)核提供如圖所示的ARChitect配置工具。
ARChitect工具允許設(shè)計(jì)工程師設(shè)置和擴(kuò)展指令集、中斷、指令緩存、數(shù)據(jù)緩存、存儲器子系統(tǒng)以及DSP功能,還可以加入外圍器件,如以太網(wǎng)的媒體訪問控制器(MAC)以及用于實(shí)時(shí)處理的32位計(jì)時(shí)器。另外一個(gè)可選的設(shè)置是時(shí)鐘選通,可以關(guān)斷部分不需要的電路,具有節(jié)電功能。
ARCtangen-A4處理器的基本指令集包括所有的基本算術(shù)指令、邏輯指令、加載/存儲以及分支/跳轉(zhuǎn)操作指令,這些指令是典型的嵌入式應(yīng)用所必需的。通過使用ARChitect工具,設(shè)計(jì)工程師可以從一個(gè)庫中選擇另外的指令和功能特點(diǎn)。例如,一個(gè)硬件可控陣列移位器(hardware barrel shifter)和相關(guān)的指令尤其適合用于網(wǎng)絡(luò)信息處理中在數(shù)據(jù)包中插入或提取數(shù)據(jù)包頭或一段數(shù)據(jù)位。還有兩個(gè)不同的硬件乘法器可以用來加速算術(shù)功能以及其它任務(wù)的處理。用于數(shù)字信號應(yīng)用的DSP指令還能在內(nèi)核中優(yōu)化。
可定制處理器供應(yīng)商不可能預(yù)料到系統(tǒng)設(shè)計(jì)工程師需求的所有擴(kuò)展指令,因?yàn)橛脩舳x的指令需要進(jìn)行HDL編碼。為精簡這種擴(kuò)展處理過程,處理器HDL源代碼的設(shè)計(jì)中已經(jīng)考慮了這種擴(kuò)展,在原代碼內(nèi)已經(jīng)清楚地對用戶插入代碼進(jìn)行了標(biāo)記和文件接口。
另外,所加入的額外寄存器非常有用,在配合用戶指令和其它邏輯功能時(shí)尤其如此。例如,一個(gè)“智能”寄存器能自動(dòng)地對寫入該寄存器的值進(jìn)行四舍五入處理;輔助寄存器與用戶邏輯和外圍器件一起能實(shí)現(xiàn)高性能的I/O。
用戶條件代碼是另外一個(gè)使軟件更智能化的方法。在ARCtangen-A4處理器條件下,條件指令集允許通過讀一個(gè)條件代碼(狀態(tài)標(biāo)志)來決定每個(gè)指令是否執(zhí)行。設(shè)計(jì)工程師可以為實(shí)現(xiàn)某個(gè)目標(biāo)來建立自己的條件代碼。例如,網(wǎng)絡(luò)處理器在從網(wǎng)絡(luò)收到一個(gè)數(shù)據(jù)包時(shí)可能會設(shè)置一個(gè)標(biāo)志位?;局噶詈陀脩舳x指令可以根據(jù)條件代碼的狀態(tài)有條件地執(zhí)行。
在整個(gè)開發(fā)周期中,設(shè)計(jì)工程師可以在可定制處理器中反復(fù)分配硬件和軟件的任務(wù)。例如,可以通過仿真器和設(shè)計(jì)工具中Profiler提供的反饋信息,讓那些性能很關(guān)鍵的軟件由用戶指令來實(shí)現(xiàn)??梢远x專用操作數(shù)、助記符、寄存器和功能,從而使設(shè)計(jì)工程師能把內(nèi)部循環(huán)操作由硬件來實(shí)現(xiàn),進(jìn)而執(zhí)行復(fù)雜多周期指令,提高處理器的速度性能。這不僅提高了性能,而且使產(chǎn)品的硬件多樣化,通過提高盜版難度達(dá)到保護(hù)知識產(chǎn)權(quán)的目的。
定制功能并不意味著總要進(jìn)行功能擴(kuò)展。設(shè)計(jì)工程師也可以從處理器中去除不需要的指令和其它功能,減小處理器的門數(shù),降低功耗和制造成本。
靈活的緩存結(jié)構(gòu)
在配置可定制處理器內(nèi)核時(shí),設(shè)計(jì)工程師需要注意緩存結(jié)構(gòu)對功耗和硅片面積的影響。因此要均衡考慮指令緩存和數(shù)據(jù)緩存的結(jié)構(gòu)。
從廣義上說,緩存結(jié)構(gòu)包括直接映射(direct mapped)和多路(multiway)配置兩類。這兩種結(jié)構(gòu)都互有優(yōu)缺點(diǎn),要根據(jù)具體的應(yīng)用來選擇最佳的類型。
直接映射緩存是兩者中較簡單的一類,因此需要的門數(shù)較少。功耗是門數(shù)的函數(shù),所以直接映射緩存的功耗小。但如果直接映射產(chǎn)生的緩存空間丟失(miss)比多路配置緩存更多,那么由于處理器需要經(jīng)常訪問存儲器,功耗反而會增加。
實(shí)際上功耗并不是唯一的考慮因素,在有些應(yīng)用中不允許太多的緩存丟失。例如,由于音頻處理是一個(gè)實(shí)時(shí)處理過程,頻繁的緩存丟失會造成音頻質(zhì)量下降。多路緩存能改善直接映射緩存的不確定性,提高有效訪問率,但其代價(jià)是功耗更大和門數(shù)更多。設(shè)計(jì)工程師在做選擇時(shí)常常難以權(quán)衡。例如,在設(shè)計(jì)電池供電的MP3音播放器時(shí),一方面多路緩存適合于實(shí)時(shí)的音頻處理,另一方面多路緩存功耗更大。這個(gè)矛盾可以從優(yōu)化緩存的大小和結(jié)構(gòu)來解決。利用現(xiàn)在先進(jìn)的仿真工具對設(shè)計(jì)會有很大的幫助。
好的緩存設(shè)計(jì)還有其它的要求。例如線鎖(line locking)功能,能對部分的緩存進(jìn)行保護(hù)以避免在出現(xiàn)緩存遺失時(shí)被處理器刷新。
傳統(tǒng)的CPU結(jié)構(gòu)是固定的,設(shè)計(jì)工程師只能對其作很少的修改甚至是不能改動(dòng)。而用戶可制定的處理器卻給設(shè)計(jì)工程師帶來了最大的自由度,能根據(jù)具體的應(yīng)用進(jìn)行真正的最優(yōu)化設(shè)計(jì)。
本文結(jié)論
如果微處理器以可定制軟IP 形式提供時(shí),在項(xiàng)目進(jìn)行的任何階段都可以進(jìn)行修改。設(shè)計(jì)工程師可以在他們原有的設(shè)計(jì)基礎(chǔ)上改變,而不必放棄原來的設(shè)計(jì)從零開始,這樣更能滿足快速變化的市場要求。如果產(chǎn)品規(guī)范發(fā)展到使原來的軟件運(yùn)行緩慢,設(shè)計(jì)工程師可以改變可定制處理器來解決這個(gè)問題。如果要降低成本,設(shè)計(jì)工程師可以從硬件和軟件中去除一些功能??啥ㄖ栖汭P讓真正了解設(shè)計(jì)的工程師可以設(shè)計(jì)出滿足需要的最優(yōu)化CPU。
評論