cpu指令集有多少種
cpu指令集有多少種
你知道電腦cpu的指令集有多少種嗎?小編來像你介紹!下面由學(xué)習(xí)啦小編給你做出詳細(xì)的cpu指令集介紹!希望對你有幫助!
cpu指令集介紹一
(1)CISC指令集
CISC指令集,也稱為復(fù)雜指令集,英文名是CISC,(Complex Instruction Set Computer的縮寫)。在CISC微處理器中,程序的各條指令是按順序串行執(zhí)行的,每條指令中的各個操作也是按順序串行執(zhí)行的。順序執(zhí)行的優(yōu)點是控制簡單,但計算機各部分的利用率不高,執(zhí)行速度慢。其實它是英特爾生產(chǎn)的x86系列(也就是IA-32架構(gòu))CPU及其兼容CPU,如AMD、VIA的。即使是現(xiàn)在新起的X86-64(也被成AMD64)都是屬于CISC的范疇。
要知道什么是指令集還要從當(dāng)今的X86架構(gòu)的CPU說起。X86指令集是Intel為其第一塊16位CPU(i8086)專門開發(fā)的,IBM1981年推出的世界第一臺PC機中的CPU—i8088(i8086簡化版)使用的也是X86指令,同時電腦中為提高浮點數(shù)據(jù)處理能力而增加了X87芯片,以后就將X86指令集和X87指令集統(tǒng)稱為X86指令集。
雖然隨著CPU技術(shù)的不斷發(fā)展,Intel陸續(xù)研制出更新型的i80386、i80486直到過去的PII至強、PIII至強、Pentium 3,最后到今天的Pentium 4系列、至強(不包括至強Nocona),但為了保證電腦能繼續(xù)運行以往開發(fā)的各類應(yīng)用程序以保護和繼承豐富的軟件資源,所以Intel公司所生產(chǎn)的所有CPU仍然繼續(xù)使用X86指令集,所以它的CPU仍屬于X86系列。由于Intel X86系列及其兼容CPU(如AMD Athlon MP、)都使用X86指令集,所以就形成了今天龐大的X86系列及兼容CPU陣容。x86CPU目前主要有intel的服務(wù)器CPU和AMD的服務(wù)器CPU兩類。
(2)RISC指令集
RISC是英文“Reduced Instruction Set Computing ” 的縮寫,中文意思是“精簡指令集”。它是在CISC指令系統(tǒng)基礎(chǔ)上發(fā)展起來的,有人對CISC機進行測試表明,各種指令的使用頻度相當(dāng)懸殊,最常使用的是一些比較簡單的指令,它們僅占指令總數(shù)的20%,但在程序中出現(xiàn)的頻度卻占80%。復(fù)雜的指令系統(tǒng)必然增加微處理器的復(fù)雜性,使處理器的研制時間長,成本高。并且復(fù)雜指令需要復(fù)雜的操作,必然會降低計算機的速度?;谏鲜鲈颍?0世紀(jì)80年代RISC型CPU誕生了,相對于CISC型CPU ,RISC型CPU不僅精簡了指令系統(tǒng),還采用了一種叫做“超標(biāo)量和超流水線結(jié)構(gòu)”,大大增加了并行處理能力。RISC指令集是高性能CPU的發(fā)展方向。它與傳統(tǒng)的CISC(復(fù)雜指令集)相對。相比而言,RISC的指令格式統(tǒng)一,種類比較少,尋址方式也比復(fù)雜指令集少。當(dāng)然處理速度就提高很多了。目前在中高檔服務(wù)器中普遍采用這一指令系統(tǒng)的CPU,特別是高檔服務(wù)器全都采用RISC指令系統(tǒng)的CPU。RISC指令系統(tǒng)更加適合高檔服務(wù)器的操作系統(tǒng)UNIX,現(xiàn)在Linux也屬于類似UNIX的操作系統(tǒng)。RISC型CPU與Intel和AMD的CPU在軟件和硬件上都不兼容。
目前,在中高檔服務(wù)器中采用RISC指令的CPU主要有以下幾類:PowerPC處理器、SPARC處理器、PA-RISC處理器、MIPS處理器、Alpha處理器。
(3)IA-64
EPIC(Explicitly Parallel Instruction Computers,精確并行指令計算機)是否是RISC和CISC體系的繼承者的爭論已經(jīng)有很多,單以EPIC體系來說,它更像Intel的處理器邁向RISC體系的重要步驟。從理論上說,EPIC體系設(shè)計的CPU,在相同的主機配置下,處理Windows的應(yīng)用軟件比基于Unix下的應(yīng)用軟件要好得多。
Intel采用EPIC技術(shù)的服務(wù)器CPU是安騰Itanium(開發(fā)代號即Merced)。它是64位處理器,也是IA-64系列中的第一款。微軟也已開發(fā)了代號為Win64的操作系統(tǒng),在軟件上加以支持。在Intel采用了X86指令集之后,它又轉(zhuǎn)而尋求更先進的64-bit微處理器,Intel這樣做的原因是,它們想擺脫容量巨大的x86架構(gòu),從而引入精力充沛而又功能強大的指令集,于是采用EPIC指令集的IA-64架構(gòu)便誕生了。IA-64 在很多方面來說,都比x86有了長足的進步。突破了傳統(tǒng)IA32架構(gòu)的許多限制,在數(shù)據(jù)的處理能力,系統(tǒng)的穩(wěn)定性、安全性、可用性、可觀理性等方面獲得了突破性的提高。
IA-64微處理器最大的缺陷是它們?nèi)狈εcx86的兼容,而Intel為了IA-64處理器能夠更好地運行兩個朝代的軟件,它在IA-64處理器上(Itanium、Itanium2 ……)引入了x86-to-IA-64的解碼器,這樣就能夠把x86指令翻譯為IA-64指令。這個解碼器并不是最有效率的解碼器,也不是運行x86代碼的最好途徑(最好的途徑是直接在x86處理器上運行x86代碼),因此Itanium 和Itanium2在運行x86應(yīng)用程序時候的性能非常糟糕。這也成為X86-64產(chǎn)生的根本原因。
(4)X86-64 (AMD64 / EM64T)
AMD公司設(shè)計,可以在同一時間內(nèi)處理64位的整數(shù)運算,并兼容于X86-32架構(gòu)。其中支持64位邏輯定址,同時提供轉(zhuǎn)換為32位定址選項;但數(shù)據(jù)操作指令默認(rèn)為32位和8位,提供轉(zhuǎn)換成64位和16位的選項;支持常規(guī)用途寄存器,如果是32位運算操作,就要將結(jié)果擴展成完整的64位。這樣,指令中有“直接執(zhí)行”和“轉(zhuǎn)換執(zhí)行”的區(qū)別,其指令字段是8位或32位,可以避免字段過長。
x86-64(也叫AMD64)的產(chǎn)生也并非空穴來風(fēng),x86處理器的32bit尋址空間限制在4GB內(nèi)存,而IA-64的處理器又不能兼容x86。AMD充分考慮顧客的需求,加強x86指令集的功能,使這套指令集可同時支持64位的運算模式,因此AMD把它們的結(jié)構(gòu)稱之為x86-64。在技術(shù)上AMD在x86-64架構(gòu)中為了進行64位運算,AMD為其引入了新增了R8-R15通用寄存器作為原有X86處理器寄存器的擴充,但在而在32位環(huán)境下并不完全使用到這些寄存器。原來的寄存器諸如EAX、EBX也由32位擴張至64位。在SSE單元中新加入了8個新寄存器以提供對SSE2的支持。寄存器數(shù)量的增加將帶來性能的提升。與此同時,為了同時支持32和64位代碼及寄存器,x86-64架構(gòu)允許處理器工作在以下兩種模式:Long Mode(長模式)和Legacy Mode(遺傳模式),Long模式又分為兩種子模式(64bit模式和Compatibility mode兼容模式)。該標(biāo)準(zhǔn)已經(jīng)被引進在AMD服務(wù)器處理器中的Opteron處理器。
而今年也推出了支持64位的EM64T技術(shù),再還沒被正式命為EM64T之前是IA32E,這是英特爾64位擴展技術(shù)的名字,用來區(qū)別X86指令集。Intel的EM64T支持64位sub-mode,和AMD的X86-64技術(shù)類似,采用64位的線性平面尋址,加入8個新的通用寄存器(GPRs),還增加8個寄存器支持SSE指令。與AMD相類似,Intel的64位技術(shù)將兼容IA32和IA32E,只有在運行64位操作系統(tǒng)下的時候,才將會采用IA32E。IA32E將由2個sub-mode組成:64位sub-mode和32位sub-mode,同AMD64一樣是向下兼容的。Intel的EM64T將完全兼容AMD的X86-64技術(shù)?,F(xiàn)在Nocona處理器已經(jīng)加入了一些64位技術(shù),Intel的Pentium 4E處理器也支持64位技術(shù)。
應(yīng)該說,這兩者都是兼容x86指令集的64位微處理器架構(gòu),但EM64T與AMD64還是有一些不一樣的地方,AMD64處理器中的NX位在Intel的處理器中將沒有提供。
cpu指令集介紹二
精簡指令集 精簡指令集,計算機CPU的一種設(shè)計模式,也被稱為RISC(Reduced Instruction Set Computing 的縮寫)。常見的精簡指令集微處理器包括AVR、PIC、ARM、DEC Alpha、PA-RISC、SPARC、MIPS、Power架構(gòu)等。
早期,這種CPU指令集的特點是指令數(shù)目少,每條指令都采用標(biāo)準(zhǔn)字長、執(zhí)行時間短、CPU的實現(xiàn)細(xì)節(jié)對于機器級程序是可見的等等。
實際上在后來的發(fā)展中,RISC與CISC在爭吵的過程中相互學(xué)習(xí),現(xiàn)在的RISC指令集也達到數(shù)百條,運行周期也不再固定……雖然如此,RISC設(shè)計的根本原則--針對流水線化的處理器優(yōu)化--沒有改變。
RISC之前的設(shè)計原理
在早期的計算機業(yè)中,編譯器技術(shù)尚未出現(xiàn)。程序是以機器語言或匯編語言完成的。為了便于編寫程序,計算機架構(gòu)師造出越來越復(fù)雜的指令,可以高階程序語言直接陳述高階功能。當(dāng)時的看法是硬件比編譯器更易設(shè)計,所以復(fù)雜的東西就加進硬件了。
加速復(fù)雜化的其它因素是缺乏大內(nèi)存。內(nèi)存小的環(huán)境中,具有極高訊息密度的程序較有利。當(dāng)內(nèi)存中的每一字節(jié)如此珍貴,例如儲存某個完整系統(tǒng)只需幾千字節(jié),它使產(chǎn)業(yè)移向高度編碼的指令、長度不等的指令、執(zhí)行多個操作的指令,和執(zhí)行數(shù)據(jù)傳輸與計算的指令。當(dāng)時指令封包問題遠(yuǎn)比易解的指令重要。
內(nèi)存不僅小,而且很慢,打從當(dāng)時使用磁性技術(shù)。這是維持極高訊息密度的其它原因。借著具有極高訊息密度封包,當(dāng)必須存取慢速資源時可以降低頻率。
CPU只有少數(shù)緩存器的兩個原因∶
CPU內(nèi)部緩存器遠(yuǎn)貴于外部內(nèi)存。以當(dāng)時的集成電路技術(shù)水準(zhǔn),大緩存器集對芯片或電路板區(qū)域只是多余的浪費。
具有大數(shù)量的緩存器將需要大數(shù)量的指令位(使用珍貴的RAM)以做為緩存器指定器。
基于上述原因,CPU設(shè)計師試著令指令盡可能做更多的工作。這導(dǎo)致一個指令將做全部的工作∶讀入兩個數(shù)字,相加,并且直接在內(nèi)存儲存計算結(jié)果。其它版本將從內(nèi)存讀取兩個數(shù)字,但計算結(jié)果儲存在緩存器。另一個版本將從內(nèi)存和緩存器各讀一個數(shù)字,并再次存入內(nèi)存。以此類推。這種處理器設(shè)計原理最終成為復(fù)雜指令集(CISC)。
當(dāng)時的目標(biāo)是給所有的指令提供所有的尋址模式,此稱為「正交性」。這在 CPU 上導(dǎo)致了一些復(fù)雜性,但就理論上每個可能的命令都可以單獨的調(diào)試(調(diào)用,be tuned),這樣使得程序員能夠比用簡單的命令來得更快速。
這類的設(shè)計最終可以由光譜的兩端來表達, 6502 在光譜的一端,而 VAX 在光譜的另一端。單價25美元的 1MHz 6502 芯片只有單一的通用緩存器, 但它的極精簡的單周期內(nèi)存界面(single-cycle memory interface)讓一個位的操作效能和更高頻率設(shè)計幾乎相同,例如 4MHz Zilog Z80 在使用相同慢速的記憶芯片下(大約近似 300ns)。The VAX was a minicomputer whose initial implementation required 3 racks of equipment for a single cpu, and was notable for the amazing variety of memory access styles it supported, and the fact that every one of them was available for every instruction. The VAX was a minicomputer whose initial implementation required 3 racks of equipment for a single cpu, and was notable for the amazing variety of memory access styles it supported, and the fact that every one of them was available for every instruction.
RISC設(shè)計中常見的特征∶
統(tǒng)一指令編碼(例如,所有指令中的op-code永遠(yuǎn)位于同樣的位位置、等長指令),可快速解譯∶
泛用的緩存器,所有緩存器可用于所有內(nèi)容,以及編譯器設(shè)計的單純化(不過緩存器中區(qū)分了整數(shù)和浮點數(shù));
單純的尋址模式(復(fù)雜尋址模式以簡單計算指令序列取代);
硬件中支持少數(shù)數(shù)據(jù)型別(例如,一些CISC計算機中存有處理字節(jié)字符串的指令。這在RISC計算機中不太可能出現(xiàn))。
RISC設(shè)計上同時也有哈佛內(nèi)存模塊特色,凡指令流和數(shù)據(jù)流在概念上分開;這意味著更改代碼存在的內(nèi)存地址對處理器執(zhí)行過的指令沒有影響(因為CPU有著獨立的指令和數(shù)據(jù)緩存),至少在特殊的同步指令發(fā)出前。在另一面,這允許指令緩存和數(shù)據(jù)緩存同時被訪問,通常能改進運行效率。
許多早期的RISC設(shè)計同樣共享著不好的副作用——轉(zhuǎn)移延時槽,轉(zhuǎn)移延時槽是指一個跳轉(zhuǎn)或轉(zhuǎn)移指令之后的指令空間。無論轉(zhuǎn)移是否發(fā)生,空間中的指令將被執(zhí)行(或者說是轉(zhuǎn)移效果被延遲)。這些指令讓CPU的算術(shù)和邏輯單元(ALU)繁忙比通常執(zhí)行轉(zhuǎn)移所需更多的時間?,F(xiàn)在轉(zhuǎn)移延時槽被認(rèn)為是實現(xiàn)特定RISC設(shè)計的副作用,現(xiàn)代的RISC設(shè)計通常避免了這個問題(如PowerPC,最近的SPARC版本,MIPS)。
復(fù)雜指令集(CISC)
例如:Intel的奔騰系列CPU屬于復(fù)雜指令集CPU,IBM 的PowerPC 970(用于蘋果機MAC G5)CPU屬于精簡指令集CPU。
看了“cpu指令集有多少種 ”文章的還看了: