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