前面已经向大家演示了怎么搭建小型RAM阵列,你可能会问:为什么不搭建一个大规模的RAM阵列呢?就像下面这样。
上图所示的RAM阵列可存储8192个比特的信息,每8个比特为一组,共分为1024个组。因为2的10次方恰好是1024,所以地址端共有10个输入端口。电路还包括8位的数据输入端和8位的数据输出端。
从专业的角度来讲,这个RAM阵列的存储容量为1024个字节。就好比一个邮局放置了1024个邮箱,而每个邮箱里面都可以存放1字节大小的邮件(希望不是垃圾邮件)。
1024字节通常简称为1千字节(kilobyte),1K这种称呼不可避免地要引起许多混淆。其中它的前缀kilo(源于希腊文khilioi,意思为1000),经常在公制系统中用到。比如1千克( kilogram)代表着 1000 克(grams);1 千米(kilometer)代表着 1000 米(meter)。有所不同的是,这里所说的1千字节却代表着1024个字节——并非1000个字节。
它们之间不同的根本原因在于公制系统是基于10的幂的计数系统,而计算机采用的是基于2的幂的计数系统,它们之间没有交集。比如10的幂为10、100、1000、10000、100000等,而2的幂为2、4、8、16、32、64等。我们可以证明不存在一对整数a和b使得10的a次幂与2的b次幂相等。
但是偶尔也会碰见非常接近的数字。事实的确如此,1000十分接近1024,用数学化的描述方法可以称这种关系为“约等于”,这样我们可以得到相应的数学表达式:
$$
2 ^ { 1 0 } \approx 1 0 ^ { 3 }
$$
这个表达式并非空穴来风,它真正的意义在于表明2的某次幂和10的某次幂几乎相等。我们利用这一巧合可以很方便地把1024个字节的存储空间用1千字节来表示。
16 存储器组织
RAM 阵列的存储容量 = 2 地址输入端的个数
209