先做出1位存储,然后扩大做出内存,再与ALU结合做出CPU
OR门+回路
A||B => output
A=0 || B=0 => 0
A=1 || B=0 => 1
B形成闭环=1, A=0
A=0 || B=1 => 1
这样就有了一个可以记录1的电路, 但是无法变回0
AND门 + 回路
A||B => output
A=0 & B=0 => 0
A=1 & B=1 => 1
B形成闭环=1, A=0
A=0 & B=1 => 0
这样就有了一个可以记录0的电路, 但是无法变成1
AND-OR锁存器
设置:
(设置输入1 => OR门 => 1 ) & ( 复位输入0 => NOT门 => 1 ) ==> 1
((设置输入0 & OR门的回路 ) => 1 ) & ( 复位输入0 => NOT门 => 1 ) ==> 1
这样就存储了1
复位:
(设置输入1 => OR门 => 1 ) & ( 复位输入1 => NOT门 => 0 ) ==> 0
((设置输入0 & OR门回路) => OR门 => 0 ) & ( 复位输入1 => NOT门 => 0 ) ==> 0
这样就存储 0
综上:
设置 和 复位 都是0, 电路会输出最后存放的内容, 这样就实现了1位存储
并排8个锁存器就可以存放8位数字就是8bit, 也就说位宽是8.这样一组锁存器就是寄存器.
允许写入线连接所有的锁存器,只有定位线 和 允许写入线都通电,才输出1, 此时可以写入数据.
同样的, 可以添加读取数据线, 来读取指定位置的数据:
为了存储一个8位数值, 给每个内存同样的内存, 每个内存存1位
每个地址可以获取一个8位数值
不断的把内存打包到更大的规模, 就形成了现在的GB内存
81924=32768
3276832 ≈ 100W
100W*8 ≈ 800W =1M