寄存器
维基百科,自由的百科全书
zh-cn:寄存器;zh-tw:暫存器
寄存器又译暫存器(register),是中央處理器內的其中組成部份。zh-cn:寄存器;zh-tw:暫存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據和位址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計數器(PC)。在中央處理器的算術及邏輯部件中,包含的寄存器有累加器(ACC)。
在 電腦架構 裡 ,處理器中的暫存器是少量且速度快的 電腦記憶體,藉由提供快速共同地存取數值來加速 電腦程式 的執行 — 典型地說就是在已知時間點所作的之計算中間的數值。
暫存器是 記憶體階層 中的最頂端,也是系統操作資料的最快速途徑。暫存器通常都是以他們可以保存的 位元 數量來估量,舉例來說,一個 "8 位元 暫存器" 或 "32 位元 暫存器"。暫存器現在都以 暫存器檔案 的方式來實作,但是他們也可能使用單獨的 正反器、高速的 核心記憶體、薄膜記憶體 以及在數種機器上的其他方式來實作出來。
這個名詞通常都用來意指由一個指令之輸出或輸入可以直接索引到的暫存器群組。更適當的是稱他們為 "架構暫存器"。例如,x86 指令及定義八個 32 位元暫存器的集合,但一個實作 x86 指令集的 CPU 可以包含比八個更多的暫存器。
共有以下幾類的暫存器:
- 資料寄存器 - 用來儲存 整數 數字 (參考以下的浮點暫存器)。在某些簡單/舊的 CPU,特別的資料暫存器是 累加器,作為數學計算之用。
- 位址寄存器 - 持有記憶體位址,以及用來存取 記憶體。在某些簡單/舊的 CPU 裡,特別的位址暫存器是 索引暫存器 (可能出現一個或多個)。
- 通用目的暫存器 (GPRs) - 可以保存資料或位址兩者,也就是說他們是結合 資料/位址 暫存器的功用。
- 浮點寄存器 (FPRs) - 用來儲存 浮點 數字。
- 常數寄存器 - 用來持有唯讀的數值 (例如 0, 1, 圓周率等等)。
- 向量寄存器 - 用來儲存由向量處理器執行 SIMD (Single Instruction, Multiple Data) 指令所得到的資料。
- 特殊目的寄存器 - 儲存 CPU 內部的資料,像是 程式計數器 (或稱為指令指標),堆疊暫存器,以及狀態暫存器 (或稱微處理器狀態字組)。
- 指令寄存器(instruction register) - 儲存現在正在被執行的指令
- 索引寄存器(index register) - 是在程式執行實用來更改 運算元 位址之用。
- 在某些架構下,模式指示暫存器 (也稱為 "機器指示寄存器") 儲存和設定跟處理器自己有關的資料。由於他們的意圖目的是附加到特定處理器的設計,因此他們並不被預期會成微處理器世代之間保留的標準。
- 有關從 隨機存取記憶體 提取資訊的寄存器 (與 CPU 位於不同晶片的儲存寄存器集合)
- 記憶體緩衝寄存器(Memory buffer register)
- 記憶體資料寄存器(Memory data register)
- 記憶體位址寄存器(Memory address register)
- 記憶體型態範圍寄存器(Memory Type Range Registers)
硬體寄存器 跟本條目相當類似,但是他們是位於 CPU 之外。