如何構(gòu)成理想的CPU內(nèi)核
多CPU設計中的調(diào)試可能是一個挑戰(zhàn)。多處理器之間的互動可能產(chǎn)生難以發(fā)現(xiàn)和解決的問題,除非調(diào)試工具可以在所有內(nèi)核上同時執(zhí)行。
M4K內(nèi)核的基于EJTAG的調(diào)試邏輯可以應對這一挑戰(zhàn)。首先,M4K內(nèi)核上的EJTAG接口可與一個SoC上的所有內(nèi)核進行菊鏈式(daisy-chained)連接,以保證同時對單個調(diào)試器和所有內(nèi)核進行調(diào)試。這樣還可以支持獨立或同步啟動、停止或單步控制。
另外一個很好的功能是M4K支持的多CPU調(diào)試是跨CPU的斷點的。該內(nèi)核具有支持CPU斷點的能力,可在幾個時鐘周期內(nèi)在一個CPU或幾個CPU中形成一個斷點。該功能是通過一個小型邏輯塊由軟件控制的,它決定哪個CPU可以穿過另一個CPU。這種能力對于解決CPU互動相關的調(diào)試問題非常有用。
M4K內(nèi)核上的這些調(diào)試功能可賦予使用者充分的支持,以及針對多CPU SoC設計的易用調(diào)試環(huán)境,從而減少設計時間和風險。
可配置性
由于多CPU系統(tǒng)中的效率至關重要,執(zhí)行的靈活性和可配置性對構(gòu)建解決特定應用問題的最佳解決方案也非常重要。
M4K內(nèi)核是MIPS科技開發(fā)的最具可配置性的內(nèi)核。如圖4所示,大多數(shù)CPU模塊是可選擇或可配置的。
乘法器可以實現(xiàn)高性能或最小的面積。如前所述,寄存器上下文的數(shù)量可以進行配置。如果不需要MIPS 16e內(nèi)核代碼壓縮解碼器,可以將它去掉。調(diào)試支持中的多折衷能力只需要最少的支持,就可確定不同數(shù)量的硬件斷點,甚至還可以使用TAP控制器。
對于程序和數(shù)據(jù)跟蹤,可以使用或不使用片上捕捉緩沖器,跟蹤支持可以進行配置。協(xié)處理器接口邏輯可內(nèi)置或外置。如前所述,自定義的定制化指令擴展可以增加,也可以使用時鐘選通(為了減少功耗)。
除了內(nèi)部內(nèi)核的配置性,M4K內(nèi)核還具有存儲器系統(tǒng)設計的相當大的靈活性。它可以使用單獨指令和數(shù)據(jù)存儲空間來支持哈佛系統(tǒng),后者采用針對高效存儲器存取的極低延遲的同步SRAM型接口。該接口支持單一循環(huán)或多循環(huán)處理,并支持8位、16位和32位外圍設備的連接。該接口也可使用相同的低延遲接口針對結(jié)合指令和數(shù)據(jù)空間的分享內(nèi)存系統(tǒng)建立。
此外,從SRAM型接口到基于EC系統(tǒng)邏輯的橋接可支持現(xiàn)有的基于MIPS32 4K、4KE或MIPS64 5K內(nèi)核系統(tǒng)的外圍設備應用。
該橋接支持低延遲存儲器,以保證本地存儲器存取的高性能,同時可連接傳統(tǒng)的MIPS-based CPU子系統(tǒng)。
多CPU系統(tǒng)
系統(tǒng)可以用多CPU內(nèi)核做什么呢?如圖5所示,網(wǎng)絡存儲系統(tǒng)可以使用多核從主處理器卸載特定的功能,就像MIPS64 20Kc那樣。通過在網(wǎng)絡接口添加一個CPU,可以通過外圍設備在本地實現(xiàn)如過濾、L2或L3協(xié)議響應和分段與重組等更高級的功能,使主CPU可以處理更高級的協(xié)議或管理功能。
同樣,利用加速器(如這個例子中的TCP卸載)中的一個或多個M4K內(nèi)核,可以將特殊高性能功能的與主處理器分開,同時仍然保持標準可重復編程器件的優(yōu)勢。
另一個多CPU系統(tǒng)設計的常見例子是線卡。它可能是一個網(wǎng)絡路由器,也可能是DSLAM或無線基站。在這些例子中,平行的CPU子系統(tǒng),也叫微型引擎,可用來為高度平行的應用提供巨大的總體性能,如level2處理、信息包分類、過濾或標記管理。在這個例子中,主處理器主要用于異常處理。這種方法有許多變化,不僅可用于平行處理,而且可用于處理器流水線或平行處理器流水線。
多CPU設計在芯片設計師中日漸流行,因為它可以提供可擴展和可編程性能,并可滿足許多網(wǎng)絡和其他嵌入式系統(tǒng)設計的自然分區(qū)。對于現(xiàn)在大多數(shù)SoC設計來說,多CPU設計不是沒有挑戰(zhàn),而是這些挑戰(zhàn)可以通過使用CPU內(nèi)核來解決,MIPS32 M4K正是優(yōu)化處理工作的解決方案之一。
評論