search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

為了讓CPU更好賣,英特爾將硬體變「軟」了

謝謝。

這是一篇極具可讀性的短文,有趣地揭示了英特爾x86指令集架構(ISA)最近發生的事情。我們看到了擴展的數量和複雜度的急劇增加,及其對系統研究人員(和英特爾)產生的一些有趣的影響。我們也看到越來越多的微代碼的使用模糊了ISA作為硬體和軟體之間的界限這一角色。

我們認為,這些擴展現在正在逼近類似軟體層面的複雜程度,但同時也包含了硬體實現的所有缺點,以及緩慢的部署周期。我們懷疑當前的路徑可能是不可持續的,並假設了一個可替代的未來,最終目標是將新的ISA特性與底層硬體分離。

過去:穩定且可控的增長

386參考手冊列出了96條指令。隨著時間的推移,新的指令在諸如浮點支持,向量擴展,加密加速器,64位等領域都在不斷增加。至關重要的是:

……過去的系統設計人員極大程度上忽略了這種變化……除了64位模式和虛擬化擴展之外,x86系統開發人員偶爾也會進行一些調整,以提高性能或糾正明顯的缺點,但除此之外,其他方面都被忽略了。即使是64位模式也不會顯著增加架構的複雜性……

為什麼要購買新CPU?

隨著摩爾定律的放緩,英特爾傳統的兩年「Tick-Tock」發展模式也在放緩。這就提出了一個顯而易見的問題:

……如果沒有微架構方面的改進,他們的CPU就不會有大幅提速,也不會有更高的效率,而且他們相同價位的CPU的核心數量與先前的CPU完全相同。為什麼會有人購買新的CPU?

如果你站在英特爾的角度思考一會兒,你就能明白為什麼會有這樣的麻煩。你還能做些什麼可以讓購買新CPU變得有吸引力呢?

英特爾似乎正在轉向的一個理由是:如果新的CPU實現了一個重要的ISA擴展——例如,軟體提出了一個需求,因為它對於安全至關重要——消費者就會有一個強大的理由去升級。

換言之,加快發布速度很可能是英特爾有意讓我們繼續購買的策略。結果……

在過去的兩年裡,ISA的複雜性急劇地增加了(例如:在下圖中,我們可以看到架構手冊的大小),在此過程中有更多的擴展。

圖1:英特爾x86 CPU和ISA的複雜性的增加

上圖仍然遵循摩爾定律(注意左側坐標軸上的對數刻度),最近公布的節奏放緩尚未出現。在手冊中使用文字作為複雜性的代表,我們可以看到在2015-16年間因Skylake引入的而引起的大幅增長。

(出於興趣,我估計手冊有200萬詞,平均閱讀速度為每分鐘200詞,以每周閱讀40小時計算,需要一個月才能讀完,而這僅僅是為了閱讀一份手冊!)

下表總結了最近的ISA擴展以及引入的新指令的數量。

複雜性的增加不僅僅來自於新指令的數量,更重要的是來自於與現有指令的交互:

這些最近的擴展引入了新的系統級功能,這經常改變現有指令的語義,並與其他擴展和先前的體系結構特性進行複雜的交互。

SGX和CET示例

鮑曼引用SGX和CET擴展作為主要例子。我們以前一定在《晨報》上看到過SGX很多次吧。

功能強大的組合以及強大的物理安全(內存加密)使得SGX對研究人員和從業者都有吸引力……但是,SGX引入了大量的複雜性:用近200頁的英文/偽代碼規範描述了26條指令。

在這200頁中,有近20頁專門用於介紹SGX與先前架構特徵的交互。而事實證明,其中一種交互可能會破壞SGX尋求提供的安全保障。這對我來說是新鮮的,儘管我讀過很多關於研究SGX系統的文章。

如果你感興趣的話,你可以在這裡參考「防止頁面錯誤告訴你的秘密」(CCS』16)。攻擊依賴於操作系統控制下的側面通道(因此在SGX威脅模型中被認為是攻擊者的控制):頁面錯誤。通過在幾乎每條指令上誘導一個頁面錯誤,足夠的信息被泄漏出去,平均27%的密鑰位可以恢復,如果使用OpenSSL和libgcrypt的加密密鑰則可以恢復100%的密鑰位。

也許具有諷刺意味的是,已知的最優方法利用了與事務內存擴展的看似無意的交互:事務中止而不是頁面錯誤,因此操作系統不能觀察事務性的擴展內存訪問。

老實說,CET(控制流程執行技術)擴展聽起來很酷。它通過維護影子堆棧和間接分支跟蹤來防禦代碼重用攻擊(如ROP)。影子堆棧只包含返回地址,並且無法訪問正常代碼。在返回的時候,來自常規和影子堆棧的地址會被彈出並進行比較——如果它們不匹配,就會有麻煩了!

