物理层面实现“信息存储”——以计算机内存为例

OK,这篇文章就是从数字逻辑的角度看内存的。众所周知,我们知道硬件是软件的底层,而数字电路是硬件的底层。我们经常站在系统级(操作系统)去看待内存,去学习他在操作系统中和CPU,进程线程,磁盘等的关系,这些都是逻辑层面的,或者说是计算机系统中的“内存之上”,而今天我想说的恰恰是“内存之下”。

计算机内存的物理层面

从0到1

假设现在我们知识的顶端是数字电路,往上我们一无所知,如何设计出内存?

首先要解决的就是信息存储问题吧。内存能存储许多数据,我们先来个简单的任务:如何存储一位0/1bit数据?

你一定知道我想说什么,那就是:触发器。(当然,还有其他元件比如锁存器,他们各有特点,这里我们就主要介绍触发器了)
触发器是能存一位0或1的一个电路,触发器由很多类型,比如JK除法器。
在这里插入图片描述
好吧,你看出来它是个电路了,那他为什么能存储信息呢?
我们尝试画一下这个电路的真值表。
在这里插入图片描述
我们发现,JK=00时,每个CLK来时,我们输出端的值不改变,也就可以理解为保存了这个状态。同理,当JK=01和1=时,可以改变状态。当JK=11时,状态交替。
其他的触发器有其他的逻辑,但是本质都是不变的:我们可以控制除法器的参数,使得这个电路达到我们想要的目的:保存信息,或者改变信息。

从1到N

我们解决了数据存储从0到1的问题,这是最困难的问题,是跨时代的进步。接下来从1到N,就非常简单了。能存1个我还不会存100个嘛?找100个相同结构的触发器“并”起来不就行了?因此,寄存器就诞生了。
寄存器是由N个触发器并行方式输入并且并行方式输出的数字电路。
在这里插入图片描述

从N到无穷

有了寄存器,我们能不能存储更多的数据?可以。我们需要将维度扩展,将一维变成二维,三维…
存储器就诞生了。
存储器按照堆栈/队列的方式排起来,就可以存储更多的数据。后来还设计出了更加复杂的存储元件,比如RAM
在这里插入图片描述
在这里插入图片描述
每个数据都有自己的地址,因此我们可以精准的存/读数据。

我们对于存储的设计,会使得我们的存储愈发大规模and高效。
比如SRAM
在这里插入图片描述

比如DRAM
在这里插入图片描述
比如ROM
在这里插入图片描述

人类对于“机器存储信息”这件事情的追求永远在路上,未来量子计算机等科技的发展,可能会打破目前的既有模式,我们会找到新的存储信息的方法。但我们的使命不变,“0-无穷”,存储信息,永远在路上。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DataPlayerK

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值