x86架構能做到的arm架構也能做到嗎?
01-05
這是我以前寫的一個回答裡面的片段。
處理器微結構乃至更底層的實現,跟是否x86、是否MIPS,是否ARM,基本沒有關係。我所知道的微結構技術,除了跟內存模型,謂詞化、調用約定等地方有關的可能不能泛用以外,基本上都已經是跨微結構通用,比如著名的gshare分支預測器,可以同時用在x86、ARM以及任何一種面向CPU的指令集上,沒有什麼障礙。我至今沒有看到什麼x86獨佔或者是ARM獨佔的處理器設計技術,並且將來也很可能不會有。
今天的ARM正在重走x86、MIPS、Alpha等所謂高性能微結構以前所走過的路,限制ARM向x86級別的結構設計靠攏的因素,是性能,功耗,出貨時間,專利障礙(有一些可加速執行的方法已經被申請了專利)等等,而不在指令集架構本身。如果這些前提是一樣的,ARM也可以在對性能要求更高的平台上與x86競爭。
cpu這種東西,早就不靠指令集取勝了。而且究竟哪個更好,還真不好說。目前intel的處理器,表面看起來還是CISC,其實它的微指令和微架構也是RISC的。早年X86架構之所以是CISC架構,是因為當時DRAM存儲器極其昂貴,程序的代碼大小十分關鍵,此時支持多種定址模式的存儲器以及寄存器的操作數,可以使程序編出來的指令比較少。另外可變長度的指令,可以讓常用的指令編碼成更小的比特數,不常用的但是功能強大的指令可以編成較大的比特數。總的來說,可以讓編出來的代碼更少,這種設計的根本原因就是內存太貴。而且那個時候晶體管數量的限制,使得寄存器通常也不多,那時候指令並行還沒有開發出來,實際上也確實不需要太多的寄存器。後來內存越來越便宜,CPU的技術越來越強,能夠集成的晶體管也越來越多,CPU可以使用的寄存器也變得更多。內存越來越便宜,代碼長度就變得不那麼重要了,採用RISC架構,支持更少的操作數類型,以及只支持固定長度的指令代碼長度,可以使得CPU的設計變得更加簡單,而且隨著流水線技術的發展,這種架構優勢也很明顯,因為流水線的滿額工作,需要大部分指令可以採用相同的時間來完成。
不過目前看來, CISC架構也並不落下風,因為當前處理器和存儲器的速度差距越來越大,CISC處理器需要的存儲器更少,那麼其花在存儲器吞吐上的延時消耗就更少,性能可以做到更強勁。
其實目前市場已經證明,RISC架構看起來是一種更優異的架構,但是X86的性能仍然強勁無比,甩所有RISC處理器幾條街。而且,最近的X86架構從奔4開始,就已經集成了微指令,負責將CISC指令在更低的層次上轉化為類似RISC的微指令,所以兩者的區分其實已經沒有那麼明顯了。X86能最做到的最牛逼的需要性能的桌面和伺服器應用,以及高性能並行,現在ARM架構沒有看到成熟的產品,也可以理解為ARM不能完全做到吧,同樣的,X86在同樣的性能需求下,做不到像ARM這麼省電,性能上X86有優勢,功耗上ARM有優勢(都是拿兩個陣營在比較的點上認為是最好的水準來比較得出的)這兩點我可以肯定的回答你的。在這個時間點上。其他的就不裝逼了。
推薦閱讀:
※CPU微架構與CPU架構的區別?
※CPU GPU一個時鐘內最大會有多少比例的晶體管同時翻轉?
※當前的頂級手機cpu(比如高通820)和電腦cpu(i5,i7)相比,性能如何?
※如何看待英特爾將與AMD合作,在8代酷睿移動版中使用VEGA構架核顯?
※怎麼看 AMD 公司新發布的 zen 處理器?