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

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

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

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

文章目录

  • 一 前言
  • 二、冯诺依曼体系
  • 三、时钟周期
  • 四、内存是如何实现的
  • 五、更严谨的说法
  • 六、总结


一 前言

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

二、冯诺依曼体系

冯诺依曼结构概述图

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

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

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

三、时钟周期

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

CPU的一个时钟周期

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

四、内存是如何实现的

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

非门

理想环境

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

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

真实环境

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

真实环境

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

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

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

out(t+1)=in(t)

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

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

DFF

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

Bit

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

Memory hierarchy

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

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

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芯片等方面的内容。同时,还介绍了内存的组成方式和内存的读写操作。本文通俗易懂,适合初学者了解内存的基本原理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/629663.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

成功解决Uncaught TypeError: Failed to resolve module specifier “vue“.

成功解决Uncaught TypeError: Failed to resolve module specifier “vue”. 一、问题背景 俗话说,温故而知新。首先,非常感谢我许哥,教会了我网页相关的知识,其他方面我也受益良多。言归正传,最近由于要运行Python&a…

【C语言习题】12.扫雷游戏

文章目录 1.扫雷游戏分析和设计1.1 扫雷游戏的功能说明1.2游戏界面:1.3游戏的分析和设计1.2.1 数据结构的分析1.2.2 ⽂件结构设计 2.扫雷游戏的代码实现3.代码讲解 1.扫雷游戏分析和设计 1.1 扫雷游戏的功能说明 使用控制台实现经典的扫雷游戏游戏可以通过菜单实现…

记笔记从学Typora开始--------------------(1)下载、安装、购买、激活

一、登录Typora官网 官网地址:Typora 二、鼠标往下滑,点击下载按钮 三、下载得到安装包,双击 四、一直点击下一步,进行安装 五、安装完成 六、启动Typoera 七、针对欢迎界面点击下一页 八、一直点击直到弹出以下软件激活界面 九…

深度盘点在当今经济形势下资深项目经理或PMO的或去或从

在当今经济形势下,资深项目经理(Project Manager)或项目管理办公室(PMO)的去向和选择受到多种因素的影响。以下是对他们可能面临的或去或从的深度盘点: 1、发展去向 1. 深化专业领域:在经济形势…

跨ROS系统通信:使用TCP实现节点间的直连

当涉及到在机器人操作系统(ROS)环境中的通信时,标准做法通常是在同一个ROS网络内通过话题和服务进行。但在某些特定情况下,比如当你有两个分布在不同网络中的ROS系统时,标准的通信方法可能不太适用。此时,一…

超实用的excel进销存管理系统(75份),自带库存预警,直接用!

进销存(Inventory Management)是企业管理中的一个核心组成部分,它涉及到商品的采购(进货)、销售和存储(库存)等环节。有效的进销存管理可以帮助企业降低成本、提高效率和客户满意度。 1. 采购管…

线程池的一些问题

核心线程数1.最大线程5.队列5.存活时间10s 1.场景一 如果核心线程数.被一直占用得不到释放.新进来1个任务.会怎么样?答: 会在队列中中死等. 只要进来的任务.不超过队列的长度,就会一直挡在队列中死等 package com.lin;import java.util.concurrent.Executors; import java.u…

knife4j案例

1.导入 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId> </dependency>2.在配置类中加入 knife4j 相关配置并设置静态资源映射&#xff08;否则接口文档页面无法访问&#xff…

基于Python的jieba库分析《斗破苍穹》文本中的高频词汇

分析《斗破苍穹》文本中的高频词汇 在进行文本分析时&#xff0c;了解文本中出现频率较高的词汇对于把握文本的主题和风格非常有帮助。本文将介绍如何使用Python的jieba库对《斗破苍穹》这部小说的文本进行分词处理&#xff0c;并统计高频词汇的出现次数&#xff08;本文只统计…

【机器学习】:基于决策树与随机森林对数据分类

