今天我们来实现一个最简单内存。 由于在计算机中除了逻辑电路之外没有别的东西,我们要存储也需要用逻辑电路来实现,接下来我们先去实现一个简单的寄存器。 寄存器寄存器又分为两种一种只能存 1 ,一种只能存 0 能存 1image 能存 0image 能存 1 和 0 的逻辑电路有了,我们就可以存储全部状态了,我们发现寄存器只能能够存一种状态并且无法清除保存的状态。 锁存器image 这次好了,设置端通电 1 就存起来了,想存 0 就给恢复端通电,这样我们就简单实现了一个能存储一个 bit 的电路。但是我们还会发现一个问题就是存 1、0 的状态需要两个线分别去处理,这样就会有很多不便。我们继续往下看来解决这个问题。 门锁image 门锁符号image 这样一来我们就可以用一根线控制锁存器的状态,并且添加了允许写入的线来控制切入权限。这样一来存一个 bit 的电路我们就完成了。下面我们来组合一下。 8位寄存器image 这个电路就是我们使用 8 个门锁组合成的存储单位,这样我们就可以存储一个字节(Byte)了,但是我们还会发现一些问题就是,如果内存这样设计的话,是不是要浪费很多线材,你可以简单计算一下,这样一个简单的寄存器需要使用多少线材。 门锁矩阵image 看到这个比较懵逼的图了没有,我们使用矩阵的方式来组合门锁,这个地方我省略的一些格子,理论上应该是 16 *16 也就是存储 256 bit 的一个矩阵,这样一来我们会节省很多线材。我们接下来看看每个格子里都是什么?
放大单个格子image 我们来分析一下这个电路的优劣势? 优势
劣势
继续看我们怎么规避掉的。 简易内存块image 这个图就是把我们上面的门锁矩阵进行封装而成的内存块。 内存image 然后我们再把 8 个内存块组合起来,这样我们就可以继续存 1Byte 的数据了。 写入数据
读取数据
到此我们就完成了一个简单的内存。 小结看到这个大家心中有没有解开一个疑惑。 |
|
来自: 东耳果果 > 《电脑 机器人 太空》