软考 中级软件设计师 考点知识点笔记总结 day02
文章目录
- 3、计算机系统组成 (五大部件)
- 3.1、主存储器
- 3.2、运算器
- 3.3、控制器
- 3.4、Flynn分类法
- 4、指令系统
- 4.1、七种寻址方式
- 4.2、指令的流水处理
- 4.3、流水线的计算
上一篇文章 软考知识点 day01
3、计算机系统组成 (五大部件)
输入设备 输出设备 控制器 运算器 存储器
冯诺依曼计算机结构特点
1、计算机由五大部件组成
2、指令和数据以同等地位存于存储器 可按地址寻访
3、指令和数据用二进制表示
4、指令由操作码和地址码组成
5、存储程序
6、以运算器为中心
输入/输出设备与存储器之间的数据传输通过运算器完成
输入设备 将信息转换为机器能识别的形式 (0、1码)
输出设备 将结果转换为人们所熟知的形式
主存储器 存放数据和程序
运算器 算术运算 、逻辑运算
控制器 指挥各部件 ,使程序得以运行
3.1、主存储器
存储单元 每个存储单元存放一串二进制代码
存储字 存储单元中二进制代码的组合
存储字长 存储单元中二进制代码的位数
存储元 存储二进制的电子元件 每个存储元可存1bit
MAR 地址寄存器
MDR 数据寄存器
1个字节 1B = 8bit 位
MAR 4位 2^4 16个存储单元 每个存储单元可存放 16bit
1个字(word)16bit
3.2、运算器
运算器用于实现算术运算 (加减乘除)、逻辑运算(如与或非)
包含 ACC MQ X ALU DR PSW
ACC 累加器 用于存放操作数 或运算结果
MQ 乘商寄存器 在乘除 运算时 用于存放操作数或运算结果
X 通用的操作数寄存器 用于存放操作数
ALU 算术逻辑单元 通过内部复杂的电路实现算数运算、逻辑运算
DR 数据缓存寄存器
PSW 状态条件寄存器 用来保存指令运行标志
3.3、控制器
CU 控制单元
IR 指令寄存器 存放当前执行的命令
PC 成熟计数器 存放下一条指令地址 有自动加1功能
AR 地址寄存器 保存当前CPU所访问的内存单元地址
ID 指令译码器 对操作码进行分析
完成一条指令过程 取指令 分析指令 执行指令
3.4、Flynn分类法
Single 单一的 Multiple 复数的 多样的
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
单指令流单数据流 SISD | 控制部分 一个 处理器 一个 主存模块 一个 | 单处理器系统 | |
单指令流多数据流 SIMD | 控制部分 一个 处理器 多个 主存模块 多个 | 各处理器以以异步的形式执行同一条指令 | 并行处理机 阵列处理机 超级向量处理机 |
多指令流单数据流 MISD | 控制部分 多个 处理器 一个 主存模块 多个 | 被证明不可能 不实际 | 目前没有 |
多指令流多数据流 MIMD | 控制部分 多个 处理器 多个 主存模块 多个 | 能实现作业任务 指令等各级全面并行 | 多处理机系统多计算机 |
4、指令系统
软件 指令 硬件
指令 又称机器指令 指示计算机执行某种操作的命令 计算机运行的最小功能单位
一台计算机的所有指令的集合构成该机的指令系统 也称为指令集
一条指令就是 机器语言的一个语句 它是一组有意义的二进制代码
一条指令通常包括操作码字段和地址码字段两部分
操作码(OP) 指明操作的类型
地址码(A) 主要指明操作数及运算结果存放的地址
4.1、七种寻址方式
寻找指令中操作数有效地址的方式称为寻址方式
-
立即寻址 操作数作为指令的一部分直接写在指令中 这种操作数称为立即数
-
寄存器寻址 指令所要操作数已存储在某寄存器中或把目标操作数存入寄存器
-
直接寻址 指令所要的操作数存放在内存中 在指令中直接给出该操作数的有效地址
-
寄存器间接寻址 操作数在存储器中 操作数的有效地址用SI DI BX 和BP四个寄存器之一来指定
-
寄存器相对寻址 操作数在存储器中 其有效地址是一个基址寄存器或变址寄存器中的内容和指令中的8位/16位偏移量之和
-
基址加变址寻址方式 操作数在存储器中 其有效地址是一个基址寄存器和一个变址寄存器的内容之和
-
相对基址加变址寻址 操作数在存储器中 有效地址是一个基址寄存器的值 一个变址寄存器的值和指令中8位/16位偏移量之和
4.2、指令的流水处理
指令控制方式有顺序方式 重叠方式 和 流水方式三种
流水可以视作重叠的延申 将其分解为更多子过程
4.3、流水线的计算
指令流水线将一条指令分为取指、分析 和执行三部分 三部分时间为 2ns 2ns 1ns 则 流水线周期是多少 100条指令全部执行完毕所需的时间是多少?
流水周期 为执行时间最长的一段
流水线计算公式为 1条指令完全执行时间 + (指令条数 - 1)* 流水线周期
答 流水周期 2ns 100条指令执行时间为
2 + 2 + 1+ (100 - 1)* 2 =203ns
流水线吞吐率
单位时间内流水线所完成的任务数量或输出的结果数量
计算流水线吞吐率的基本公式
TP = 指令条数 / 流水线执行时间
100/ 203ns
流水线加速比 完成同一批任务 不使用流水线所用的时间与使用流水线使用的时间
S = 不使用流水线的时间 / 使用流水线的时间
5 * 100 / 203ns