【笔记】计算机科学速成课2-9
视频链接:https://b23.tv/WTK1fx3
画图网站:https://excalidraw.com
P2 电子计算机
电路开闭(开关):继电器、真空管、晶体管。
晶体管只有通电(1),断电(0)两种状态,所以用二进制设计计算机,而数学中的“布尔代数”,恰用 true 和 false 进行逻辑运算。
P3 布尔逻辑和逻辑门
1. 布尔逻辑:
NOT:取反。

AND:一假则假。

OR:一真则真。

XOR:相同为假,不同为真。

2. 逻辑门:

3. 逻辑门符号:

P4 二进制
二进制用 1 或 0 表示,1 或 0 叫一“位”或一"比特(bit)"。
1 bytes = 8 bits (1 字节 = 8 比特)。

1. 数字表示
正负:用第一位表示,1负,0正。
浮点数:有效数位*指数(IEEE 754标准,类似科学计数法)

2. 字符表示
ASCII:7位代码,128个值。
UNICODE:统一所有编码的标准。
P5 算术逻辑单元
算术逻辑单元简称ALU,有算术单元和逻辑单元两个单元,负责处理数字和逻辑运算。
1. 算术单元
算术单元的数学运算:加法,带进位的加法,减法,带进位的减法,数值取反,增量(+1),减量(-1)数字无改变通过。
半加器:第一位相加

全加器:进位

8位行波进位加法器 → 超前进位加法器(现在电脑使用)

2. 逻辑单元
作用:逻辑操作 NOT, AND, OR 和简单的数字测试。
零测试电路:检测其中一位是否为1。

P6 寄存器和内存
1. 锁存器

两个输入线:

一个输入线:

2. 寄存器
寄存器:一组锁存器。
位宽:寄存器能存数字的位数。

门锁矩阵:减少输入输出线的使用。所有锁存器的数据线,允许读取线和允许写入线分别用一根线连接,当行/列线和允许写入线都为1时,才允许写入,以控制单个锁存器的使用。(16*16的矩阵35根线。)
多路复用器:将地址转化为行列。eg:输入11001000,输出12行8列。

n*n 的矩阵有 n^2 个位址,则可以存储 n^2 个数。但 1 个矩阵只可记录 1 位数字。

8 个矩阵,所以一个位址存8位,256个位址存256字节(256*8位)。

3. 内存
随机存取存储器(内存),简称RAM,可随时访问任何位置,仅在有电的时候存储数据。

P7 中央处理器CPU
CPU:中央处理器,负责执行程序,程序由操作(指令)组成。
RAM是CPU外的独立逐渐,和CPU之间用“地址线”、“数据线”和“允许读/写线”进行通信。
时钟:负责管理 CPU 运行的节奏,以精确地间隔,触发电信号,控制单元用这个信号,推动 CPU 的内部操作。
时钟速度:CPU “取指令→解码→执行”的速度,单位赫兹Hz,表示频率的单位。
超频:修改时钟速度,加快 CPU 的速度,超频过多会让 CPU 过热或产生乱码。
降频,降低时钟速度,达到省电的效果,对用电池的设备很重要。
动态调整频率:处理器按需求加快或减慢时钟速度。
1. CPU工作原理
组件:指令表,控制单元(门电路)、指令寄存器,指令地址寄存器(存当前指令的内存地址)。


第一个单芯片CPU:

P8 指令和程序
CPU是可被软件控制的硬件,具有可编程,输入不同指令,会执行不同任务。
(ALU没有除法,程序赋予了其除法功能。)
指令集:由指令名称、用法、操作码、操作数组成。
指令和数据都存在同一个内存里,本质上都是二进制数。
HALT能区分指令和数据
1. 指令长度
由于8位的指令,其中4位操作码,只能代指16个指令;4位地址,只能操作16个地址。
两种解决指令不够的方法:
用更多位代表指令,如32bit或64bit(指令长度)。
可变指令地址:令不同的指令长度不同。
JUMP可省去它的寻址位数(操作码),用8位“立即值”(立即操作数,常量)表示内存地址。
HALT则可以省去操作数的位数。
P9 高级CPU设计
提高计算机速度的方法
减少晶体管的切换时间。
如设计逻辑门,ALU等组件。后方法达到极限。
CPU硬件层面上设计专门电路。
如设计除法电路。导致ALU越来越复杂,指令越来越多。
在CPU中加入缓存cache / 使用指令流水线。
超高时钟的速度,使RAM与CPU之间数据交换的延迟。
1. 缓存cache
CPU内部的小块RAM。
让RAM可以传一批数据给CPU。
离CPU近,数据传输速度快。
缓存命中:想要的数据在缓存。
缓存未命中:想要的数据不再缓存。
缓存同步
缓存在处理长/复杂的运算,被当临时空间,存中间值时,导致了缓存和RAM中数据的不一致。所以会在缓存满了CPU又要缓存时,检查脏位(每块缓存空间中的特殊标记),如果脏,加载新内容之前,把数据传输给RAM进行同步。
2. 指令流水线
取指令→解码→执行,并行处理提高CPU性能。
但存在“指令之间存在依赖关系”(旧数据不能及时变更),条件跳转”(如JUMP,空等造成延迟)两个问题,前者需动态排序有依赖关系的指令(乱序执行)。“后者需提前预测可能性(推测执行/分支预测),猜对马上执行,猜错清空流水。

超标量处理器:加相同电路(ALU),使一个时钟周期处理多条指令(取址+解码)。

多核处理器:能同时运行多个指令流,一个CPU中有多个独立处理单元,可以相互共享资源。