计算机体系结构
体系结构分类
按处理机的数量进行分类
单处理系统(一个处理单元和其它设备集成)、并行处理系统(两个以上的处理机互联)、分布式处理系统(物理上远距离且松耦合的多计算机系统)
Flynn 分类法
分类有两个因素,即指令流和数据流。
指令流由控制部分处理,每一个控制部分处理一条指令流,多指令流就有多个控制部分;
数据流由处理器来处理,每一个处理器处理一条数据流,多数据流就有多个处理器;
至于主存模块,是用来存储的,存储指令流或者数据流,因此,无论是多指令流还是多数据流,都需要多个主存模块来存储,对于主存模块,指令和数据都是一样的。
| 体系结构类型 | 结构 | 关键特性 | 代表 |
|---|---|---|---|
| 单指令流单数据流 SISD | 控制部分:1个 处理器:1个 主存模块:1个 | 单处理器系统 | |
| 单指令流多数据流 SIMD | 控制部分:1个 处理器:n个 主存模块:n个 | 各处理器以异步的形式执行同一条指令 | 并行处理机器 阵列处理机 超级向量处理机 |
| 多指令流单数据流 MISD | 控制部分:n个 处理器:1个 主存模块:n个 | 被证明不可能,至少是不实际 | 目前没有,有文献称 流水线计算机为此类 |
| 多指令流多数据流 MIMD | 控制部分:n个 处理器:n个 主存模块:n个 | 能够实现作业、任务、指令等各级全面并行 | 多处理机系统 多计算机 |
依据计算机特性,是由指令来控制数据的传输,因此,一条指令可以控制一条或多条数据流,但一条数据流不能被多条指令控制,否则会出错,就如同上级命令太多还互相冲突,不知道执行那个,因此 多指令流单数据流 MISD 不可能实现。
指令系统
一条指令由操作码和操作数两部分组成,操作码决定了要完成 的操作,操作数指参加运算的地址及其所在的单元地址。
在计算机中,操作要求和操作数地址都由二进制数码表示,分别称为操作码和地址码,整条指令以二进制编码的形式存放在存储器中。
计算机指令执行过程: 取指令 分析指令 执行指令三个步骤,首先将程序计数器 PC 中的指令地址取出,送入地址总线,CPU 依据指令地址去内存中取出指令内容后存入指令寄存器 IR;而后由指令译码器 ID 进行分析,分析指令操作码;最后执行指令,取出指令执行所需的源操作数。
指令寻址方式
指令寻址方式是指,执行完这一条指令之后,如何找到下一条指令。
- 顺序寻址方式:当执行一段程序时,一条指令接着一条指令地顺序执行(指令的地址在 PC 中)。
- 跳跃寻址方式: 下一条指令的地址不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。
指令操作数的寻址方式
指令操作数的寻址方式是用来找操作数的,指令一般存放在主存中 ,操作数可能是主存、也可能是寄存器。
- 立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身。
- 直接寻址方式:在指令的地址字段中直接指出操作数在主存中的地址。
- 间接寻址方式:指令地址码字段所指向的存储单元中存储的操作数的地址。
- 寄存器寻址方式:指令中的地址码的内存是寄存器的编号。
- 基址寻址方式: 将基址寄存器的内容加上指令中的形式地址而形成的操作数的有效地址,其优点是扩大寻址能力。
- 变址寻址方式: 变址寻址方式计算有效地址的方法与基址寻址方式很相似,它是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。