zoukankan      html  css  js  c++  java
  • 计算机速成课 第6集:寄存器 & 内存

    回顾

    上一集,使用逻辑门做了一个简单的 ALU,但是这个是仅仅用于计算的。
    算出结果后,如果仍掉就没有什么意义了,需要找个办法存起来,
    所以,今天要讲的是从把一个东西算出来,到怎么把算出来的东西存储起来。
    

    1. 数据有损失的原因

    玩游戏的时候,一旦断点,那么就会失去游戏的进度,也就是游戏数据丢失了。
    这是为什么呢?
    因为这个时候使用的是 RAM(随机存取存储器) , 它只能在有电的情况下存储东西,例如:游戏状态。
    

    2. 另一种存储:持久存储

    即使在电源关闭的情况下,也不会丢失数据,这个后面的章节会讲。
    

    3. 今天要做的东西:一个存储1位的电路

    先做出可以存储1位的电路。然后扩大,做出内存模块,下次再和ALU组合,做出CPU。
    

    正题

    1. 从课程开始至今,我们说过的电路都是单向的

    就是说电路总是向前流动的。例如,上集讲的「脉动进位加法器」;
    但是也可以做「回向电路」,把输出连回输入。
    

    2. 做出能存 0 和能存 1 的电路

    这样将两者结合起来的时候,就可以构成「AND-OR 锁存器」,
    
    它有两个输入
    	- 「设置」输入,把输出变成 1
    	- 「复位」输入,把输出变成 0
     
    最终,存住了 1 位的信息。这个叫做「锁存」,因为它「锁定」了一个值
    
    放入数据的动作叫「写入」,拿出数据的动作叫「读取」
    

    3. 继续抽象,希望只有一条输入线

    因为用两条线「设置」和「复位」来输入有点难理解,
    为了使用更加容易,希望只有一条输入线;
    

    4. 可以存放一个 Bit 的盒子

    这里会涉及到「门锁」的概念。
    门:可以打开或者关上。
    这时候,我们希望有一个盒子,把「门锁」放到盒子中,这个盒子可以存一个 Bit。
    

    5. 寄存器

    在前面的基础上,我们来扩展一下规模: 我们并排放 8 个锁存器,一组这样的锁存器称为「寄存器」
    
    寄存器可以存一个数字,这个数字有多少位,叫做「位宽」
    
    可以存 8 位信息,例如一个 8 bit 的数字
    
    早期的电脑使用的是 8 位寄存器,然后随着时代的发展,有了 16位,32位等的寄存器。
    
    小结:存 1 位,锁存器;存 8 位,寄存器。
    

    6. 「多路复用器」

    为了减少线路的使用,我们需要将地址转成「行」和「列」,这个时候就需要用到「多路复用器」
    
    一个 16*16 的矩阵可以存 256 位,组合 256 位内存 + 多路复用器,可寻址的 256 字节 内存
    
    数据选择器/多路复用器 解码 8 位地址,定位到单个锁存器;
    

    7. 独立的存储模块和电路

    这是一个整体的可寻址内存
    

    8. 内存的一个重要特性:可以随时访问任何位置

    因此叫内存又叫「随机存储器」
    
    一条 1980 年代的内存,1M 大小
    

    总结:

    划重点,今天主要讲的是使用「锁存器」做了一块 SRAM 「静态随机存取存储器」。
  • 相关阅读:
    NodeJS优缺点
    移动端触摸相关事件touch、tap、swipe
    vscode使用技巧
    js 字符串转数字
    js 导出Excel
    <!--[if IE 9]> <![endif]-->
    js 异步请求
    关于windows串口处理
    mfc 托盘提示信息添加
    微软的麦克风处理示列代码
  • 原文地址:https://www.cnblogs.com/zxxsteven/p/15026156.html
Copyright © 2011-2022 走看看