繁體
  • 简体中文
  • 繁體中文

熱門資訊> 正文

AMD這個指令集,走向滅亡

2024-07-19 09:44

如果您希望可以時常見面,歡迎標星 收藏哦~

來源:內容由半導體行業觀察(ID:icbank)編譯自tomshardware,謝謝。

AMD 近乎古老的 3DNow! 指令已逐漸淡出人們的視線。開源編譯器 LLVM最終取消了對自 2011 年以來 AMD CPU 不再支持的指令集的支持。

3DNow! 指令集於 1998 年推出,旨在與英特爾的 MMX 競爭。它在 AMD 的基礎 x86 指令集中添加了單指令、多數據 (SIMD) 指令,幫助 CPU 使用矢量寄存器對浮點運算進行矢量處理。

AMD於 2011 年用更新的 SSE 等效產品取代了 3DNow!,並從 K10 Bulldozer CPU 開始停止包含該功能標誌位。不過,由於 CPU 仍在使用相當長一段時間,編譯器確實花了一些時間纔開始放棄對該指令集的支持。

2021 年,Linux 從其內核中淘汰了該指令集,但 LLVM 在其他所有人都放棄它之后仍然長期保持支持。LLVM 編譯器背后的開發人員還致力於從該工具中刪除 MMX 類型和指令。

LLVM 19 的提交預計將於九月或十月發佈,證實了即將被刪除。

「這組指令僅受 K6-2(1998 年推出)及「Bulldozer」系列(2011 年)之前的 AMD 芯片支持。它們從未被廣泛使用,因為它們實際上已被更廣泛實施的 SSE(2001 年首次在 AMD 的 Athlon XP 中實施)所取代。

這是爲了全面移除 MMX 寄存器的使用而採取的措施。由於 3DNow! 內部函數幾乎沒有用處,而且現代硬件甚至都沒有實現它們,因此簡單的移除似乎是最佳選擇。」

AMD 3DNow! 指令在 20 世紀 90 年代末和 21 世紀初非常流行,用於改進遊戲、視頻播放和 Adobe Photoshop 工作流程。隨后,英特爾發佈了 SSE 指令,該指令在整體上佔據了主導地位。當英特爾發佈 SSE2 時,AMD 採用了它並放棄了其較舊的 SIMD 指令集。

需要為舊 AMD 處理器編寫代碼的開發人員仍可使用匯編語言中的 3DNow! 指令,包括使用 LLVM 的內聯匯編代碼。除此之外,與 3DNow! 相關的所有內容都應視為已棄用且不再使用。

其實早在2010年,就有相關報道表示,AMD 告別 3DNow! 指令集。

3DNow! 於 1998 年推出,是 AMD 為滿足當時 K6-2 芯片日益增長的多媒體需求而推出的。但到了2010年左右,AMD 宣佈該指令集將被棄用。

AMD 在 K6-2 時代就引入了 3DNow! 指令集來執行單指令多數據 (SIMD) 指令,也稱為矢量化指令。這些指令主要用於圖形密集型應用程序甚至音頻處理。從那時起,我們在處理器中添加了許多 SIMD 指令集,例如廣泛使用的流式 SIMD 擴展 (SSE) 指令集及其后續版本。

3DNow! 指令已被棄用,某些即將推出的 AMD 處理器將不再支持這些指令。在這些處理器中,不會設置3DNow! 指令功能標誌位。這由 CPUID 函數 8000_0001h 的 EDX 位 31 指示。現在是時候提醒開發人員在使用功能之前檢查運行時支持的功能有多麼重要了。我們一直建議在運行時檢查此功能,這是最佳實踐,但現在,如果程序嘗試執行此指令而不先檢查該功能是否受支持,則檢查此功能非常重要,有助於防止程序失敗。在開發 3DNow! 指令的同時,程序員習慣於使用「嘗試並捕獲」模型來檢查處理器是否支持指令或指令集。這是當應用程序「嘗試」執行指令以查看它是否可用時。如果應用程序從處理器收到未定義異常 (#UD),則它認為指令集不可用。這些類型的應用程序在較新的虛擬機下可能運行得不太好。不過這是另一篇博客的主題。

儘管 3DNow! 在當時具有革命性,但它並不十分流行,並且已被無數次迭代的 SSE 指令集所取代。然而,對於使用它的任何開發人員以及管理使用它的虛擬化環境的人來説,這則消息非常重要。

參考鏈接

點這里 加關注,鎖定更多原創內容

風險及免責提示:以上內容僅代表作者的個人立場和觀點,不代表華盛的任何立場,華盛亦無法證實上述內容的真實性、準確性和原創性。投資者在做出任何投資決定前,應結合自身情況,考慮投資產品的風險。必要時,請諮詢專業投資顧問的意見。華盛不提供任何投資建議,對此亦不做任何承諾和保證。