寄存器

本页使用了标题或全文手工转换,现处于中国大陆简体模式
求闻百科,共笔求闻

小仓由菜留言 | 贡献于2022年8月10日 (三) 23:38提交的版本 (我来啦, replaced: 內 → 内, 參考 → 参考, 學 → 学, 參 → 参, 會 → 会 (2), 與 → 与 (2), 間 → 间 (4), 處 → 处 (9), 雙 → 双, 構 → 构 (6), 關 → 关 (2), 舊 → 旧 (2), 馬 → 马, 見 → 见, 來 → 来 (13), 義 → 义, 體 → 体 (13), 類 → 类, 圖 → 图, 簡 → 简 (2), 稱 → 称 (3), 為 → 为 (4), 於 → 于 (3), 種 → 种 (2), 數 → 数 (16), 據 → 据, 電 → 电 (4), 舉 → 举, 標 → 标 (2), 點 → 点 (5), 實 → 实 (4), 並 → 并 (2), 現 → 现 (3), 腦 → 脑 (4), 個 → 个 (7), 兩 → 两, 們 → 们 (5), 資 → 资 (10), 範 → 范, 圍 → 围, 階 → 阶, 機 → 机 (3), 設 → 设 (2), 計 → 计 (5), 結 → 结, 單 → 单 (3), 輸 → 输 (2), 寫 → 写, 訊 → 讯 (2), 時 → 时 (2),…)

寄存器Register)是中央处理器内用来暂存指令、数据地址电脑记忆体。寄存器的存贮容量有限,读写速度非常快。在电脑架构里,寄存器存储在已知时间点所作计算的中间结果,通过快速地访问数据来加速电脑程序的执行。

寄存器位于记忆体阶层的最顶端,也是CPU可以读写的最快的存储器,事实上所谓的暂存已经不像记忆体,而是非常短暂的读写少量资讯并马上用到,因为通常程序执行的步骤中,这期间就会一直使用它。寄存器通常都是以他们可以保存的比特数量来计量,举例来说,一个8位寄存器或32位寄存器。在中央处理器中,包含寄存器的部件有指令寄存器(IR)、程序计数器累加器。寄存器现在都以寄存器阵列的方式来实作,但是他们也可能使用单独的触发器、高速的核心记忆体薄膜记忆体以及在数种机器上的其他方式来实作出来。

寄存器也可以指代由一个指令之输出或输入可以直接索引到的寄存器群组,这些寄存器的更确切的名称为“架构寄存器”。例如,x86指令集定义八个32位寄存器的集合,但一个实作x86指令集CPU内部可能会有八个以上的寄存器。

寄存器的种类

资料寄存器
用来储存整数数字(参考以下的浮点寄存器)。在某些简单(或旧)的CPU,特别的资料寄存器是用于数学计算的累加器
地址寄存器
持有记忆体地址,以及用来访问记忆体。在某些简单/旧的CPU里,特别的地址寄存器是索引寄存器(可能出现一个或多个)。
通用目的寄存器
GPRs)- 可以保存资料或地址两者,也就是说他们是结合 资料/地址 寄存器的功用。
浮点寄存器
FPRs)- 用来储存浮点数字。
常数寄存器
用来持有唯读的数值(例如0、1、圆周率等等)。由于“其中的值不可更改”这一特殊性质,这些寄存器未必会有实体的硬件电路相对应,例如将从零常数寄存器读的操作实现为接通目标寄存器的下拉电阻
一般而言,即使真正在硬件中放置常数寄存器也未必会是出于体系结构理论上的考虑,而很可能是由硬件描述语言为了简化操作而自动生成的电路。
向量寄存器
用来储存由向量处理器执行SIMD指令所得到的资料。
特殊目的寄存器
储存CPU内部的资料,像是程序计数器(或称为指令指标),堆栈寄存器,以及状态寄存器(或称微处理器状态字组)。

CPU支持情况

CPU架构 整数
寄存器数量
双精度浮点数
寄存器数量
x86 8 8
x86-64 16 16
System/360 16 4
z/Architecture 16 16
Itanium 128 128
UltraSPARC 32 32
IBM POWER 32 32
Alpha 32 32
6502 3 0
PIC微控制器 1 0
AVR微控制器 32 0
ARM 16 16
RISC-V 32 32

参见