中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第5章 指令级并行

第5章指令级并行 指令集并行的基本概念及挑战 软件方法挖掘指令集并行 基本块内的指令集并行 硬件方法挖掘指令集并行 Scoreboard Tomasulo 跨越基本块的指令集并行 ·基于硬件的推测执行 ·以多发射和静态调度来挖掘指令集并行 以动态调度、多发射和推测执行来挖掘指令集 并行
2021/2/7 第5章 指令级并行 • 指令集并行的基本概念及挑战 • 软件方法挖掘指令集并行 – 基本块内的指令集并行 • 硬件方法挖掘指令集并行 – Scoreboard – Tomasulo • 跨越基本块的指令集并行 • 基于硬件的推测执行 • 以多发射和静态调度来挖掘指令集并行 • 以动态调度、多发射和推测执行来挖掘指令集 并行

◎系统结构的Fymn类(96 SISD: Single instruction stream, single data stream 单处理器模式 SIMD: Single instruction stream, multiple data streams 相同的指令作用在不同的数据 可用来挖掘数据级并行( Data level parallelism) A: Vector processors, SIMD instructions, and Graphics processing units MISD: Multiple instruction streams, single data stream No commercial implementation MIMD: Multiple instruction streams, multiple data streams 亚性款的三种结构可用米续摆子款数据级并行
系统结构的Flynn分类 (1966) • SISD: Single instruction stream, single data stream – 单处理器模式 • SIMD: Single instruction stream, multiple data streams – 相同的指令作用在不同的数据 – 可用来挖掘数据级并行(Data Level Parallelism) – 如:Vector processors, SIMD instructions, and Graphics processing units • MISD: Multiple instruction streams, single data stream – No commercial implementation • MIMD: Multiple instruction streams, multiple data streams – 通用性最强的一种结构,可用来挖掘线程级并行、数据级并行….. – 组织方式可以是松耦合方式也可以是紧耦合方式

Levels of parallelism 请求级并行 多个任务可被分配到多个计算机上并行执行 进程级并行 进程可被调度到不同的处理器上并行执行 线程级并行 任务被组织成多个线程,多个线程共享一个进程的地址空间 每个线程有自己独立的程序计数器和寄存器文件 数据级并行 单线程(逻辑上)中并行处理多个数据( SIMD/Vector execution) 个程序计数器,多个执行部件 指令级并行 针对单一指令流,多个执行部件并行执行不同的指令
Levels of Parallelism • 请求级并行 – 多个任务可被分配到多个计算机上并行执行 • 进程级并行 – 进程可被调度到不同的处理器上并行执行 • 线程级并行 – 任务被组织成多个线程,多个线程共享一个进程的地址空间 – 每个线程有自己独立的程序计数器和寄存器文件 • 数据级并行 – 单线程(逻辑上)中并行处理多个数据 (SIMD/Vector execution) – 一个程序计数器, 多个执行部件 • 指令级并行 – 针对单一指令流,多个执行部件并行执行不同的指令

Review:基本流水线 癒水线提喜的是指令带宽(吞吐率),而不是单条 相关限制了流水线性能的发挥 结构相关:需要更多的硬件资源 数据相关:需要定向,编译器调度 控制相关:尽早检测条件,计算目标地址,延迟转移, 预测 ·增加流水线的级数会增加相关产生的可能性 ·异常,浮点运算使得流水线控制更加复杂 ·编译器可降低数据相关和控制相关的开销 Load延迟槽 Branch延迟槽 Branch预测
2021/2/7 5 Review: 基本流水线 • 流水线提高的是指令带宽(吞吐率),而不是单条 指令的执行速度 • 相关限制了流水线性能的发挥 – 结构相关:需要更多的硬件资源 – 数据相关:需要定向,编译器调度 – 控制相关:尽早检测条件,计算目标地址,延迟转移, 预测 • 增加流水线的级数会增加相关产生的可能性 • 异常,浮点运算使得流水线控制更加复杂 • 编译器可降低数据相关和控制相关的开销 – Load 延迟槽 – Branch 延迟槽 – Branch预测

51指令级并行的基本概念及挑战 ILP:无关的指令重叠执行 流水线的平均cPI Pipeline CPi Ideal Pipeline CPI Struct stalls raw stalls War Stalls WAW Stalls Control Stalls Memory stalls 本章研究:减少停顿( stalls)数的方法和技术 基本途径 软件方法: ·GcC:17%控制类指令,5 instructions+1 branch 在基本块上,得到更多的并行性 挖掘循环级并行 硬件方法 动态调度方法 以MPS的浮点数操作为例
2021/2/7 6 5.1 指令级并行的基本概念及挑战 • ILP: 无关的指令重叠执行 • 流水线的平均CPI • Pipeline CPI = Ideal Pipeline CPI + Struct Stalls + RAW Stalls + WAR Stalls + WAW Stalls + Control Stalls + Memory Stalls • 本章研究:减少停顿(stalls)数的方法和技术 • 基本途径 – 软件方法: • Gcc: 17%控制类指令,5 instructions + 1 branch; • 在基本块上,得到更多的并行性 • 挖掘循环级并行 – 硬件方法 • 动态调度方法 – 以MIPS的浮点数操作为例

采用的基本技术 Technique Reduces Section Forwarding and bypassing Potential data hazard stalls A.2 Delayed branches and simple branch scheduling Control hazard stalls A.2 Basic dynamic scheduling(scoreboarding) Data hazard stalls from true dependences A.8 Dynamic scheduling with renaming Data hazard stalls and stalls from antidependences 3.2 and output dependences namic branch prediction Control stalls 3.4 Issuing multiple instructions per cycle Ideal cpi 3.6 Speculation Data hazard and control hazard stalls 3.5 Dynamic memory disambiguation Data hazard stalls with memory 3.2,3.7 Loop unrolling Control hazard stalls 4.1 Basic compiler pipeline scheduling Data hazard stalls A.2.4.1 Compiler dependence analysis Ideal CPl data hazard stalls 4.4 Software pipelining, trace scheduling Ideal CPi data hazard stalls 4.3 Compiler speculation Ideal CPI data control stalls 计算机体系结构
2021/2/7 计算机体系结构 7 采用的基本技术

本章遵循的指令延时 产生结果的指令使用结果的指令所需延时 印 ALU op Another FP ALU op FP ALU op Store double oad double FP ALU op oad double Store double 32100 Integer op nteger op (当使用结果的指令为 BRANCH指令时除外) 计算机体系结构 8
2021/2/7 计算机体系结构 8 本章遵循的指令延时 • (当使用结果的指令为BRANCH指令时除外) 产生结果的指令 使用结果的指令 所需延时 FP ALU op Another FP ALU op 3 FP ALU op Store double 2 Load double FP ALU op 1 Load double Store double 0 Integer op Integer op 0

52基本块内的指令级并行 基本块的定义: 直线型代码,无分支;单入口;程序由分支语句连接 基本块构成 循环级并行 for(i=1;i<=1000;i++)X()=X()+s; 计算x)时没有数据相关;可以并行产生1000个数据 问题:在生成代码时会有 Branch指令-控制相关 预测比较容易,但我们必须有预测方案 向量处理机模型 load vectors x and y (up to some machine dependent max then do result-vec= Xvec t yec in a single instruction
2021/2/7 9 5.2 基本块内的指令级并行 • 基本块的定义: – 直线型代码,无分支;单入口;程序由分支语句连接 基本块构成 • 循环级并行 – for (i = 1; i <= 1000; i++) x(i) = x(i) + s; – 计算x(i)时没有数据相关;可以并行产生1000个数据; – 问题:在生成代码时会有Branch指令-控制相关 – 预测比较容易,但我们必须有预测方案 – 向量处理机模型 • load vectors x and y (up to some machine dependent max) • then do result-vec = xvec + yvec in a single instruction

◎简单循环及其对应的汇编程序 for(i=1;<=1000;++) X()=Ⅺ()+S; oop: LD FO, O(R1) F0=vector element ADDd F4,F0, F2 : add scalar from f2 SD O(R1), F4 store result SUBI R1R18 decrement pointer 8B (DW) BNEZ R1, Loop branch R1=zero NOP delayed branch slot 计算机体系结构
2021/2/7 计算机体系结构 10 简单循环及其对应的汇编程序 for (i=1; i<=1000; i++) x(i) = x(i) + s; Loop: LD F0,0(R1) ;F0=vector element ADDD F4,F0,F2 ;add scalar from F2 SD 0(R1),F4 ;store result SUBI R1,R1,8 ;decrement pointer 8B (DW) BNEZ R1,Loop ;branch R1!=zero NOP ;delayed branch slot

FP循环中的相关 Loop D F0,O(R1) Fo=vector element ADDD F4 F0 F2 add scalar from f2 SD 0(R1,F4 store result SUB R1,R1,8 ,decrement pointer &B (DW) BAEZ R1, Loop branch R1l=zero NOP delayed branch slot 产生结果的指令 使用结果的指令 所需延时 FP ALU op Another FP ALU op FP ALU op Store double oad double FP ALU op Load double Store double 32100 Integer op Integer op 计算机体系结构
Loop: LD F0,0(R1) ;F0=vector element ADDD F4,F0,F2 ;add scalar from F2 SD 0(R1),F4 ;store result SUBI R1,R1,8 ;decrement pointer 8B (DW) BNEZ R1,Loop ;branch R1!=zero NOP ;delayed branch slot 2021/2/7 计算机体系结构 11 FP 循环中的相关 产生结果的指令 使用结果的指令 所需延时 FP ALU op Another FP ALU op 3 FP ALU op Store double 2 Load double FP ALU op 1 Load double Store double 0 Integer op Integer op 0
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 档案数字化基本程序与要求(PPT讲稿).ppt
- Computer Graphics(PPT讲稿)INFORMATION VISUALIZATION.pptx
- 北京大学:C++模板与STL库介绍(PPT讲稿).ppt
- 《数据库基础》课程教学资源(PPT课件讲稿)第四章 数据查询.ppt
- 《网络搜索和挖掘关键技术 Web Search and Mining》课程教学资源(PPT讲稿)Lecture 08 Scoring and results assembly.ppt
- 上海海事大学:《数字图像处理》课程教学资源(PPT课件讲稿)Unit 7 Introduction to Digital Image Processing.ppt
- Performance Evaluation of Long Range Dependent Queues(PPT讲稿).pptx
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第二章 基本数据类型及运算.ppt
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)模式&框架 Pattern & Framework.ppt
- 《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第二讲 关系数据库.ppt
- 《计算机辅助设计》课程介绍.pdf
- 沈阳工程学院:《面向对象程序设计》课程教学大纲(适用专业:计算机科学与技术专业).pdf
- 《编译原理》课程教学资源(PPT课件讲稿)从正则表达式到有限自动机.pptx
- Introduction to Computing Using Java(PPT讲稿)Java Language Basics.ppt
- 《物联网导论》课程教学资源(PPT课件讲稿)第2章 自动识别技术与RFID.ppt
- 《计算机维修》课程教学资源(PPT课件讲稿)第3章 磁盘工具.ppt
- 《数据结构》课程PPT教学课件(讲稿)第一章 数据结构基础.ppsx
- 华北科技学院:图像的采集与处理(PPT课件讲稿)Photoshop CS.ppt
- 《JAVA与面向对象编程》课程教学资源(PPT课件讲稿)第二章 Java语法基础.ppt
- 《C语言程序设计》课程电子教案(PPT教学课件)第四章 选择结构程序设计.ppt
- 上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第14章 输入输出与文件.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第7章 多处理器及线程级并行.ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第五章 语法制导的翻译.ppt
- 河南中医药大学:《网络技术实训》课程教学资源(PPT课件讲稿)第一阶段 组网(主讲:路景鑫).pptx
- 《SQL基础教程》课程教学资源(PPT课件讲稿)第6章 数据操作与SQL语句.ppt
- 《计算机基础及C语言程序设计》课程PPT教学课件(讲稿)第1章 概论.ppt
- 西安交通大学:《网络与信息安全》课程PPT教学课件(网络入侵与防范)身份认证.ppt
- 《计算机网络和因特网》教学资源(PPT讲稿)网络互连(概念, IP 地址, IP 路由, IP 数据报, 地址解析).ppt
- 《高级语言程序设计》课程教学资源(试卷习题)试题四(无答案).doc
- 上海交通厌:《通信网络》课程教学资源(PPT讲稿)DELAY MODELS IN DATA NETWORKS、LITTLE’S LAW、ARRIVAL MODEL、M/M/X QUEUING MODELS.pptx
- 《软件工程》课程教学资源(PPT课件讲稿)第7章 软件测试.ppt
- 《计算机网络安全》课程教学资源(PPT课件讲稿)第二章 密码学技术.ppt
- 《编译原理》课程教学资源(PPT课件讲稿)语法分析 Syntax analysis(自底向上分析 Bottom-Up Parsing).ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第一章 绪论.ppt
- 《计算机组成原理》课程教学资源(PPT课件讲稿)第四章 存储器.ppt
- 随机图与复杂网络(PPT讲稿)随机演化博弈的算法研究及其在复杂网络中的应用.ppt
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 3 Process Description and Control.ppt
- 《软件工程》课程教学资源(PPT课件讲稿)第3章 软件需求分析.ppt
- 《PHP程序设计》教学资源(PPT课件讲稿)项目四 面向对象网站开发.ppt
- 数据挖掘实现的住院病人的实时预警(PPT讲稿)Real-Time Clinical Warning for Hospitalized Patients via Data Mining.pptx