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