在這篇文章中,我們將探索MIPS軍工級I級I6500 CPU處理器的異構設計如何大幅提升性能及降低功耗。
高性能處理器通常使用深度多指令執行、分支預測及無序處理等技術以使性能最大化,但這卻可能會影響功效。
如果其中一些任務是并行的,隨之便會在一系列CPU中進行分區,這樣便可以提供高性能高效的方案。為此,CPU供應商提供了多核集群,操作系統和應用程序開發人員則設計了相關軟件以開發這些功能。
采用多線程
即使采用無序執行,通常的工作負載使得CPU將大多數時間花在等待內存系統的訪問上。新引入的MIPS I6500支持多線程,即每個線程作為單獨的處理器出現在軟件中。根據不同的應用程序,添加第二個線程至CPU中時,通常10%的面積需要總體性能提升40%。MIPS I6500可以容納6個CPU,每個都有4個線程,這樣就不必在單個集群中運行24個線程。
MIPS I6500集群添加了對系統層硬件相干性的支持,并使用AMBA ACE添加接口至系統中。AMBA ACE是一個一致性總線接口,可以兼容最常用的相干NoC產品,如 NetSpeed公司的Gemini及Arteris公司的Ncore。有了NetSpeed Gemini 產品,64 MIPS I6500集群將可以連接高達384個處理器,運行1536個線程,這著實令人驚嘆。
對于許多消費產品,其所需的處理性能隨著時間的推移可能會有很大的差別。通常,它們只是偶爾需要峰值性能。大多數的時間卻只需要較低的性能,而這通過使用一個更簡單更高效的處理器大幅降低總功耗便可以實現。
信息共享
將任務從一個處理器移至另一個處理器需要每個處理器可以共享相同的指令集及系統內存信息。這通過共享虛擬內存(支持向量機)便可以實現。程序中的任何指針必須繼續指向相同的代碼或數據,且初始處理器中任何不良緩沖必須讓隨后的處理器可見。
圖一:內存在集群中傳輸時的移動軌跡
圖二:集群內傳輸時內存移動軌跡更短速度更快
維持處理器之間的緩存一致性
緩存一致性可以通過軟件管理。這要求最初的處理器(CPU A)在傳輸任務至后續處理器(CPU B)之前沖刷主存儲器的緩存。CPU B從主存儲器中獲取數據和指令。這個過程可能生成許多內存訪問,因此將耗費時間和功率。訪問主存儲器所需的功率比獲取緩存時的功率高一個數量級,所以這種影響還將被放大。為了解決這一問題,I6500 CPU集群支持硬件緩存一致性,以將功耗和性能成本降至最低。
在使用I6500集群的系統中,當一個任務從CPUA傳輸至CPU B中時,CPU B將訪問駐留在CPU A中的本地緩存線路。硬件緩存一致性將跟蹤這些緩存線路的位置,并在必要時窺探緩存情況,以確保訪問數據的正確性。
I6500集群的另一個優勢是可以在集群中被發現。在典型的異構系統中,高性能處理器駐留在一個集群中,面積更小更高效的處理器駐留在另一個集群中。在這些不同類型處理器之間進行任務傳輸時,新處理器第1層和第2層的緩存都是非激活的。要激活這些緩存需要一定的時間,并需要先前的緩存層在過渡階段仍然保持活躍。
MIPS I6500是不同的。我們稱這種差異性為“異構內置”,這意味著I6500支持異構混合類型的處理器,允許高性能和功率優化處理器處在同一集群中。將任務從一種類型的處理器傳輸至另一類處理器中將更有效,因為只有第1層緩存是未激活的,窺探上一層緩存的成本降低,因而過渡時間變得更短。
CPU配置專用加速器
CPU是通用的設備。其靈活性使其可以處理任何任務,且任務處理具有成本效率。而PowerVR GPU能夠高性能高效率地處理更大且高度并行的計算任務,其代價是靈活性相比CPU則較為降低,但其同時支持良好的軟件開發生態系統環境如OpenCL。
專用硬件加速器的專業化又有效地融合了多種性能,其性能效率相比CPU又高出了幾個數量級,不過相應地靈活性則大為降低。
不過,多次使用加速器操作可以將潛在的性能和功效最大化。專業計算元素如音頻和視頻處理以及機器學習中使用的神經網絡處理器使用了相似的數學運算。此類操作使用最為廣泛的是向量點積(每向量中對應元素產品的總和)。配置在CPU上的專用加速器使用此函數則可以顯著地提高性能并節省功率,同時又保留了CPU的靈活性。
通過增加單指令多數據(SIMD)功能與浮點算術邏輯單元(ALU)可以將硬件加速耦合至CPU中。不過,盡管通過SIMD處理數據,CPU仍然作為直接內存訪問(DMA)控制器移動數據,且CPU是非常低效的直接記憶器存取(DMA)控制器。
相反,異構系統本質上卻可以二者兼得。它包含了一些專用的硬件加速器,可以與大量的CPU耦合,提供更大的功效,同時又大量保留了CPU的靈活性。
功率的節省及性能的提升取決于加速器進行有用工作的時間。適合加速器的工作包范圍較廣——你可以預期少量的大型任務,又可以預期大量的小型任務。
圖3:最小函數來證明轉換成本的降低
在CPU與加速器之間進行傳輸處理將產生成本,限制任務的大小將節省功耗或提高性能。對于較小的任務,節省的功耗及傳輸任務所需的時間將超過使用加速器所需的功耗及節省的時間。
降低數據傳輸成本
I6500具有共享硬件虛擬內存功能,可以保持緩存一致性。這就大大節省了傳輸任務所需的成本,因為其消除了數據復制和緩存沖刷的工作。
為進一步減少時間及功率成本,還需要借助一些其他的技術。HSA Foundation開發了一個支持系統中異構處理元素集成的環境,其擴展超越了CPU和GPU。HSA系統有一個名為HSAIL的中間語言,該語言提供了一種常見的編譯路徑至異構指令集架構(ISA)中,極大地簡化了系統軟件開發,并同時定義了用戶模式隊列。
這些隊列使任務有序進行,且信號在其它處理元素中觸發任務,使得序列任務的執行成本較低。
相干單元
除了集群中的CPU ,MIPS I6500還支持許多IO相干單元(IOCU)。這些IOCU具有內存管理單元(MMU)功能,當處理CPU的任務時,其可以將任務處理映射至物理地址空間,并以同樣的方式經過共享的第二層緩存,保持與所有本地緩存的一致性。對于許多系統而言,這種功能使加速器可以與CPU進行有效的集成。
對于加速器中較大的任務,直接內存訪問(DMA)引擎的帶寬可以非常大,甚至可能被存儲系統的容量限制住。這樣一來,加速器中內存系統的處理任務將進行列隊,且將列隊延遲添加至CPU共享了相同端口及路徑的任務中。處理大型數據集的加速器對任務處理有些依賴,允許加速器預取數據。這樣,即使是CPU中不共享的內存延遲也可以高度容忍。
圖4:使用了I6500、PowerVR GPU和加速器的異構系統圖
MIPS I6500及其相干的總線接口允許加速器使用獨立的系統內存路徑并同時保留CPU集群的一致性。我們稱之為“異構外置”。
異構的優勢
異構系統可以大幅提升系統性能、降低系統功耗,使系統不因工藝精簡而受到限制。多線程、異構和一致性CPU集群如MIPS I6500則是這些系統最完美的搭檔。
它們在許多市場的下一代產品中都占據優勢,如:高級駕駛員輔助系統(ADAS)及自動駕駛、網絡、無人機、工業自動化、安全、視頻分析、機器學習等。
Follow @ImaginationTech
英文鏈接:
https://imgtec.com/blog/heterogeneous-inside-revolutionary-mips-i6500-pr...
評論