前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >计算机寄存器是如何实现的

计算机寄存器是如何实现的

作者头像
shengjk1
发布于 2025-05-16 06:19:53
发布于 2025-05-16 06:19:53
710
举报
文章被收录于专栏:码字搬砖码字搬砖

一、前言

前几篇文章,我们分别拆解了,计算内存是如何实现的,计算机CPU是如何实现的等等,今天我们来看一下计算机寄存器是如何实现的。

二、冯·诺依曼体系

冯·诺依曼体系为现代计算机的设计和发展奠定了基础,它的核心思想和原则在当今计算机体系结构中仍然被广泛采用和应用。所以只要谈论计算机的组成就离不开冯诺依曼体系

作为核心组成部分的CPU除了由运算器和控制器组成之外,还有一些寄存器

三、寄存器

3.1 CPU中的寄存器分为:

通用寄存器:通用寄存器是CPU中最常用的寄存器,用于存储临时数据和计算结果等信息。通用寄存器通常由多个DFF(数据触发器)或锁存器(latch)组成,可以进行读写和算术逻辑运算等操作。本文中我们主要介绍DFF组成

特殊寄存器:特殊寄存器是CPU中用于特定目的的寄存器,例如程序计数器(PC)、堆栈指针(SP)和状态寄存器(SR)等。这些寄存器通常由硬件电路直接控制,用于存储程序执行的状态和控制信息等。

控制寄存器:控制寄存器是CPU中用于控制系统运行的寄存器,例如中断控制寄存器(ICR)和时钟控制寄存器(CCR)等。这些寄存器通常由操作系统或应用程序进行编程和控制,用于控制系统的运行和响应外部事件等,底层还是硬件电路实现的。

另外的话,我们需要知道 SRAM和DRAM也可以用于构建寄存器。比如

  1. 缓存寄存器:缓存寄存器通常由SRAM组成,用于存储CPU访问频率较高的数据。缓存寄存器可以提高CPU的访问速度,减少CPU访问主存的次数,从而提高系统的性能。
  2. 显存寄存器:显存寄存器通常由DRAM组成,用于存储图形处理器(GPU)处理的图像数据。显存寄存器可以提供高带宽的数据传输,从而支持高分辨率的图像显示和复杂的图形处理。
  3. 内存控制寄存器:内存控制寄存器通常由SRAM或DRAM组成,用于存储内存控制器的配置信息和状态信息。内存控制寄存器可以控制内存的访问方式和时序,从而提高内存的访问效率和稳定性。
  4. 状态寄存器:状态寄存器通常由SRAM或DRAM组成,用于存储CPU运行过程中的状态信息,如进位标志位、零标志位、溢出标志位等。状态寄存器可以用于条件判断和控制流程,从而实现复杂的计算和控制逻辑。

这些基于 SRAM和DRAM组成的寄存器跟我们之前提到的相似,感兴趣的同学可以自行查阅。本篇我们只关注哪些非RAM组成的寄存器,即可以通过DFF实现的寄存器

3.2 寄存器作用
  1. 存储数据:寄存器可以暂时存储CPU需要处理的数据,包括指令中的操作数和程序中的变量等。由于寄存器的读写速度非常快,因此可以大大提高CPU的运行效率。
  2. 存储指令:CPU从内存中读取指令后,需要将指令存储到寄存器中进行解码和执行。由于寄存器的读写速度非常快,因此可以大大提高CPU的指令解码和执行速度。
  3. 存储地址:寄存器可以存储内存地址,用于访问内存中的数据。CPU从寄存器中读取内存地址后,可以快速地访问内存中的数据。
  4. 存储特殊用途:CPU中还有一些特殊用途的寄存器,如指令指针寄存器、栈指针寄存器、状态寄存器等。这些寄存器用于存储特殊用途的数据,如指向下一条指令的地址、指向栈顶的地址、存储CPU的状态信息等。

所以寄存器的作用基本就是存储

3.3 DFF实现寄存器

由这篇文章我们知道,因为时钟周期的存在,所以我们只考虑时钟结束时的输出,中间的结果不考虑,因为没有意义。

因此我们可以通过基本门And Or Not 来组成下图 1-Bit 寄存器

这个寄存器作用是:当load=1时,芯片开始加载 in输入的数据并保持不变,一直到下次load=1时才改变,如:

而1-Bit register在现实生活中的取值逻辑

依此类推

而1-Bit regitster最关键的逻辑是

out(t + 1) = in(t)

这个是怎么实现的呢?

四、DFF

