5-8(计算机导论)
5.算数逻辑单元
ALU(算数逻辑单元) 由一个算术单元和一个逻辑单元构成
算术单元:负责计算机的所有数字操作
半加器
全加器
溢出:两个数字的和太大了,超过用来表示的数位(导致错误)
避免溢出可以加更多的全加器 需要更多逻辑门 时间会延长一点(电子移动需要时间但电子移动速度快)
逻辑单元
6.寄存器&内存
寄存器由锁存器构成
锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制器与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个 I/O 口既能输出也能输入的问题。
存1电路
存0电路
门锁
多路复用器:将地址转换成行和列
内存(RAM):可以随时访问任何位置
7.中央处理器CPU
ALU和RAM组成CPU
CPU 取指令->解码->执行
CPU的状态切换速度也叫做时钟速度(单位用赫兹来表示)
时钟:负责管理 CPU 的节奏,以精确的间隔 触发电信号,控制单元会用这个信号,推进 CPU 的内部操作,确保一切按步骤进行
取指令阶段:负责拿到指令。
解码阶段:通过操作码和地址码解码
执行阶段:执行命令
8.指令和程序
指令表
指令寄存器中保存的是00101110。
前四位0010为操作码,通过指令表可知这个指令是LOAD A指令,就是将RAM中的值保存在寄存器A中。
后四位1110保存的是RAM地址,转成十进制就是14。
所以指令00101110的意思就是将RAM中第14位的数据(一共16个)保存到寄存器A中。
对于十进制的17似乎没办法用四位的二进制保存
可以继续往后延申 以至于出现16位 32位
解码:1000 是 ADD 指令,0100 不是 RAM 地址,而是 2 位 + 2 位分别代表 2 个寄存器
<1>2 位可以表示 4 个值,所以足够表示 4 个寄存器
<2>第一个地址是 01, 代表寄存器 B
<3>第二个地址是 00, 代表寄存器 A
执行程序
其需要注意到的地方类似于Python语言中的break和continue
Jump便是其一
Halt立即结束
可是ADDRESS_4 Jump指令跳到了ADDRESS_2以至于永远无法到达Halt结束
也就相当于一个循环与Python中的for while循环可以作出比较