硬科技:淺談x86的SIMD指令擴張史(中):SSE2到SSE4

2020.04.07 08:00AM

前情提要:淺談x86的SIMD指令擴張史(上)。MMX到SSE有了對應IEEE 754單精確度浮點格式的SSE還是不夠,最起碼,當時的x86處理器還缺了3個重要的關鍵點:

  • 64位元雙倍浮點精確度。
  • 受制於x86指令的編碼,暫存器才少少的8個。
  • x86的雙運算元(A = A + B)格式,會摧毀其中1個暫存器原本的資料(如例子中的A),要保存資料,需事先搬移到其他的暫存器,增加程式碼體積,更讓第二個問題雪上加霜。

SSE2提供IEEE754 64位元雙倍精確度

2001年隨著Pentium 4而問世的144個SSE2指令解決了第一個問題,包含了一系列的快取記憶體控制指令,並順便擴充了MMX,雖然這時候的SSE2已足以完全取代MMX了。

指令數量之所以會激增,也是為了提供更多樣化的「花式」資料操作。但也請注意,這些指令集也不是每個指令都會進行SIMD運算。

如果應用程式已經使用80x87的80位元延伸精確度格式,轉到SSE2仍會產生數值誤差,所以不可能完全廢棄這古老的包袱,即使微軟的Visual Studio從2012年開始,浮點運算就預設使用SSE2,意思就是微軟已經認定那時候的電腦都有SSE2可用了。。

AMD x86-64倍增資料暫存器

某種意義上來說Intel也是因禍得福,當然他們絕對不會這樣想。

AMD透過刪除INC/DEC指令,擠出空間實作REX prefix,提供在64位元模式新增暫存器的指令編碼空間,讓x86指令編碼中所有可標定暫存器的3位元欄位,都擴展到了4位元,只要指令多出了REX Prefix這1個Byte,64位元x86處理器即可享受到倍增的資料暫存器。不過,程式不一定用到新暫存器,代表REX並非「必備品」,當啟動新暫存器時,REX會無預警增加指令長度,提高最佳化指令解碼器設計的困難度。

慘劇就發生在Intel Core 2家族(Merom, Penryn)身上,只要是64位元模式,前後相鄰的「比較(Compare)/跳躍(Jump)」合而為單一條件運算的「巨集指令融合(Macro Fusion)機制」就自動人間蒸發。

AMD發表x86-64時很多人拍手叫好,但實際上因過度重視對32位元的相容性與最低的硬體修改成本(K8是由K7延伸出來的產物),AMD的擴充手段並不乾淨俐落,日後也同時造成所有(實質上也就那兩家)x86處理器廠商的困擾。

在AMD手上「結束」的SSE

在革命性的AVX出現前,Intel仍持之以恆的擴充SSE指令集,像數值轉換、載入長度不同的向量值、如何讓資料「對齊」等細節就姑且在此不談了,重點如下:

  • SSE3:又稱PNI(Prescott New Instructions),追加13個指令,「總算」支援了在AMD 3DNow!已存在的「水平」運算,能對同一個XMM暫存器內的資料進行「橫向」處理,不再只能「向下操作」。
  • SSSE3:TNI(Tejas New Instructions)或MNI(Merom New Instructions) ,SSE3的「補充包」,因為16個新指令都可操作XMM和MMX暫存器,因此在某些文件也被視為「32個指令」。
  • SSE4.1:Intel在Penryn加入的47個新指令。
  • SSE4.2:Intel在Nehalem加入的7個新指令。
  • SSE4a:AMD在原生四核心的K10「Barcelona」選擇性支援4個SSE4指令和4個初代SSE指令,後來的推土機家族就很乾脆的全部吃下所有的「SSE4」了。

在這裡就不得不提AMD搶先在Intel之前註冊商標的「SSE5」,AMD用全新的Opcode3與DREX欄位徹底取代REX,實現了x86指令集前所未有的「三運算元格式/四運算元語法」與「乘積累加(Multiply Accumulation,A = A x B + C)」指令,彌補自己年輕時所犯下「成功的錯誤」,但還好AMD沒有硬推SSE5,「皈依」更加簡潔有條理的Intel AVX,要不然微軟為首的軟體廠商們又要抓狂了,科科。

相關消息

遊戲天堂
FCC電檢照片顯示華碩將推出一黑一白兩款ROG Ally 2電競掌機,增強握柄人體工學、黑色機型可能為Xbox認證機型
Chevelle.fu
1 個月前
在地生活
吉伊卡哇廠商限定圖片外流 日方決定取消台灣訂單
討喜小姐
1 個月前
開箱評測
Cooler Master NCORE 100 Air直立式ITX風冷機殼評測,超小占地面積能容高規格系統的精緻機殼
Chevelle.fu
1 個月前
產業消息
Sony將在5月13日公布Xperia 1 VII,首支預告聚焦Alpha相機技術
Chevelle.fu
1 個月前
開箱評測
不想要耳塞 Sony無線降噪耳機折590元 平價降噪耳罩式耳機可選它
Tandee
1 個月前
開箱評測
4顆裝蘋果AirTag特價又來了!平均只要650元 寧願合購也不要單買
atticus
1 天前
產業消息
三星旗下HARMAN收購持有B&W、天龍馬蘭士的Sound United
Chevelle.fu
1 個月前
關於android播放3gp內含AAC無法撥放問題
hanawa
15 年前
人物專訪
GPS導航發明前計程車怎麼找路?以前載客常遇到霸王車、靈異事件?本篇就讓「老司機」親自說給你聽!
丹費特
1 個月前