Global Sources
電子工程專輯
 
電子工程專輯 > 網路技術
 
 
網路技術  

多CPU系統單晶片設計的CPU核心選擇策略

上網時間: 2003年03月01日     打印版  Bookmark and Share  字型大小:  

關鍵字:Multi-CPU  SoC  M4K  Core CPU  MIPS 

在系統單晶片(SoC)設計中採用多個CPU已經成為一種越來越常用的設計方法。為多CPU應用而設計的處理器內核應具備幾個重要特性,例如較高的性能密度、有效的處理器內部通訊能力、支援除錯,以及可靈活實現和可配置性。本文將針對這些與多CPU設計相關的內核性能進行討論。

由於業界對SoC元件的可程式性要求越來越高,所以採用多CPU進行SoC設計變得更加普遍。對許多應用來說,單CPU很難滿足人們對設備性能飛速提高的要求。而在複雜的即時系統中,採用多CPU通常會使性能分配更加容易做到,因此響應時間也更容易達到要求。同時,周邊元件或專用加速器中的專用CPU也能夠分擔主CPU中那些比較低級的功能,從而使主CPU能夠專注於高級功能的實現。

多CPU設計非常適用於今天的嵌入式系統,這主要有三個方面的原因。首先,嵌入式應用的功能通常可以靈活地進行分離,因此很容易將其功能映射到多個CPU中。有時,將嵌入式系統的功能分割映射到多個單獨的CPU中甚至比映射到一個CPU中更容易。其次,許多嵌入式應用都具備明顯的平行性,因而可以用一系列平行CPU來開發。例如,網路處理器(NPU)設計工程師已經利用這個特性開發路由功能。最後一點,隨著當今0.13和0.10微米製程技術的出現,已經可以以較低的成本實現用多CPU方法構造SoC系統。圖1:旗語允許對系統共享資源的有效控制。

目前,多CPU設計在很多重要市場中都有應用,例如網路路由器,大多數新一代NPU都是基於多CPU設計。除了這些標準的NPU以外,核心ASSP也開始採用多處理器構建更加優化的針對特定應用的路由解決方案。對於很多應用來說,特定目標應用的ASSP比標準NPU效率高。一個ASSP可以整合合適的物理介面,根據目標應用確定記憶體大小,並可以為處理器提供最佳配置。

諸如DSLAM和基地台或高性能網路儲存設備等的相關應用中,在採用這種多處理器的‘分而治之’的方法來構建高性能可程式解決方案時,都實現了較好的工作性能。而且,為了節約成本並降低功耗,甚至終端用戶設備都開始採用多CPU來獲取最佳性能密度。例如,在設計視訊轉換盒、家庭網路閘道,甚至智慧行動設備時也可採用多CPU方法。需要說明的是,這?的多CPU並不是單用一個RISC處理器和一個DSP,而是採用多個RSIC處理器和多個DSP。

如何獲得優秀的CPU內核

一個適用於多CPU設計的處理器內核,必須具備以下幾個重要的特性:

首先最重要的是它必須能夠提供較高的性能密度。多CPU設計的目的就在於在每平方毫米內,或在單位功耗內獲得儘可能高的總性能。因此,理想的效果是在最小的空間內或最低的功耗內得到最佳的MIPS性能。

其次,它必須能夠在處理器內實現有效通訊。因為儘管許多多CPU設計都是軟體相關的,但在設計過程中仍然十分需要進行處理器內的通訊。如果處理器內核不提供一種支援處理器內的通訊機制,那麼這種內部通訊的功能就必須由SoC設計工程師來開發。這不僅非常耗時,而且也從其它方面增加了設計的複雜性。而如果在處理器內核處提供對內部通訊的支援將簡化SoC設計工程師的工作,從而也縮短開發周期。

通常,多CPU設計在除錯時比較困難,因為這些處理器內核既相互獨立又相互影響,而且在除錯多CPU SoC時,設計工程師必須看到各處理器之間相互影響的情況。這就要求在CPU內置一種功能,使多CPU能夠同時進行除錯,並且充分地相互作用。否則,多CPU SoC的除錯工作將十分艱難,甚至根本不可能對所有CPU進行全面除錯。同時,除錯工具必須支援這些CPU,這樣,設計工程師才能利用CPU內嵌的除錯功能進行除錯。圖2:記憶體同步作業。

此外,在判斷一個處理器內核是否適用於多CPU設計時,還需考慮配置和實現該CPU內核時的靈活度。在進行一個多CPU設計時,應儘量將產品尺寸和功耗降至最低,同時必須儘力提高其性能。設計工程師只有採用高度可配置和高度可合成的CPU,才能設計出尺寸、功耗和頻率都滿足特定應用要求的SoC產品。而對於一個固定的或不可配置的CPU內核,則不可能構造出滿足各種要求的產品。