机器学习实验报告&#xff1a;决策树与随机森林数据分类 实验背景与目的 在机器学习领域&#xff0c;决策树和随机森林是两种常用的分类算法。决策树以其直观的树形结构和易于理解的特点被广泛应用于分类问题。随机森林则是一种集成学习算法&#xff0c;通过构建多个决策树并…

图解堆排序【一眼看穿逻辑思路】

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 目录 1、堆的概念2、实现堆排序前的准备工作3、堆排序的思路3.1 第一步3.2 第二步 4、结语 1、…

Cannot read properties of undefined (reading ‘init‘)报错

出现这个报错是印象项目没有引echarts包 npm i echarts 下包 然后在main.js中引入 import echarts from echarts Vue.prototype.$echarts echarts 如果还不行 import * as echarts from echarts; 更改一下引入方式 ok了

OpenHarmony 实战开发——使用分布式菜单创建点餐神器

随着社会的进步与发展&#xff0c;科技手段的推陈出新&#xff0c;餐饮行业也在寻求新的突破与变革&#xff0c;手机扫描二维码点餐系统已经成为餐饮行业的未来趋势&#xff0c;发展空间巨大&#xff1b;扫码点餐&#xff0c;是“互联网餐饮”潮流的产物&#xff0c;可以有效地…

Leetcode—2244. 完成所有任务需要的最少轮数【中等】

2024每日刷题&#xff08;136&#xff09; Leetcode—2244. 完成所有任务需要的最少轮数 实现代码 class Solution { public:int minimumRounds(vector<int>& tasks) {unordered_map<int, int> map;for(int task: tasks) {map[task];}int ans 0;// freq 1 …

嵌入式学习-输入捕获

简介 框图介绍 输入通道部分 比较捕获寄存器与事件生成 相关寄存器

【论文阅读 | 三维重建】3D Gaussian Splatting for Real-Time Radiance Field Rendering(3DGS)

Abstract 辐射场方法最近彻底改变了用多张照片或视频捕获的新颖视图合成&#xff0c;然而实现高视觉质量仍然需要训练和渲染成本高昂的神经网络&#xff0c;而最近更快的方法不可避免地要牺牲速度来换取质量。对于无边界和完整的场景和1080P分辨率的渲染&#xff0c;目前没有任…

低成本、功能强大!德思特提供一体化WiFi 6E信道测试方案!

​ 作者介绍 一、方案介绍 伴随WiFi 6E与WiFi 7的提出&#xff0c;WIFI划分出一个全新的5.925GHz-7.125GHz 之间的80MHz和160MHz频段。1200MHz的带宽是迄今为止最宽的&#xff0c;是之前2.4GHz和5GHz WiFi 频段可用带宽的数倍。此外WiFi 6E引入了以下技术&#xff1a; ● 多…

全网最全的Postman接口自动化测试!

该篇文章针对已经掌握 Postman 基本用法的读者&#xff0c;即对接口相关概念有一定了解、已经会使用 Postman 进行模拟请求的操作。 当前环境&#xff1a; Window 7 - 64 Postman 版本&#xff08;免费版&#xff09;&#xff1a;Chrome App v5.5.3 不同版本页面 UI 和部分…

搞大事!法国邀请芬兰公司建量子工厂

法国当地时间5月13日&#xff0c;法国总统马克龙宣布启动2024年度“选择法国”&#xff08;Choose France&#xff09;商业峰会。今年峰会召开前&#xff0c;法国赢得了创纪录的150亿欧元外国投资承诺&#xff0c;覆盖从人工智能到制药和能源等领域。 而涉及到量子领域最重磅的…

✅HTTPS和HTTP的区别是什么?

一、问题解析 HTTP和HTTPS是两种协议&#xff0c;分别是Hypertext Transfer Protocol和HyperText Transfer Protocol Secure。 HTTPS还经常被称之为HTTP over SSL或者HTTP over TSL&#xff0c;HTTPS经由HTTP进行通信&#xff0c;但利用SSL/TLS来加密数据包。 他们的区别主要…