主题资源网站建设,山西建设厅网站首页,创办一个网站的费用,实验一html静态网站开发冯诺依曼体系
冯诺依曼体系为现代计算机的设计和发展奠定了基础#xff0c;它的核心思想和原则在当今计算机体系结构中仍然被广泛采用和应用。所以只要谈论计算机的组成就离不开冯诺依曼体系
作为核心组成部分的CPU除了由运算器和控制器组成之外#xff0c;还有一些寄存器…冯·诺依曼体系
冯·诺依曼体系为现代计算机的设计和发展奠定了基础它的核心思想和原则在当今计算机体系结构中仍然被广泛采用和应用。所以只要谈论计算机的组成就离不开冯诺依曼体系
作为核心组成部分的CPU除了由运算器和控制器组成之外还有一些寄存器
寄存器
CPU中的寄存器分为
通用寄存器通用寄存器是CPU中最常用的寄存器用于存储临时数据和计算结果等信息。通用寄存器通常由多个DFF数据触发器或锁存器latch组成可以进行读写和算术逻辑运算等操作。本文中我们主要介绍DFF组成
特殊寄存器特殊寄存器是CPU中用于特定目的的寄存器例如程序计数器PC、堆栈指针SP和状态寄存器SR等。这些寄存器通常由硬件电路直接控制用于存储程序执行的状态和控制信息等。
控制寄存器控制寄存器是CPU中用于控制系统运行的寄存器例如中断控制寄存器ICR和时钟控制寄存器CCR等。这些寄存器通常由操作系统或应用程序进行编程和控制用于控制系统的运行和响应外部事件等底层还是硬件电路实现的。
另外的话我们需要知道 SRAM和DRAM也可以用于构建寄存器。比如 缓存寄存器缓存寄存器通常由SRAM组成用于存储CPU访问频率较高的数据。缓存寄存器可以提高CPU的访问速度减少CPU访问主存的次数从而提高系统的性能。 显存寄存器显存寄存器通常由DRAM组成用于存储图形处理器GPU处理的图像数据。显存寄存器可以提供高带宽的数据传输从而支持高分辨率的图像显示和复杂的图形处理。 内存控制寄存器内存控制寄存器通常由SRAM或DRAM组成用于存储内存控制器的配置信息和状态信息。内存控制寄存器可以控制内存的访问方式和时序从而提高内存的访问效率和稳定性。 状态寄存器状态寄存器通常由SRAM或DRAM组成用于存储CPU运行过程中的状态信息如进位标志位、零标志位、溢出标志位等。状态寄存器可以用于条件判断和控制流程从而实现复杂的计算和控制逻辑。
这些基于 SRAM和DRAM组成的寄存器跟我们之前提到的相似感兴趣的同学可以自行查阅。本篇我们只关注哪些非RAM组成的寄存器即可以通过DFF实现的寄存器
寄存器作用 存储数据寄存器可以暂时存储CPU需要处理的数据包括指令中的操作数和程序中的变量等。由于寄存器的读写速度非常快因此可以大大提高CPU的运行效率。 存储指令CPU从内存中读取指令后需要将指令存储到寄存器中进行解码和执行。由于寄存器的读写速度非常快因此可以大大提高CPU的指令解码和执行速度。 存储地址寄存器可以存储内存地址用于访问内存中的数据。CPU从寄存器中读取内存地址后可以快速地访问内存中的数据。 存储特殊用途CPU中还有一些特殊用途的寄存器如指令指针寄存器、栈指针寄存器、状态寄存器等。这些寄存器用于存储特殊用途的数据如指向下一条指令的地址、指向栈顶的地址、存储CPU的状态信息等。
所以寄存器的作用基本就是存储
DFF实现寄存器
由这篇文章我们知道因为时钟周期的存在所以我们只考虑时钟结束时的输出中间的结果不考虑因为没有意义。
因此我们可以通过基本门And Or Not 来组成下图 1-Bit 寄存器
这个寄存器作用是当load1时芯片开始加载 in输入的数据并保持不变一直到下次load1时才改变如
而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位寄存器的功能。
形象一点的话