【软考:软件设计师】 2 计算机组成与体系结构(二)详解指令系统 | 指令流水线

请添加图片描述

这是爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流

本文收录于软考中级:软件设计师系列专栏,本专栏服务于软考中级的软件设计师考试,包括不限于知识点讲解真题讲解两大部分,并且提供电子教材电子版真题,关注私聊即可


一、计算机系统基础知识

👉:传送门💖计算机系统基础知识💖

二、计算机体系结构

1.计算机体系结构

1.1计算机体系结构的分类

1.1.1 宏观上按处理机的数量分类
  • ①单处理系统(Uni-processing System):利用一个处理单元与其他外部设备结合起来,实现存储、计算、通信、输入与输出等功能的系统
  • ②并行处理与多处理系统(ParallelProcessingandMultiprocessingSystem):为了充分发挥问题求解过程中处理的并行性, 将两个以上的处理机互连起来, 彼此进行通信协调,以便共同求解一个大问题的计算机系统
  • ③分布式处理系统(Distributed Processing System):指物理上远距离而松親合的多计算机系统。
    • 其中,物理上的远距离意味着通信时间与处理时间相比己不可忽略, 在通信线路上的数据传输速率要比在处理机内部总线上传输慢得多, 这也正是松耦合的含义
🚩1.1.2 微观上按并行程度分类
  • 🚩①Flynn分类法

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,可以简单的理解为(一条指令的执行时间/整个流水线的执行时间
    请添加图片描述
🔥今天的内容就到这里啦🔥
🔥希望对大家的学习有所帮助🔥
🔥欢迎大家来访,我们共同学习交流🔥

请添加图片描述

  • 31
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 25
    评论
很抱歉,作为人工智能,我无法提供思维导图。但我可以为您介绍一下流水线工作原理和冲突处理方法。 计算机体系结构流水线的工作原理: 流水线是一种计算机结构,用于提高指令处理速度。流水线将一个指令处理分成若干个流水段,每个流水段负责执行一个指令处理的一部分。同时,多条指令可以在不同的流水段同时处理,从而提高了处理效率。 流水线一般包含以下五个流水段: 1. 取指令(IF):从内存读取指令。 2. 指令译码(ID):将指令翻译为计算机可以理解的指令。 3. 执行指令(EX):执行指令的操作。 4. 存储访问(MEM):访问内存来获取数据。 5. 写回结果(WB):将执行的结果写回内存或寄存器。 冲突处理方法: 1. 数据相关(Data Hazards):当一条指令需要用到另一条指令才能执行时,就会出现数据相关。 解决方法: ① 前推技术(Forwarding):让结果直接流动到需要的地方,绕过数据相关的指令。 ② 排队技术(Stalling):将流水线暂停,等待需要的数据指令完成。 2. 控制相关(Control Hazards):当分支指令的结果未知时,即分支指令的条件尚未满足,就会出现控制相关。 解决方法: ① 预测分支指令的结果,提前预测好接下来的指令,以减少等待时间。 ② 延迟槽技术(Delayed Branch):在分支指令之后加入一个无操作指令,使得下一条指令一定会执行。 以上是计算机体系结构流水线的相关与冲突处理方法的介绍,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员一修

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值