處理器指令檢視原始碼討論檢視歷史
處理器指令 |
處理器指令,是指計算機處理命令的指令。
簡介
MMX:MMX(Multi Media eXtension 多媒體擴展指令)指令集是Intel公司在1996年為旗下的Pentium系列處理器所開發的一項多媒體指令增強技術。MMX指令集中包括了57條多媒體指令,通過這些指令可以一次性處理多個數據,在處理結果超過實際處理能力的時候仍能夠進行正常處理,如果在軟件的配合下,可以得到更強的處理性能。使用MMX指令集的好處就是當時所使用的操作系統可以在不做任何改變的情況下執行MMX指令。但是,MMX指令集的問題也是比較明顯的,MMX指令集不能與X86的浮點運算指令同時執行,必須做密集式的交錯切換才可以正常執行,但是這樣一來,就會造成整個系統運行速度的下降。SSE:SSE是Streaming SIMD Extension(SIMD擴展指令集)的縮寫,而其中SIMD的為含意為Single Istruction Multiple Data(單指令多數據),所以SSE指令集也叫單指令多數據流擴展。該指令集最先運用於Intel的Pentium III系列處理器,其實在Pentium III推出之前,Intel方面就已經泄漏過關於KNI(Katmai New Instruction)指令集的消息。這個KNI指令集也就是SSE指令集的前身,當時也有不少的媒體將該指令集稱之為MMX2指令集,但是Intel方面卻從沒有發布有關MMX2指令集的消息。最後在Intel推出Pentium III處理器的時候,SSE指令集也終於水落石出。SSE指令集是為提高處理器浮點性能而開發的擴展指令集,它共有70條指令,其中包含提高3D圖形運算效率的50條SIMD浮點運算指令、12條MMX 整數運算增強指令、8條優化內存中的連續數據塊傳輸指令。理論上這些指令對當時流行的圖像處理、浮點運算、3D運算、多媒體處理等眾多多媒體的應用能力起到全面提升的作用。SSE指令與AMD公司的3DNow!指令彼此互不兼容,但SSE包含了3DNow!中的絕大部分功能,只是實現的方法不同而已。SSE也向下兼容MMX指令,它可以通過SIMD和單時鐘周期並行處理多個浮點數據來有效地提高浮點運算速度。
評價
SSE3:SSE3指令是規模最小的指令集,它只有13條指令。它共劃分為五個應運層,分別為數據傳輸命令、數據處理命令、特殊處理命令、優化命令、超線程性能增強五個部分,其中超線程性能增強是一種全新的指令集,它可以提升處理器的超線程的處理能力,大大簡化了超線程的數據處理過程,使處理器能夠更加快速的進行並行數據處理。 上面介紹的基本上就是Intel和AMD公司在X86架構處理器上主要的擴展指令集,雖然它們對於處理器的性能提升有着一定程度的幫助,但是由於受到IA-32體系的限制,X86架構基本上不會再有具有革命性意義的指令集出現,而雙方都已經把重心轉向了64位體系架構的處理器指令集開發上。AMD64:AMD的athlon 64系列處理器的64位技術是在X86指令集的基礎上加入了X86-64的64位擴展X86指令集,這就使得athlon 64系列處理器可兼容原來的32位的X86軟件,並同時支持X86-64的擴展64位計算,並且具有64位的尋址能力,使得它成為真正的64位X86構架處理器。在採用X86-64架構的Athlon 64處理器中,X86-64指令集中新增了幾組處理器寄存器,它能夠提供更加快速的執行效率。寄存器是處理器用來創建和儲存CPU運算結果和其他運算結果的地方,標準的X86構架中包括8組通用寄存器,而在AMD的X86-64架構中又增加了8組,將通過寄存器的數目提高到了16組。在這基礎之上,X86-64指令集還另外增加了8組128位的XMM寄存器,也叫做SSE寄存器。它能夠給單指令多數據流技術(SIMD)運算提供更多的存儲空間,這些128位的寄存器能夠提供在矢量和標量計算模式下進行128位雙精度處理,這也為3D數據處理、矢量分析和虛擬技術提供了良好的硬件基礎。由於提供了更多的寄存器,按照X86-64標準生產的處理器可以更有效率的處理數據,在一個時鐘周期內能夠傳輸更多的信息。[1]