美文网首页
内存条是怎么存储数据的

内存条是怎么存储数据的

作者: 小道萧兮 | 来源:发表于2022-07-07 20:10 被阅读0次

一、如何存储数据

由于保存数据的重要性,科学家一直在思考,在电路中使用何种方式可以保存数据。

如果使某个器件一直输出高电平,那不就是 1 了吗?一直输出低电平,那不就是 0 了吗?而且还要可以自由切换 0 和 1。

接下来,内存条闪亮登场。

二、RAM

内存条还有一个更专业的名字:RAM (Random Access Memory) 随机存储器,因为可以随意读写任意位置的数据。

现在计算机基本上都是二进制的,不管什么样的数据或者代码指令,在我们这里都是一串串的 0 和 1 的比特位。

为了存储这一个比特位,曾经有两种电路方案摆在先辈们的面前,第一种是静态方案:

SRAM

是不是有点复杂?我也觉得。这种电路方案的好处是可以稳定的维持在 0 和 1 之间的某个状态,所以叫静态 SRAM (Static Random Access Memory)。

但是需要用到的晶体管太多了,一个比特位就要用好几个晶体管,16GB 那得用多少才够啊,成本太高了,造出来我们的个头肯定会特别大,主板上空间这么局促,哪里装得下啊。

还有第二种方案:

DRAM

这样是不是简单了许多?只通过一个电容器的电荷就能决定这是一个 1 还是一个 0,这样就存储了 1bit。

在每一个存储芯片里,这样的比特位存储单元都有很多,例如一个 16G 的内存条有 137438953472 bit,也就是有 137438953472 个这样的电容。

但这种电路方案有个毛病,就是里面的那个电容会“漏电”,电容中的电荷会慢慢消失,电压也就变小了,这样就没办法区分这是表示的 1 还是 0 了。

为了解决这个问题,必须得周期性的去给它们充电,才能维持数据的稳定,这叫动态数据刷新,所以这种方案叫 DRAM (Dynamic Random Access Memory)。

三、内存控制器

当我们需要读取数据时,要访问哪个 bit 位,通过芯片号、bank 号、行地址、列地址,就可以了。

是不是有点麻烦,这些内部细节应该封装一下,提供给一个简单接口就是了,于是 内存控制器 登场了。

内存控制器就像一个中介,位于 CPU 与 内存条之间。

内存控制器

内存存储数据的电路单元中,电容经常漏电,需要定时刷新,按照规定,最多 64ms 就得要刷新一次,这数据刷新的工作就由内存控制器管理。

内存条的数据存储在每一个存储芯片之上,每一个芯片里面又分了很多个分片,每个分片里面又有很多的比特位存储格子。想要访问哪个比特位,就得指定对应的芯片、对应的分片、对应格子的行地址和列地址。

内存条结构

CPU这边想要访问数据,肯定不想这么麻烦,所以内存控制器就派上用场了。

用 bit 作为读写单元太麻烦了,咱们按 8 bit 为一组,叫做一个字节 byte,CPU 统一给内存的存储空间编址,以后要读取数据的时候呢,就把地址交给内存控制器,再告诉内存具体是读写哪个芯片哪个分片的哪些位置。

以后只需要一个地址,内存控制器就转换成具体的数据存储位置,去读取内存,再由内存完成读写操作就可以了。

由于内存控制器的重要性,现在,内存控制器已经集成到了 CPU 内部,成为了 CPU 的一份子了。

随着 CPU 的发展,CPU 的速度越来越快,开始嫌内存慢了,要说慢,硬盘那可比内存慢多了!于是在 CPU 内部又搞了个缓存出来,不用每次都问内存要数据,而是把一些常用的数据存储在 CPU 内部的缓存中。

只不过 CPU 内部的缓存不会太大,仅存放一些常用的数据,大部分数据还是需要通过内存进行读取。

相关文章

  • 内存条是怎么存储数据的

    一、如何存储数据 由于保存数据的重要性,科学家一直在思考,在电路中使用何种方式可以保存数据。 如果使某个器件一直输...

  • php开发之变量

    PHP变量 1.变量的概念:临时存储数据的容器,存储在内存上,一旦网页结束运行,变量消失。 我们可以把内存条看成是...

  • 内存的作用

    内存条是连接CPU 和其他设备的通道,起到缓冲和数据交换作用。 当CPU在工作时,需要从硬盘等外部存储器上读取数据...

  • 电脑攒积常用小知识,数据存储仓库——硬盘

    昨天给小伙伴们介绍了电脑内存条的相关知识,今天为大家说说电脑的数据存储仓库——硬盘。 我们都知道,电脑的操作系统和...

  • 四、变量

    变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的呢?无论是内存还是硬盘,计算机存储设备的最小信息...

  • 初识JAVA之基础篇(四)

    今天总结的是各种小知识哦 (1)计算机存储单元 变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的...

  • sql语句的使用一

    sql语法 1.增删改查 什么是mysql存储例程?为什么要用存储例程? 怎么使用? ①、存储例程是存储在数据库服...

  • 2019-07-12

    概述 a.存储器可分为哪些类型? aa.按照存储介质分类半导体存储器:内存条、U盘,易失:当去掉电源,存储器中没有...

  • 计算机如何存储数据

    在计算机中所有的数据都被存储为一连串的二进制信息(0和1) 如何存储0和1 内存条中间有一块块方块,每个方块上就有...

  • Django使用mysql存储数据

    在Django中默认是用sqlite3作为数据库存储的,但如果使用mysql存储数据的话需要怎么配置django呢...

网友评论

      本文标题:内存条是怎么存储数据的

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