流水线这个知识点在软件设计师考试中是个重点也是个难点,考查的频率比较高。之所以

说流水线是个难点,有两方面的原因:一方面是需要理解流水线的理论,了解其工作原理,计

算方式;另一方面是在软考当中,对于流水线的相关计算,标准并不是完全统一的,这一点在

后面我们将详细介绍。
  流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同

时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的

利用率和指令的平均执行速度。
  指令流水线是将指令执行分成几个子过程,每一个子过程对应一个工位,我们称为流水级

或流水节拍,这个工位在计算机里就是可以重叠工作的功能部件,称为流水部件。
  如图1所示,IF,ID,EX,WD分别是流水线的流水部件。 
 
  图1 几个部件组成的流水线
  流水线要求所有的流水级部件必须在相同的时间内完成各自的子过程。在流水线中,指令

流动一步便是一个机器周期,机器周期的长度必须由最慢的流水级部件处理子过程所需的时间

来决定。
  那么我们为什么要提出流水线这个概念,以及流水线是如何提高系统吞吐量的呢?下面我

们来看几个图,概念自然就清楚了。
  图2是一个非流水线结构系统执行指令时空图。
 
  图2 非流水线结构系统执行指令时空图
  我们从图2中可以看到,任意一个系统时间都有大量的设备处于空闲状态,如第一个时间段

有ID,EX,WB空闲,则第二个时间段有IF,EX,WB空闲。我们再来看采用了流水线结构的时空

图3。
 
  显然,采用流水线可以大大提升系统资源的利用率,以及整个系统的吞吐量。
  流水线的操作周期取决于基本操作中最慢的那个。例如:一个3段流水线,各段的执行时间

分别为t,2t,t。则最慢的一段为2t,所以流水线操作周期为2t。
  流水线的执行时间公式为:
  第1条指令的执行时间+(指令条数-1)*流水线操作周期
  例题1
  若每一条指令都可以分解为取指、分析和执行三步。己知取指时间t取指=4△t,分析时间

t分析=3△t,执行时间t执行=5△t。如果按串行方式执行完100条指令需要 (1) △t。如果

按照流水方式执行,执行完100条指令需要 (2) △t。
  供选择的答案
  (1)A. 1190 B.1195 C. 1200 D.1205
  (2)A. 504 B.507 C. 508 D.510
  试题分析
  本题考查的是计算机系统指令流水线方面的基础知识。根据题意可以看到,在此流水线中

按串行方式执行完100条指令要用1200△t。采用流水方式执行,执行的总时间的关键取决于最

长的执行时间,所以执行完100条的时间为:4Δt+3Δt+5Δt+(100-1)*5Δt = 507Δt


  试题答案
  C B
  例题2
  现采用4级流水线结构分别完成一条指令的取指、指令译码和取数、运算,以及送回运算结

果4个基本操作,每步操作时间依次为60 ns,100 ns,50 ns和70 ns。该流水线的操作周期应

为 A ns。若有一小段程序需要用20条基本指令完成(这些指令完全适合于流水线上执行),则

得到第一条指令结果需 B ns,完成该段程序需 C ns。
  在流水线结构的计算机中,频繁执行 D 指令时会严重影响机器的效率。当有中断请求发生

时,采用不精确断点法,则将 E 。
  供选择的答案
  A:①50 ②70 ③100 ④280
  B:①100 ②200 ③280 ④400
  C:①1400 ②2000 ③2300 ④2600
  D:①条件转移 ②无条件转移 ③算术运算 ④访问存储器
  E:①仅影响中断反应时间,不影响程序的正确执行
  ②不仅影响中断反应时间,还影响程序的正确执行
  ③不影响中断反应时间,但影响程序的正确执行
  ④不影响中断反应时间,也不影响程序的正确执行
  试题分析
  本题主要考查对流水线技术的掌握。
  对于CPU来说,流水线技术实际上是一种以增加硬件换取性能的方式:把一条指令分解成多

条更小的指令,由不同的处理单元来处理,在理想的满负荷运行状态下,执行一条指令的时间

虽然没有减少,但是由于多个处理单元同时工作,在同一时间上可以执行不同指令的不同部分

,从而使得总体的执行时间大大减少。流水线的操作周期取决于基本操作中最慢的那个。这里

最慢的是100 ns,所以操作周期是100 ns。在流水线中,其实每一条指令的执行时间并没有减

少,而第一条指令的执行并没有体现流水线的优势,它在4个操作周期后才能执行完成,这以后

每个操作周期都能完成一条指令的执行。
  影响流水线效率的重要因素有条件转移指令和中断,因为它们打断了流水线,使得流水线

不得不重新装载。
  不精确断点法实现简单,但是要等到流水线内的指令完成之后再响应中断。
  试题答案
  A.③ B.④ C.③ D.① E.②
  希赛IT教育专家提示:
  上面的两个例题,都是软考当中出现过的真题。我们可以看出,两个题在计算流水线时间

方面,标准并不是统一的。
  在例题1中:
  4Δt+3Δt+5Δt+(100-1)*5Δt = 507Δt。
  而在例题2中:
  100ns+100ns+100ns+100ns+(20-1)*100ns=2300ns
  这两种计算方法,都是在套用公式:“第1条指令的执行时间+(指令条数-1)*流水线操

作周期”,而对于“第1条指令的执行时间”的理解并不相同。在例题1中,第1条指令的执行时

间是将指令执行时的几个阶段所需时间相加得到,而在例题2中,认为每一个阶段所需时间都是

