美文网首页@IT·互联网想法
计算机的内存是如何实现的

计算机的内存是如何实现的

作者: shengjk1 | 来源:发表于2024-05-14 20:22 被阅读0次

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益:

  1. 了解大厂经验
  2. 拥有和大厂相匹配的技术等

希望看什么,评论或者私信告诉我!

这个平台已经开始摆烂了,图片看不了了,请移步 https://blog.csdn.net/jsjsjs1789/article/details/138922135

一 前言

内存 想必我们每个人都听过,但它是既熟悉又陌生,今天呢,我们就来解开 内存 的面纱。
注意:文章是之前发头条的,但头条有个问题就是时间一长文章就没有办法编辑了,所以后续会再这个平台上汇总

二、冯诺依曼体系

[图片上传失败...(image-3fea67-1715775726136)]

冯诺依曼结构概述图

通过冯诺依曼体系概述图,我们可以知道,存储器是特别重要的一部分。前面几篇文章中,我们知道了作为一个整体计算机是如何执行指令的以及明白了核心组成部分CPU是如何进行计算的

这边文章我们一起来看一下另一个核心组成部分,内存是如何实现的?

在具体说明内存是怎么实现之前,我们先来看另一个概念:时钟周期

三、时钟周期

CPU是如何进行计算中,我们知道时钟在CPU中,并且是不断振荡的。一个完整的振荡为一个周期,如图:

[图片上传失败...(image-8ca6ca-1715775726137)]

CPU的一个时钟周期

一个CPU的时钟频率为2.5 GHz,意味着它的时钟每秒钟会振荡2.5亿次,那么 时钟周期就是 1/2.5 GHz = 0.4 ns。

四、内存是如何实现的

然后理想情况下非门的时钟周期是这样的:

[图片上传失败...(image-8a9174-1715775726137)]

非门

[图片上传失败...(image-d194db-1715775726137)]

理想环境

in和out在同一个周期内,同时变化。

然而现实是有延迟的:信号传递延迟、计算延迟,如图:

[图片上传失败...(image-bb1a7e-1715775726137)]

真实环境

所以我们只考虑**时钟结束时的输出,**中间的结果不考虑因为没有意义。故而一个小芯片真实环境下的时钟周期,如下:

[图片上传失败...(image-eb8988-1715775726137)]

真实环境

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

[图片上传失败...(image-dfd9f9-1715775726137)]

[图片上传失败...(image-8debb5-1715775726137)]

这个芯片实现了内存的基本功能,就是有数据写入时内存发生变换,没有数据写入时,内存中的数据保持上次的结果不变。

接下来,我们来拆分一下如何实现:

out(t+1)=in(t)

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

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

[图片上传失败...(image-64a5c5-1715775726137)]

DFF

所以上面那个Bit芯片是这样组成的

[图片上传失败...(image-da79cd-1715775726137)]

Bit

然后内存是由Bit芯片一点一点组装起来的( 可以这样形象化的理解 )

[图片上传失败...(image-236ba9-1715775726137)]

Memory hierarchy

按照这种方式,我们可以实现任意大小的内存,比如:

[图片上传失败...(image-690d52-1715775726137)]

既然内存有这么多的Register组成,那每一个Register 的 in 和 out 如何选择呢?

[图片上传失败...(image-bdf534-1715775726137)]

RAM

1. address表示Register地址。

  1. Mux(多路复用器):将多个输入信号通过一个选择信号选择其中一个输出。Mux的输入端可以有多个,但是只有一个输出端。选择信号的位数决定了Mux的输入端口数,例如,一个2:1的Mux有两个输入端口和一个选择信号端口,一个4:1的Mux有四个输入端口和两个选择信号端口。 Dmux(分路器):将一个输入信号通过一个选择信号分配到多个输出。

3. DMux的输出端可以有多个,但是只有一个输入端。选择信号的位数决定了Dmux的输出端口数,例如,一个1:2的Dmux有一个输入端口和两个输出端口,一个1:4的Dmux有一个输入端口和四个输出端口。

也就是说当address传入一个地址时,DMux根据地址选择一个Register进行相关的操关比如 load操作,而 Mux根据 address选择一个 Register进行结果输出

五、更严谨的说法

现代计算机中使用的DRAM通常是基于同步动态随机存取存储器(SDRAM)技术的。SDRAM使用电容来存储数据,但是与传统的DRAM不同,它还包含了一个内部时钟,可以在时钟的边沿上进行读写操作。这种同步的方式可以提高DRAM的访问速度和效率。 SDRAM通常使用DFF(触发器)来辅助存储数据

六、总结

本文通过图文并茂的方式,详细介绍了内存的实现原理,包括冯诺依曼体系、时钟周期、DFF芯片等方面的内容。同时,还介绍了内存的组成方式和内存的读写操作。本文通俗易懂,适合初学者了解内存的基本原理。

相关文章

  • 阿里P8架构师详谈 Java 内存模型

    Java 内存模型(JMM)描述了 JVM 如何使用计算机的内存(RAM)。JVM 是一个完整计算机的模型,因此该...

  • 浅谈 Java 内存模型

    Java 内存模型(JMM)描述了 JVM 如何使用计算机的内存(RAM)。JVM 是一个完整计算机的模型,因此该...

  • 阿里P8架构师详谈 Java 内存模型

    Java 内存模型(JMM)描述了 JVM 如何使用计算机的内存(RAM)。JVM 是一个完整计算机的模型,因此该...

  • java内存模型

    一、现代计算机物理内存模型 Java内存模型规定了JVM如何基于计算机内存工作。JVM就是一个完整的计算机模型因此...

  • Java高并发之内存模型

    概述 Java内存模型指定Java虚拟机如何与计算机的内存(RAM)一起使用。Java虚拟机是整个计算机的模型,因...

  • 2. Java内存模型

    Java内存模型指定了JVM和计算机内存是如何进行协作 Java内存模型的原理 Java内存被分为线程栈和堆栈:J...

  • 【转】Java 内存模型

    转自Java 内存模型 Java 内存模型规范了 Java 虚拟机与计算机内存是如何协同工作的。Java 虚拟机是...

  • 进程和线程

    并行与并发 1. 计算机是如何执行程序指令的? 2. 计算机是如何实现并发? 轮询调度实现并发执行 3. 真正的并...

  • 深入理解volatile

    JMM Java 内存模型 Java的内存模型指定了Java虚拟机如何与计算机的内存进行工作 Java内存模型决定...

  • 计算机是如何存储数据的总结

    为什么要学习编程基础 计算机是如何存储数据的 1. 计算机(内存)如何存储0和1 在计算机中所有的数据都被存储为一...

网友评论

    本文标题:计算机的内存是如何实现的

    本文链接:https://www.haomeiwen.com/subject/uuzmfjtx.html