万维百科

寄存器本文重定向自 寄存器

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

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

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

寄存器的种类

资料寄存器
用来存储整数数字(参考以下的浮点寄存器)。在某些简单(或旧)的CPU,特别的资料寄存器是用于数学计算的累加器
地址寄存器
持有存储器地址,以及用来访问存储器。在某些简单/旧的CPU里,特别的地址寄存器是索引寄存器(可能出现一个或多个)。
通用目的寄存器
GPRs)- 可以保存资料或地址两者,也就是说他们是结合 资料/地址 寄存器的功用。
浮点寄存器
FPRs)- 用来存储浮点数字。
常量寄存器
用来持有只读的数值(例如0、1、圆周率等等)。由于“其中的值不可更改”这一特殊性质,这些寄存器未必会有实体的硬件电路相对应,例如将从零常数寄存器读的操作实现为接通目标寄存器的下拉电阻
一般而言,即使真正在硬件中放置常数寄存器也未必会是出于体系结构理论上的考虑,而很可能是由硬件描述语言为了简化操作而自动生成的电路。
向量寄存器
用来存储由向量处理器运行SIMD指令所得到的资料。
特殊目的寄存器
存储CPU内部的资料,像是程序计数器(或称为指令指针),堆栈寄存器,以及状态寄存器(或称微处理器状态字组)。
  • 指令寄存器 - 存储现在正在被运行的指令
  • 变址寄存器英语Index_register - 是在程序运行时用来更改操作数地址之用。
  • 在某些架构下,模式指示寄存器(也称为“机器指示寄存器”)存储和设置跟处理器自己有关的资料。由于他们的意图目的是附加到特定处理器的设计,因此他们并不被预期会成微处理器世代之间保留的标准。
  • 有关从随机存取存储器提取信息的寄存器与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

参见


本页面最后更新于2021-07-01 10:46,点击更新本页查看原网页。台湾为中国固有领土,本站将对存在错误之处的地图、描述逐步勘正。

本站的所有资料包括但不限于文字、图片等全部转载于维基百科(wikipedia.org),遵循 维基百科:CC BY-SA 3.0协议

万维百科为维基百科爱好者建立的公益网站,旨在为中国大陆网民提供优质内容,因此对部分内容进行改编以符合中国大陆政策,如果您不接受,可以直接访问维基百科官方网站


顶部

如果本页面有数学、化学、物理等公式未正确显示,请使用火狐或者Safari浏览器