微處理器和多處理器片上系統MPSOC設計的新紀元
當今的系統開發工具已經非常先進,完全可以允許設計人員根據具體的應用目標任務來定制微處理器核。處理器定制可以在非常短的時間內,甚至是幾分鐘就可以根據具體應用完成片上系統處理器核的設計。由于根據具體任務來定制處理器的速度非常快,因此可配置處理器可以具有非常優異的高性能來構建片上系統的設計,并且經常用于快速建立一些功能模塊,而這些功能模塊如果采用人工RTL方式設計的話,則可能需要幾個月的時間。正是由于可配置處理器技術的高性能和快速開發能力,使得許多最終產品在多個可配置處理器核的基礎上實現了片上系統SOC(多處理器片上系統SOC或者簡寫為MPSOC)。這些最終產品的范圍從最大和最小的網絡路由器一直到諸如便攜式攝像機、打印機和低成本視頻游戲機等消費類電子產品。
兩種最新的開發技術已經嵌入到可配置處理器甚至片上系統SOC設計中,即全自動化的、專用指令集定制技術和對處理器內部執行部件的多口訪問技術。前者允許片上系統設計人員更加專注系統體系結構方面的問題,而通過依賴自動化設計工具來完成某些單一功能模塊以達到性能方面的目標。后者則永遠克服了以前那種存在已久的總線瓶頸問題,而這種總線瓶頸問題從1971年第一個微處理器出現以來就一直阻礙微處理器性能的提高。
自動化處理器定制
十多年來,硬件設計人員一直在努力用C或者C++對系統進行描述進而轉換成有效的硬件。最初的系統說明通常是用C或者C++寫成的,因為采用這些高級語言描述的系統可以在廉價的PC上進行執行和評價。然而,即使是廉價的PC也不適合許多嵌入式系統的設計,尤其是在消費電子領域,因為其功耗太大。因此,設計人員開始希望找到一種工具來將用C或者C++寫成的系統描述轉換成硬件。
許多像“行為綜合”、“C語言硬件綜合”和“ESL”等詞匯描述的設計方法都有一些缺陷,因為它們都是試圖解決在本質上很復雜的問題:用時序可執行語言寫成的系統描述轉換成并行互操作和非可編程的硬件模塊。
Tensilica的XPRES編譯器采用一種更加簡單、更加直接的方法來解決這一設計問題。XPRES編譯器不是試圖從頭開始進行與應用相關的硬件設計,而是從一個完整的功能處理器核開始設計,然后以添加硬件執行部件和相應的機器指令的方式來增加硬件,以加速處理器上目標應用程序的執行速度。因此,XPRES編譯器從一個正在工作的硬件(Xtensa微處理器核)開始設計,同時使得目標程序代碼運行得更快。這種搜索的結果是完成一個微處理器的配置,此配置有一個性能/硬件開銷的特性曲線,如圖1所示。

圖1: XPRES編譯器為設計者提供一系列微處理器配置。隨著硅片面積的增加也使得與應用相關的系統性能得到提升。
性能優化的三種技術途徑
XPRES編譯器采用三種技術來建立優化的Xtensa處理器配置:操作數融合、單指令流多數據流SIMD(向量化)和FLIX(可變長度指令擴展)。操作數融合技術記錄程序循環語句中簡單操作出現的頻度。XPRES編譯器將這些指令序列合并成一條增強型指令,這種增強型指令通過減少循環內部的指令條數來加速程序代碼的執行。圖2表示由XPRES編譯器產生的數據流操作,圖中用灰色表示出融合操作。

圖2:由XPRES編譯器產生的數據流圖表示出一系列融合操作。當減法操作、取絕對值操作、加法操作和位域抽取操作融合成一條新的指令后,由XPRES編譯器進行評估需要增加474個邏輯門。


評論