案是DFF芯片,全称为Data Flip Flop,它是一种数字电路元件,用于存储和传输二进制数据。它可以将输入数据存储在内部存储器中,并在时钟信号的作用下将其输出。DFF芯片通常用于计算机内存、寄存器、时序逻辑电路等领域。在数字电路中,DFF是最基本的存储器元件之一,它可以实现各种逻辑功能,如计数器、移位寄存器、状态机等。

多说一句,归根到底DFF芯片还是想之前讲CPU的实现那样,是由最基础的门:或门、与门、非门构成的

DFF伴随着时钟周期它的取值逻辑为:

依此类推

了解完了DFF后,1-Bit register可以是这样组成的

其中Mux 全称是Multiplexer,中文名为多路复用器。Mux可以将多个输入信号中的一个选择输出,这个选择是由Mux的控制信号决定的。它也是有And Or Not 门组成的。这样就可以有 load 来控制 Mux。从而决定本次输出是选择out(t-1)还是 in 的。

这是一个1bit寄存器的最简单的实现。但CPU中的寄存器不可能是1bit,而是16/32甚至更多,具体怎么做呢?以16bit为例

16位寄存器可以通过使用16个D触发器(DFF)来制作。每个D触发器都可以存储一个位(0或1),并且可以在时钟上升沿时将其输出更新为其输入。因此,将16个D触发器连接在一起,并将它们的时钟信号连接在一起,那么在时钟信号上升沿到来时,所有DFF都会同时将其输入端的值存储到其输出端,从而实现了16位寄存器的功能。

形象一点的话:

五、总结

本文详细介绍了计算机寄存器的实现原理,包括各种类型的寄存器和基于SRAM和DRAM构建的寄存器。重点介绍了DFF寄存器的实现原理,以及如何通过DFF构建1-Bit寄存器和16位寄存器。通过本文的学习,读者可以更好地理解计算机内部的运行机制。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
计算机的内存是如何实现的
内存 想必我们每个人都听过,但它是既熟悉又陌生,今天呢,我们就来解开 内存 的面纱。 注意:文章是之前发头条的,但头条有个问题就是时间一长文章就没有办法编辑了,所以后续会再这个平台上汇总
shengjk1
2025/05/16
500
计算机的内存是如何实现的
计算机硬件结构概述
学习编程语言,首先需要需要了解计算机硬件组成结构,因为编程语言编写的程序,最终需要在计算机中运行。计算机与程序间属共生关系,二者相互依存,互利共赢,没有程序,计算机如同没有生命一堆废铜烂铁,没有计算机,程序像是无用武之地的英雄,失去存在的意义。所以,了解计算机硬件组成结构是学习编程语言的基础。
恋喵大鲤鱼
2018/08/03
9260
计算机硬件结构概述
【旧文重发 | 02】IC基础知识
实际硬件中的竞争:以SR锁存器为例,当SR都是1的时候,输出为1,此时如果SR同时变成0,那么Q和Q'就会进入竞争的情况。可以通过添加合适的逻辑避免。
空白的贝塔
2022/04/07
6370
【旧文重发 | 02】IC基础知识
计算机组成-概述
冯诺依曼结构:运算器、控制器、存储器、输入设备和输出设备五大部件组成。现代计算机一般把控制器和运算器集成在一个芯片上,合称为中央处理器。 现代计算机一般以存储器为中心,使I/O操作尽可能绕过CPU,直接在I/O设备与存储器间完成,从而提高系统的整体运行效率。
千灵域
2022/06/17
2.4K0
计算机组成-概述
计算机组成原理期末总结「建议收藏」
如果想白嫖(点个关注也行啊),需要本文markdown或PDF文件下方评论留言留下邮箱看到即回
全栈程序员站长
2022/07/28
2.1K0
计算机组成原理期末总结「建议收藏」
计算机组成原理知识点
计算机体系结构(Computer Architecture)主要研究硬件和软件功能的划分,确定硬件和软件的界面,哪部分功能由硬件系统来完成,哪部分功能由软件系统来完成。
全栈程序员站长
2022/09/05
1.1K0
【计算机硬件常识】CPU 架构与指令集
存储器: ROM(只读),Flash(NOR, NAND),RAM(随机存取存储器)
sofu456
2020/07/30
1.2K0
2.计算机组成-数字逻辑电路 门电路与半加器 异或运算半加器 全加器组成 全加器结构 反馈电路 振荡器 存储 D T 触发器 循环移位 计数器 寄存器 传输门电路 译码器 晶体管
所以想要准确的保存一个比特,你需要保持住D的值,持续经过CP从0~1然后再到0的过程
noteless
2018/09/11
1.8K0
2.计算机组成-数字逻辑电路   门电路与半加器 异或运算半加器  全加器组成 全加器结构  反馈电路 振荡器  存储 D T 触发器  循环移位 计数器   寄存器  传输门电路 译码器  晶体管
『计算机的组成与设计』-计算机的算数运算
要注意: 在执行立即数加法时,imm 是 16 位。而寄存器是 32 位,这就出现转换的问题。在手册中是使用 imm 的符号扩展,也就是将高 16 位采用低 16 位的最高位复制 16 次进行填充。(符号扩展不会改变原数值)。
1ess
2021/10/29
1K0
『计算机的组成与设计』-计算机的算数运算
【计组不挂科】计算机组成综合习题库(选择题207道&判断题93道&填空题143道)(含答案与解析)
A.输入/输出设备 B.外存储器 C.远程通信设备 D.除了CPU和内存以外的其他设备
YY的秘密代码小屋
2025/01/03
1860
【计组不挂科】计算机组成综合习题库(选择题207道&判断题93道&填空题143道)(含答案与解析)
《微机原理与接口技术》简答题总结及答案_微机原理与接口技术试题及答案
8086/8088、寻址方式、汇编指令、转移指令、中断、8253、8255、8259 必须知道的基础就不标★了 PDF打印版下载:微机原理简答题整理PDF版
全栈程序员站长
2022/11/10
1.9K0
《微机原理与接口技术》简答题总结及答案_微机原理与接口技术试题及答案
《深入理解计算机系统》(CSAPP)读书笔记 —— 第六章 存储器层次结构
  随机访问存储器( Random-Access Memory,RAM)分为两类:静态的和动态的。静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵得多。SRAM用来作为高速缓存存储器。DRAM用来作为主存以及图形系统的帧缓冲区。
