1. 概述
1.1 计算机组成
- cpu/内存/硬盘/显卡
- 计算机硬件只能识别0和1。使用低电平表示0,用高电平表示1。金属针脚用来接收/传递电信号。
- 通过电路,可以传递二进制数位,每个二进制数位称为1bit
1.2 计算机的发展
-
计算机系统 = 硬件 + 软件
-
软件:
- 系统软件:用来管理整个计算机系统(操作系统,DBMS)
- 应用软件:按任务需要编制成的各种程序(王者)
-
硬件发展:
-
摩尔定律:每隔18个月,集成电路上可容纳的晶体管数目会增加一倍,整体性能也提升一倍。
1.3 计算机硬件的基本组成
- 早期冯诺依曼结构
特点:
- 现代结构
现代计算机:以存储器为中心
CPU = 运算器 + 控制器
1.4 各个硬件的工作原理
1.4.1 主存储器
1.4.2 运算器
1.4.3 控制器
1.4.4 计算机工作过程
1.5 计算机系统的多级层次结构
三个级别的语言:
1.6 计算机的性能指标
-
存储器性能指标:
-
CPU的性能指标:
-
系统整体的性能指标:
-
基准程序(动态测试): 基准程序是用来测量计算机处理速度的一种实用程序,以便于被测量的计算机性能可以与运行相同程序的其他计算机性能进行比较。(跑分软件)
2. 数据的表示和运算
2.1 整数的表示和运算
2.1.1 进位计数制
- 进制
- 进制转换
- 真值和机器数
2.1.2 BCD码
Binary-Coded Decimal 用二进制编码的十进制
2.1.3 无符号整数
- 在计算机中的表示
2.1.4 带符号整数
移码:补码的符号位取反
2.1.5 定点小数
定点整数:即带符号整数
加减运算规则与整数相同
2.1.6 奇偶效验码
2.2 算数逻辑单元 ALU
Arithmetic and Logic Unit
2.2.1 电路的基本原理
-
ALU:输入信号+输出信号+控制信号
-
逻辑运算
- 优先级: 与 > 或。
- 满足分配律和结合律。
- 加法器的实现
2.2.2 补码加减运算器
2.2.3 标识位的生成
2.2.4 移位运算
2.2.5 乘法和除法
-
原码的一位乘法和除法
-
补码的一位乘法和除法
2.2.6 数据的存储和排列
-
大小端
-
边界对齐
2.3 浮点数的表示和运算
2.3.1 浮点数的表示
2.3.2 IEEE 754标准
2.3.3 浮点数的加减运算
3. 存储系统
3.1 存储系统基本概念
3.1.1 存储器的层次结构
3.1.2 存储器的分类
-
按层次
2. 按存储介质
- 按存取方式
- 信息的可更改性
- 信息的可保存性
3.1.3 存储器的性能指标
3.2 主存储器
主存由RAM+ROM组成。
3.2.1 主存的基本组成
3.2.2 SRAM和DRAM
断电后信息消失
3.2.3 只读存储器ROM
很多ROM也可以写,断电后信息不消失
3.3 主存和CPU的链接
3.4 提升主存速度
3.5 外存储器
3.5.1 磁盘存储器
3.5.2 固态硬盘SSD
属于电可擦ROM,即EEPROM
3.6 Cache
3.6.1 Cache的基本概念和原理
3.6.2 Cache和主存的映射方式
解决问题:如何区分Cache与主存的数据块对应关系?
3.6.3 Cache替换算法
解决问题:Cache很小,主存很大,Cache满了怎么办?
3.6.4 Cache写策略
解决问题:CPU修改了Cache中的数据副本,如何确保主存中数据母本的一致性?
3.7 虚拟存储系统
3.7.1 页式存储
3.7.2 虚拟存储器
详情请见操作系统
4. 指令系统
4.1 指令格式
4.1.1 指令定义
intel芯片是x86架构,手机一般是ARM架构,apple m1系列就是基于ARM,所以可以在电脑上下载手机软件。
4.1.2 指令分类
- 按地址码数目分类
- 按指令长度分类
- 按操作码长度分类
4. 按操作类型分类
4.2 寻址
4.2.1 指令寻址
给出下一条指令的地址
4.2.2 数据寻址
确定本条指令的地址码指明的真实地址,给出要操作的对象的地址
4.3 高级语言与机器级代码之间的对应
4.3.1 x86汇编语言指令基础
4.3.2 常用x86汇编指令
4.3.3 AT&T格式和intel格式
4.3.4 选择/循环语句的机器级表示
4.4 CISC和RISC
指令系统的两种设计方向
5. 中央处理器
5.1 CPU的功能和基本结构
5.2 指令周期的数据流
指令周期
指令执行过程
5.3 数据通路
5.3.1 单总线结构
同一时刻,只允许两个部件的数据流通
5.3.2 专用通路结构
5.4 控制器设计
5.4.1 硬布线控制器的设计
用纯硬件的方式
5.4.2 微程序控制器的基本原理
5.4.3 微指令的设计
5.4.4 微程序控制单元的设计
5.5 指令流水线
5.6 多处理器的基本概念
5.7 硬件多线程的基本概念
6. 总线
总线是一组能为多个部件分时共享的公共信息穿传达线路
6.1 总线概述
-
按数据传输格式分类
- 串行总线:一次传输一位
- 并行总线:一次传输多位
-
按总线功能分类
- 按时序控制方式分类
- 同步
- 异步
6.1.1 总线的性能指标
6.2 总线仲裁
解决多个设备争用总线的问题
6.3 总线操作和定时
占用总线的一对设备如何进行数据传输
6.4 总线标准
易于实现系统的模块化设计
7. 输入输出系统
7.1 基本概念
7.2 外部设备
输入设备:键盘、鼠标
7.3 IO接口
7.4 IO方式
7.4.1 程序查询方式
7.4.2 程序中断方式
程序中断是指计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。
中断判优 - 优先级排序
7.4.2.1 单重中断
程序中断流程