重点:
image.png
ALU 计算完结果,直接扔掉就没有意义了,需要找个方法存起来。
还可能需要多个连续操作。 ---就需要计算机内存。
- 随机存取存储器 - RAM
- memory 持久存储
锁存器
之前电路都是单向的,向前流动。
但也可以做回向电路,把输出连回输入。
- 或门 :
image.png
0 OR 0 = 0
1 OR 0 = 1 --> 1 回流到 B 改为 1 OR 1 = 1
image.png
将A 变成0 OR 门依然输出1
0 OR 1 = 1
现在这个电路能记录 “1”
问题: 这是永久的,无论怎么改 都没法从 1 变回 0 。
- 与门
1 AND 1 = 1
0 AND 1 = 0 --> 0 回流到 B 改为 0 and 0 = 0
现在这个电路能记录 “0”
image.png- 两个连起来就是 AND - OR 锁存器
设置 :
image.png image.png复位:
image.png image.png它存住了1 位信息 --存储 这叫 “ 锁存” 因为 “锁定了一个值”,放入叫“写入” 拿出数据叫“读取”。
现在有办法存入一位值了 Great
- 问题:
用两条线 “设置” 和 “复位” 来输入 有点难理解,希望只有一条输入线。
image.png
- 希望数据输入 设为 0 或 1 来存储。
- 另一根来 “启用” 内存,启用允许写入,没有启用锁定。
解决: 门锁 可以打开和关闭
打开:
image.png
关闭:
image.png
提升 “抽象” 寄存器
把 “门锁” 放到盒子里,盒子能存一个bit
image.png
一切从0 开始
image.png
如果 输入 从0 切换到1 或者从1 切换到0 输出依然 0 ,因为允许写入线 是关闭的,所以内容不会变化。
允许写入 输入 1 ,“打开门”
image.png
Success 保存成功 !!
关掉 允许写入 线,输出保持 1 ,不管给输入什么值,输出都变。值保存了。
image.png
再打开 ,允许写入 ,输入 设置 0 ,输出就是0 ,关闭,输出 是0 。
image.png允许写入关闭 ,输出0 。
怎么存储更多的位?
只能存储1 bit 没什么用。
如果并排放8个 锁存器,可以存储8 位信息,比如一个8 bit 数字 最大255 。
- 一组这样的锁存器 叫 “寄存器” 。
- 寄存器能存一个数字,数字有多少位,叫 “位宽”。
- 早期电脑用8 位 寄存器,然后是 16 位 32 位 64 寄存器。
image.png
- 一根线启用所有允许输入线,设为1
- 然后 8条数据线发数据,然后将允许写入设回 0
- 现在8 位值就存起来了。
问题:
如果64位寄存器,需要64根输入 ,64 输出 1根启动 129条线。
存256 要 513 条线。
解决方法:矩阵
image.png
16 x 16 256 位锁存器,要启用某个锁存器,就打开相应的行线和列线
image.png
一根线连接所有有的允许写入线,行线 ,列线,允许写入线 都必须是1 ,每次只有一根锁存器会这样。 代表可以用一根 “数据线” 连接所有锁存器来传数据。因为只有一个锁存器会启用,只有那个会存数据。
其他锁存器会忽略数据线上的值,因为没有“允许写入”
写入:
image.png
读取:做 允许读取线 来读数据,从一个指定的锁存器,读取数据。
image.png
只需要 35 条线连接:省了好多
1条 数据线
1条 允许写入线
1条 允许读取线
16 x 16 矩阵线
16 + 16 + 3 = 35
需要某种方法来 唯一指定交叉路口。
- 比如 12 行 8 列:
由于最多16行 用4位就够了(8 4 2 1 = 16 )
12 二进制 = 1100
8 二进制 = 1000
12行8列 地址: 11001000
- 11001000 地址转 行 & 列 - “多路复用器”
image.png
行 列 输入 4位数,查找:
image.png
再抽象 ,256 位内存
image.png一个没什么用,和寄存器一样,8个并排。
一行8个,可以存一个8位数字, 8位叫一个字节(byte)
为了存一个8位数字,同时给8个 256 位内存 一样 的地址。
每个地址存一位, 意味着可能存256 个字节 。
封装转换 成一个整体的可存取的内存。
每个地址能读或写 一个8位值。
现在的兆字节(Mb )千兆 (GB) ,和这个做的一样,不断把内存打包到更大规模。
随着内存地址增多,内存地址也必须增长。
8 位最多能代表 256个内存地址。一共256 个数字。
要给千兆 或十亿字节的内存寻址,需要32 位地址。
内存的重要特征: 可以随时访问任何位置。
因此叫“随机存取存储器” ,简称 RAM。
RAM ,像人们的短期记忆,只记录当前在做什么事情。
真实内存
image.png打开放大:
image.png放大:
image.png
矩阵:
image.png
128 x 64 = 8192 位
每个方格 四个矩阵
8192 x 4 = 32768
32个方格
327368 x 32 = 100万位
8个芯片 总共 800万位 = 1兆字节(1Mb)
1 Byte = 8 Bits
1 KB = 1024 Bytes
1 MB = 1024 KB
1 GB = 1024 MB
网友评论