Linux將停止AMD 3D Now!指令集支援 - 3C

Table of Contents

※ 引述《hn9480412 (ilinker)》之銘言:
: https://www.tomshardware.com/news/linux-says-goodbye-to-amd-3d-now
: Linux預計將在核心版本5.17中停止AMD的3D Now!指令集支援,也代表著這個活了23年的
: 指令集也即將退出舞台
: 3D Now!是AMD在1998年推出的SIMD指令集,用來強化x86的3D影像處理的效能,也是為了
: 抗衡Intel的MMX指令集,不過MMX只支援整數運算,浮點運算還是要靠x87協同處理器。而
: 3D Now!支援單精度浮點運算,AMD也在K6-2加入3D Now!的支援,在單精度浮點運算效果
: 方面是x87的四倍。同時微軟在DirectX 7為3D Now!進行最佳化使得AMD首此在遊戲效能上
: 超越Intel。K6-2和K6-III也成為當時市場上的熱門產品
: 在1999年的Athlon上AMD又加入了5條新指令並改稱為Extended 3DNow!。後來Intel也為了
: 抗衡推出SSE,SSE完全支援3D Now!的所有功能,至此AMD在往後都是跟進Intel支援SSE
: 的相關指令集而不再更新3D Now!
: 在硬體方面AMD早在Bulldozer後的架構就不再加入3D Now!的支援,並建議開發者改用SSE
: 取代,最後一顆支援3D Now!的CPU是AMD的A8-3870K

真的是時代的眼淚了。不過3D Now!不是用來對抗MMX的,3D Now!是架構在MMX上的。我應該是少數有經驗寫3D Now!程式的。

先回來講x87。x87是一個搞砸的架構,我當年寫x87組合語言時,覺得有點怪,一直要FXCH,不好用但ok啦(其實也是我不懂StackMachine的寫法)。後來有看到當初設計x87的訪問,才知道美國設計的人跟以色列實做的人溝通不良,以色列的人不懂Stack Machine是什麼,所以才實做成x87那樣。我用過Forth之後就更能體會一個正常的x87 Stack Machine其實是超好用的。x87現在還有用因為它支援80bit的精度,有些用途無法取代。

3D Now!的誕生是因為k6的x87浮點運算比Intel的x87慢(25%?), 但3d遊戲開始起飛需要大量的浮點運算,這點k6很吃虧。AMD設計的人很聰明,發展3D Now!架構在MMX的registers上,可以同時運算兩個32bit浮點。容易寫(register),又提昇性能,變成Intel的1.5倍(?)
我第一次寫的時候,Assembler還不支援,還要自己inc一些Macro,就跟當初MMX一樣。3d遊戲性能確實在k6-2上有提昇,但最後有沒有跟遊戲一起出就不記得了。後來的Athlon浮點還比Intel的強,那真的是AMD的第一個黃金時代。

Intel的SSE是128bit vector,3D Now!是架在MMX的64bit vector(3D Now!用的時候MMX不能用),所以其實SSE算是3D Now!的延伸與改良。

真的是有競爭對消費者才是福音,感謝AMD打趴Intel才能讓Pat回來帶來更多競爭。

--

All Comments

Donna avatarDonna2021-12-19
解說推
Anthony avatarAnthony2021-12-20
看不懂推
Zenobia avatarZenobia2021-12-22
Enid avatarEnid2021-12-23
AMD64指令集也造福很多
Lucy avatarLucy2021-12-25
K6就是被詬病浮點運算很差
Athlon就是拿21264改的不是XD?
Joe avatarJoe2021-12-26
x86還是x87?
Anthony avatarAnthony2021-12-25
stackmachine就我的理解是postfix
,操作者用堆疊去放expression tre
e,stackmachine會幫你做完,釋放
掉register的概念。要頻繁下xch的
確怪怪的
Ursula avatarUrsula2021-12-27
X87就是浮點運算器阿
Joseph avatarJoseph2021-12-25
當年幾乎沒有遊戲發揮3Dnow 所以最
後k6-2還是文書機專用 玩遊戲不是
買Pentium II就是賽揚300超頻去了
Iris avatarIris2021-12-27
300A 大鵰的年代 當初影像處理用
Eartha avatarEartha2021-12-25
K6-2跑 LAG到爆炸
Olivia avatarOlivia2021-12-27
300A超到450好玩
Madame avatarMadame2021-12-25
陞技還出賽揚雙cpu神板
Eden avatarEden2021-12-27
原po真老人 連Abit都記得
Edward Lewis avatarEdward Lewis2021-12-25
我第一張自組板子就ABIT的BH6 xdddd
Rosalind avatarRosalind2021-12-27
真老了。第一台電腦是IBM XT(8088)
Hamiltion avatarHamiltion2021-12-25
abit的板子我那時是買 be6 ii, 做
的比三大廠的還要好
Elizabeth avatarElizabeth2021-12-27
然後slot 1轉卡斷掉 還免費送一個
給我
Xanthe avatarXanthe2021-12-25
x87 不是 486 的時候整成同一顆?
386 之前還要另外買
Eden avatarEden2021-12-27
推U質文
Iris avatarIris2021-12-25
Christine avatarChristine2021-12-27
喔喔 ... 那就是 DX 後的事
Mason avatarMason2021-12-25
優文推
Kelly avatarKelly2021-12-27
推優文
Isla avatarIsla2021-12-25
respect
Audriana avatarAudriana2021-12-27
8087 是硬加上去 甚至不能直接溝通
Daniel avatarDaniel2021-12-25
直接存取 memory 又太慢 別忘了這是
1970 年代的設計, 而且上市後十幾年
James avatarJames2021-12-27
一直到 486DX 才真的合而為一
Leila avatarLeila2021-12-25
推優文
Yedda avatarYedda2021-12-27
AMD有列出支援3DNow!的遊戲及軟體清
https://tinyurl.com/mtt6x96s
Zanna avatarZanna2021-12-25
外國人留下來的網頁檔案
Frederica avatarFrederica2021-12-27
那時候Intel還另外有486SX
Yedda avatarYedda2021-12-25
推推
Barb Cronin avatarBarb Cronin2021-12-27
看不懂~~@_@
Margaret avatarMargaret2021-12-25
第一次看 x87 instruction set 真的
覺得我究竟看了什麼
Franklin avatarFranklin2021-12-27
80486DX 是 x86+x87 做在一起
Belly avatarBelly2021-12-25
另外有出 486SX 是把 DX 的 x87 部
分 disable 掉賣你。
如果哪天後悔了可以再買 487 插上去
Charlotte avatarCharlotte2021-12-27
補齊。
妙的是 487 其實也是一顆 486DX。
所以你等於插了兩顆 486DX,一顆只
有 x86 的部分有作用,另一顆只有
x87 部分有作用。
Elma avatarElma2021-12-25
是阿 當年的板子上面會有兩個插槽
一個就是給X87用的 當年的傳說是X87
James avatarJames2021-12-27
是X86的不良品
Jacob avatarJacob2021-12-25
當時用在ps2模擬器效果不錯
Sandy avatarSandy2021-12-27
認真推~
Kama avatarKama2021-12-25
Yedda avatarYedda2021-12-27
Belly avatarBelly2021-12-25
推陞技qq
Enid avatarEnid2021-12-27
推解說
Elvira avatarElvira2021-12-25
有卦有推
Ethan avatarEthan2021-12-27
這樣我了解了,給推
Eden avatarEden2021-12-25
Hamiltion avatarHamiltion2021-12-27
有年代的味道~ XD
Yedda avatarYedda2021-12-25
老前輩