微碼

微碼

微碼(英語:microcode),又稱微指令,是在CISC結構下,運行一些功能複雜的指令時,所分解一系列相對簡單的指令。相關的概念最早在1947年開始出現。

簡介

微指令(英語:microcode),又稱 微碼,是在CISC結構下,運行一些功能複雜的指令時,所分解一系列相對簡單的指令。相關的概念最早在1947年開始出現。

微指令的作用是將機器指令與相關的電路實現分離,這樣一來機器指令可以更自由的進行設計與修改,而不用考慮到實際的電路架構。與其他方式比較起來,使用微指令架構可以在降低電路複雜度的同時,建構出複雜的多步驟機器指令。撰寫微指令一般稱為微程式設計(microprogramming),而特定架構下的處理器實做中微指令有時會稱為微程式(microprogram)。

現代的微指令通常由CPU工程師在設計階段編寫,並且存儲在唯讀記憶體(ROM, read-only-memory)或可程式邏輯數組(PLA, programmable logic array)中。然而有些機器會將微指令存儲在靜態隨機存取記憶體(SRAM)或是快閃記憶體(flash memory)中。它通常對普通程式設計師甚至是彙編語言程式設計師來說是不可見的,也是無法修改的。與機器指令不同的是,機器指令必須在一系列不同的處理器之間維持兼容性,而微指令只設計成在特定的電路架構下運行,成為特定處理器設計的一部分。

微程式設計技術

微程式設計技術,指的是用軟體技術來實現硬體設計的一種技術。

指令集架構

指令集架構(英語:Instruction Set Architecture,縮寫為ISA),又稱 指令集指令集體系,是計算機體系結構中與程式設計有關的部分,包含了基本數據類型,指令集,暫存器,定址模式,存儲體系,中斷,異常處理以及外部I/O。指令集架構包含一系列的opcode即操作碼(機器語言),以及由特定處理器執行的基本命令。

指令集體系與微架構(一套用於執行指令集的微處理器設計方法)不同。使用不同微架構的電腦可以共享一種指令集。例如,Intel的Pentium和AMD的AMD Athlon,兩者幾乎採用相同版本的x86指令集體系,但是兩者在內部設計上有本質的區別。

一些虛擬機器支持基於Smalltalk,Java虛擬機,微軟的公共語言運行時虛擬機所生成的位元組碼,他們的指令集體系將bytecode(位元組碼)從作為一般手段的代碼路徑翻譯成本地的機器語言,並通過解譯執行並不常用的代碼路徑,全美達以相同的方式開發了基於x86指令體系的VLIW處理器。

指令集的分類

複雜指令集計算機包含許多應用程式中很少使用的特定指令,由此產生的缺陷是指令長度不固定。精簡指令集計算機通過只執行在程式中經常使用的指令來簡化處理器的結構,而特殊操作則以子程式的方式實現,它們的特殊使用通過處理器額外的執行時間來彌補。理論上的重要類型還包括最小指令集計算機與單指令集計算機,但都未用作商業處理器。另外一種衍生類型是超長指令字,處理器接受許多經過編碼的指令並通過檢索提取出一個指令字並執行。

機器語言

機器語言是由聲明和指令所組成的。在處理結構上,一個特定指令指明了以下幾個部分:

•用於算術運算,定址或者控制功能的特定暫存器;

•特定存儲空間的地址或偏移量;

•用於解譯操作碼的特定定址模式。

複雜的操作可以藉由將簡單的指令合併而達成,可以(在馮·諾依曼體系中)連續的執行,也可以藉控制流來執行指令。

複雜指令集

複雜指令集(英文: Complex Instruction Set Computing;縮寫: CISC)是一種微處理器指令集架構,每個指令可執行若干低階操作,諸如從記憶體讀取、儲存、和計算操作,全部集於單一指令之中。與之相對的是精簡指令集。

複雜指令集的特點是指令數目多而複雜,每條指令字長並不相等,電腦必須加以判讀,並為此付出了性能的代價。

在精簡指令集處理器發跡以前,許多電腦架構嘗試跨越“語義鴻溝”──設計出藉由提供“高階”指令支援高階程式語言的指令集,諸如程式調用和返回,循環指令諸如“若非零則減量和分支”和複雜定址模式以允許數據結構和陣列存取以結合至單一指令。與複雜指令集相比,精簡指令集實現更容易,指令並行執行程度更好,編譯器的效率更高。

屬於複雜指令集的處理器有CDC 6600、System/360、VAX、PDP-11、Motorola 68000家族、x86等。

參見

•微架構

•計算機系統結構

相關詞條

相關搜尋

熱門詞條

聯絡我們