流水线的周期时间。其中前者是流水线的理论计算方法,而后者是我们在设计硬件流水线时,

常用的方式。两种计算方法,从理论上来讲,都是正确的,但考试时,只有一个是正确答案。

那么我们应该怎么做呢?由于每次考试中,无论认可的是哪种计算方式,都只会把这种计算方

式的正确答案放入选项中,而不会将两个正确答案都放入,所以我们在用一种方式不能得到正

确选项时,应采用另一种方式进行计算,来得到正确答案。

中级软件设计师考试---流水线详解相关推荐

  1. (2012.12.25)我的中级软件设计师考试

    我的中级软件设计师考试 ―― 2012.12.25(By: Neicole) 一.开篇 中级软件设计师,合格分是45/75(上午题)+ 45/75(下午题),然后,这次低分险过52+51.本文仅想简单 ...

  2. 中级软件设计师考试(软考中级)计算机专业英语

    文章目录 一.计算机专业英语考试题目简介 二.计算机专业英语词汇汇总 一.计算机专业英语考试题目简介 在中级软件设计师考试中(上午),计算机专业英语主要以完形填空的形式,即一篇英文文章,有5道选择题, ...

  3. 一个非计算机专业的 软考中级 软件设计师考试之路

    今天是2018年7月6日 在半个小时之前我查看了2018 年上半年的软考成绩 通过成功软考中级软件设计师的考试 费用总结 备考资料 150 报名费 140 食宿费 200 总计 490 500 块钱+ ...

  4. 2018年下半年 软件设计师 答案及详解

    2018年下半年 软件设计师 答案详解 主要记录刷题相关笔记,方便日后温习!!! 一.选择题 CPU 在执行指令的过程中,会自动修改_____的内容,以使其保存的总是将要执行的下一条指令的地址. A. ...

  5. 2021年下半年软考中级——软件设计师考试总结感想(博主本人已过!!!)

    一.首先附上博主的证书查询结果截图(关键信息打码处理) 二.个人对软考证书的理解 鸽了一年,就先说说大家比较关注的就是考了软考证书有什么用吧. 1.以考代评(对需要评职称的小伙伴有一定帮助) 以考代评 ...

  6. 软考中级软件设计师考试提纲

    软考中软件设计师分上午和下午两场考试: 1:上午考试类型: 2:下午考试类型:

  7. 中级软件设计师考试经验总结

    2023年5月,中级软考终于结束了,对了一下答案,确定的分上午大概55分左右,下午大概55分左右,应该通过是没有问题的.备考时间大概不到1个月吧,中途公司的事也非常忙,只能周末抽出大段时间复习,工作日 ...

  8. 中级软件设计师考试错题及知识点整理

    目录 计算机操作系统: 计算机网络: 数据库: 软件工程: 网络安全: 算法: 知识产权法: 计算机操作系统:   根据题意,磁盘索引块为1KB字节,每个地址项大小为4字节,故每个磁盘索引块可存放10 ...

  9. 2022年上半年软考中级——软件设计师考试总结感想(已过!!!)

    这里有份3万字的软考通关笔记资料要送给你 先附上成绩单 成绩不高,刚好及格而已,有几点小建议帮大家过一下 直接先开刷近五年上午真题 不会再去搜工具书(我分享的笔记和相关视频)或谷歌一下 下午题把我分享 ...

最新文章

  1. 《复联4》的这波操作,其实是在灭 bug
  2. 43 JavaScript中的浅拷贝与深拷贝
  3. 电脑硬件故障的几种简单检查方法
  4. 刘敏:优麒麟开源操作系统运营实践 | DEV. Together 2021 中国开发者生态峰会
  5. [JavaWeb-Servlet]Servlet相关配置
  6. SpaceX公布四月份宇宙飞船爆炸原因:由阀门泄露引发
  7. BC 2015在百度之星程序设计大赛 - 预赛(1)(矩形区域-旋转卡)
  8. oracle 提取连续数字,oracle 得到连续不重复的数字序列
  9. mysql odbc 驱动_mysql odbc驱动 mysql odbc connector
  10. layout_weight
  11. Q77:怎么用Ray Tracing画仿射变换之后的图形
  12. JavaScript通用库(转)
  13. 20191118每日一句
  14. unityar自动识别人脸_Unity人脸识别插件分享 | 技术贴
  15. 企业邮箱的优势有哪些?使用企业邮箱的好处
  16. VMware克隆虚拟机后修改UUID、MAC地址、IP和主机名
  17. eclipse-svn插件
  18. 程序的编译(详解翻译环境)
  19. 工业互联网企业蘑菇物联获数千万元A轮融资,元禾原点资本领投...
  20. spring-IOC-三更的扩展版

热门文章

  1. 掌财社:巴西外贸实现顺差11.52亿美元为7年来同期新低
  2. 接收word里面的修订,使word显示时不会出现修订的痕迹
  3. Ubuntu 网络图标不显示解决方法
  4. Webug4.0 文件包含漏洞
  5. 模型评估:K-S值和AUC的区别
  6. 基于ThinkPHP框架的简单的后台管理系统
  7. pkgsearch搜索和查询CRAN R包_2021-01-26
  8. [计算机数值积分]龙贝格公式求数值积分
  9. [STM32]详解单片机GPIO输出模式配置-推挽与开漏
  10. vue-cli 初始化创建 vue2.9.6 项目路由守卫、封装axios、vuex