新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 當今的處理器架構能否更高效?

        當今的處理器架構能否更高效?

        —— 處理器優化這個唾手可得的果實可能已經消失,但新技術正在涌現。
        作者: 時間:2025-07-21 來源: 收藏

        多年來,在專注于性能的同時幾乎沒有對其他任何東西負責。但現在,性能雖然還是很重要的參考指標,但還必須對負責。

        如果性能上的微小提升導致不成比例的功率增益,設計人員可能需要放棄此類改進,轉而采用更節能的改進。盡管當前的在性能和方面不斷改進,但實現額外的增益變得越來越困難。

        “每個人都在檢查和重構他們的微,以期能通過改進它們來實現更出色的表現,”Cadence Tensilica 音頻/語音 DSP 產品營銷總監 Prakash Madhvapathy 說。

        許多旨在提高計算吞吐量的功能(例如無序執行)增加了電路的復雜性,從而提高了功率和電路面積。由于功耗成本的原因,類似的改進今天可能不會被接受。那么,我們當前的處理器還有哪些機會呢? 

        高效的實現還不夠

        “許多提高效率的努力都涉及對現有架構進行更好的設計,并且仍然需要一些新的技術突破。特別是在實施方面要融入更多節能技術,”Ansys產品營銷總監Marc Swinnen說。一種非常基本的方法是利用流程改進,以更少的功率完成更多工作?!澳柖刹]有消亡,” Swinnen說?!拔覀內栽讷@得更小的工藝技術,這一直是降低功耗的首要方法。摩爾定律可能很快走到盡頭,但現在還沒有完全實現?!?/p>

        這也可以推動流程決策。“當你選擇某個工藝節點時,你還需要考慮到能效,”Madhvapathy 說。“22nm從基礎上來看比28nm具有更好的功耗曲線?!彼赋?,12nm將是節能設計的另一個流行節點。

        3D-IC 提供了介于單片芯片和 PCB 級組件之間新的功耗節點。Swinnen指出:“3D-IC的功耗將比單片芯片更高,但3D-IC的整體系統功耗更低,速度比通過傳統PCB走線連接的多個芯片系統的要低得多。

        共封裝光學器件 (CPO) 使光學器件更接近硅,這也可以降低功耗,但這已經等了很長時間。“CPO 已經存在了很長時間,但在經濟上很難證明技術復雜度的合理性,而且最終的權衡不一定是有利的,”Swinnen 解釋道。“不過這似乎正在發生變化。部分原因是技術變得更好,部分原因是對高速數字通信的需求變得如此強烈,以至于人們愿意為此支付更多費用。

         并非所有技術都實用

        有些實現技術聽起來很有趣,但也有其自身的挑戰。異步設計就是其中之一?!皬暮玫姆矫鎭碚f,每個寄存器都會盡可能快地與下一個寄存器通信,”Swinnen 解釋道?!皼]有中央時鐘,所以整個時鐘架構都消失了。沒有時間給你等待,其中一條數據路徑正在等待其他數據路徑。它已經存在了幾十年,但由于性能不可預測,它未能突破(特定情況除外)。這是一個猜謎游戲,突破的時間點會是什么,由于工藝的可變性,每個芯片都可能略有不同。也不清楚它最終是否真的節省了電力?!白詣佣〞r握手意味著觸發器電路必須復雜得多,”斯溫寧說。“當你把它全部拿出來時,所有觸發器電路都會消耗更多的電力。一個問題仍然存在:“它真的最終會為所有這些復雜性和缺乏可預測性節省很多電力嗎?綜合來看,它還沒有能夠作為一種設計方法論得到公認。

        也可以使用數據和時鐘門控來馴服雜散電源或毛刺電源以降低功耗?!八鼤黾用娣e,但對雜散電源的影響可能相當大,”Madhvapathy 說。這需要分析以確定功耗的主要貢獻者。“它不僅可以測量毛刺功率,還可以識別導致此毛刺的原因,”Swinnen 指出。

        最后,每一個問題在實現層面上的影響有限。“RTL能走多遠是有限制的,這很諷刺,因為大多數節能機會都在RTL級別,”Swinnen 說?!白畲蟮暮锰帉嶋H上是在架構層面。”

         昂貴的功能

        人工智能(AI)計算已將設計團隊推向內存墻,因此鑒于行業對AI訓練和推理的關注,人們將大量注意力轉移到將數萬億個參數放在需要的地方,以避免摧毀系統。但處理器本身也會消耗能量,其他工作負載將在執行能力和數據移動能力之間表現出不同的平衡。

        盡管時鐘頻率繼續逐漸攀升,但這種變化實際上并沒有像以前那樣推動性能提升。改進的真正目標是試圖讓盡可能多的處理器保持忙碌。三個架構特征可以說明為這種收益所做的復雜變化——推測執行(也稱為分支預測)、無序執行和有限的并行性。

         推測執行的目的是避免輸入分支指令并且必須等待結果后再決定遵循哪些分支的情況。到那個點時就會延遲結果,直到系統獲取分支結果指示的指令——可能一直來自DRAM。相反,推測性地遵循一個分支——希望是最有可能的分支。通常,完成分支決策將驗證該決策,但有時不會。此時,必須退出推測計算并重新啟動另一個分支(包括從 DRAM 獲取的潛在指令)。

         分支預測通常伴隨著無序執行,該功能允許某些指令以與它們在程序中的顯示方式不同的順序執行。這個想法是,一條指令可能會停頓等待數據,而另一條后續指令現在已準備就緒。請注意,后一條指令不能依賴于前一條指令,但串行編程范式的主要限制之一是指令必須按順序列出,即使它們不相互依賴。所以亂序執行是一個復雜的系統,可以提前啟動多條指令,確保原始程序語義得到尊重。

        圖片.png


        圖 1:Intel 處理器微架構示例。此特定單元包括亂序處理。由于需要向后代碼兼容性,因此在執行之前,首先將指令轉換為微代碼。此模型有 11 個函數單元,其中 8 個用于執行,3 個用于數據加載/存儲。

         面積與性能

        這些架構并不是簡單的系統,它們的價格可能與其收益不成比例,具體取決于它們的構建方式?!袄纾种ьA測器會保留先前采用的分支列表,”西門子 EDA 高級合成部門項目總監 Russ Klein說?!熬拖窬彺嬉粯樱摿斜硗ǔJ褂梅种繕说牡撞縉位作為哈希鍵進入所采用的分支列表。因此N可以是4或16或更多,列表中的條目數可以是1或2或32。您可以存儲完整的目標分支地址,或者僅存儲底部12位或16位。對所采用的分支的更大、更詳細的存儲器會帶來更好的性能,但顯然會占用更多的空間(和功率)。

        由此產生的好處可能會相應地有所不同?!耙粋€小型的簡單分支預測器可能會將處理器加速 15%,而一個大型、復雜的分支預測器可以將性能提高30%。但它可能比小而簡單的處理器面積上大10倍(或更多),“Klein解釋道?!熬兔娣e而言,對性能設計者也許不是那么在意,但對于功耗來說,面積確實是一件大事?!?/p>

        Cadence 通過重組某些編解碼器來提高它們的性能,從而產生分支很少的代碼?!拔覀兛吹娇冃岣吡思s5%至15%,”Madhvapathy 說。“編解碼器中的分支數量不到5%,在我們使用 ZOL(零開銷循環)的內部執行循環中幾乎沒有分支?!?/p>

        更通俗的說,該公司在典型項目中找到了更多的分支。“非官方的代碼大約有20%的指令是分支,”Madhvapathy。“這些都代表著隨機執行的機會。性能提升可以達到30%或更高,因為每個周期執行的平均指令會顯著增加——即使這些預測中有一半是成功的。綜合開銷 [分支預測和無序執行] 可能在20%到30%的范圍內。

        Klein回憶起 Tilera 的創始人阿南特·阿加瓦爾 (Anant Agarwal)對Kill Rule的觀點?!敖K止規則規定的是,如果你要將一個功能放入你的 CPU 中但它會增加面積,如果增加的面積大于你獲得的性能提升,你就不會添加該功能,”他說。

         并行計算是“簡單”的答案

        并行性顯然提供了另一種提高性能的方法,但當前處理器中可用的功能是有限的。當今的主流處理器有兩種方式提供并行性——通過實例化多個內核,以及通過內核內的多個功能單元。

        功能單元是過去的簡單算術邏輯單元(ALU),它是執行實際指令的。給定的功能單元通常能夠執行簡單數學之外的一定數量的指令。它們還可能包括乘法器、分隔器、地址生成,甚至分支。通過提供多個這樣的單元,當一個單元繁忙時,另一個單元可以處理不同的指令,這可能是無序的。

        不同的處理器具有不同數量的功能單元,代碼分析有助于確定其中指令支持的組合和分布。這有助于在可能的情況下并行化指令執行,但處理器開銷(例如指令獲?。┦谴邪l生的。

        真正并行化計算是提高性能的最佳機會之一,并且可以使用較少的處理器以提高能效。這樣的解決方案并不新鮮,多核處理器在十多年前就已上市,但未能獲得真正意義上的關注。

         很少有算法是完全可并行化的。那些通常被稱為“令人尷尬的并行”。其他所有內容都混合了可并行化的代碼和必須串行運行的段。阿姆達爾定律將這些連續部分確定為最終限制器。有些程序可以高度并行化,有些則不然。但即使算法看起來不并行,也可能存在其他機會。

         分形就是一個例子?!澳愕?nbsp;f of x 就是 f of x – 1,” Klein解釋道?!懊總€像素都是通過長串行鏈單獨計算的。但是,如果你正在制作圖像,你有 1,024 x 1,024 或任何圖像大小,所以你有很多并行性的機會 [通過同時計算多個像素]。

        當今用于數據中心服務器的處理器具有多達100個左右的內核。但與之前的多核處理器不同的是,它們不用于單個程序。它們允許為需要云計算的不同用戶執行多個程序。

        并行的問題

        即使處理器執行可以并行化,真正的問題是處理器必須并行編程。這通常意味著顯式管理代碼的并行性質,例如通過調用pThreads。這比典型的編程要繁瑣得多,需要了解數據依賴關系以確保滿足按順序的語義。盡管已經存在一些工具來幫助解決這個問題,但沒有一個工具進入現在的主流軟件開發。

        此外,手動管理并行性可能需要針對不同的處理器使用不同的程序。程序可以運行,但如果需要的線程數超過給定處理器在硬件中可以管理的線程數,則程序可能不是最佳的。由于上下文切換過程中不可避免存在系統開銷(虛耗),使用軟件并行性可能會損害性能。

        最大的問題是軟件開發人員對顯式并行編程嗤之以鼻。人們強烈希望任何新事物都可以使用當前的方法進行編程。“軟件專家已經堅決拒絕了100核處理器的概念,除了我們看到它開始蔓延的一個領域——GPU和TPU,” Klein觀察到。

        這就是多核處理器在商業上失敗的原因。即便如此,并行化主要還是與性能有關。降低功耗需要適度的核心數量和積極的待機功耗策略,以便空閑核心不會消耗能量。并行性還有助于恢復在提高內核效率時可能丟失的整體性能。

        “我的論點是,大量真正簡單的CPU是正確的選擇,但它確實需要改變編程方法,” Klein說。“我對這種情況的唯一希望是人工智能能夠創建一個并行編譯器,這是我們作為一個行業永遠無法做到的事情。”

        我們今天處理在通用處理器上陷入困境算法時的實用方法是使用加速器作為非阻塞卸載,以便加速器可以在 CPU 執行其他作(或休眠)時有效地處理其任務。

        加速器可以是寬的,也可以是窄的

         所有類型的加速器已經存在了幾十年。如今,人們非常重視那些可以加快訓練和推理速度的加速器,因為需要非常具體的密集計算。但這樣的加速器并不新鮮。

        “異構計算結合了處理內核,以提供優化的功率和性能,”艾伯德營銷副總裁Paul Karazuba 說?!斑@顯然包括NPU,NPU解決了來自效率較低的CPU和GPU進行AI處理時的問題。然而,并非所有NPU都是平等的——不僅在方法上,而且在架構和利用率上。

        這是因為加速器可能是高度特定的——甚至是定制的——而其他加速器將仍然是更通用的?!叭绻鸄I工作負載是眾所周知且穩定的,定制NPU可以在功耗和成本效率方面帶來顯著提升,”Karazuba 繼續說道?!叭绻枰`活地支持多種模型或未來的人工智能趨勢,通用 NPU更具適應性,更容易與現有軟件生態系統集成?!?/p>

        自定義加速器將更具體地根據其工作負載進行調整,并且這種努力應該會提高功耗效率。Karazuza 說:“提高處理器子系統效率(特定于NPU)的一種方法是創建一個更注重應用程序的NPU,而不是采用更通用的NPU。“自定義NPU通常使用專門的MAC陣列和執行管道,這些陣列和執行管道可以針對特定數據類型和模型結構進行調整。通用NPU包含支持多種數據類型的可配置計算元素,通??商幚砀鼜V泛的層和運算符。

        放棄給定任務不需要的功能可以產生顯著的結果?!霸趯嶋H應用中,當部署定制NPU時,Expedera通常會看到處理器效率提高約3-4倍(以 TOPS/W 為單位)而利用率提高兩倍以上,這里的利用率定義為實際吞吐量/理論最大吞吐量?!?/p>

        顯然在提高處理器和處理子系統的效率方面,仍然存在一些機會。但在不久的將來,我們可能會面臨想法耗盡的風險。然后會發生什么?這就是新的處理器架構可能有用的地方。然而,考慮到當前架構背后的龐大生態系統,這樣的變化并非易事。幸運的是,有一些新的架構想法以及放棄一些通用性的可能性。


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 思茅市| 深泽县| 高密市| 普洱| 会宁县| 紫阳县| 黄山市| 崇礼县| 英山县| 库尔勒市| 五家渠市| 奉新县| 余干县| 宜州市| 沙湾县| 泾源县| 定兴县| 历史| 抚顺县| 大石桥市| 儋州市| 韩城市| 高清| 安多县| 察雅县| 西华县| 吴江市| 陵水| 宣威市| 远安县| 齐齐哈尔市| 水富县| 象山县| 阳高县| 津市市| 沙坪坝区| 镶黄旗| 自治县| 延长县| 额济纳旗| 浦江县|