指令集架構(gòu)(英語:Instruction Set Architecture,縮寫為ISA),,又稱指令集或指令集體系,,是計算機體系結(jié)構(gòu)中與程序設計有關的部分,包含了基本數(shù)據(jù)類型,,指令集,,寄存器,尋址模式,,存儲體系,,中斷,異常處理以及外部I/O,。指令集架構(gòu)包含一系列的opcode即操作碼(機器語言),,以及由特定處理器執(zhí)行的基本命令。 指令集體系與微架構(gòu)(一套用于執(zhí)行指令集的微處理器設計方法)不同,。使用不同微架構(gòu)的電腦可以共享一種指令集,。例如,Intel的Pentium和AMD的AMD Athlon,兩者幾乎採用相同版本的x86指令集體系,,但是兩者在內(nèi)部設計上有本質(zhì)的區(qū)別,。 一些虛擬機器支持基于Smalltalk,Java虛擬機,,微軟的公共語言運行時虛擬機所生成的字節(jié)碼,,他們的指令集體系將bytecode(字節(jié)碼)從作為一般手段的代碼路徑翻譯成本地的機器語言,并通過解譯執(zhí)行并不常用的代碼路徑,,全美達以相同的方式開發(fā)了基于x86指令體系的VLIW處理器,。 目錄指令集的分類編輯復雜指令集計算機包含許多應用程序中很少使用的特定指令,由此產(chǎn)生的缺陷是指令長度不固定,。精簡指令集計算機通過只執(zhí)行在程序中經(jīng)常使用的指令來簡化處理器的結(jié)構(gòu),,而特殊操作則以子程序的方式實現(xiàn),它們的特殊使用通過處理器額外的執(zhí)行時間來彌補,。理論上的重要類型還包括最小指令集計算機(英語:Minimal instruction set computer)與單指令集計算機,但都未用作商業(yè)處理器,。另外一種衍生類型是超長指令字,,處理器接受許多經(jīng)過編碼的指令并通過檢索提取出一個指令字并執(zhí)行。 機器語言編輯機器語言是由聲明和指令所組成的,。在處理結(jié)構(gòu)上,,一個特定指令指明了以下幾個部分: 複雜的操作可以藉由將簡單的指令合併而達成,,可以(在馮·諾依曼體系中)連續(xù)的執(zhí)行,,也可以藉控制流來執(zhí)行指令。 指令類型編輯有效的指令操作須包含:
複雜指令編輯一些電腦在他們的指令集架構(gòu)內(nèi)包含複雜指令,。複雜指令包含:
有一種複雜指令單指令流多資料流,,英文全名是Single-Instruction Stream Multiple-Data Stream?;蚴?a title='并行向量處理機'>向量指令,,這是一種可以在同一時間對多筆資料進行相同運算的操作。SIMD有能力在短時間內(nèi)將大筆的向量和矩陣計算完成,。SIMD指令使平行計算變得簡單,,各種SIMD指令集被開發(fā)出來,例如MMX,,3DNow!以及AltiVec,。 指令的組成編輯在傳統(tǒng)的架構(gòu)上,,一條指令包含opcode,表示運算的方式,,以及零個或是更多的運算元,,有些像是運算元的數(shù)字可能指的是暫存器的編號,,還有記憶體位置,或是文字資料,。 在超長指令字(VLIW)的結(jié)構(gòu)中,,包含了許多微指令,藉此將複雜的指令分解為簡單的指令,。 指令的長度編輯指令長度的範圍可以說是相當廣泛,,從微控制器的4 bit,到VLIW系統(tǒng)的數(shù)百bit,。在個人電腦,,大型電腦,超級電腦內(nèi)的處理器,,其內(nèi)部的指令長度介於8到64 bits(在x86處理器結(jié)構(gòu)內(nèi),,最長的指令長達15 bytes,等於120 bits),。在一個指令集架構(gòu)內(nèi),,不同的指令可能會有不同長度。在一些結(jié)構(gòu),,特別是大部分的精簡指令集(RISC),,指令是固定的長度,長度對應到結(jié)構(gòu)內(nèi)一個字的大小,。在其他結(jié)構(gòu),,長度則是byte的整數(shù)倍或是一個halfword,。 設計編輯對微處理器而有兩種指令集,。第一種是複雜指令集(Complex Instruction Set Computer),擁有許多不同的指令,。在1970年代,,許多機構(gòu),像是IBM,,發(fā)現(xiàn)有許多指令是不需要的,。結(jié)果就產(chǎn)生了精簡指令集(Reduced Instruction Set Computer),它所包含的指令就比較少,。精簡的指令集可以提供比較高的速度,,使處理器的尺寸縮小,以及較少的電力損耗,。然而,,比較複雜的指令集較容易使工作更完善,記憶體及快取的效率較高,,以及較為簡單的程式碼,。 一些指令集保留了一個或多個的opcode,,以執(zhí)行系統(tǒng)調(diào)用或軟體中斷。 指令集的實作編輯在設計處理器內(nèi)的微架構(gòu)時,,工程師使用藉電路連接的區(qū)塊來架構(gòu),,區(qū)塊用來表示加法器,乘法器,,計數(shù)器,,暫存器,算術邏輯單元等等,,暫存器傳遞語言通常被用來描述被解碼的指令,,指令是藉由微架構(gòu)來執(zhí)行指令。 有兩種基本的方法來建構(gòu)控制單元,,藉控制單元,,以微架構(gòu)作為通路來執(zhí)行指令:
電腦微處理器的指令集架構(gòu)(Instruction Set Architecture)常見的有三種:
延伸閱讀編輯
外部連結(jié)編輯 |
|