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