1.计算机体系结构 - 五大部件
- 冯 诺依曼 计算机的特点
1.计算机有五大部件组成
2.指令和数据以同等地位存储于存储器,可按照地址访问
3.指令和数据用二进制表示
4.指令由操作码和地址码组成
5。存储程序
6.以计算器为中心(输入、输出设备与存储器之前的数据传送通过计算器完成)
计算机体系结构 - 主存储器
1.存储单元:每个存储单元存放一串二进制代码
2.存储字(word):存储单元中二进制代码的组合
3.存储字长:存储单元中二进制代码的位数(拓展:指令字长:计算机接收指令的二进制长度,机器字长:计算机在一次整数运算中能处理的最大二进制位数)
4.存储元:即存储二进制的电子元件,每个存储元可存储 1 bit
5.MAR:地址寄存器(可以用地址寄存器的长度来计算出存储单元的个数,例如:当MAR为 4 位时,那么存储单元的个数就有 2*2*2*2 (也就是2的4次方)个存储单元,)
6.MDR:数据寄存器(指的是每个存储单元能存放的最大二进制位数,例如:MDR = 16 那么一个存储单元最大就能存放 16 位二进制数)
易混淆:1个字节 = 1个Byte = 1B = 8bit = 8b
计算机体系结构 - CPU
1.运算器:用于实现算数运算(如:加减乘除)、逻辑运算(如与或非)
2.ACC:累加器,用于存放操作数,或运算结果
3.MQ:乘商寄存器,在乘、除运算时,用于存放操作数或运算结果
4.X:通用的操作数寄存器,用于存放操作数
5.ALU(很重要):算数逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算
6.DR:数据缓存寄存器
7.PSW:状态条件寄存器,用来保存指令运行标志(例如有些游戏打到一半关机了,下次打开的时候依旧可以接着上次的进度)
计算机体系结构 - CPU
1.CU:控制单元,分析指令,给出控制信号
2.IR:指令寄存器,存放当前执行的指令
3.PC:程序计数器,存放下一条指令地址,有自动加 1 的功能
4.AR:地址寄存器,保存当前CPU所访问的内存单元地址
5.ID:指令译码器,对操作码进行分析
6.完成一条指令的过程:取指令 -> 分析指令 -> 执行指令(之前说过:指令和数据以同等地位存储在存储器中,所以我们该如何区分此次取出来的指令还是数据呢?通过阶段来区分,例如:在取指令阶段那么从存储器中取出来的二进制数就一定表示指令)
计算机体系结构 - Flynn分类
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
单指令流单数据流SISD | 控制部分:一个 处理器:一个 主存模块:一个 | 单处理器系统 | |
单指令流多数据流SIMD | 控制部分:一个 处理器:多个 主存模块:多个 | 各处理器以异步的形式执行同一条指令 | 1.并行处理机 2.陈列处理机 3.超级向量处理机 |
多指令流单数据流MISD | 控制部分:多个 处理器:一个 主存模块:多个 | 被证明不可能,至少以目前的技术无法实现,只是理论上存在 | 目前没有,有文献称流水线计算机为此类 |
多指令流多数据流MIMD | 控制部分:多个 处理器:多个 主存模块:多个 | 能够实现作业、任务、指令等各级全面并行 | 多处理机系统 多计算机 |
Single:单一的
Multiple:倍数、多种多样的
指令系统 - 指令
1.指令(又称为机器指令):是指令计算机执行某种操作的命令,是计算机运行的最小功能单位;
2.一台计算机的所有指令的集合构成该 计算机的指令系统,也称为指令集;
指令系统 - 指令格式
1.一条指令就是机器语言的一个语句,他是一组有意义的二进制代码;
2.一条指令通常要包括 操作码字段 和 地址码字段 两部分;
重要考点:指令系统 - 寻址方式
指令系统 - 寻址方式(数据寻址)以下寻址方式从上至下 寻址效率依次降低 ->
1..立即寻址:此操作数作为指令的一部分直接写在指令中,这中操作数成为立即数
2寄存器寻址:指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器
3.直接寻址:指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址
4.寄存器间接寻址:操作数在存储器中,操作数的有效地址用 SI 、DI、Bx 、BP 四个寄存器之一来指定
5.基址加变址寻址方式:操作数在寄存器中,其有效地址是一个基址寄存器( BX 、 BP )和一个变址寄存器 ( SI 、DI ) 的内容之和
6.相对基址加变址寻址:操作数在寄存器中,其有效地址是一个基址寄存器(BX 、 BP)的值,一个变址寄存器 (SI 、 DI)的值和指令中的 8位/16位偏移量之和
指令系统 - CISC 和 RISC
CISC(Complex) | RISC(Reduced) | |
---|---|---|
指令系统 | 复杂,庞大 | 简单,精简 |
指令数目 | 一般大于 200 条 | 一般小于 100 条 |
指令字长 | 不固定 | 定长 |
可访存指令 | 不加限制 | 只有Load/Store指令 |
各种指令执行时间 | 相差较大 | 绝大多数一个周期内完成 |
各种指令使用频度 | 相差较大 | 都比较常用 |
通用寄存器数量 | 较少 | 多 |
控制方式 | 绝大多数为微程序控制 | 绝大多数为组合逻辑控制 |
指令流水线 | 可以通过一定方式实现 | 必须实现 |
指令系统 - 指令的流水处理
1.指令控制方式有 顺序方式、重叠方式 和 流水方式三种
2.流水方式:是指 并行性或并发性 嵌入计算机系统里的一种形式,他把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效的并发工作
3.在概念上," 流水 "可以看成是 "重叠" 的延伸;差别仅在于 " 一次重叠 " 只是把一条指令解释分解为两个子过程,而 " 流水 " 则是分解为更多的子过程。
指令系统 - 流水线的计算
例题:若指令流水线把一条指令分为 :取指令、分析指令、执行指令三部分,且三部分的时间分别是 -> 取指令:2ns 分析指令:2ns 执行指令:1ns ,那么流水线周期是多少?100条指令全部执行完毕需要的时间是多少?
1.流水线周期为执行时间最长的一段:上述中 取指令:2ns 分析指令:2ns 执行指令:1ns 三个发过程中执行时间最长的显然是 2ns,所以流水线周期为 2ns
2.流水线计算公式为: 1条指令执行时间 +(指令条数 - 1)* 流水线周期 ;所以计算结果如下所示 ->
100条指令执行完的时间为:2 + 2 + 1 +(100 -1)* 2 = 203
那么如果不使用流水线处理的话100条指令执行完的时间就是:( 2 + 2 + 1 )*100 = 500
3.拓展:流水线的吞吐率(Though Put rate ,TP):是指在单位时间内流水线所完成的任务数量或输出的结果数量;
4.计算流水线吞吐率的最基本的公式如下:TP = 指令条数 / 流水线执行时间
5.依照上面例题计算流水线吞吐率的话就是:100 / 203 ≈ 0.5
6.流水线开始工作后,需经过一定时间才能达到最大吞吐率,这就是 建立时间;若 m 个子过程所用时间一样,均为 t ,则建立时间 T = m * t
7.完成同一批任务,不使用流水线所用的时间与使用流水线所用的时间之比成为 流水线的加速比 ,计算流水线加速比的基本公式如下:S = 不使用流水线执行时间 / 使用流水线执行时间
还是用上面例题的来计算 -> S = 500 / 203 ≈ 2.46