Remove ads
来自维基百科,自由的百科全书
指令集架構(英語:Instruction Set Architecture,縮寫為ISA),又稱指令集或指令集體系,是電腦架構中與程式設計有關的部分,包含了基本資料類型,指令集,暫存器,定址模式,儲存體系,中斷,異常處理以及外部I/O。指令集架構包含一系列的opcode即操作碼(機器語言),以及由特定處理器執行的基本命令。
不同的處理器「家族」——例如Intel IA-32和x86-64、IBM/Freescale Power和ARM處理器家族——有不同的指令集架構。[1]
指令集體系與微架構(一套用於執行指令集的微處理器設計方法)不同。使用不同微架構的電腦可以共享一種指令集。例如,Intel的Pentium和AMD的AMD Athlon,兩者幾乎採用相同版本的x86指令集體系,但是兩者在內部設計上有本質的區別。
一些虛擬機器支援基於Smalltalk,Java虛擬機,微軟的公共語言執行時虛擬機所生成的位元組碼,他們的指令集體系將bytecode(位元組碼)從作為一般手段的代碼路徑翻譯成本地的機器語言,並通過解譯執行並不常用的代碼路徑,全美達以相同的方式開發了基於x86指令體系的VLIW處理器。
複雜指令集電腦包含許多應用程式中很少使用的特定指令,由此產生的缺陷是指令長度不固定。精簡指令集電腦通過只執行在程式中經常使用的指令來簡化處理器的結構,而特殊操作則以子程式的方式實現,它們的特殊使用通過處理器額外的執行時間來彌補。理論上的重要類型還包括最小指令集電腦與單指令集電腦,但都未用作商業處理器。另外一種衍生類型是超長指令字,處理器接受許多經過編碼的指令並通過檢索提取出一個指令字並執行。
機器語言是由聲明和指令所組成的。在處理結構上,一個特定指令指明了以下幾個部分:
有效的指令操作須包含:
一些電腦在他們的指令集架構內包含複雜指令。複雜指令包含:
有一種複雜指令單指令流多資料流(SIMD),或向量指令,這是一種可以在同一時間對多筆資料進行相同運算的操作。SIMD有能力在短時間內將大筆的向量和矩陣計算完成。SIMD指令使平行計算變得簡單,各種SIMD指令集被開發出來,例如MMX,3DNow!以及AltiVec。
在傳統的架構上,一條指令包含op code,表示運算的方式,以及零個或是更多的運算元,有些像是運算元的數字可能指的是暫存器的編號,還有記憶體位置,或是文字資料。
指令長度的範圍可以說是相當廣泛,從微控制器的4 bit,到VLIW系統的數百bit。在個人電腦,大型電腦,超級電腦內的處理器,其內部的指令長度介於8到64 bits(在x86處理器結構內,最長的指令長達15 bytes,等於120 bits)。在一個指令集架構內,不同的指令可能會有不同長度。在一些結構,特別是大部分的精簡指令集(RISC),指令是固定的長度,長度對應到結構內一個字的大小。在其他結構,長度則是byte的整數倍或是一個halfword。
對微處理器而言有兩種指令集。第一種是複雜指令集(Complex Instruction Set Computer),擁有許多不同的指令。在1970年代,許多機構,像是IBM,發現有許多指令是不需要的。結果就產生了精簡指令集(Reduced Instruction Set Computer),它所包含的指令就比較少。精簡的指令集可以提供比較高的速度,使處理器的尺寸縮小,以及較少的電力損耗。然而,比較複雜的指令集較容易使工作更完善,記憶體及快取的效率較高,以及較為簡單的程式碼。
在設計處理器內的微架構時,工程師使用藉電路連接的區塊來架構,區塊用來表示加法器,乘法器,計數器,暫存器,算術邏輯單元等等,暫存器傳遞語言通常被用來描述被解碼的指令,指令是藉由微架構來執行指令。 有兩種基本的方法來建構控制單元,藉控制單元,以微架構作為通路來執行指令:
電腦微處理器的指令集架構(Instruction Set Architecture)常見的有三種:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.