代码改变世界

内存容量计算

2017-02-26 12:07  艳火_离殇  阅读(1393)  评论(0编辑  收藏  举报

写这篇文章的初衷是源于一个群友问的问题,大意是有20根地址线,内存按字节编址,内存容量是多大)。

      这个问题其实不难,学过计算机组成原理的都知道,只要220*1B=1MB。但是他对内存编址没有一个清晰的认识,所以一直纠结一些不可思议的问题,比如一根线传几位,地址线上传输的是位还是字节。所以想把在给他解释的过程当中,自己的心得分享出来。

      首先要知道两点,就好理解了:

  1. 存储容量=存储单元格的个数*每个单元格的容量。
  2. 内存空间是二维的,地址线构成了地址空间,数据线是真正传输数据的,存储数据。

      每一根地址线有两个状态,0和1,所以20根地址线构成的地址空间是从0000...(20个0)到1111...(20个1),220个,也就是1M个内存单元格子。每个地址单元是按照字节编址,也就是1个内存单元是由8根数据线,8bit=1B的容量,如果是按照字编制,一个内存单元格就是2B,(1个字=2个字节);所以如果这道题改成字编制,答案就是2MB,最后花一个图,来说明一下。