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