基於這些想法,MIPS Technologies公司最近研制出一款專門針對多CPU設計的CPU內核MIPS32 M4K。該內核可達到很高的性能,而且尺寸和功耗都很低。同時,該內核還具備可合成性,並內帶一個快速響應的記憶體系統。

處理器間通訊

在多CPU設計中,處理器之間必須能夠相互通訊,以便控制對共享資源的存取。但在如今構建的很多多CPU設計中,記憶體相關性都是透過純軟體方式管理的,因此不能利用常規的高速快取記憶體相關機制通訊。

M4K中,透過外部執行MIPS結構中的負載鏈接(Load Linked,LL)指令和條件儲存(SC)指令來支援多CPU旗語(semaphore),並以此使得系統能夠對各CPU保持必要的監控。同時,為實現對系統的最大控制和靈活性,SYNC指令動作也被移出到信號介面。藉由執行該指令,可以為系統提供一個記憶體排序器(memory barrier),以保證分類指令語義正確。

如圖1所示,當系統執行一個典型的旗語存取代碼序列時,使用LL和SC指令就可以無需對系統傳輸一個鎖定資訊而直接執行自動的Read-Modify-Write序列。

例如,在一個測試-設置旋轉鎖(spin-lock)中,執行LL指令時會在信號介面上產生一個讀作業,這個信號介面在系統中標記為LL。然後,系統會在該地址設置一個監測器,監測該介面所在地址的狀態。此時,如果另一個處理器向這個被監測的地址進行寫入作業,那麼監測器的pass/fail標誌位將被清零。而系統執行SC指令時,系統邏輯會根據監測器的狀態有條件地執行儲存作業,即有條件地向記憶體中寫入數據。接著,系統會將監測器的Pass/fail標誌位返回給處理器,然後將工作交給處理器中的軟體去執行。該軟體執行的作業起初通常會失敗,但它會不斷重覆執行,直到成功為止。類似地,SYNC指令的語義解釋也被轉移到CPU外執行,這樣系統才能保證記憶體排序器正確作業。

如圖2中範例所示,SYNC位於連接到共享緩衝的最後一個記憶體和釋放控制信號的記憶體之間。在執行SYNC指令時,CPU向系統邏輯發送信號,表示它已經準備接收同步響應。一旦系統確保工作次序正常,就向CPU返回一個信號,接著,負載和儲存內容才得以釋放。如果系統是一個簡單系統,那麼必須按部就班地等待所有重要的轉換完成;但如果系統比較複雜,就能夠保持其序列中的次序,並以更快的速度進行響應。但在這兩種情況下,CPU軟體和硬體的執行機制都是相同的。圖3:NAS設計實例。

M4K上的處理器內部通訊機制得到業界的標準開發工的全面支援。設計工程師如果用M4K內核進行多CPU設計,那麼他們就可以利用M4K的這些特性在不同的處理器內核間方便快捷地進行通訊,從而縮短設計時間並降低風險。

多CPU系統的應用

系統有了多個CPU內核後,能做些什麼呢?以圖3的NAS設計為例,其主處理器為一個MIPS64 20Kc內核,使用了多處理器核後,網路儲存系統就可以將許多特定功能從主處理器中轉移出來。例如將一個CPU放在網路介面處,將一些較高級的功能,如濾波、L2或L3協議響應以及分段和重裝等轉移到本地的周邊元件中去完成,從而將主處理器解放出來去執行一些更高級的協議和管理功能。

與此類似,在一個加速器內使用一個或多個M4K處理器內核,可以將一些特殊的高性能的功能從主處理器中分離出來,而同時並不影響標準可再編程元件的優勢。

多CPU系統設計的另一個常見的例子是線路卡,這類線路卡可用於網路路由器和DSLAM中,也可以用於無線基地台。在這些情況下使用平行CPU子系統(有時也叫微引擎)能令高度平行的應用(如L2層處理、數據包分類、濾波或標誌管理)實現極好的總體性能。此時,主處理器主要用於異常處理。該方法在實現時有多種不同的形式,不但可以採用平行處理,還可以採用處理器管線或平行處理器管線來實現。

多CPU設計能夠提供可擴展、可程式的特性,非常適用於將許多網路和嵌入式系統設計中的功能分離出主處理器,因而這種方法在晶片設計中逐漸得到很多應用。當然,就如今的大多數SoC設計而言,多CPU設計並非毫無問題,但我們透過採用MIPS32 M4K這類最佳化的CPU內核,可以在相當大的程度上減少這些問題。

作者:David Courtright


產品策劃部主任


MIPS Technologies公司




投票數:   加入我的最愛
我來評論 - 多CPU系統單晶片設計的CPU核心選擇策略
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首