让小朋友懂一点计算机(四)|CPU的草稿纸——内存

导言

这需要前面小短文的知识

内存——临时存储

今天要说的是内存就是经常说的内存条。内存的主要作用是临时存储

就像我们要计算一道很复杂的数学题一样。例如78977841 + 8889475 = ?这个问题,很多人一般不能直接通过心算来一下子就在试卷上填写结果,而需要先把部分的结果先放在草稿纸上,算出正确答案之后再将答案写在横线处或者答题纸上。而内存的作用就很像草稿纸了,CPU的任务很重,因此它需要一个地方可以临时存放数据及运算的中间结果。

下面我们看一下1比特的数据是怎么存储的。

让小朋友懂一点计算机(四)|CPU的草稿纸——内存

我们用AND门来存储0,用OR门来存储1,注意上图有导线从逻辑门中出去然后回来。

并加上一些其他的电路来进行控制(是否可以写入的控制),然后这就是锁存器,结构如下图:

让小朋友懂一点计算机(四)|CPU的草稿纸——内存

它实现的主要功能就是当允许写入线为真时(也就是为1时),数据输入线可以输入数据0或者1,当允许输入线为假时(也就是为0时)数据输入线不接受任何数据输入,无论数据的输入是什么,数据输出只会输入允许写入线关闭时数据输入线的数据。

这就好比一个有锁的柜子,如果锁打开了,那么我们就可以往里面放东西,啥都可以,但是一旦锁上了,除非你用大锤把锁给敲没了,不然你放不进去任何东西。这就是简单的说法。最后不要管那么多逻辑门,直接抽象出来,则有了如下图:

让小朋友懂一点计算机(四)|CPU的草稿纸——内存

门锁

这便可以存储1比特的数据。

寄存器

寄存器就是多个锁存器。我们可以将8个锁存器并排放在一起,则这个就是一个寄存器。

让小朋友懂一点计算机(四)|CPU的草稿纸——内存

这是一个8位寄存器

但是我们可以看到,这里面的线比较复杂,我们来算算 8位寄存器需要多少根的线,8根数据输出线+8根数据输入线+ 1根控制线 = 17根,这好像不是很多,你会发现存128位要257根,256需要513根线,这有点多了。那么我们就使用了矩阵。使用矩阵来排列的话,很方便,行和列如果都是16根线的话,那么可以对应16*16 = 256个位置,那么如何选择呢?很好办,多几个逻辑门就好了。

让小朋友懂一点计算机(四)|CPU的草稿纸——内存

如果要在256个锁存器中选出“天选之子”,很简单,首先看他在第几行,第几列,就可以选中它,如果想要对他进行写操作,那就将门锁打开,可写控制线置为1就可以了,因此,如果你想要对一个锁存器进行写入,需要满足它的行线列线还有可写入线 3者均为1这才可以对其进行写入。

让小朋友懂一点计算机(四)|CPU的草稿纸——内存

矩阵内每一个元素的内部情况

更进一步的减少线路

为了更进一步地减少线路的使用,我们可以使用多路复用器。

让小朋友懂一点计算机(四)|CPU的草稿纸——内存

多路复用器

256个锁存器需要行和列都要有16根线,那么我们用对每一根线做编号,就像单元小区的门牌号码一样,但是我们这个门牌号码不同,他是用2进制来进行表达的,二进制数0000代表第一根线,0001代表第二根线... 然后1111代表16根线。列也是这么表示,那么现在就可0000 0000这8位二进制数来代表第一行第一列的地址了。

资料来源

特此鸣谢 The Crash Course

官方网站 https://www.thecrashcourse.com/ (由于是国外网站,可能打开比较慢或者无法打开。)


分享到:


相關文章: