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