Loading AI tools
来自维基百科,自由的百科全书
指令集架構(英語: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.