如何構(gòu)成理想的CPU內(nèi)核
在不斷發(fā)展的許多重要市場中都可見到多CPU設(shè)計。網(wǎng)絡(luò)路由是率先廣泛應(yīng)用多CPU設(shè)計的領(lǐng)域之一。大多數(shù)新一代網(wǎng)絡(luò)處理器都是基于多CPU設(shè)計的。除了標準NPU,目標ASSP也在利用多處理器建立更加優(yōu)化、更有應(yīng)用針對性的路由解決方案。許多情況下,特殊ASSP是比標準NPU更為有效率的解決方案。ASSP可以集成恰當(dāng)?shù)奈锢斫涌诨蚩紤]片上存儲器的大小,亦或提供最佳的處理器配置。
本文引用地址:http://2s4d.com/article/150829.htm相關(guān)的應(yīng)用如DSLAM和基站或高性能網(wǎng)絡(luò)存儲設(shè)備也在利用分治法建立高性能的可編程解決方案。出于成本和/或功耗的原因,甚至終端用戶設(shè)備也在開始利用多CPU實現(xiàn)最高的性能密度。機頂盒、住宅網(wǎng)關(guān),甚至智能移動設(shè)備也都在采用多CPU——不僅再是一個RISC處理器和一個DSP,而是多個RISC處理器和DSP。
用于多CPU設(shè)計的理想處理器內(nèi)核必須具有以下一些重要特性。
首先最重要的是,它必須可提供出色的性能密度。多CPU設(shè)計的目的是在每平方毫米或每瓦特擁有盡量多的性能集合。能夠以最小空間或最低功耗實現(xiàn)最高MIPS的解決方案才是最佳選擇。
另一個需求是處理器間有效的通信。即使許多多CPU設(shè)計是軟件關(guān)聯(lián)的,仍然需要大量的處理器間的通信。如果沒有用來支持處理器之間通信的結(jié)構(gòu),那么SoC設(shè)計師就必須進行開發(fā)。這些工作不僅要耗費大量時間,同時也給設(shè)計帶來了另一方面的復(fù)雜性。對于處理器間通信的支持可簡化SoC設(shè)計師的工作量,也可以縮短開發(fā)時間,還可以將分區(qū)邊界的低效率降到最低。
多CPU設(shè)計的另一個挑戰(zhàn)的是調(diào)試。內(nèi)核之間是相互影響和彼此依靠的,因此在調(diào)試SoC時了解這些交互行為十分重要。CPU需要具備內(nèi)置能力,在進行調(diào)試時能夠完全互動。如果沒有這種能力,SoC調(diào)試可能會迅速變成一場災(zāi)難,也許更糟——變得完全不可調(diào)試。優(yōu)秀的多CPU調(diào)試工具對于CUP的支持也十分關(guān)鍵,這樣才可以保證SoC設(shè)計師發(fā)揮嵌入CPU的調(diào)試能力。
另外需要考慮的是配置和執(zhí)行CPU內(nèi)核的靈活性水平。在多CPU設(shè)計中,重要的是在最大限度地降低面積和功耗的同時使性能最大化,而一個高度可配置、可合成的CPU有助于設(shè)計師考慮特定應(yīng)用的面積、功率和頻率。利用硬內(nèi)核或不能配置的內(nèi)核是不可能做的這一點的,它將嚴重限制執(zhí)行的選擇。
考慮到上述因素,MIPS科技發(fā)布了專門針對多CPU設(shè)計的CPU內(nèi)核。MIPS32 M4K內(nèi)核具有高性能,不過或許令人驚奇的是,它也是小型的低功耗內(nèi)核,而且還是可合成的,具備低延遲存儲器系統(tǒng)。
讓我們來看看M4K內(nèi)核的映射是否滿足上述要求。
性能密度
性能密度的定義是,以最小的面積提供最高的性能,或是在最小面積上實現(xiàn)最低的功耗。M4K內(nèi)核可用緊湊的面積和功率限制來提供高性能。該產(chǎn)品可提供大約1.35Dhrystone(整數(shù)和邏輯運算性能測試)MIPS/MHz(無需使用其他內(nèi)核使用的受到置疑的編譯器竅門),采用普通0.13μm工藝的產(chǎn)品可在240MHz(最差情況下)條件下運行,采用更高性能的0.13μm工藝的產(chǎn)品可在300MHz條件下運行。
作為性能密度公式的分母部分,M4K內(nèi)核是一個非常小和功耗極低的處理器。該產(chǎn)品可配置成像32K門電路,也就是小于0.3mm2的尺寸,而且仍然可以保持整個MIPS32架構(gòu)的兼容性。該產(chǎn)品的功耗極低,采用0.13μm工藝時可低至0.10mW/MHz。
該內(nèi)核還具有新的增強型MIPS架構(gòu),可改善重要應(yīng)用功能的性能。這些功能包括優(yōu)先化、矢量中斷及多達4個寄存器上下文,以減少中斷延遲和開銷。位域和字節(jié)級指令可提供高效率的信息包處理。
該產(chǎn)品包括自定義指令集擴展,SoC設(shè)計師可利用該功能執(zhí)行所需的專用的、高度集中的應(yīng)用優(yōu)化,并利用定制指令擴展M4K中業(yè)界標準的MIPS32指令集。任何寄存器到寄存器或立即存取寄存器指令都可以進行添加。定制指令可為單周期或多周期,也可支持新用戶狀態(tài)。這些自定義指令是由內(nèi)核RTL、合成腳本和仿真模式支持的,并可使用GreenHills、Cygnus和Mentor等公司的業(yè)界標準開發(fā)工具。
此外,可能最為重要的是,M4K內(nèi)核具有上述所有特性,同時可保持MIPS32的完全兼容性,并可使用MIPS CPU廣泛的軟件和工具。事實上,該內(nèi)核是惟一具有定制指令擴展和業(yè)界標準架構(gòu)的有效的可配置處理器。
處理器間的通信
在多CPU設(shè)計中,處理器間必須進行通信以控制共享資源的使用。在今天的大多數(shù)多CPU設(shè)計中,存儲器關(guān)聯(lián)完全由軟件控制,所以通信所需的普通高速緩存關(guān)聯(lián)是不能使用的。
M4K內(nèi)核通過外部化MIPS架構(gòu)中的加載關(guān)聯(lián)(LL)行為和條件存儲(SC)來支持多CPU信標,以保證對系統(tǒng)邏輯進行必要的監(jiān)控。此外,SYNC指令的行為可提供存儲器排序壁壘,以保證正確的排序語義,也可以提供信號接口,為系統(tǒng)設(shè)計提供最大的控制和靈活性。
如圖2所示,當(dāng)執(zhí)行典型的信標存取碼序列時,LL和SC指令可提供原子型讀-改-寫序列,而無需鎖定整個系統(tǒng)。
例如,在測試和設(shè)置安全自旋鎖定時,LL指令可在信號接口產(chǎn)生一個讀指令,它作為LL由系統(tǒng)進行確認。然后系統(tǒng)按照該地址設(shè)置監(jiān)控。如果另一個處理器寫入這個受到監(jiān)控的地址,監(jiān)控的通過/失敗標記就會被清除。當(dāng)CPU執(zhí)行SC指令時,系統(tǒng)邏輯根據(jù)監(jiān)控狀態(tài)有條件執(zhí)行對存儲器的存儲。通過/失敗指令會返回處理器,而軟件通常會重復(fù)失敗序列,直到成功為止。
同樣,SYNC指令的語義外化可保證系統(tǒng)存儲器壁壘的正確行為。
如圖3的例子所示,SYNC被放置在一個共享緩沖器的最后的存儲與可釋放一個控制語義的存儲之間。當(dāng)執(zhí)行SYNC指令時,CPU向系統(tǒng)邏輯發(fā)送信號,通知CPU等待同步響應(yīng)。一旦系統(tǒng)確認指令可以執(zhí)行,就將信號發(fā)回CPU,允許其后的任務(wù)或存儲繼續(xù)執(zhí)行。一個簡單的系統(tǒng)可能會等待所有未完成處理事務(wù)的完成,而一個更為復(fù)雜的系統(tǒng)可在其列隊中保持順序,而緩沖器可以更快地做出響應(yīng)。這兩種系統(tǒng)中,CPU軟件和硬件機制是相同的。
M4K處理器間的通信功能是一種優(yōu)異的解決方案,得到了業(yè)界標準開發(fā)工具的全面支持。計劃利用M4K內(nèi)核實現(xiàn)多CPU的設(shè)計師,可以利用這些功能快速而容易地實現(xiàn)內(nèi)核之間的通信,縮短設(shè)計時間并降低實現(xiàn)風(fēng)險。
評論