内存实现原理浅析

前言:在看操作系统、计算机组成原理乃至JVM虚拟机等等时,都会提到内存的寻址空间,还经常会说到,如32位的系统内存寻址空间最多为2^32即4GB,也就是最大能用的内存为4GB,不禁好奇为什么会这样,上面的逻辑应该是每个地址能存储8bit数据,这样32位空间,也就能表达2^32个地址也就能存4GB,但直接的想一下,存储数据不只是要存储数据,还要存储地址,这样才能根据地址找到数据,但这样光地址都32位了,哪来的空间存储数据呢?新手入门,参考下大概意思即可

参考:https://www.jianshu.com/p/c7fc7293f239(本文基本复制的这篇,做了点简单修改)

目录

第一章 硬件介绍

1.1 二极管

1.2 逻辑门

1.3 组合逻辑单元

1.3.1 译码器

1.3.2 多路复用器

1.4 存储单元

1.4.1 门控D锁存器

1.4.2 寄存器

第二章 内存介绍


第一章 硬件介绍

1.1 二极管

n-MOS管,栅极端(Gate)通电后,则电路联通,栅极断电则电路断开

p-MOS管反过来,栅极端(Gate)通电后,则电路断开,栅极断电则电路联通

1.2 逻辑门

利用上述二极管的特性,我们可以组合出一些电路

非门:输入0,输出1;输入1,输出0

或门:输入0与0,输出0;输入0与1,输出1;输入1与0,输出1;输入1与1,输出1

与门:输入0与0,输出0;输入0与1,输出0;输入1与0,输出0;输入1与1,输出1

上述二极管的组合可以简化的用一些符号表示

1.3 组合逻辑单元

 上面我们使用二极管组成了逻辑门,这里我们用逻辑门组合成组合逻辑单元

1.3.1 译码器

依据输入端的二进制,在输出端选中某一条电路

1.3.2 多路复用器

根据控制信号,只选择输入端的某根电路,把这根线输出到输出端。若S1=0,S2=0,则A线路被选中,A的值即是输出值。

1.4 存储单元

可存储信息的结构:可用于保存二进制

1.4.1 门控D锁存器

多个逻辑门组成门控D锁存器,可以保存1bit的数据,WE=0时保存原值,WE=1时可以修改保存的值。

  • WE=0时(不可读写),S和R必为1,则电路稳定,out端可保持原来的值
  • WE=1时(可读写),则根据D的值,out端变为对应的值。然后恢复WE=0则保存起来

1.4.2 寄存器

一个门控D锁存器只能保存一个bit,则组合起来就能保存n个bit,这就是寄存器

第二章 内存介绍

先简单介绍内存中的两个概念:

  • 寻址空间:即能保存多少个内存地址,我们通常意义上的4G内存,就表示计算机能保存2的32次方个地址能保存这么多地址,也就能找到这些地址上的二进制信息。

  • 寻址能力:每个地址里具体存多少个bit,由于历史原因,绝大部分计算机都是8bit的寻址能力。

下面是一个超简单的内存。这个内存是2的2次方的寻址空间,即只能查找4个地址。寻址能力是3个bit,即每个地址只能存3个bit。

左边是我们上面说的译码器,通过译码器来决定输出哪条线路,这也是前言中的答案,不需要保存数据的地址,译码器可以根据我们输入的地址自动选择数据。

内存依靠门控D锁存器来保存数据,能保存1bit

每一列都是一个多路复用器,数据的输出根据寻址时译码器选中的某一个线路,每一列的多路复用器只能输出那个线路的对应的那个门控D锁存器保存的bit。则最终的三个bit都是由同一个线路对应的三个门控D锁存器的输出。

所以之所以32位的系统内存寻址空间最多为2^32即4GB,因为译码器能翻译地址最多也就2^32个了,再多地址就重了。

感想:这要是内存的实现方式,那内存包含的电子元件也太多了把,光是门控D锁存器4GB内存条也就2^32个了,也就是40亿个,再加上多路复用器译码器等等一堆电路,真想不到小小的内存条里会有这么多元器件。

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值