计算机系统结构复习(六):Limits to ILP and SMT指令级并行的限制和同时多线程

  • 指令级并行的限制
  • 指令窗口
  • TLP线程级并行
  • DLP数据级并行
  • 线粒度切换方式
  • 同时多线程 (SMT = ILP+TLP)
    • 产生SMT技术的两个主要原因是什么?
    • 动态调度对SMT的影响
  • 多线程的方式
  • power5

指令级并行的限制

限制因素:
功耗太高(提升ILP的方法会带来更多的功耗增加)。
编译器的复杂度太高。
硬件的复杂度太高,适合计算密集型任务,不适合数据密集型任务。

理论上可以解决,实际上利用现有硬件,无法继续提升。

完美机器模型:完美分支预测无误判,没有控制相关,reg重命名,存储器别名分析解决RAW。

ILP其他缺点:
ILP并行是隐式并行,为了发觉指令级并行潜力而一 味强化乱序执行和分支预测,以至于处理器复杂度 和功耗急剧上升,得不偿失。
ILP本身也不适应计算应用类型的变化,更适用于传统计算密集型应用。

指令窗口

定义:指等待被检测是否能同时发射的指令总数。
大小影响因素: 和检测冲突所需的代价有关(50个指令就需要 2500 次检测),也和cpu存储大小有关(窗口中的指令都是在处理器中)

TLP线程级并行

TLP和DLP是显式并行
TLP:线程级并行,线程是最小的运行单元,一个进程中可以并发多个线程(MIMD)。 线程级并行是比指令级并行更高的层次,可以显式地将几个线程并行执行,共享执行单元。

DLP数据级并行

DLP:数据级并行是比指令级并行更低的层次,允 许单一指令对多个操作数进行计算。

举例:(a+b)*(c+d),过程如下:

e = a + b
f = c + d
m = e * f

SIMD:3的结果依赖于1和2,而1和2都单纯的加法操作,所以开始想办法让1和2同时计算,那么CPU 只要两步得到答案,步骤1和2一次算出来的结果, 直接进行乘法运算。

线粒度切换方式

细粒度切换(fine grain):每条指令之间都可进行线程交换,因此线程之间是交替执行(常采用时间 片轮转方法).
粗粒度切换(coarse grain):只在某个线程发生代价较高、时间较长的Stall时(例如Cache不命中) 才进行线程交换.

种类 优点 缺点
细粒度切换 CPU中可同时执行多个线程的指令;降低Stall概率,增加吞吐率。 使用轮换,每个独立进程的执行减慢;每个周期切换,切换速度要求高
粗粒度切换 不会减慢独立线程的执行;切换线程的速度要求不高 不能有效减少吞吐率;因为新线程的流水线建立需要时间开销

线程建立时间开销
线粒度:cpu可以执行多个线程的指令,也就是对他们一视同仁。
粗粒度:只能执行一个线程的指令,因此发生阻塞时必须排空或者暂停,阻塞后切换的新的线程在指令执行产生结果之前必须先填满整个流水线。所以粗粒度仅仅在pipeline refill << stall time的时候 (也就是停顿时间远大于流水线建立时间)有效。

同时多线程 (SMT = ILP+TLP)

SMT是一种在多流出、动态调度的处理器上同时开发线程级并行和指令级并行的技术,是多线程技术的一种改进。

产生SMT技术的两个主要原因是什么?

原因一:现代多流出处理器通常含有多个并行的功能单元,单个线程不能有效地利用这些单元;
原因二:通过寄存器命名和动态调度机制,来自各个相互独立的线程的多条指令可以同时流出,而不用考虑它们之间的相互依赖关系

动态调度对SMT的影响

动态调度对SMT机制来说是必须的。只有通过动态调度,才可以使各个线程充分利用不同的功能单元。 使用动态调度技术的处理器已经具有了开发线程级并行的硬件设置。
1.动态调度中由大量虚拟寄存器,可以用来保存线程的寄存器状态
2.动态调度中寄存器换名可以保证线程的数据通路互不干扰
3.额外硬件用来存储线程的状态(PC,重命名表)

多线程的方式

上图从左到右依次是:超标量、线粒度切换、粗粒度切换、多核多线程、同时多线程。

多核多线程:基于多核进行并行程序设计,把一个应用程序按照任务划分尽可能分解为多个任务,每个任务实现一个线程。

power5

power5 在 power4 的基础上增加了SMT。双线程,带宽增加。

