




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、核心指令集發(fā)展回顧 什么是CPU指令集? CPU作為一臺電腦中的核心,它的作用是無法替代的。而CPU本身只是在塊硅晶片上所集成的超大規(guī)模的集成電路,集成的晶體管數(shù)量可達到上億 個,是由非常先進復雜的制造工藝制造出來的,擁有相當高的科技含量。然而如此一顆精密的芯片為什么能夠控制一個龐大而復雜的電腦系統(tǒng)呢?這就是CPU中所 集成的指令集。所謂指令集,就是CPU中用來計算和控制計算機系統(tǒng)的一套指令的集合,而每一種新型的CPU在設(shè)計時就規(guī)定了一系列與其他硬件電路相配合的 指令系統(tǒng)。而指令集的先進與否,也關(guān)系到CPU的性能發(fā)揮,它也是CPU性能體現(xiàn)的一個重要
2、標志。 再強大的處理器也需要指令集的配合才行(圖片出自電影機械公敵) CPU的指令集從主流的體系結(jié)構(gòu)上分為精簡指令集和復雜指令集,而在普通的計算機處理器基本上是使用的復雜指令集。在計算機早期的發(fā)展過程中, CPU中的指令集是沒有劃分類型的,而是都將各種程序需要相配合的指令集成到CPU中,但是隨著科技的進步,計算機的功能也越來越強大,計算機內(nèi)部的元件 也越來越多,而且越來越復雜,CPU的指令也相應的變得十分復雜,而在使用過程中,并不是每一條指令都要完全被執(zhí)行,在技術(shù)人員的研究過程中發(fā)現(xiàn),約有 80的程序只用到了20的指令,而一些過于冗余的指令嚴重影響
3、到了計算機的工作效率,就這一現(xiàn)象,精簡指令集的概念就被提了出來。 精簡指令集RISC就是(Reduced Instruction Set Computing)的縮寫,而復雜指令集CISC則是(Complex Instruction Set Computing)的縮寫。它們之間的不同之處就在于RISC指令集的指令數(shù)目少,而且每條指令采用相同的字節(jié)長度,一般長度為4個字節(jié),并且在字邊界 上對齊,字段位置固定,特別是操作碼的位置。而CISC指令集特點就是指令數(shù)目多而且復雜,每條指令的長度也不相等。在操作上,RISC指令集中大多數(shù)操 作都是寄存器到寄存器之間的操作,只以簡單的Load(讀取)和Sotr
4、e(存儲)操作訪問內(nèi)存地址。因此,每條指令中訪問的內(nèi)存地址不會超過1個,指令 訪問內(nèi)存的操作不會與算術(shù)操作混在一起。在功能上,RISC指令集也要比復雜指令集具有優(yōu)勢,精簡指令集可以大大簡化處理器的控制器和其他功能單元的設(shè) 計,不必使用大量專用寄存器,特別是允許以硬件線路來實現(xiàn)指令操作,從而節(jié)約的處理器的制造成本。而采用CISC指令集的處理器是使用微程序來實現(xiàn)指令操 作,在執(zhí)行速度上不如RISC指令集。另外,RISC還加強了并行處理能力,非常適合于采用處理器的流水線、超流水線和超標量技術(shù),從而實現(xiàn)指令級并行操 作,提高處理器的性能。而且隨著VLSI(Very Large Scale Integr
5、ation超大規(guī)模集成電路)技術(shù)的發(fā)展,整個處理器的核心甚至多個處理器核心都可以集成在一個芯片上。RISC指令集的體系結(jié)構(gòu)可以給設(shè)計 單芯多核處理器帶來很多好處,有利于處理器的性能提高。 由于RISC指令集自身的優(yōu)勢,在處理器的高端服務器領(lǐng)域的處理器上得到了廣泛的運用,而CISC指令集主要運用桌面領(lǐng)域的處理器產(chǎn)品中,比如 Intel的Pentium系列和AMD的K8系列處理器。然而現(xiàn)在RISC指令集也不斷地向桌面領(lǐng)域滲入,相信以后的處理器指令集會慢慢的向RISC體 系靠攏,使得處理器的指令集結(jié)構(gòu)更加完善,功能更為強大,技術(shù)也越來越成熟。 指令集的發(fā)
6、展史 而說到指令集的發(fā)展,就不得提到目前主流處理器所采用的X86架構(gòu)。所謂X86架構(gòu)的處理器就是采用了Intel X86指令集的處理器,X86指令集是Intel公司為其第一塊16位處理器i8086所專門開發(fā)的。而IBM在1981年所推出的第一臺PC機上所使用 的處理器i8088(i8086的簡化版)也是使用的X86指令集,但是為了增加計算機的浮點運算能力,增加了X87數(shù)學協(xié)助處理器和加入了X87指令 集,于是就將采用了X86指令集和X87指令集的處理器統(tǒng)稱為X86架構(gòu)的處理器。 第一塊支持X86指令集的Intel i8086處理器 到目前為止,In
7、tel公司所生產(chǎn)的大部分處理器都是屬于X86架構(gòu)的處理器,包括像i80386、i80486和Pentium系列處理器等 等。而Intel公司以外,AMD和Cyrix等廠商也在生產(chǎn)集成了X86指令集的處理器產(chǎn)品,而這些處理器都能夠與支持Intel處理器的軟件和硬件相 兼容,所以也就形成了今天龐大的X86架構(gòu)的處理器陣容。 然而隨著處理器技術(shù)的發(fā)展,雖然處理器的主頻和制造工藝都有一定的進步,但是處理器的性能確不能非常明顯的提高,其中一個非常重要的原因就是受到了X86所采用的SISC指令集的限制。這一點Intel方面也非常清楚。而目前IA-32(Intel Architechure-32 英特爾32
8、位體系架構(gòu))的X86系列處理器存在著一系列的問題,使得Intel方面已經(jīng)打算放棄X86指令體系處理器的發(fā)型,而將重點放在下一代的IA-64體系處理器和EPIC(Explicitly Parallel Instruction Computing)顯性并行指令方面。 X86架構(gòu)處理器示意圖 首先,我們要知道,提高處理器每個時鐘頻率的指令執(zhí)行數(shù)來提高處理器的性能,而這也是Intel開發(fā)新指令集的主要目的,這樣一來,處理器可以 讓指令更容易解碼,并且更容易進行并行處理,這樣就可以不受指令集的限制來開發(fā)新型的處理器。而X86指令集的劣勢就在于它的限制過多。
9、第一、由于X86指令集是屬于CISC類型的指令集,其每條指令的長度是不固定的,而且有幾種不同的格式,這樣一來,就造成了X86處理器的解 碼工作非常復雜。而為了提高處理器的工作頻率,就不得不延長處理器中的流水線,而過長的流水線在分支如果出現(xiàn)預測出錯的情況,又會帶來CPU工作停滯時間 較長的弊端。 第二、X86指令采用了可訪問內(nèi)存地址的方法,這樣的方法容易造成處理器與內(nèi)存之間的不平衡工作,從而降低處理器的工作效率。而先進的RISC 處理器則是使用Load/Store的存儲模式,其中只有Load和Store指令才能從內(nèi)存中讀取數(shù)據(jù)到寄存器,所有其他指令只對寄存器中的操作數(shù)進行 計算。 第三、X86構(gòu)
10、架處理器中的FPU(Floating Point Unit)浮點運算單元的運算能力較差,可以說現(xiàn)今市面上所有類型處理器中最慢的,其主要原因就是X86指令集中所使用的一個操作數(shù)堆棧。如果在運算過程 中,沒有足夠的寄存器進行計算,系統(tǒng)就不得不使用堆棧來存放數(shù)據(jù),這樣一來會浪費大量的時間來處理FXCH指令,就是將正確的數(shù)據(jù)放到堆棧的頂部。 第四、X86指令對于各種擴展部件的限制也是十分不利的。首先,X86架構(gòu)的處理器對于4GB的內(nèi)存容量上限制,雖然現(xiàn)在目前主流的個人電腦的 內(nèi)存大小為512MB和1GB,但是相信隨著操作系統(tǒng)和應用軟件的不斷提升,會快將會突破4GB的內(nèi)存容量。另外,由于為了提高X86架
11、構(gòu)的處理器的性 能,而出現(xiàn)像寄存器重命名、緩沖器巨大、亂序執(zhí)行、分支預測、X86指令轉(zhuǎn)化等等現(xiàn)象,都使得處理器的核心面積變得越來越大,這也限制了處理器工作頻率的 進一步提升,此外,處理器所集成的這些龐大數(shù)目的晶體管都只是為了解決X86指令的問題,所以繼續(xù)采用X86架構(gòu)必將會影響到處理器的發(fā)展。 而反觀IA-64體系,由于采用了RISC指令集,可由一個指令、兩個輸入寄存器和一個輸出寄存器組成,指令只對寄存器進行操作。并且具有多個不同的流水線或執(zhí)行單元,能夠并行執(zhí)行許多指令。在對指令的處理速度上要明顯優(yōu)于CISC類型的IA-32體系。 而Intel的Merced(也就是現(xiàn)在Itanium安騰)處理
12、器就是一塊采用IA-64體系的64位處理器。它擁有64位尋址能力和64位 位寬的寄存器,所以稱之為64位處理器。由于具有64位尋址能力,Merced能夠使用1百萬TB(1TB1024GB)的地址空間,足以運算企業(yè)級的 數(shù)據(jù)任務,64位寬的寄存器可以使Merced 達到非常高的精度和運算速度。它所采用的EPIC指令可以使得處理器進行并行處理,在相同的時鐘周期內(nèi),采用并行處理的指令執(zhí)行數(shù)是普通CISC指令集的 兩倍。此外,Merced可進行并行分支預測。在目前的普通的處理器中,分支預測的正確率可以達到9095,雖然正確率已經(jīng)相當高了,但如果預測出 錯時,處理器就不得不清洗整條流水線,從而降低處理器
13、的運算效率。10的預測出錯率會讓處理器損失近30的性能,而且如果流水線越長的情況下,性能損 失就越嚴重。而Merced的所采用的預測機制,可以使分支都能進行并行執(zhí)行,而且所花的招待時間與執(zhí)行單個分支的時間是相同的。其次,處理器不會再冒預 測出錯的風險。由于處理器不再進行跳躍執(zhí)行,它不會把程序代碼分成一個一個的小塊。而是將稍前和稍后的程序代碼進行打包,然后一起將它們發(fā)布,加強了并行 工作量。這些可以使采用EPIC指令的處理器避免普通處理器所出現(xiàn)的分支預測40的出錯情況,從而使處理器的性能提高1015,特別是在整數(shù)代碼 部分。 Intel的Merced
14、處理器 提升性能:擴展指令集 剛才上面提到了處理器中的擴展指令集,目前市面上Intel和AMD的桌面級處理器在X86指令集的基礎(chǔ)上,為了提升處理器各方面的性能,所以 又各自開發(fā)新的指令集。指令集中包含了處理器對多媒體、3D處理等方面的支持,這些指令集能夠提高處理器對這某些方面處理器能力,但是需要有必要的軟件支 持。 MMX指令集 MMX(Multi Media eXtension 多媒體擴展指令)指令集是Intel公司在1996年為旗下的Pentium系列處理器所開發(fā)的一項多媒體指令增強技術(shù)。MMX指令集中包括了57條多媒 體指令,通過這些指令可以一次性處理多個數(shù)據(jù),在處理結(jié)果超過實際處理能力
15、的時候仍能夠進行正常處理,如果在軟件的配合下,可以得到更強的處理性能。使用 MMX指令集的好處就是當時所使用的操作系統(tǒng)可以在不做任何改變的情況下執(zhí)行MMX指令。但是,MMX指令集的問題也是比較明顯的,MMX指令集不能與 X86的浮點運算指令同時執(zhí)行,必須做密集式的交錯切換才可以正常執(zhí)行,但是這樣一來,就會造成整個系統(tǒng)運行速度的下降。 支持MMX指令集的Intel Pentium MMX處理器 SSE指令集 SSE是Streaming SIMD Extension(SIMD擴展指令集)的縮寫,而其中SIMD的為含意為Single Istruction
16、 Multiple Data(單指令多數(shù)據(jù)),所以SSE指令集也叫單指令多數(shù)據(jù)流擴展。該指令集最先運用于Intel的Pentium III系列處理器,其實在Pentium III推出之前,Intel方面就已經(jīng)泄漏過關(guān)于KNI(Katmai New Instruction)指令集的消息。這個KNI指令集也就是SSE指令集的前身,當時也有不少的媒體將該指令集稱之為MMX2指令集,但是Intel 方面卻從沒有發(fā)布有關(guān)MMX2指令集的消息。 加入了SSE指令集的Pentium III處理器 最后在Intel推出Pentium III處理器的時候,SSE指令
17、集也終于水落石出。SSE指令集是為提高處理器浮點性能而開發(fā)的擴展指令集,它共有70條指令,其中包含提高3D圖形運算 效率的50條SIMD浮點運算指令、12條MMX 整數(shù)運算增強指令、8條優(yōu)化內(nèi)存中的連續(xù)數(shù)據(jù)塊傳輸指令。理論上這些指令對當時流行的圖像處理、浮點運算、3D運算、多媒體處理等眾多多媒體的應用能力起 到全面提升的作用。SSE指令與AMD公司的3DNow!指令彼此互不兼容,但SSE包含了3DNow!中的絕大部分功能,只是實現(xiàn)的方法不同而已。 SSE也向下兼容MMX指令,它可以通過SIMD和單時鐘周期并行處理多個浮點數(shù)據(jù)來有效地提高浮點運算速度。 3DNow!指令集 3DNow!指令集最由
18、AMD公司所推出的,該指令集應該是在SSE指令之前推出的,被廣泛運用于AMD的K6、K6-2和K7系列處理器上, 擁有21條擴展指令集。在整體上3DNow!的SSE非常相相似,它們都擁有8個新的寄存器,但是3DNow!是64位的,而SSE是128位。所以 3DNow!它只能存儲兩個浮點數(shù)據(jù),而不是四個。但是它和SSE的側(cè)重點有所不同,3DNow!指令集主要針對三維建模、坐標變換和效果渲染等3D數(shù)據(jù) 的處理,在相應的軟件配合下,可以大幅度提高處理器的3D處理性能。AMD公司后來又在Athlon系列處理器上開發(fā)了新的Enhanced 3DNow!指令集,新的增強指令數(shù)達了52個,以致目前最為流行的
19、Athlon 64系列處理器還是支持3DNow!指令的。 AMD K6、K7系列所使用的3DNow!指令集 SSE2指令集 在PentiumIII發(fā)布的時候,SSE指令集就已經(jīng)集成在了處理器的內(nèi)部,但因為各種原因一直沒有得到充分的發(fā)展。直到Pentium 4發(fā)布之后,開發(fā)人員看到使用SSE指令之后,程序執(zhí)行性能將得到極大的提升,于是Intel又在SSE的基礎(chǔ)上推出了更先進的SSE2指令集。 SSE2包含了144條指令,由兩個部分組:SSE部分和MMX部分。SSE部分主要負責處理浮點數(shù),而MMX部分則專門計算整數(shù)。SSE2的 寄存器容量是MMX寄存器
20、的兩倍,寄存器存儲數(shù)據(jù)也增加了兩倍。在指令處理速度保持不變的情況下,通過SSE2優(yōu)化后的程序和軟件運行速度也能夠提高兩 倍。由于SSE2指令集與MMX指令集相兼容,因此被MMX優(yōu)化過的程序很容易被SSE2再進行更深層次的優(yōu)化,達到更好的運行效果。SSE2對于處理器 的性能的提升是十分明顯的,雖然在同頻率的情況下,Pentium 4和性能不如Athlon XP,但由于Athlon XP不支持SSE2,所以經(jīng)過SSE2優(yōu)化后的程序Pentium 4的運行速度要明顯高于Athlon XP。而AMD方面也注意到了這一情況,在隨后的K-8系列處理器中,都加入SSE2指令集。
21、60; SSE2和SSE3指令集主要用于Pentium 4系列處理器上 SSE3指令集 SSE3指令是目前規(guī)模最小的指令集,它只有13條指令。它共劃分為五個應運層,分別為數(shù)據(jù)傳輸命令、數(shù)據(jù)處理命令、特殊處理命令、優(yōu)化命令、 超線程性能增強五個部分,其中超線程性能增強是一種全新的指令集,它可以提升處理器的超線程的處理能力,大大簡化了超線程的數(shù)據(jù)處理過程,使處理器能夠更 加快速的進行并行數(shù)據(jù)處理。 上面介紹的基本上就是Intel和AMD公司在X86架構(gòu)處理器上主要的擴展指令集,雖然它們對于處理器的性能提升有著一定程度的幫助,但是由 于受到IA-32體系的限制,X86架構(gòu)基本上不會再有具有
22、革命性意義的指令集出現(xiàn),而雙方都已經(jīng)把重心轉(zhuǎn)向了64位體系架構(gòu)的處理器指令集開發(fā)上。 未來:邁向64位體系 在現(xiàn)在的處理器市場上,64位技術(shù)已經(jīng)開始普及起來,像AMD的Athlon 64處理器和Intel的Pentium 5XX/6XX處理器已經(jīng)成為市場的主流。但是大家要值得主意的是,目前的桌面級64位處理器仍然還是基于X86架構(gòu)之上,而不是IA-64架構(gòu)。這里的64位處理器是指的處理器的通用寄存器GPR(General-Purpose Registers)的數(shù)據(jù)寬度為64位。也就是說處理器可一次運算64 位數(shù)據(jù)。使用64位技術(shù)運算有兩大優(yōu)點:可以進行更大范圍的整數(shù)運算,還有就是可以支持更大容
23、量的內(nèi)存。但是要注意的是,不要看表面64 位是32位兩倍,就簡單的認為64位處理器的性能是32位處理器性能的兩倍。就在目前的32位主流平臺下,32位的處理器在某些方面甚至要比64位處理器還要強,所以在32位操作系統(tǒng)和運用程序為主情況下,不要太過于迷信64位處理器。 64位處理器技術(shù)并不是Intel和AMD處理器上才有的。早在上個世紀90年代末,在高端的采用RISC指令集的處理器中就已經(jīng)有了64位處 理器,比如SUN公司的UltraSparc 、IBM公司的Power5、HP公司的Alpha等處理器產(chǎn)品。現(xiàn)在市面上主流的64位技術(shù)主要是Intel的EM64T技術(shù)和AMD和AMD64技 術(shù)。而這兩
24、項技術(shù)都是基于IA-32體系,而真正的IA-64體系上處理器目前只有Itanium(安騰)以及其后續(xù)產(chǎn)品,是Intel獨立開發(fā)的,它不 兼容現(xiàn)在32位計算機。 AMD64位技術(shù) AMD的athlon 64系列處理器的64位技術(shù)是在X86指令集的基礎(chǔ)上加入了X86-64的64位擴展X86指令集,這就使得athlon 64系列處理器可兼容原來的32位的X86軟件,并同時支持X86-64的擴展64位計算,并且具有64位的尋址能力,使得它成為真正的64位X86構(gòu)架 處理器。在采用X86-64架構(gòu)的Athlon 64處理器中,X86-64指令集中新增了幾組處理器寄存器,它能夠提供更加快速的執(zhí)行效率。寄存
25、器是處理器用來創(chuàng)建和儲存CPU運算結(jié)果和其他運算結(jié)果 的地方,標準的X86構(gòu)架中包括8組通用寄存器,而在AMD的X86-64架構(gòu)中又增加了8組,將通過寄存器的數(shù)目提高到了16組。在這基礎(chǔ)之上,X86 -64指令集還另外增加了8組128位的XMM寄存器,也叫做SSE寄存器。它能夠給單指令多數(shù)據(jù)流技術(shù)(SIMD)運算提供更多的存儲空間,這些128 位的寄存器能夠提供在矢量和標量計算模式下進行128位雙精度處理,這也為3D數(shù)據(jù)處理、矢量分析和虛擬技術(shù)提供了良好的硬件基礎(chǔ)。由于提供了更多的寄存 器,按照X86-64標準生產(chǎn)的處理器可以更有效率的處理數(shù)據(jù),在一個時鐘周期內(nèi)能夠傳輸更多的信息。 采用X86-64架構(gòu)的AMD Athlon 64處理器 EM64T技術(shù) EM64T(Extended Memory 64 Technology)也就是Intel公司開發(fā)的64位內(nèi)存擴展技術(shù)。它實際上就是Intel IA-32構(gòu)架體系的擴展,既IA-32E(Intel Architectur-3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工智能在心理健康領(lǐng)域的創(chuàng)新實踐
- 民俗文化與數(shù)字化技術(shù)的融合路徑
- 春分園藝指南
- 學習共進之旅
- 電化學儲能電站項目總體規(guī)劃
- 濟寧小升初分班試題及答案
- 2025年中老年女裝項目申請報告
- 2025委托檢測合同范本模板
- 高一地理試題及答案文檔
- 2025至2030年中國微型渦桿式減速機行業(yè)投資前景及策略咨詢報告
- 四川省地圖矢量經(jīng)典模板(可編輯)
- 100kg級復合翼垂直起降無人機系統(tǒng)總體技術(shù)方案報告20170428(公開)
- 項目重難點分析
- 南方無花果栽培技術(shù)
- 外加劑標準50119-2013-相關(guān)知識
- 養(yǎng)殖場環(huán)境應急預案
- 數(shù)字人民幣專題分析
- RITTAL威圖空調(diào)中文說明書
- 馬工程教育學項賢明第九章-教師與學生
- 2023年上海市普通高中學業(yè)合格考試歷史試題
- 精選最近九年北京高考數(shù)學(理)壓軸題(含答案)
評論
0/150
提交評論