嵌入式与Linux那些事
2021/05/20
1.4K0
《深入理解计算机系统》(CSAPP)读书笔记 —— 第六章 存储器层次结构
说说微处理器、单片机和嵌入式计算机ARM
微处理器--Microprocessor 微型计算机-- Microcomputer 微计算机系统--Microcomputer system
华东子
2024/11/30
2170
说说微处理器、单片机和嵌入式计算机ARM
计算机组成原理-计算机系统概述
冯诺依曼结构中首次提出了“存储程序”的概念,即将指令以二进制代码的形式事先输入计算机的主存储器,然后执行在存储器中的首地址的第一条指令,此后便根据程序规定的次序执行其它指令,直到程序结束。
DearXuan
2022/03/14
9240
计算机组成原理-计算机系统概述
闭关六个月整理出来的微机原理知识点(特别适用河北专接本)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151430.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
1.7K0
爱了爱了,这篇寄存器讲的有点意思
下面我们就来介绍一下关于寄存器的相关内容。我们知道,寄存器是 CPU 内部的构造,它主要用于信息的存储。除此之外,CPU 内部还有运算器,负责处理数据;控制器控制其他组件;外部总线连接 CPU 和各种部件,进行数据传输;内部总线负责 CPU 内部各种组件的数据处理。
C语言与CPP编程
2020/12/10
5.6K0
爱了爱了,这篇寄存器讲的有点意思
使用ALU,RAM,寄存器打造一个CPU
计算机的心脏是中央处理单元,简称“CPU” 。这篇文章就利用前几篇文章中提到过的ALU,RAM,寄存器组件做一个CPU。
小柔
2022/10/09
9710
使用ALU,RAM,寄存器打造一个CPU
图解计算机的存储器金字塔
在计算机组成原理中的众多概念中,开发者接触得最多的还是内存、硬盘、虚拟内存、CPU 缓存这些概念。这些概念有一个更为抽象的表示 —— 存储器,它是冯 · 诺依曼计算机体系中的五大组件之一,用于存储程序和数据。
用户9995743
2022/12/22
8510
图解计算机的存储器金字塔
【计算机组成原理】计算机系统层次结构——计算机硬件
在上一篇内容中我们介绍了计算机的发展历程,在这个过程中,我们了解到了计算机发展的四个时期:
蒙奇D索隆
2024/09/07
7150
【计算机组成原理】计算机系统层次结构——计算机硬件
计算机组成原理期末救急--上
运算器本来是数据计算的核心部件,现在却需要去额外承担数据传送的任务,这不是白白浪费性能吗
大忽悠爱学习
2022/05/10
4930
计算机组成原理期末救急--上
推荐阅读
相关推荐
计算机的内存是如何实现的
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档