• 编码:隐匿在计算机软硬件背后的语言(7)--存储器组织


    在上一篇文章编码:隐匿在计算机软硬件背后的语言(6)--反馈与触发器中,我们知道一个反向器、两个与门和两个或非门可以构成一个D型电平触发器。它可以存储一位信息,为了表达地更清晰,我们把输入端和输出端重新命名,以与功能相符,如下图所示


    当写入端为1时,数据输出端与数据输入端同步;当写入端为0时,数据输入端对输出没有影响,输出端存储的数据是输入端最后一次输入。我们也叫它1位锁存器。简化框图如下


    如果我们想得到多位锁存器,可以像下面一样将8个1位锁存器连接起来


    这样就得到了一个8位锁存器。还有另外一种方式将8个锁存器连接。即在输出端增加一个8-1选择器,同时增加三个选择输入端,这样每次我们就可以得到1位锁存输出。如下图所示


    其中三个选择输入端的真值表和电路连接方式如下图所示


    然后在输出端连接一个3-8译码器,通过输入来选择那个存储器被用到,其电路连接方式如下图所示


    整个系统的电路连接方式如下所示


    我们把3-8译码器和8-1选择器的三个输入端连在一起,8个锁存器的输入连在一起,组成上图所示的系统。

    当写入端为1时,我们可以通过选择端来控制那个锁存器被写入和输出。上图中的3-8译码器和8-1选择器的三个输入端实际上就是所谓的地址端,地址端的输入决定了那个锁存器被引用。这种配置下的锁存器也叫做读/写存储器,更普遍的叫法是随机访问存储器(Random Access Memory)或者RAM,其简化结构如下


    上述电路之所以被称为存储器是因为它既可以保存信息(写数据),又可以检查每个存储器保存了什么数据(读数据)。之所以被称为读/写存储器是因为读写操作都很自由,只需要改变地址和相关的输入就可以从8个锁存器中读出或者写入数据。上述的RAM阵列以8*1的方式组织起来。也就是阵列每次输出1位,可以存储8位(比特)。RAM阵列的组合形式有多种,比如


    上图可以存储8个数据,每个数据有2位(比特)。是一个8*2的RAM存储器。还可以如下组织


    上图又增加了一个1-2译码器和2-1选择器,相当于又增加了一位地址线;此时存储器变为16*1的RAM阵列。

    从以上两图可以看出存储器的容量可以用下面的式子表示

    RAM阵列的容量=2^地址输入端个数


    那么如下图所示的RAM存储器


    我们就可以知道它有10个地址位,因为1024=2的10次方。输出位数为8,也就是一个字节。存储容量为1024*8个比特。


    下面说一下我们平时所说的存储器容量。

    1024个字节=1KB,也就是上图所示的RAM存储器容量。(kilobyte,kilo表示“千”,与十进制的1000区分)

    1024个KB=1MB(megabyte,mega在希腊文中意味着宏大)2^20字节

    1024个MB=1GB(gigabyte,giga意思为巨大)2^30字节

    1024个GB=1TB(terabyte,teras希腊语为巨人)2^40字节

    1024个TB=1PB(petabyte)一批字节2^50字节

    1024个PB=一安字节(exabyte)2^60字节



    上图所示的RAM存储器容量为64KB,地址线为16条,也就是两个字节,数据位数是8位。


  • 相关阅读:
    ASP.NET Core项目解读之常用概念方法
    ASP.NET Core项目解读之appsettings.json
    ASP.NET Core项目解读之wwwroot
    ASP.NET Core项目解读之launchSettings.json
    理解.NET5
    搜索引擎学习(四)中文分词器
    搜索引擎学习(五)Lucene操作索引
    搜索引擎学习(三)Lucene查询索引
    搜索引擎学习(二)Lucene创建索引
    搜索引擎学习(一)初识Lucene
  • 原文地址:https://www.cnblogs.com/hitfredrick/p/6403007.html
Copyright © 2020-2023  润新知