【计科快速入门】 六、寄存器&内存

368 阅读4分钟

1.什么是RAM

  • 随机存取存储器,简称"RAM",它只能在有电的情况下存储东西。它可以随时读写,而且速度很快。
  • 通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。
  • RAM的优点是读/写方便、使用灵活,特别适用于经常快速更换数据的场合。

2 如何做出一个简易RAM

首先,我们从简单开始,做只能存储1位的电路,之后再扩大,做出内存模块。

2.1 “OR”门

  • 首先,两个输入都设为0,所以电路输出0。如果将A变成1,所以输出1,当输出回到B,门看到两个输入都是1,所以输出不变。如果将A变成0,OR门依然输出1。所以OR门的电路可以记录1,但是却没法从1变回0。

在这里插入图片描述

2.2“AND”门

  • 首先,A和B都设1,永远输出1。如果之后A设为0,由于是AND门,输出会变成0。这个电路能记录0,和”OR“门相反。

在这里插入图片描述

2.3 AND-OR锁存器

  • 为了做出有用的存储,我们把两个可以储存1和0的电路结合起来,这叫"ANDOR锁存器"。
  • AND-OR锁存器有两个输入,"设置"输入把输出变成1,"复位"输入把输出变成0,如果"设置"和"复位"都是0,电路会输出最后放入的内容,也就是说,它存住了1位的信息!
  • 因为它"锁定"了一个值,所以它叫“锁存”,放入数据的动作叫"写入",拿出数据的动作叫"读取"。因此我们可以储存一个位。

在这里插入图片描述

2.4 门锁

  • 为了更容易使用,我们希望只有一条输入线。将它设为0或1来存储值,还需要一根线来"启用"内存,启用时允许写入,没启用时就"锁定",这条线叫"允许写入线"。加一些额外逻辑门,可以做出这个电路,这叫"门锁"。
  • 在这里插入图片描述
  • 一切从0开始,当"允许写入线"是关闭的时,数据输入从0换到1;从1换到0,输出依然是0。所以内容不会变化。
  • 要给"允许写入线"输入1打开门,现在往"数据线"放1,1就能存起来了。注意输出现在是1了。此时关掉"允许写入线",输出会保持1,现在不管给"数据线"什么值,输出都不会变,值存起来了。
  • 打开"允许写入线","数据线"设为0。允许写入线"关闭,输出0。 在这里插入图片描述

2.5 寄存器

  • 如果我们并排放8个锁存器,可以存8位信息,比如一个8bit数字,一组这样的锁存器叫"寄存器"。
  • 寄存器能存一个数字,这个数字有多少位,叫"位宽"。早期电脑用8位寄存器,然后是16位,32位,如今许多计算机都有64位宽的寄存器,写入寄存器前,要先启用里面所有锁存器。
  • 在矩阵中,我们不并列排放锁存器,而是做成网格,存256位,我们用16x16网格的锁存器,有16行16列,要启用某个锁存器,就打开相应的行线和列线。 在这里插入图片描述

2.6 多路复用器

  • 它能接收多个输入信号,按每个输入信号可恢复方式合成单个输出信号。复用器是一种综合系统,通常包含一定数目的数据输入,有一个单独的输出。
  • 多路复用器有不同大小,因为有16行,我们需要1到16多路复用器。如果输入一个4位数字,它会把那根线,连到相应的输出线,如果输入0000,它会选择第一列,如果输入0001,会选择下一列,依此类推。一个多路复用器处理行(row)另一个多路复用器处理列(column)

在这里插入图片描述

2.7 RAM

  • 它输入一个8位地址:4位代表列,4位代表行,我们还需要"允许写入线"和"允许读取线",最后,还需要一条数据线,用于读/写数据。

  • 随着内存地址增多,内存地址也必须增长,位最多能代表256个内存地址(11111111是255,0~255一共256个数字),要给千兆或十亿字节的内存寻址,需要32位的地址。

在这里插入图片描述

  • 这是一条真的内存,上面焊了8个内存模块,如果打开其中一个,然后放大,会看到32个内存方块,放大其中一个方块,可以看到有4个小块。如果再放大,可以看到存一个"位"的矩阵,这个矩阵是128位x64位,总共8192位。每个方格4个矩阵所以一个方格有32768个位(8192x4=32768)而一共32个方格。总而言之,1个芯片大约存100万位,有8个芯片,所以总共800万位,也就是1兆字节(1MB) 在这里插入图片描述