电子说
「在矩阵中,不并列排放锁存器,做成网格的形式。」
这样存256位就可以使用16X16的网格。
「如果要启用其中的某个寄存器,指明对应的行号和列号即可。」
首先给定行号和列号,只有对应的 「行号和列号都满足条件时」 ,才会打开某个锁存器的行列选择器 「(ROW+COLUMN SELECT TEST)。」
实现方案已经看出来了**「使用的是AND门(也就是下图的ROW+COLUMN SELECT TEST)」** ,那么这个行号和列号怎么转换成对应的比特01呢?(后面总结矩阵需要多少跟线的时候在讲解)
「和之前一样也是用的一根允许写入线来控制所有锁存器的写入线。」
但和之前稍微不同的是
「允许存储不单单是允许写入就可以存储的了,还需要满足另外一个条件就是:对应的行列选择器被打开」
因此需要在传统的WRITE ENABLE的基础上 AND 行列选择器的开关。只有行号,列号,允许写入线都是1才进行存储。
「而且每次只有一个锁存器会这样,这会在数据输入线实现的时候有特别大的帮助」
得益于之前的写入判断:只有行号,列号,允许写入线都是1才进行存储,而且每次只有一个锁存器会这样。因此我们不需要向并排那样每个锁存器都有一个输入线 「,矩阵只需要一个数据输入线即可,因为每次只能操作一个锁存器,其他锁存器会忽略数据线上的值,因为没有“允许写入(行列不满足)”」
先锁定行列矩阵中开启哪个锁存器,在判断是否允许写入,如果允许写入那么数据线的值就是输出,如果不允许写入那么输出不会改变
类似数据输入线一样,每次锁定要读取的行列即可。「但是每次只可以输出一个锁存器上存储的数字」
「答案是仅仅需要35跟线即可。」
一条数据线,一条允许写入线,一条允许读取线(强调!!每次只可读取一位如果需要读取多位需要将多个内存向寄存器那样把锁存器并排放置),还有剩下32个线就是我们用于锁定对应行列的锁存器,这个32跟线就是多路复用器的32跟线,下面介绍多路复用器
由于256位的寄存器行列数最大值也就是16,因此4位数足够了。
转换示例:比如行号12用二进制表示:1100,列号8用二进制表示:1000.因此行列的表示可以写成**「11001000代表的是十二行第8列」**
根据转换的不同行列数,需要不同的多路复用器。
上面我们用的都是16行,「因此行和列选择的都是1到16多路复用器。一个多路复用器处理行,一个处理列」
输入四位数字,会选择对应的行或列,比如代表列的0000列的复用器会选择第一列,如果是0001=1会选择第二列,以此类推..
8位地址里面四位表示行号,另外四位表示列号
数据Data输入线
允许写入线:WRITE ENABLE
允许读取线:READ ENABLE
我们从最初只能存储一位的内存发展到存储八位的内存再之后发展到刚刚提到的可以存储256位的内存(每次只可取一个位)。但是这一个**「可以存储256位的内存也只是每次可以输出一位的信息,并没有多大用处,因此将这些内存再次链接起来,向寄存器那样将多个锁存器并排放置」**
「将八个256位内存并排放置,每次都可以存储一个八位的数字,八位也叫一个字节(byte)。」
「每次都给8个256位内存一样的地址,每个地址存一位,也就意味着总共能存256个字节」
8-BIT ADDRESS INPUT:代表的是这八个256位内存中使用的同一个行列,因此这个RAM有256个地址,而每个地址都可以读写一个8位的值,也就是可以存储256X8位的信息,也即256个字节(byte)
「这个RAM有16个寻址空间地址,每个地址可以读写8位值,可以看到是由8个16位内存组成」 下一篇文章将CPU的时候会用到
现在计算机的内存已经扩展到了GB的方式,和上面介绍的一样,也是不断的打包这些矩阵,不断把内存打包到更大规模,8位最多能代表256个内存地址,如果想要给千兆或者十亿字节的内存寻址(寻找地址),需要使用32位的地址。
这篇文章,我们用**「锁存器做了一个SRAM(静态随机存取存储器)」** ,还有其他类型的RAM,比如DRAM,闪存和NVRAM。。他们在功能上和SRAM相同,但用不同的电路存单个位:比如 「用不同的逻辑门,电容器,电荷捕获或忆阻器」 。但根本上,「这些技术都是矩阵层层嵌套来存储大量信息。计算机底层其实很好理解,难得是一层层难以理解的抽象。」
全部0条评论
快来发表一下你的评论吧 !