2000年以前,個人電腦(PC)通常只有一顆使用者可編程的處理器──也就是中央處理器(CPU);多年來有許多添加不同種類處理器的嘗試,但一直到繪圖處理器(GPU)發明,異質多工處理技術才成為PC市場的常見功能。

從那時候開始,PC與類PC裝置如平板電腦、智慧型手機內的處理器數量與種類快速增加;今日所謂的系統單晶片(SoC)處理器,通常包括一個支援音訊、數據機與多媒體處理的數位訊號處理器(DSP),一個加速攝影機相關運作的影像訊號處理器,以及支援感測器融合、資料通訊與資料儲存的其他專用處理器。

多工處理被多家不同的供應商導入成為PC平台的特色;因為作業系統開發商並沒有提供必備的架構支援,那些供應商被迫在繼承自較簡易週邊裝置的驅動程式模型內運作。其最大的限制在於需要CPU協調主處理器與各個協同處理器本地記憶體之間的資料傳輸與指令。

隨著協同處理器的數量與重要性提升,這種以CPU為中心的解決方案變得很不方便,有太多潛在性能在那些不必要的協調任務中被浪費,也會因為需要在多個實體與虛擬位址空間之間轉譯而產生太多錯誤與安全性弱點。

因此──雖然時間有點遲──相關解決方案應運而生,而被認為最全面的起點是AMD在2011年推出的融合系統架構(Fusion System Architecture,FSA);FSA演變成今日的異質系統架構(Heterogeneous System Architecture,HSA)規格,由HSA基金會負責維護。HAS基金會包括7家創始成員(除AMD之外,包括ARM、Imagination、聯發科、 Qualcomm、Samsung與TI),還有42家一般會員,分成數個小組。

![20160401 HSA NT03P1](//images.contentful.com/15mr7p4rjmth/2TF11smXMImQY8GOiMEWI6/af88458060e11a0b6b8502bbbb976751/20160401_HSA_NT03P1.jpg)

HSA基金會在2015年公布了1.0版的HSA規格,並於同年12月出版了一本題為《異質系統架構──全新的運算平台基礎架構(Heterogeneous System Architecture -- A New Compute Platform Infrastructure)》的書籍,詳述了該規格的背景與實作建議,由美國伊利諾大學香檳分校(University of Illinois at Urbana-Champaign)的Wen-Mei W.編輯。

HSA最重要的功能(筆者認為),是系統中所有的HSA處理器(代理/agent)採用單一記憶體模型(single memory model)、單一排隊模型(single queuing model)以及單一虛擬指令集;此外針對搶佔(preemption)與本文切換(context switching)也有一些標準化。

但基本上不同種類的處理器(例如CPU與GPU),會有程度不等的本文切換延遲,使其不可能延伸單一本文切換模型以適應每一種HSA代理。還有許多附加功能建立在那些基礎上:原子記憶體(atomic memory)運作標準、例外狀況處理(exception handling)、除錯、執行時期應用程式介面(runtime APIs)等等。

HSA的記憶體模型也值得詳述;該規格將在競爭CPU、系統與作業系統供應商影響下獨立發展的記憶體子系統之許多特性標準化,展望未來,那些設計與編程HSA代理的廠商會需要在虛擬定址(virtual addressing)、連貫性與一致性支援單一組規則,不同於今日相互矛盾、混淆、錯誤誘導的混雜定義。

身為一位花費多年時間提倡架構現代化的工程師,我讚賞HSA基金會的進展,但我認為仍有進一步改善的空間(而且相當充裕);特別是當快閃記憶體被發明出來,我認為傳統上對於「記憶體」與「儲存」的定義已經過時,但PC產業仍固執地抵制一些在其他運算應用領域被證實已經成功的想法。

在上述的HSA新書中也有些未提及的議題,並非只有CPU、GPU與DSP等類型的處理器可能在PC中應用,例如FPGA正成為PC與高性能運算都有興趣的方案;但是到目前為止HSA還是著重在CPU、GPU與DSP這些類型的處理器。

此外系統架構雖定義了系統安全性的限制,但安全性完全未在此書中提及──至少那個名詞並沒有出現在書籍的目錄中。令人遺憾的現實是,HAS會產生像是那些像是在CPU上的病毒那麼危險的、寄生在GPU病毒,系統配置者應該被教育如何將這些新的威脅最小化,但此書並不能提供協助。

最後作為一位獨立評論者,我必須指出顯而易見的一點:英特爾(Intel)不支持HSA (特別聲明,我個人與英特爾並沒有業務上的合作關係,也不是HSA基金會的成員)。英特爾在全球PC市場的佔有率高達八成,對於共享虛擬記憶體以及其他一些HSA的元素有他們自己的實作方法。基於純粹實用主義的理由,這一點可能有助於HSA基金會解釋其解決方案的差異性與優越性所在。

對此我曾詢問過HSA基金會主席John Glossner,他表示(在HAS基金會的官網上也有說明),目前市場上大多數對HSA的關注是來自於行動平台供應商,雖然也很歡迎英特爾加入,該公司在行動裝置市場的能見度並不高,只有一些例如Win 10平板電腦等數量相對很少的利基產品,因此英特爾的缺席並不會對HSA的廣泛採用造成障礙。

Glossner進一步解釋,1.0版HSA規格的主要目標是協助供應商利用自己的IP、「從上到下」在平台上佈置HSA;那些供應商通常對於那類議題關注較少,因為他們掌控設計的所有元素,而且對於以標準為基礎的特殊應用共同處理器興趣更高。而正在開發中的1.1版HSA規格,將有助於來自不同供應商的IP整合到個別SoC方案;在這樣的環境中,安全性、字節序(endianness)等等類似的問題將需要更進一步的關注。

編譯:Judith Cheng

(參考原文: Heterogeneous System Architecture: A New Computing Platform Infrastructure,by Peter N. Glaskowsky)