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

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

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

xxljob分片广播+多线程实现高效定时同步elasticsearch索引库

需求:为了利用elasticsearch实现高效搜索,需要将mysql中的数据查出来,再定时同步到es里,同时在同步过程中通过分片广播多线程提高同步数据的效率。 1. 添加映射 使用kibana添加映射 PUT /app_info_article {"mappings&quo…

传输层协议——TCP协议

TCP协议又叫传输控制协议,TCP/IP协议是计算机通信网络中目前使用最多的协议,同时也融入了生活的方方面面,不管是浏览网页使用的http/https协议、物联网设备使用的MQTT/MQTTS协议与下载文件使用的ftp协议、工业以太网中使用的Modbus TCP协议等…

不用投稿邮箱,怎样向各大新闻媒体投稿?

身为单位的信息宣传员,我深知肩上责任重大。每个月,完成单位在媒体上投稿发表文章的考核任务,就如同一场无声的赛跑,既要保证速度,更要注重质量。起初,我遵循“前辈们”的老路,一头扎进了邮箱投稿的海洋。但很快,现实给了我一记重拳——邮箱投稿的竞争犹如千军万马过独木桥,稿件…

维护表空间中的数据文件

目录 向表空间中添加数据文件 从表空间中删除数据文件 删除users表空间中的users02.dbf数据文件 对数据文件的自动扩展设置 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 维护表空间中的数据文件主要包括向表空间中添…

单位个人怎样向报社的报纸投稿?

作为一名单位的信息宣传员,我肩负着每月定期在媒体上投稿发表文章的重任。然而,在投稿的道路上,我经历了不少波折和挫折。 一开始,我天真地以为只要将稿件发送到报社的投稿邮箱,就能轻松完成任务。然而,现实却远比我想象的复杂。邮箱投稿的竞争异常激烈,编辑们会在众多稿件中挑…

【图神经网络——消息传递】

消息传递机制 画图先:导包:画图: 实现消息传递:例子一:例子二: 画图先: 导包: import networkx as nx import matplotlib.pyplot as plt import torch from torch_geometric.nn im…

tensorrtx-yolov5-v6.0部署在windows系统

前言:最近几天一直在搞这个东西,现在跑通了,为了以后自己看和帮助他人,就记录一下。虽然是跑通了但是觉得怪怪的,感觉不是自己想要的效果,另外这个只能检测图片,不能摄像头实时监测(我暂时没找到…

震撼发布!GPT-4o 上线!

5 月 14日凌晨一点,OpenAI 发布了 GPT-4o! 新模型的功能简单概括就是:更快、更智能、更像人类。 秉承着持续更新的态度,Hulu AI 快速接入 GPT-4o 啦! 继 5 月份上线 Suno 之后,这次是 Hulu AI 的又一重大…

Linux---编辑器vim的认识与简单配置

前言 我们在自己的电脑上所用的编译软件,就拿vs2022来说,我们可以在上面写C/C语言、python、甚至java也可以在上面进行编译,这种既可以用来编辑、运行编译,又可以支持很多种语言的编译器是一种集成式开发环境,集众多于…

MP3解码入门(基于libhelix)

主要参考资料: 【Arduino Linux】基于 Helix 解码库实现 MP3 音频播放: https://blog.csdn.net/weixin_42258222/article/details/122640413 libhelix-mp3: https://github.com/ultraembedded/libhelix-mp3/tree/master 目录 一、MP3文件二、MP3 解码库三、libhelix-mp3库3.1 …

如何去除字符串两侧的空白字符?

TRIM函数会去掉字符串左侧和右侧的空格,语法是:TRIM(字符串) excel中,TRIM函数能去掉字符串左侧和右侧的空格,它的ASCII码是32。 以下设定一个字符串组合,它的第一个字符中空格,最后一个字符是换行符 &q…

Pathlib,一个不怕迷路的 Python 向导

大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。 一个简单的库,也许能够开启我们的智慧之门, 一个普通的方法,也许能在危急时刻挽救我们于水深火热, 一个新颖的思维方式,也许能…

年度更新!统信UOS服务器版V20(1070)超越期待

不负广大客户期待! 统信UOS服务器版V20(1070)年度首更 功能更强大、性能更卓越、生态更丰富 助您畅享安全、便捷、高效的产品和服务 新平台,新生态 统信UOS服务器版始终坚持进行生态适配,目前已支持超过百万种兼容…

Python 全栈体系【四阶】(四十四)

第五章 深度学习 九、图像分割 3. 常用模型 3.4 DeepLab 系列 3.4.3 DeepLab v3(2017) 在DeepLab v3中,主要进行了以下改进: 使用更深的网络结构,以及串联不同膨胀率的空洞卷积,来获取更多的上下文信…

使用TerraScan静态扫描KubernetsIaC文件

terrascan https://github.com/tenable/terrascan Terrascan 是基础架构即代码的静态代码分析器。Terrascan 允许: 将基础架构作为代码无缝扫描,以查找错误配置。监控已配置的云基础架构,以查找引入终端安全评估漂移的配置更改&#xff0…

Java面试八股之Collection和Collections的区别

Java中Collection和Collections的区别 Collection 是一个接口,位于 java.util 包中,它是 Java 集合框架的顶层接口之一,代表了一组对象的集合。Collection 接口定义了所有集合类型(如 List、Set、Queue 等)所共有的基…

每周一算法:恰好经过K条边的最短路

题目描述 牛站 给定一张由 M M M 条边构成的无向图,点的编号为 1 ∼ 1000 1\sim 1000 1∼1000 之间的整数。 求从起点 S S S 到终点 E E E 恰好经过 K K K 条边(可以重复经过)的最短路。 注意: 数据保证一定有解。 输入格式 第 1 …

AquaCrop模型运行及结果分析、代码解析;气象、土壤、作物和管理措施等数据的准备和输入;农业水资源管理

目录 专题一 模型原理与数据要求 专题二 模型数据准备 专题三 模型运行及结果分析 专题四 参数分析 专题五 源代码分析 更多应用 AquaCrop是由世界粮食及农业组织(FAO)开发的一个先进模型,旨在研究和优化农作物的水分生产效率。这个模型…

海外住宅IP适用场景

海外住宅IP是指海外互联网服务提供商分配给海外家庭的IP地址,通常长期部署在特定区域的公网中,网络连接稳定,能够快速浏览指定网页内容,请求响应成功。它的适用场景十分广泛,接下来将详细介绍哪些领域会使用海外住宅IP…

错误: 找不到或无法加载主类问题(已解决)

今天在虚拟机中安装了idea2023.2的版本,运行代码时发现错误找不到主类! 直接说结论: 我先clean了一下target,然后重新build,发现maven报错了,idea2023.2默认使用了内置的maven,然后我切换了一下…