滿足嵌入式系統(tǒng)應用的多核處理器SoC設計
隨著嵌入式處理需求的快速增長,系統(tǒng)架構(gòu)正朝著多處理器設計的方向發(fā)展,以解決單處理器系統(tǒng)復雜度太高和計算能力不足的問題。憑借其高邏輯密度及高性能硬模塊,新一代FPGA已經(jīng)使功能強大的芯片多處理(CMP)解決方案成為現(xiàn)實。目前的挑戰(zhàn)在于如何在該解決方案的范疇內(nèi)快速完成設計的開發(fā)與創(chuàng)建。
賽靈思嵌入式開發(fā)套件(EDK)工具和IP具有很大的靈活性,用戶可以利用它們以FPGA邏輯為基礎設計出獨具特色的定制多處理解決方案,從而同時滿足價格和性能目標要求。本文將主要介紹以PowerPC和MicroBlaze嵌入式處理器為基礎的賽靈思解決方案中的多處理概念。
應用領域
性能和功能劃分是設計多處理器系統(tǒng)的主要動力。總的來說,多處理在以下這些常見場合中會發(fā)揮作用:
1. 多個獨立功能。設計可能需要應對多個獨立的處理任務。解決這個問題的好方法是為每個處理任務創(chuàng)建獨立的專用處理模塊,并為每個處理模塊分配專用處理器和外設集。
2. 控制或數(shù)據(jù)層面卸載。常見情況是既有實時任務(計算或數(shù)據(jù)密集型),也有非實時任務,從而可能導致單處理器解決方案無法做出及時的響應。對于這種情況,您可以分配一個從處理器以便及時完成實時任務,主處理器則完成其他常規(guī)任務,并且充當?shù)街鳈C系統(tǒng)的接口。主處理器同時也監(jiān)控從處理器。從處理器可能包含專用功能或接口,從而能夠滿足計算性能要求。相應的例子包括網(wǎng)絡負載分擔、媒體處理以及安全算法等。
3. 接口處理。對于作為多接口之間的橋梁或開關的系統(tǒng),您可以分配一個從處理器用于處理每個接口上的數(shù)據(jù),而用一個或者多個主處理器處理更高級的橋接或者開關任務。
4. 數(shù)據(jù)流處理。對于數(shù)據(jù)流計算問題,您可以安排多個處理器以流水線的方式處理數(shù)據(jù)流。多處理器流水線的每一級都要在將數(shù)據(jù)傳到下一個處理器之前完成一部分計算任務。這是提高系統(tǒng)吞吐量的一種有效方式。
5. 可靠性和冗余度。您可以多次復制處理系統(tǒng)以提高可靠性和冗余度。
6. 對稱處理。傳統(tǒng)的對稱處理(SMP)是一種十分有用的解決方案,您可以利用它來提升那些不存在明確劃分邊界的應用性能。一個具有SMP功能的OS層可以管理并行任務,并且在多處理器之間自動調(diào)度這些任務。然而,SMP使用模型不適用于賽靈思處理器,因為它們?nèi)狈崿F(xiàn)SMP所需的高速緩存相關性。
除了SMP場合,其他的所有應用場合均適合賽靈思公司帶有EDK工具的FPGA的應用。賽靈思處理解決方案的獨特之處在于,它可以針對應用要求來靈活定制每個處理子系統(tǒng)。例如,并不是所有的處理器都需要一個高速緩存或者浮點單元。通過為特定處理器分配特定的功能,您可以創(chuàng)建一個能夠?qū)崿F(xiàn)所有設計目標的專用解決方案。
簡單且可擴展的系統(tǒng)架構(gòu)
正如您見到的那樣,有許多種使用模型適合多處理器使用。同時存在多種系統(tǒng)架構(gòu)的可能性。為某一應用場合明確一種單純且可擴展的拓撲和架構(gòu)是一件令人頭疼的事情,所以定義一個可以滿足大部分需求的基線架構(gòu)會將有所幫助。
圖1給出了一個雙內(nèi)核架構(gòu)。這個架構(gòu)展示了簡單且可擴展的多處理器系統(tǒng)定義。您可以基于這個定義衍生出新的拓撲來應對設計約束或挑戰(zhàn)。該架構(gòu)的主要概念如下:
圖1:雙處理器架構(gòu)
評論