计算机系统结构复习(六):Limits to ILP and SMT指令级并行的限制和同时多线程相关推荐

  1. 计算机系统结构复习:课程思维导图

    计算机系统结构:全课程思维导图 前言 课程思维导图 课程脉络: 链接 前言 DUT的计算机系统结构长期以来都是英文ppt.时值疫情期间,复习时稍有不便,再加上CA的内容本身比较琐碎.遂在此对知识进行一 ...

  2. 计算机系统结构sw指令集,自考02325计算机系统结构复习资料六

    自考生网为考生收集整理了"自考02325计算机系统结构复习资料六"以供考生们在考试前用复习资料巩固所学到的知识,得到更好地复习效果. 注:由于各省教材每年都有更新.变动,自考复习资 ...

  3. 计算机系统结构复习(五):ILP指令集并行

    计算机系统结构复习(五):ILP指令集并行 指令集并行和两种方式 基本快 相关与从冲突的关系 循环展开 循环展开的注意事项 动态分支预测 动态分支预测与静态分支预测的区别 分支历史表BHT 一位分支历 ...

  4. 计算机系统结构--复习(Part 1)

    适用于期末考试之前的知识点复习. 往期回顾: Part 1(chapter 1 - chapter 5):https://blog.csdn.net/zongza/article/details/83 ...

  5. 自考计算机系统结构知识点,2019自考计算机系统结构复习精讲资料一

    2019年4月自考报名已经开始,同学们可以开始准备2019年4月自考复习,下面是2019自考计算机系统结构复习精讲资料一,了解更多自考历年真题请锁定自学考试网,更有海量自考题库,精品复习资料等你来下载 ...

  6. 计算机系统结构复习(四):Pipelining流水线

    计算机系统结构复习(四):Pipelining流水线 流水线相关概念与特点 流水线的相关概念 流水线主要特征 流水线的分类 指令级与部件级 线性与非线性 静态与动态(有大题) 流水的5个阶段:通过时间 ...

  7. 自考计算机系统结构总结知识点,自考计算机系统结构复习资料.doc

    自考计算机系统结构复习资料 本章中,有以下内容是要重点复习的: 关于计算机系统结构的概念: 计算机系统结构是把各个 功能部件 组成一个系统,这些部件可以是硬件.软件或者两者的混合体. 计算机系统结构是 ...

  8. 整个计算机系统结构图,计算机系统结构复习(16页)-原创力文档

    1.6某台主频为400MHz的计算机执行标准测试程序,程序中指令类型.执行数量和平均时钟周期数如下: 指令类型 指令执行数量 平均时钟周期数 整数 45000 1 数据传送 75000 2 浮点 80 ...

  9. 计算机组成与系统结构名词解释,北京邮电大学 计算机系统结构(体系结构) 期末复习 术语解释...

    北邮 体系结构 期末复习 简答题(名词解释) 1. 计算机系统结构:机器语言程序员所看到的传统机器级所具有的属性,它包括概念性结构和功能特性两个方面. 2. 计算机组成:指的是计算机系统结构的逻辑实现 ...

最新文章

  1. 计算机二级函数知识,2017年全国计算机二级考试MS Office高级应用知识点:INDIRECT函数...
  2. Error running query: MetaException(message:Got exception: java.net.ConnectException Call From XXXX
  3. [原创].图解一招搞定UCWEB@Nokia S60v5无法在博客园手机版发闪存的问题
  4. 数据绑定(十)Binding的数据转换
  5. php 按 截取字符串,PHP按符号截取字符串的指定部分
  6. 仓库无证如何处罚_“非现场执法”查处无证网约车,罚款15万!滴哥:怎们罚的都不知道!...
  7. tcp http socket
  8. opengl微开发之1-从零開始
  9. 祖孙俩人是什么关系_一个人生活也挺好,为什么还需要亲密关系?
  10. 谷歌放弃C++语言,Python将要一统江湖了?
  11. 随便说说removeFromSuperview方法
  12. 微软投资混合连接,发布本地数据网关
  13. 虚拟机Net模式下ping主机和连接外网
  14. 在回传时保持滚动位置
  15. Git钩子:自定义你的工作流
  16. java 高级api_Java常用API-高级
  17. VBA和Excel学习记录
  18. 无线/移动通信的发展终极目标是,实现个人通信PCN是人类通信的最高目标,它指使用各种可能的网络技术,实现任何人在任何时间、任何地点与任何人进行任何何种类的信息交换。
  19. 数据结构-第一讲 基本概念-学习笔记(MOOC 浙江大学 陈越 何钦铭)
  20. 揭秘阿里云WAF背后神秘的AI智能防御体系

热门文章

  1. matlab 指数分布检验,如何使用Matlab检验数据服从什么分布
  2. C#使用EmguCV库介绍(一)
  3. 文件服务器——NFS
  4. MarkDown发生HTML渲染组件出错的解决方案(更新下载连接2022.10.21)
  5. 单片机编程软件很简单(八),Keil单片机编程软件辅助功能讲解
  6. 如何自动翻译整篇PDF文件?教你两种自动翻译方法
  7. HMI-7-[高分屏支持]:Qt 适配高分屏
  8. F - 郭鑫的难题(三)
  9. 一只青蛙一次可以跳一级或二级台阶,请问跳n级台阶有多少次跳法之斐波那契数列的非递归写法
  10. R语言ggplot2包之坐标轴