这是爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流
本文收录于软考中级:软件设计师系列专栏,本专栏服务于软考中级的软件设计师考试,包括不限于知识点讲解与真题讲解两大部分,并且提供电子教材
与电子版真题
,关注私聊
即可
计算机组成与体系结构(二)
- 一、计算机系统基础知识
- 二、计算机体系结构
-
- 1.计算机体系结构
-
- 1.1计算机体系结构的分类
-
- 1.1.1 宏观上按处理机的数量分类
- 1.1.2 微观上按并行程度分类
- 1.2 计算机指令
-
- 1.2.1 计算机指令的组成
- 1.2.2 计算机指令执行过程
- 1.2.3 指令寻址方式
- 1.2.4 指令操作数的寻址方式
- 1.3 指令系统CISC和RISC
- 1.4 指令的流水处理
-
- 1.4.1流水线原理
- 1.4.2流水线时间计算
- 1.4.3流水线吞吐率计算
- 1.4.4流水线的加速比计算
- 1.4.5流水线的效率
一、计算机系统基础知识
:传送门计算机系统基础知识
二、计算机体系结构
1.计算机体系结构
1.1计算机体系结构的分类
1.1.1 宏观上按处理机的数量分类
- ①单处理系统(Uni-processing System):利用一个处理单元与其他外部设备结合起来,实现存储、计算、通信、输入与输出等功能的系统
- ②并行处理与多处理系统(ParallelProcessingandMultiprocessingSystem):为了充分发挥问题求解过程中处理的并行性, 将两个以上的处理机互连起来, 彼此进行通信协调,以便共同求解一个大问题的计算机系统
- ③分布式处理系统(Distributed Processing System):指物理上远距离而松親合的多计算机系统。
- 其中,物理上的远距离意味着通信时间与处理时间相比己不可忽略, 在通信线路上的数据传输速率要比在处理机内部总线上传输慢得多, 这也正是松耦合的含义
1.1.2 微观上按并行程度分类
1966年, MJ.Flynn提出按指令流和数据流的多少进行分类
。
指令流
为机器执行的指令序列, 数据流
是由指令调用的数据序列。
体系结构类型 |
结构 |
关键特性 |
代表 |
单指令流单数据流SISD |
控制部分:1个 处 理 器:1个 主存模块:1个 |
|
单处理器系统 |
单指令流多数据流SIMD |
控制部分:1个 处 理 器:多个 主存模块:多个 |
各处理器以异步的形式执行同一条指令 |
并行处理机 阵列处理机 超级向量处理机 |
多指令流单数据流MISD |
控制部分:多个 处 理 器:1个 主存模块:多个 |
被证明不可能,至少是不实际 |
目前没有,有文献称流水线计算机为此类 |
多指令流多数据流MIMD |
控制部分:多个 处 理 器:多个 主存模块:多个 |
能够实现作业、任务、指令等各级全面并行 |
多处理机系统 多计算机 |
- 由上图可知,措令流由控制部分处理,每一个控制部分处理一条指令流,
多指令流就有多个控制部分
;数据流由处理器来处理,每一个处理器处理一条数据流,多数据流就有多个处理器
;至于主存模块,是用来存储的,存储指令流或者数据流,因此,无论是多指令流还是多数据流,都需要多个主存模块来存储
,对于主存模块,指令和数据都一样。
- 扩展:为何多指令流单数据流MISD不实际?
答: 依据计算机特性,是由指令来控制数据的传输,因此,一条指令可以控制一条或多条数据流,但一条数据流不能被多条指令控制否则会出错,就如同上级命令太多还互相冲突,不知道该执行哪个,因此多指令单数据MISD不可能。
- ②冯泽云分类法
- ③Handler分类法
- ④Kuck分类法
1.2 计算机指令
1.2.1 计算机指令的组成
1.2.2 计算机指令执行过程
- 计算机指令执行过程:
取指令
——分析指令
——执行指令
- 1️⃣将程序计数器PC中的指令地址取出,送入地址总线, CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;2️⃣由指令译码器进行分析,分析指令操作码;3️⃣执行指令,取出指令执行所需的源操作数
1.2.3 指令寻址方式
指令寻址:确定下一条要执行的指令的存放地址
- 顺序寻址方式: 当执行一段程序时,是一条指令接着一条指令地顺序执行
- 跳跃寻址方式: 指
下一条指令的地址码
不是由程序计数器给出,而是由本条指令直接给出
。
- 程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。
1.2.4 指令操作数的寻址方式
-
1️⃣立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身。
- 一条指令的执行:取指令访存1次,执行指令访存0次,共访存1次
-
2️⃣直接寻址方式:在指令的地址字段中直接指出操作数在主存中的地址。
- 一条指令的执行:取指令访存1次,执行指令访存1次,共访存两次
-
3️⃣间接寻址方式:指令地址码字段所指向的存储单元中存储的是操作数的地址。
- 指令在执行阶段要多次访存(一次间址需两次访存)
-
4️⃣寄存器寻址方式:指令中的地址码是寄存器的编号。
- 一条指令的执行:取指令访存1次,执行指令访存0次,共访存1次
1.3 指令系统CISC和RISC
- CISC(Complex Instruction Set Computer,复杂指令集计算机)是复杂指令系统,兼容性强,指令繁多、长度可变,由微程序实现;
- RISC(Reduced Instruction Set Computer,精简指令集计算机)是 精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器、硬布线逻辑控制)
- 二者的区别
指令系统类型 |
指令
|
寻址方式 |
实现方式 |
其他 |
CISC(复杂) |
数量多,使用频率差别大,可变长格式 |
支持多种 |
微程序控制技术(微码) |
研制周期长 |
RISC(精简) |
数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存 |
支持方式少 |
增加了通用寄存器;硬布线逻缉控制为主;适合采用流水线 |
优化编译,有效支持高级语言 |
1.4 指令的流水处理
1.4.1流水线原理
- 将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段
1.4.2流水线时间计算
- 1️⃣流水线周期:指令分成不同执行段,其中执行时间最长的段为流水线周期
- 2️⃣流水线执行时间: 1条指令总执行时间+(总指令条数-1)*流水线周期
超标量流水线技术:常规流水线是度为1的,即每个流水线阶段只执行一个部分,当度大于1时,就是超标量技术,当度为3时,相当于3条流水线并行执行,即取指、分析、执行每个阶段都同时处理3条指令,因此,当题目提到度的概念时,计算时需要将:指令条数=指令条数/度。然后再套流水线执行时间的公式
1.4.3流水线吞吐率计算
- 吞吐率: 单位时间内执行的指令条数
T P = 总指令条数 / 流水线执行时间 TP = 总指令条数 / 流水线执行时间 TP=总指令条数/流水线执行时间
1.4.4流水线的加速比计算
- 加速比: 使用流水线后的效率提升度,即比不使用流水线快了多少倍,越高表明流水线效率越高
S = 不使用流水线总执行时间 / 使用流水线总执行时间 S=不使用流水线总执行时间 / 使用流水线总执行时间 S=不使用流水线总执行时间/使用流水线总执行时间
1.4.5流水线的效率
- 示例:
如上图,流水线的效率分母其实是一个面积,为整个流水段长方形的总面积,为4×15=60,而其中4个任务只占用了阴影小方块,总的是4×6=24,可以简单的理解为(一条指令的执行时间/整个流水线的执行时间
)
今天的内容就到这里啦
希望对大家的学习有所帮助
欢迎大家来访,我们共同学习交流