概述
計算機硬體的基本組成--中央處理器
中央處理器稱為CPU(Control Processing Unit),它主要由控制器和運算器組成,是計算機的核心部件。
運算器
運算器(Arithmetical Unit)的主要功能是完成對數據的算術運算、邏輯運算和邏輯判斷等操作。
控制器
控制器(Control Unit)是計算機中指令的解釋和執行結構,其主要功能是控制運算器、存儲器、輸入輸出設備等部件協調動作。
指令
CPU指令集:MMX SSE SSE2 SSE3 3DNow! AMD64 EM64T
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和單時鐘周期並行處理多個浮點數據來有效地提高浮點運算速度。
3DNow!:3DNow!指令集最由AMD公司所推出的,該指令集應該是在SSE指令之前推出的,被廣泛運用於AMD的K6、K6-2和K7系列處理器上,擁有21條擴展指令集。在整體上3DNow!的SSE非常相相似,它們都擁有8個新的暫存器,但是3DNow!是64位的,而SSE是128位。所以3DNow!它只能存儲兩個浮點數據,而不是四個。
但是它和SSE的側重點有所不同,3DNow!指令集主要針對三維建模、坐標變換和效果渲染等3D數據的處理,在相應的軟體配合下,可以大幅度提高處理器的3D處理性能。AMD公司後來又在Athlon系列處理器上開發了新的Enhanced 3DNow!指令集,新的增強指令數達了52個,以致目前最為流行的Athlon 64系列處理器還是支持3DNow!指令的。
SSE2:在PentiumIII發布的時候,SSE指令集就已經集成在了處理器的內部,但因為各種原因一直沒有得到充分的發展。直到Pentium 4發布之後,開發人員看到使用SSE指令之後,程式執行性能將得到極大的提升,於是Intel又在SSE的基礎上推出了更先進的SSE2指令集。
SSE2包含了144條指令,由兩個部分組成:SSE部分和MMX部分。SSE部分主要負責處理浮點數,而MMX部分則專門計算整數。SSE2的暫存器容量是MMX暫存器的兩倍,暫存器存儲數據也增加了兩倍。在指令處理速度保持不變的情況下,通過SSE2最佳化後的程式和軟體運行速度也能夠提高兩倍。由於SSE2指令集與MMX指令集相兼容,因此被MMX最佳化過的程式很容易被SSE2再進行更深層次的最佳化,達到更好的運行效果。
SSE2對於處理器的性能的提升是十分明顯的,雖然在同頻率的情況下,Pentium 4和性能不如Athlon XP,但由於Athlon XP不支持SSE2,所以經過SSE2最佳化後的程式Pentium 4的運行速度要明顯高於Athlon XP。而AMD方面也注意到了這一情況,在隨後的K-8系列處理器中,都加入SSE2指令集。
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標準生產的處理器可以更有效率的處理數據,在一個時鐘周期內能夠傳輸更多的信息。
EM64T :EM64T(Extended Memory 64 Technology)也就是Intel公司開發的64位記憶體擴展技術。它實際上就是Intel IA-32構架體系的擴展,即IA-32E(Intel Architectur-32 Extension)。Intel的IA-32處理器通過加入EM64T技術便可在兼容IA-32軟體的情況下,允許軟體程式利用更多的記憶體地址空間,並且允許程式進行32 位線性地址寫入。