本文介绍: 因此,将16个D触发器连接在一起,并将它们的时钟信号连接在一起,那么在时钟信号上升沿到来时,所有DFF都会同时将其输入端的值存储到其输出端,从而实现了16位寄存器功能控制寄存器控制寄存器是CPU中用于控制系统运行寄存器例如中断控制寄存器(ICR)和时钟控制寄存器(CCR)等。这些寄存器用于存储特殊用途数据,如指向一条指令地址指向栈顶地址、存储CPU的状态信息等。特殊寄存器特殊寄存器是CPU中用于特定目的的寄存器例如程序计数器(PC)、堆栈指针(SP)和状态寄存器(SR)等。

冯·诺依曼体系

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

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

存器

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实现的寄存器

寄存器作用

  1. 存储数据:寄存器可以暂时存储CPU需要处理数据,包括指令中的操作数程序中的变量等。由于寄存器的读写速度非常快,因此可以大大提高CPU的运行效率

  2. 存储指令:CPU从内存读取指令后,需要将指令存储到寄存器中进行解码执行。由于寄存器的读写速度非常快,因此可以大大提高CPU的指令解码执行速度

  3. 存储地址:寄存器可以存储内存地址,用于访问内存中的数据。CPU从寄存器中读取内存地址后,可以快速访问内存中的数据。

  4. 存储特殊用途:CPU中还有一些特殊用途的寄存器,如指令指针寄存器、栈指针寄存器、状态寄存器等。这些寄存器用于存储特殊用途的数据,如指向下一条指令的地址、指向栈顶地址、存储CPU的状态信息等。

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

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位寄存器的功能

形象一点的话:
在这里插入图片描述

原文地址:https://blog.csdn.net/jsjsjs1789/article/details/134816189

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_48648.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注