引用:
作者nanri
其實也不能說AMD太短視,
畢竟當時的環境底下,
沒想到十幾年以後會因為當時的製程(130nm)限制,
記憶體控制器效率等的因素,把gprs設定在16會有這麼樣子的下場,
若是直說AMD在x86-64設定的時候短視,
"那也能說x86-32時代,為了相容real mode,而沒把gprs大幅增加,
是intel太短視。"是相同的道理。
其實加速的方式有很多,只要搞到程式碼不相容於前幾代的處理器,
要多快就有多快(MMX、sse x、AVX x、FMA3等等),
而當時x86-64推出,在什麼都沒有的情況之下要搞這個,
就自然而然的先求有,再求好,
如果真的gprs不夠用的話,再搞個x86-64 v2,
把gprs 16->32、甚至是64個,
也不是一個很困難的事情,只要程式執行的時候,加個判斷式來判斷就好,
只不過倒不如就用擴充指令集去搞加速,會比較不用大費周章去大改特改了。
|
i386當年之所以只有8gprs最大原因是因為386當年只是應急下的向下相容的過渡產物. 既然是過度產物當然不會受到那群銀行業打滾的肥貓股東所重視 要不是iapx32難產intel本來可是要放生8086呢. 就像itanium對netburst,yamhill一樣. 對於intel那群肥貓股東們而言i386只是個過渡產品他們更注重iapx32, iapx32是stack machine based而且完全沒有register...而之所以這麼搞就是因為產品延伸性與獲利高成本更低與犧牲相對應的效能為代價來達成公司營收. 相較之下雖然x86效能更高但是獲利延伸性輸給stack machine 而因為transistor少且沒有integer register時脈可以拉非常高而且高階市場可以用串聯來達成效能最佳化而不用每次花大錢做 new uArh. 要不是因為當年intel工程師與股東之間長時間的內鬥x86也不會長年擺爛導致於後來想重視的時候已經很難再做改變