CET承諾為不安全的C / C ++代碼增加強大的防禦,代價是犧牲大量的架構複雜度……主要的複雜性來自於功能交互。在x86上的控制傳輸已經非常複雜,包括許多調用和返回的形式,比如對不同的段或特權級別的調用。總共有9條指令(其中一些有很多變體,如JMP)被CET修改。

隨著複雜交互的系統級特性的複雜性的快速增長,我們看到了很高的變化速度。然而,「x86語義的忠實實現對於x86兼容的處理器、虛擬機、模擬器、JIT編譯器、動態翻譯器、反彙編器、調試器、評測器等都是至關重要的。」

……我們不得不質疑,在許多實現中,x86承諾的無限向後兼容性是否可持續。

第一個SGX規格發佈於2013年,首顆實現它的CPU直到2015年才發貨,而支持SGX的伺服器級CPU仍然在2017年初出現。另外再加上充分部署的時間,那麼從初始規格到廣泛適用便需要10年時間。在這個周期的某個時刻,軟體開發人員將能夠以合理的假設來開始SGX的開發。

這代表了軟體開發人員的一個艱難的權衡;之前ISA擴展也花了很長時間部署,但是它們通常只能加速現有的功能;具有像SGX這樣的功能,開發人員面臨著一個嚴峻的選擇;無限期地為安全性而等待,或者立即就部署它。

加上這個軟體的滯后,我們可能會看到,新功能的普遍開發大概需要十多年的時間。

仔細閱讀英特爾的專利,你會看到,SGX指令完全以微代碼實現。如果新的ISA功能是新的微代碼,那麼就可以在現有的CPU上支持它們。例如,或許(許多)新指令的(性能較差的)版本可以通過這種方式實現,從而為新特性的採用提供了一個更快的途徑。它的許可和收入模式是一個開放的問題(與出售新CPU的願望的相互作用)。

……現在比以往任何時候都更需要重新考慮指令集的概念,它不再是硬體和軟體之間的界限,而是堆棧中的另一個翻譯層。

今天是《半導體行業觀察》為您分享的第1319期內容,歡迎關注。

R

TI這顆晶元的失誤,間接成就了Intel

晶元的未來:繼續縮小OR改變封裝?

摩爾邀請您加入精英微信群

你好,感謝長期對半導體行業觀察的關注和支持!為了方便各位精英專家交流,我們組建了一些專業、微信交流群,歡迎你加入,我們還會邀請在摩爾直播App做過技術和行業分享的100+技術大牛入群和大家交流。加群方法: 加群主為好友,填寫加群需求信息,拉你入群。(微信限制每天好友添加數量只有300人,請耐心等待)

地域群:

上海、深圳、北京、江蘇.浙江、西安、武漢、成都.重慶、合肥、廈門.晉華、大連、台灣、新加坡、日本.韓國、美國、歐洲、摩爾直播學習群。

專業群:

模擬射頻設計、EDA.IP、數字晶元設計、模擬混合信號設計、版圖Layout、數字PR.驗證、晶圓製造Fab、設備EE、半導體材料、半導體設備、封裝測試、半導體投資、市場銷售、AE.FAE、嵌入式開發、實習交流、採購.IC代理

專業微信群規則:

1. 專業、高效交流,建議進群請修改群昵稱,格式:公司或學校+職位或專業+中文或英文,請服從群主管理,如果多次違規會被請出交流群;

2. 原則上每人加不超過3個群,精彩討論內容,群主會負責在不同群同步,既然加了群,請大家盡量置頂群,積极參与群討論;

3. 群里聊天討論僅限半導體專業內容,杜絕專業無關內容,特別是養生、拉票、微商等內容,嚴格禁止,為自己公司打廣告以不引起群友反感為限;

4. 前100人免費,超過100人後,新進群者發新人紅包,金額隨意,討個彩頭。群友每增加100人,群主發群紅包慶祝,金額等於群友人數。

回復 雄心,看《蘋果的晶元帝國雄心》

回復 張汝京,看《半導體教父張汝京的「三落三起」》

回復 投稿,看《如何成為「半導體行業觀察」的一員 》

回復 搜索,還能輕鬆找到其他你感興趣的文章!

【關於轉載】:轉載僅限全文轉載並完整保留文章標題及內容,不得刪改、添加內容繞開原創保護,且文章開頭必須註明:轉自「半導體行業觀察icbank」微信公眾號。謝謝合作!

【關於徵稿】:歡迎半導體精英投稿(包括翻譯、整理),一經錄用將署名刊登,紅包重謝!簽約成為專欄專家更有千元稿費!來稿郵件請在標題標明「投稿」,並在稿件中註明姓名、電話、單位和職務。歡迎添加我的個人微信號 MooreRen001或發郵件到 [email protected]



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