重塑Scoreboard機制,讓 CPU 性能躍升!
2025-07-02 13:34:09 EETOP 作者:Thang Minh Tran 博士本文作者:Thang Minh Tran 博士,Simplex Micro 公司首席執行官兼首席技術官
核心要點
當今的人工智能加速器面臨著深度流水線和復雜數據依賴等挑戰。
這種架構可實現精確的指令調度,且沒有推測執行的開銷。
通過最大化指令發布時機并最大限度地減少無效功耗周期,確保了能源效率。
當今的人工智能加速器,無論是為大型數據中心還是低功耗邊緣設備所構建,都面臨著一系列共同的挑戰:深度流水線、復雜的數據依賴以及推測執行的高昂成本。這些問題在高頻微處理器設計中早已為人熟知,工程師們必須不斷在性能和正確性之間尋求平衡。流水線越深,指令級并行的機會就越大,但流水線冒險的風險也越高,特別是寫后讀(RAW)依賴。
20 世紀 70 年代出現并在 90 年代超標量繁榮時期得到改進的傳統Scoreboard(記分板)架構,僅提供了部分解決方案。雖然能發揮作用,但它們難以隨著現代流水線日益增長的復雜性而擴展。每增加一個階段或執行通道,操作數比較的數量就會呈指數級增長,這會引入延遲,使得維持高時鐘頻率變得更加困難。
Scoreboard的核心功能是確定一條指令是否可以安全發布,這需要將正在執行的指令的目標操作數與等待發布的指令的源操作數進行比較。在深度或寬度較大的流水線中,這種邏輯很快就變成了一個組合邏輯難題。需著手解決的問題是:我們能否在不依賴復雜的關聯查找或推測機制的情況下,準確地對操作數時序進行建模?
在筆者開發雙行Scoreboard時,目標是在無線基帶芯片中支持確定性時序,因為在這種芯片中,實時性保證至關重要,而且能源預算緊張。但隨著時間的推移,這種架構被證明具有廣泛的適用性。當今的工作負載,特別是人工智能推理引擎,通常要管理數千個同時進行的操作。在這些領域,傳統的推測方法,如亂序執行,可能會帶來能源成本和驗證復雜性的問題,這在實時或邊緣部署中是不可接受的。
筆者的方法則另辟蹊徑,以可預測性和效率為基礎。開發了一種雙行Scoreboard架構,它通過周期精確的時序和基于移位寄存器的跟蹤,重新構想了傳統模型,在消除推測的同時,能夠適應現代人工智能工作負載。它將時序邏輯分為每個架構寄存器的兩個同步但獨立的移位寄存器結構,確保了精確的指令調度,且沒有推測開銷。
Scoreboard機制—— 移位寄存器方法
可以把雙行Scoreboard想象成一個傳送帶系統。每個寄存器都有兩條軌道。上行軌道監控數據在流水線中的位置;下行軌道監控數據何時準備就緒。每個時鐘周期,這些傳送帶上的標記都會移動一步,推進每條指令的時間線。
轉發跟蹤器—— 上行軌道:這一行作為移位寄存器運行,在流水線階段之間移動一個單例“1”,精確跟蹤將生成結果的指令的位置。這使得無需直接訪問寄存器文件就能進行轉發。
發布資格跟蹤器—— 下行軌道:第二行獨立地跟蹤結果何時可用,使用一串從最早可用階段開始的“1”。如果依賴的指令在數據準備好之前需要它,發布就會停滯。否則,就立即進行。
通過將操作數就緒狀態與執行時序進行比較,Scoreboard使用以下公式做出簡單直接的發布決策:
D = (EA – E) – EN + 1
其中:
E 是生產者指令的當前階段
EA 是結果首次可用的階段
EN 是消費者首次需要結果的階段
如果 D≤0,依賴的指令可以安全發布。如果 D>0,則必須等待。
例如,假設結果在 EA = E3 時可用,生產者當前處于 E2 階段,消費者在 EN = E2 時需要它。那么:D = (3 – 2) – 2 + 1 = 0→該指令可以立即發布。這種簡單的算術運算確保了確定性的執行時序,使該架構具有可擴展性和高效性。
集成與實現
每個架構寄存器都有自己的Scoreboard “頁面”,其中包含上行和下行軌道。因此,Scoreboard是一種稀疏的、分布式結構,概念上是一個 3D 數組,按寄存器名稱(深度)、流水線階段(列)和邏輯類型(上行與下行軌道)進行索引。由于兩行都與流水線時鐘同步移位,因此不需要多周期仲裁或停滯傳播。
寄存器文件本身也得到了簡化,因為許多操作數從未到達那里。如果結果在產生后很快就被消耗,數據轉發允許結果完全跳過寄存器文件。這在功耗和面積方面都有好處,特別是在寄存器文件寫入端口成本高昂的小工藝節點中。
為何在今天仍有重要意義
筆者構建這個架構是為了解決一個極其具體的問題:如何在無線調制解調器中保證實時執行,在這種情況下,失敗是絕不容許的。我的設計首次應用于 TI 的 OMAP 1710,它不僅為主要的 ARM+DSP 組合提供動力,還塑造了支持 GSM、GPRS 和 UMTS 的專用調制解調器流水線。
在調制解調器路徑中,錯過最后期限意味著數據包丟失,這不像丟失視頻幀那樣只是令人煩惱,而是至關重要的。因此,我專注于可預測的延遲、范圍嚴格的內存和結構化的任務流程。這種源于調制解調器的藍圖,如今在人工智能和邊緣芯片中煥發新生,在這些領域,功耗限制要求同樣嚴格、確定性的執行。
對于邊緣人工智能設備等功耗受限的環境,推測執行帶來了一個獨特的挑戰:預測錯誤的指令所造成的無效功耗周期會迅速耗盡能源預算。人工智能推理工作負載通常要處理數千個并行操作,而不必要的推測會迫使計算單元花費電力執行最終會被丟棄的指令。雙行Scoreboard的確定性調度消除了這個問題,確保只在恰好合適的時間發布必要的指令,在不犧牲性能的情況下最大限度地提高能源效率。
寄存器文件本身也得到了簡化,因為許多操作數從未到達那里。如果結果在產生后很快就被消耗,數據轉發允許結果完全跳過寄存器文件。在生產者和消費者指令的目標寄存器相同的情況下,生產者甚至可能根本不需要寫回到寄存器文件,從而節省更多電力。這在功耗和面積方面都有好處,特別是在寄存器文件寫入端口成本高昂的小工藝節點中。
這種轉變延伸到了 RISC-V 生態系統,架構師們正在探索時序透明的設計,以避免推測執行帶來的額外負擔。無論是應用于人工智能推理、向量處理器還是特定領域的加速器,這種方法都能提供強大的冒險處理能力,同時不犧牲清晰度、效率或正確性。
結論—— 架構思維的轉變
幾十年來,微處理器架構師一直在平衡性能和正確性,應對深度流水線和復雜指令依賴帶來的挑戰。傳統的亂序執行機制依靠動態調度和重排序緩沖區,通過盡快執行獨立指令(無論其原始順序如何)來最大限度地提高性能。雖然這種方法在利用指令級并行性方面很有效,但它帶來了能源開銷、更高的復雜性和驗證挑戰,尤其是在深度流水線中。相比之下,雙行Scoreboard提供了精確的、周期精確的時序,不需要推測性重排序。它不是不可預測地重新排列指令,而是在發布前確保可用性,在保持吞吐量的同時減少控制開銷。
事后看來,Scoreboard不僅僅是一種控制機制,更是一種思考執行時序的新方式。它不是預測未來,而是確保系統精確地滿足未來—— 這一原則在今天仍然像它最初構想時一樣具有現實意義。隨著現代計算向更具確定性和能效的架構發展,將時間作為首要的架構概念已不再只是理想,而是必不可少的。
關鍵詞: Scoreboard 記分板 Scoreboard機制