指令级并行--控制相关的动态解决技术
系统结构名词解释(3)
系统结构名词解释(3)系统结构名词解释结构冲突:因硬件资源满足不了指令重叠执行的要求而发生的冲突。
数据冲突:当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。
控制冲突:流水线遇到分支指令或其它会改变PC值的指令所引起的冲突。
定向:用来解决写后读冲突的。
在发生写后读相关的情况下,在计算结果尚未出来之前,后面等待使用该结果的指令并不见得是马上就要用该结果。
如果能够将该计算结果从其产生的地方直接送到其它指令需要它的地方,那么就可以避免停顿。
写后读冲突:考虑两条指令i和j,且i在j之前进入流水线,指令j用到指令i的计算结果,而且在i将结果写入寄存器之前就去读该寄存器,因而得到的是旧值。
读后写冲突:考虑两条指令i和j,且i在j之前进入流水线,指令j的目的寄存器和指令i的源操作数寄存器相同,而且j在i读取该寄存器之前就先对它进行了写操作,导致i读到的值是错误的。
写后写冲突:考虑两条指令i和j,且i在j之前进入流水线,,指令j和指令i的结果单元(寄存器或存储器单元)相同,而且j在i写入之前就先对该单元进行了写入操作,从而导致写入顺序错误。
这时在结果单元中留下的是i写入的值,而不是j写入的。
链接技术:具有先写后读相关的两条指令,在不出现功能部件冲突和Vi冲突的情况下,可以把功能部件链接起来进行流水处理,以达到加快执行的目的。
分段开采:当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。
半性能向量长度:向量处理机的性能为其最大性能的一半时所需的向量长度。
向量长度临界值:向量流水方式的处理速度优于标量串行方式的处理速度时所需的向量长度的最小值。
4.1解释下列术语指令级并行:简称ILP。
是指指令之间存在的一种并行性,利用它,计算机可以并行执行两条或两条以上的指令。
指令调度:通过在编译时让编译器重新组织指令顺序或通过硬件在执行时调整指令顺序来消除冲突。
第4章Computer Systems Architecture
输出相关(F6) 导致WAW冲突
▲
22/134
Computer Systems Architecture
消除名相关
4.2 指令的动态调度
引入两个临时寄存器S和T 把这段代码改写为: DIV.D ADD.D S.D SUB.D MUL.D F0,F2,F4 S,F0,F8 S,0(R1) T,F10,F14 F6,F10,T 两个F6都换名为S
▲
2/134
Computer Systems Architecture 4.1 指令级并行
4.1.1 指令级并行的概念
几乎所有的处理机都利用流水线来使指令重叠并
行执行,以达到提高性能的目的。这种指令之间 存在的潜在并行性称为指令级并行。
(ILP:Instruction-Level Parallelism)
本章研究:如何通过各种可能的技术,获得更多
的指令级并行性。
硬件+软件技术
必须要硬件技术和软件技术互相配合,才能够最大 限度地挖掘出程序中存在的指令级并行。
▲ 3/134
Computer Systems Architecture
1. 流水线处理机的实际CPI
4.1 指令级并行
理想流水线的CPI加上各类停顿的时钟周期数:
4.2 指令的动态调度
IBM 360体系结构只有4个双精度浮点寄存器,限
制了编译器调度的有效性。
360/91的访存时间和浮点计算时间都很长。
(也是Tomasulo算法要解决的问题)
3. 寄存器换名可以消除WAR冲突和WAW冲突。
考虑以下代码:
反相关(F8) 导致WAR冲突 DIV.D ADD.D S.D SUB.D MUL.D F0,F2,F4 F6,F0,F8 F6,0(R1) F8,F10,F14 F6, F10,F8
指令级并行的概念
目 录
• 指令级并行简介 • 指令级并行技术 • 指令级并行应用场景 • 指令级并行面临的挑战与解决方案 • 指令级并行未来展望
01
指令级并行简介
定义与特点
定义
指令级并行是指计算机在执行程序时, 通过同时执行多个指令来提高处理速 度的一种并行处理技术。
特点
指令级并行主要依赖于处理器中的指 令流水线,通过并行执行多个指令, 实现处理速度的提升。
详细描述
超线程技术允许在一个物理处理器核心上同时运行多个线程,从而实现指令级的 并行处理。通过精细的调度和管理,超线程技术可以有效地利用处理器资源,提 高处理器的整体性能。
VLIW(Very Long Instruction Word)技术
总结词
VLIW技术是一种将多个操作码和操作数组合到一个长指令中,由处理器一次执行的方法。
VS
详细描述
EPIC技术强调在编译阶段对程序进行并 行化处理,通过分析程序中的指令关系和 数据依赖关系,自动地生成并行执行的代 码。EPIC技术的目标是最大化处理器的 并行执行能力,从而提高程序的执行效率 。
03
指令级并行应用场景
科学计算
科学计算是利用计算机进行大规模数值计算以解决科学研究 和工程领域中的复杂问题。指令级并行技术可以提高科学计 算的效率和精度,例如在气候模拟、流体动力学模拟、物理 模拟等领域的应用。
指令缓存失效问题
指令缓存失效问题
由于指令的执行结果可能被缓存在缓存中, 当指令并行执行时,缓存失效可能导致指令 重新读取数据,从而影响并行执行的效率。
解决方案
通过缓存行对齐技术,将并行执行的指令对 齐到同一缓存行,以减少缓存失效的次数。 此外,可以使用写回策略来将指令的执行结
2022年江苏第二师范学院计算机应用技术专业《计算机系统结构》科目期末试卷A(有答案)
2022年江苏第二师范学院计算机应用技术专业《计算机系统结构》科目期末试卷A(有答案)一、选择题1、多处理机的各自独立型操作系统()。
A.要求管理程序不必是可再入的B.适合于紧耦合多处理机C.工作负荷较平衡D.有较高的可靠性2、Cache存贮器常用的地址映象方式是( )。
A.全相联映象B.页表法映象C.组相联映象D.段页表映象3、下列说法中不正确的是( )A.软件设计费用比软件重复生产费用高B.硬件功能只需实现一次,而软件功能可能要多次重复实现C.硬件的生产费用比软件的生产费用高D.硬件的设计费用比软件的设计费用低4、从计算机系统结构上讲,机器语言程序员所看到的机器属性是( )。
A.计算机软件所要完成的功能B.计算机硬件的全部组成C.编程要用到的硬件组织D.计算机各部件的硬件实现5、"一次重叠"中消除"指令相关"最好的方法是( )。
A.不准修改指令B.设相关专用通路C.推后分析下条指令D.推后执行下条指令6、高级语言程序经()的()成汇编语言程序。
A.编译程序,翻译B.汇编程序,翻译C.汇编程序,解释D.编译程序,解释7、系列机软件应做到( )。
A.向前兼容,并向上兼容B.向后兼容,力争向上兼容C.向前兼容,并向下兼容D.向后兼容,力争向下兼容8、IBM360/91属于()A.向量流水机B.标量流水机C.阵列流水机D.并行流水机9、下列说法中不正确的是()A.软件设计费用比软件重复生产费用高B.硬件功能只需实现一次,而软件功能可能要多次重复实现C.硬件的生产费用比软件的生产费用高D.硬件的设计费用比软件的设计费用低10、在尾数下溢处理方法中,平均误差最大的是()A.截断法B.舍入法C.恒置"1"法D.ROM查表法二、判断题11、在一种机器的系统结构上实现另一种机器的指令系统,采用模拟方法比采用仿真方法更快捷。
()12、计算机仿真用微程序解释,计算机模拟用机器语言解释。
全局指令调度名词解释系统结构
全局指令调度名词解释系统结构第一章名称解析:程序的局部性原理:程序执行时所访问的存储器地址不是随机分布的,而是相对地簇聚。
包括时间局部性和空间局部性。
软件兼容:一个软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算机上运行。
差别只是执行时间的不同。
时间重叠:在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
资源重复:在并行性概念中引入空间因素,以数量取胜。
通过重复设置硬件资源,大幅度地提高计算机系统的性能。
实现软件可移植的方法:采用系列机方法,只能在具有相同系统结构的各种机器之间实现软件移植,般是一个厂家生产的机器。
采用模拟与仿真的方法,可在不同系统结构的机器之间相互移植软件,对于使用频率较高的指令,尽可能用仿真方法以提高运算速度,而对于使用频率低且难于用仿真实现的指令则用模拟方法来实现。
采用统一的高级语言方法,可以解决结构相同或完全不同的各种机器上的软件移植,但是,要统一高级语言,语言的标准化很重要,但难以在短期内解决。
第二章2.1解释下列术语堆栈型机器:CPU中存储操作数的单元是堆栈的机器。
累加器型机器:CPU中存储操作数的单元是累加器的机器通用寄存器型机器:CPU中存储操作数的单元是通用寄存器的机器。
CISC:复杂指令集计算机RISC:精简指令集计算机寻址方式:指令系统中如何形成所要访问的数据的地址。
一般来说,寻址方式可以指明指令中的操作数是一个常数丶一个寄存器操作数或者是一个存储器操作数数据表示:硬件结构能够识别、指令系统可以直接调用的那些数据结构。
2.2区别不同指令集结构的主要因素是什么?根据这个主要因素可将指令集结构分为哪3类?答:区别不同指令集结构的主要因素是CPU中用来存储操作数的存储单元。
据此可将指令系统结构分为堆栈结构、累加器结构和通用寄存器结构。
2.3指令集结构设计所涉及的内容有哪些?指令集功能设计:主要有RISC和CISC两种技术发展方向;寻址方式的设计:设置寻址方式可以通过对基准程序进行测试统计,察看各种寻址方式的使用频率,根据适用频率设置必要的寻址方式。
计算机体系结构试题及答案
计算机体系结构试题及答案12008年01月23日22:211、计算机高性能发展受益于:(1)电路技术的发展;(2)计算机体系结构技术的发展。
2、层次结构:计算机系统可以按语言的功能划分为多级层次结构,每一层以不同的语言为特征。
第六级:应用语言虚拟机-> 第五级:高级语言虚拟机-> 第四级:汇编语言虚拟机-> 第三级:操作系统虚拟机-> 第二级:机器语言(传统机器级) ->第一级:微程序机器级。
3、计算机体系结构:程序员所看到的计算机的属性,即概括性结构与功能特性。
For personal use only in study and research; not for commercial use4、透明性:在计算机技术中,对本来存在的事物或属性,从某一角度来看又好像不存在的概念称为透明性。
5、Amdahl提出的体系结构是指机器语言级程序员所看见的计算机属性。
6、经典计算机体系结构概念的实质3是计算机系统中软、硬件界面的确定,也就是指令集的设计,该界面之上由软件的功能实现,界面之下由硬件和固件的功能来实现。
7、计算机组织是计算机系统的逻辑实现;计算机实现是计算机系统的物理实现。
8、计算机体系结构、计算机组织、计算机实现的区别和联系?答:一种体系结构可以有多种组成,一种组成可以有多种物理实现,体系结构包括对组织与实现的研究。
9、系列机:是指具有相同的体系结构但具有不同组织和实现的一系列不同型号的机器。
10、软件兼容:即同一个软件可以不加修改地运行于系统结构相同的各机器,而且它们所获得的结果一样,差别只在于运行时间的不同。
11、兼容机:不同厂家生产的、具有相同体系结构的计算机。
12、向后兼容是软件兼容的根本特征,也是系列机的根本特征。
13、当今计算机领域市场可划分为:服务器、桌面系统、嵌入式计算三大领域。
14、摩尔定律:集成电路密度大约每两年翻一番。
15、定量分析技术基础(1)性能的评测:(a)响应时间:从事件开始到结束之间的时间;计算机完成某一任务所花费的全部时间。
archit44
4.3 动态分支预测技术
指令并行
处理器可达到的指令级并行度越高,控制相关 的影响越大 动态解决技术利用硬件对程序运行时分支的行 为进行预测,提前对分支操作做出反应,加快 分支处理的速度。分支预测的效果不仅取决于 其准确性,而且与分支预测时的开销密切相关。 分支转移的最终延迟取决于流水线的结构、预 测的方法和预测错误后恢复所采取的策略 动态分支预测技术要记录分支指令的历史、并 据此决定预测的分支,还要尽快找到分支目标 地址,从而避免控制相关造成流水线停顿
4.4 多指令流出技术
指令并行
将等于1的理想CPI减小,必须实现一个时钟周 期流出(发射issue)多条指令
超标量(Superscalar)处理器:每个时钟周期流出多条 指令(1~8),可以采用编译器进行静态调度顺序执行, 也可以采用硬件动态调度乱序执行 超长指令字(VLIW: Very Long Instruction Word):通 过编译器调度无关的多条指令(4~16)形成一条长指 令,每个时钟周期流出一条长指令 超级流水线(Super pipelining):将每个功能部件进一 步流水化,使得一个功能部件在一个时钟周期中可以处 理多条指令(可以简单地理解为很长的流水线)
WAW 冲突 (输出相关引起) 如果在SUB.D写入F10 之 前 ADD.D 执 行 结 束 , 会出现问题
寄存器换名可以消除WAR和WAW冲突
指令并行
DIV.D F4,F0,F2 SUB.D F10,F4,F6 ADD.D F8,F12,F14
DIV.D F4,F0,F2 SUB.D F10,F4,F6 ADD.D F8,F6,F14
① 根据历史记录(预测位状态)进行分支预测 ② 根据实际分支情况修改预测位
组成原理名词解释
组成原理名词解释计算机实现:计算机实现是指计算机组成的物理实现。
它包括处理机、主存等部件的物理结构,器件的集成度和速度,信号传输,器件、模块、插件、底板的划分与连接,专用器件的设计,电源、冷却、装配等技术以及有关的制造技术和工艺等。
浮点数的误差:浮点数集 F 的误差可以这样定义, 令 N 是浮点数集 F 内的任一给定实数, 而 M 是 F 中最接近 N , 且被用来代替 N 的浮点数, 则定义绝对表数误差为:相对误差 (Relative Representation Rrror)为:浮点数表示方式的效率:浮点数表示方式的效率定义为:存储系统:两个或两个以上速度、容量和价格各不相同的存储器用硬件、软件、或软件与硬件相结合的方法连接起来成为一个系统,这就是存储系统。
虚拟存储系统:虚拟存储系统由主存储器与联机的外部存储器(目前一般为磁盘存储器)构成,采用硬件与软件相结合的方法来调度。
操作系统用内存管理部件管理虚存,实现用户透明的进程空间的 32位寻址。
并行存储器:并行存储器设置多个独立的存储器,让它们并行工作,在一个存储周期内可以访问到多个数据,提高存储器速度。
Cache 系统:Cache 系统是在主板或者 CPU 内部集成一块高速访问存储器,并与内存联合构成缓存系统。
缓存系统的原理类似于虚拟存储系统。
一般处理机中有一级 Cache ,它与主存储器构成一个两级的存储系统。
一些高性能处理机都采用两级 Cache 。
其中,第一级在 CPU 内部,它的容量比较小,速度很快。
第二级在主扳上,容量比较大,速度比第一级要低 5倍左右。
也有部分高性能处理机采用三级 Cache 。
前两级都在 CPU 内部。
全相联映象方式:全相联映象方式是指主存中的任意一块可以映象到 Cache 中的任意一块的位置上。
直接映象方式:直接映象方式是一种最简单,也是最直接的方法。
主存中一块只能映象到Cache 的一个特定的块中。
组相联映象:组相联方式是目前在 Cache 中用得比较多的一种地址映象和变换方式。
计算机体系结构名词解释大全
名词解释:(1)静态流水线——同一时间内,流水线的各段只能按同一种功能的连接方式工作。
(2)分段开采——当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。
(3)计算机体系结构——程序员所看到的计算机的属性,即概念性结构与功能特性(4)时间重叠——在并行性中引入时间因素,即多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
(5)TLB——个专用高速存储器,用于存放近期经常使用的页表项,其内容是页表部分内容的一个副本(6)结构冲突——指某种指令组合因为资源冲突而不能正常执行(7)程序的局部性原理——程序在执行时所访问的地址不是随机的,而是相对簇聚;这种簇聚包括指令和数据两部分。
(8)2:1Cache经验规则——大小为N的直接映象Cache的失效率约等于大小为N /2的两路组相联Cache的实效率。
(9)组相联映象——主存中的每一块可以放置到Cache中唯一的一组中任何一个地方(10)数据相关——当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作的顺序,使得读/写操作顺序不同于它们非流水实现时的顺序,将导致数据相关。
(1)动态流水线——同一时间内,当某些段正在实现某种运算时,另一些段却在实现另一种运算。
(2)透明性——指在计算机技术中,把本来存在的事物或属性,但从某种角度看又好像不存在的特性。
(3)层次结构——计算机系统可以按语言的功能划分为多级层次结构,每一层以不同的语言为特征。
(4)资源共享——是一种软件方法,它使多个任务按一定的时间顺序轮流使用同一套硬件设备。
(5)快表——个专用高速存储器,用于存放近期经常使用的页表项,其内容是页表部分内容的一个副本。
(6)控制相关——指由分支指令引起的相关,它需要根据分支指令的执行结果来确定后续指令是否执行。
(7)存储层次——采用不同的技术实现的存储器,处在离CPU 不同距离的层次上,目标是达到离CPU最近的存储器的速度,最远的存储器的容量。
现在微处理机-指令级并行-记分牌算法
循环展开(2/3) • Example:A,B,C,D distinct & nonoverlapping
• for (i=1; i<=100; i=i+1) { A[i] = A[i] + B[i]; /* S1 */ B[i+1] = C[i] + D[i];} /* S2 */ 1. S1和S2没有相关,S1和S2互换不会影响程序的正 确性 2. 在第一次循环中,S1依赖于前一次循环的B[i].
– Itanium & Transmeta: Crusoe
一个循环的例子 for (i = 1; i <= 1000; i++) x(i) = x(i) + y(i);
• 特征
– 计算x(i)时没有相关
• 并行方式
– 最简单的方法,循环展开。 – 采用向量的方式 X=X+Y 60年代开始 Cray HITACHI NEC Fujitsu 目前均采用向量加速部件的形式 GPU DSP
} B[101] = C[100] + D[100];
4.2 硬件调度方案:
• 为什么要使用硬件调度方案?
– 在编译时无法确定的相关,可以通过硬件调度来优化 – 简化了编译器的设计 – 代码在不同组织结构的机器上,同样可以有效的运行
Rewrite loop to minimize stalls?
名相关如何解决
15 + 4 x (1+2) + 1 = 28 cycles, or 7 per iteration Assumes R1 is multiple of 4
Stalls数最小的循环展开
1 Loop: 2 3 4 5 6 7 8 9 10 11 12 13 14 LD LD LD LD ADDD ADDD ADDD ADDD SD SD SUBI SD BNEZ SD F0,0(R1) F6,-8(R1) F10,-16(R1) F14,-24(R1) F4,F0,F2 F8,F6,F2 F12,F10,F2 F16,F14,F2 0(R1),F4 -8(R1),F8 R1,R1,#32 16(R1),F12 R1,LOOP 8(R1),F16
计算机体系结构实训课程学习总结指令级并行与流水线设计
计算机体系结构实训课程学习总结指令级并行与流水线设计在计算机科学与技术领域中,计算机体系结构是一门关于计算机硬件与软件的核心学科。
在我修习的计算机体系结构实训课程中,我学习了指令级并行与流水线设计,掌握了该领域的核心概念与技术,下面是我对该课程的学习总结和心得体会。
一、指令级并行概述指令级并行是指在一个周期内同时执行多条指令,以减少指令的执行时间,提高计算机的性能。
在学习指令级并行的过程中,我了解了计算机指令的基本原理及其执行过程。
通过学习指令流水线、数据前推、乱序执行等技术,我深入理解了指令级并行的优势和实现方法。
在实训过程中,我通过搭建指令级并行的实验平台,进行了仿真实验和性能分析。
通过比较顺序执行和指令级并行执行的效果,我发现指令级并行可以大幅度提高计算机的执行效率。
而在实现指令级并行时,我也面临了一些挑战,如数据相关、控制相关等问题,但通过优化代码和调整指令执行顺序,我成功地解决了这些问题。
这个过程让我深刻体会到指令级并行设计的重要性和技术难点。
二、流水线设计与优化流水线设计是指将计算机指令的执行过程划分为多个阶段,并使不同阶段的指令并行执行,从而提高计算机的吞吐量。
在学习流水线设计的过程中,我深入了解了流水线的原理、特点和结构。
通过学习流水线的组织方式、数据冒险、控制冒险等问题,我掌握了流水线设计的关键技术。
在实验中,我设计了一个基于流水线的简单计算机,并通过编写适当的指令集和流水线寄存器,实现了流水线的功能。
通过性能测试,我发现流水线设计可以显著提高计算机的执行效率和吞吐量。
然而,我也发现了一些流水线设计中的问题,比如分支预测错误、资源冲突等,这些问题对流水线的性能产生了负面影响。
通过调整分支预测策略和添加冲突检测机制,我成功地进行了优化,提高了流水线设计的性能。
三、实训过程中的收获与反思通过学习指令级并行与流水线设计,我不仅极大地提高了对计算机体系结构的理解和掌握,还培养了解决实际问题的能力。
多发射指令的算法细节讲解
循环展开4次(straightforward way)
1 Loop: LD
2
ADDD
3
SD
4
LD
5
ADDD
6
SD
7
LD
8
ADDD
9
SD
10
LD
11
ADDD
12
SD
13
SUBI
14
BNEZ
15
NOP
F0,0(R1) stall
F4,F0,F2 stall stall
0(R1),F4
;drop SUBI & BNEZ
Ch 4 指令级并行
Embedded System Lab Fall 2012
4.1 指令级并行 (Instruction Level Parallelism)
• 相关是程序运行的本质特征
• 相关带来数据冒险
Loop: LD F0,0(R1) SUBI R2,R2,8
• 冒险导致CPU停顿 Stall
产生结果的指令 FP ALU op FP ALU op Load double Load double Integer op
使用结果的指令 Another FP ALU op Store double FP ALU op Store double Integer op
所需的延时 3 2 1 0 0
• 需要在哪里加stalls?(假设分支在ID段得到地址和条件)
A[1] = A[1] + B[1];
for (i=1; i<=99; i=i+1) {
NEW:
B[i+1] = C[i] + D[i];
A[i+1] = A[i+1] + B[i+1];
指令级并行
5
采用的基本技术
2020/7/10
计算机体系结构
6
本章遵循的指令延时
产生结果的指令 使用结果的指令 所需延时
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
第5章 指令级并行
• 指令集并行的基本概念及挑战 • 软件方法挖掘指令集并行
• 基本块内的指令集并行
• 硬件方法挖掘指令集并行
• Scoreboard • Tomasulo
• 跨越基本块的指令集并行 • 基于硬件的推测执行 • 以多发射和静态调度来挖掘指令集并行 • 以动态调度、多发射和推测执行来挖掘指令集并行
单线程(逻辑上)中并行处理多个数据 (SIMD/Vector execution) 一个程序计数器, 多个执行部件
• 指令级并行
针对单一指令流,多个执行部件并行执行不同的指令
2020/7/10
计算机体系结构
3
Review: 基本流水线
• 流水线提高的是指令带宽(吞吐率),而不是单条指令 的执行速度
• 相关限制了流水线性能的发挥
• 结构相关:需要更多的硬件资源 • 数据相关:需要定向,编译器调度 • 控制相关:尽早检测条件,计算目标地址,延迟转移,预测
• 增加流水线的级数会增加相关产生的可能性
• 异常,浮点运算使得流水线控制更加复杂
• 编译器可降低数据相关和控制相关的开销
• Load 延迟槽 • Branch 延迟槽 • Branch预测
指令级并行
指令级并行我们知道,要从系统结构上提高计算机的性能,就必须设法以各种方式挖掘计算机工作的并行性。
并行性又有粗粒度并行性(coarse-grained parallelism)和细粒度并行性(fine-grained parallelism)之分。
所谓粗粒度并行性是在多处理机上分别运行多个进程,由多台处理机合作完成一个程序。
所谓细粒度并行性是在一个进程中进行操作一级或指令一级的并行处理。
这两种粒度的并行性在一个计算机系统中可以同时采用,在单处理机上则用细粒度并行性。
指令级并行概念指令级并行(Instruction-Level Parallelism, ILP),是细粒度并行,主要是相对于粗粒度而言的。
顾名思义,指令级并行是指存在于指令一级即指令间的并行性,主要是指机器语言一级,如存储器访问指令、整型指令、浮点指令之间的并行性等,它的主要特点是并行性由处理器硬件和编译程序自动识别和利用,不需要程序员对顺序程序作任何修改。
正是由于这一优点,使得它的发展与处理器的发展紧密相连。
指令级并行技术突破了每个时钟周期完成一条指令的框框,做到在单处理机上每个时钟周期能完成的指令数平均多于一条。
我们已知道,向量处理机进行的是细粒度的并行处理,它在处理向量时由于采用了流水线,多功能部件河链接技术,能够做到每个时钟周期完成多个操作,相当于多条指令。
但它在处理标量时,效率将大大降低,有时甚至还不及一个普通的通用计算机。
现在几种新的系统结构设计,其基本思想是要挖掘指令级并行,使单处理机达到一个时钟周期完成多条指令。
指令级并行性的含义可用下面的例子来说明:(1)Load C1←23(R2)Add R3←R3+1FPAdd C4←C4+C3并行度=3(2)Add R3←R3+1Add R4←R3+R2Store R0←R4并行度=1上例中,(1)的三条指令是互相独立的,它们之间不存在数相关,所以可以并行执行。
反之,(2)的三条指令中,第2条要用到第1条的结果,第3条要用到第2条的结果,它们都不能并行执行。
计算机体系结构指令级并行与超标量技术的优化方法
计算机体系结构指令级并行与超标量技术的优化方法计算机体系结构指令级并行与超标量技术的优化方法是指通过提高计算机指令级并行性和利用超标量技术来提高计算机性能的方法。
本文将介绍这些优化方法,并讨论它们在现代计算机体系结构中的应用。
一、指令级并行优化方法指令级并行是指在执行一条计算机指令时,同时执行多条指令的能力。
在传统的单指令多数据(SIMD)和多指令多数据(MIMD)体系结构中,指令级并行主要通过指令流水线、乱序执行和分支预测等技术来实现。
1. 指令流水线指令流水线是将一条指令的执行过程划分为多个子阶段,并通过并行执行这些子阶段来提高计算机的吞吐量。
典型的指令流水线包括取指、译码、执行、访存和写回等阶段。
指令流水线的优化方法包括增加流水线的深度、减少流水线的停顿以及解决流水线冲突等。
2. 乱序执行乱序执行是指根据指令之间的依赖关系,在不改变程序执行结果的前提下,通过调整指令的执行顺序来提高指令级并行性。
乱序执行技术包括乱序发射、数据回复和指令重排序等。
3. 分支预测分支预测是为了解决程序中分支指令对流水线的冲击而出现的一种技术。
分支预测通过猜测分支指令的执行方向来提高指令级并行性。
常见的分支预测方法包括静态分支预测和动态分支预测。
二、超标量技术的优化方法超标量技术是指在同一个时钟周期内同时发射多条指令,并通过并行执行这些指令来提高计算机性能的技术。
超标量技术主要包括超标量发射、超标量执行和动态调度等。
1. 超标量发射超标量发射是指在一个时钟周期内同时发射多条指令到执行单元。
通过增加发射宽度,可以同时发射更多的指令,从而提高指令级并行性。
2. 超标量执行超标量执行是指在一个时钟周期内通过并行执行多条指令来提高计算机性能。
超标量执行的优化方法包括增加执行单元的数量、增加执行单元的功能和使用更高效的执行指令等。
3. 动态调度动态调度是指通过调度器来动态选择可以立即执行的指令,并将其发送到执行单元。
通过动态调度,可以有效地利用执行单元的资源,提高指令级并行性和计算机性能。
计算机体系结构知识点总结
计算机体系结构知识点总结————————————————————————————————作者:————————————————————————————————日期:第一章计算机体系结构的基本概念1.计算机系统结构的经典定义程序员所看到的计算机属性,即概念性结构与功能特性。
(计算机组成:指计算机系统结构的逻辑实现。
计算机实现:计算机组成的物理实现)2.计算机系统的多级层次结构:1.虚拟机:应用语言机器->高级语言机器->汇编语言机器->操作系统机器2.物理机:传统机器语言机器->微程序机器3.透明性:在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。
4.编译:先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序5.解释:对于高一级机器上的程序中的每一条语句或指令,都转去执行低一级机器上的一段等效程序。
6.常见的计算机系统结构分类法有两种:Flynn分类法、冯氏分类法(按系统并行度P m:计算机系统在单位时间内能处理的最大二进制位数)进行分类。
Flynn分类法把计算机系统的结构分为4类:单指令流单数据流(SISD)单指令流多数据流(SIMD)多指令流单数据流(MISD)多指令流多数据流(MIMD)IS指令流,DS数据流,CS(控制流),CU(控制部件),PU(处理部件),MM,SM(表示存储器)7.计算机设计的定量原理:1.大概率事件优先原理(分配更多资源,达到更高性能)2.Amdahl定理:加速比:S n=T0(加速前)T n(加速后)=1(1−Fe)+Fe/Se(Fe为可改进比例(可改进部分的执行时间/总的执行时间),Se为部件加速比(改进前/改进后)3.程序的局部性原理:时间局部性:程序即将使用的信息很可能是目前使用的信息。
空间局部性:即将用到的信息可能与目前用到的信息在空间上相邻或相近。
4.CPU性能公式:1.时钟周期时间2.CPI:CPI = 执行程序所需的时钟周期数/IC3.IC(程序所执行的指令条数)8.并行性:计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。
指令级并行:动态分支预测技术
指令级并⾏:动态分⽀预测技术动态分⽀预测技术⽤于处理控制冒险。
其基本思想是,在遇到控制冒险时,预测转移⽅向,并执⾏该⽅向的指令,猜对时继续执⾏后续指令,猜错时回头执⾏另⼀⽅向的指令。
分⽀预测算法分为静态和动态两种。
静态预测算法直接进⾏固定的猜测或按指令能容进⾏猜测,其常见时机则分别为IF段和ID段。
动态预测算法根据转移历史来预测新的转移⽅向,其主要类型有饱和计数预测、相关预测、⾃适应预测等,均可以⽤于IF段预测。
基本预测器即饱和计数预测器通常将分⽀历史⽤两个⼆进制位表⽰,根据⾼位来预测,根据结果来更新,其本质是⼀个具有4各状态的DFA。
它只根据当前分⽀的分⽀历史来预测,在连续两次错误预测时改变预测⽅向,⽤于循环时性能较好。
实现上,需要⽤分⽀历史表来记录各分⽀指令地址对应的分⽀历史信息,设置查找更新机构来实现数据的更新。
相关预测器使⽤其它分⽀的⾏为来预测当前分⽀,(m,n)预测器包含m位全局历史和n*2^m位模式历史,根据前m个分⽀的⾏为去选⼀个预测器,根据这个预测器内的分⽀历史来预测当前⽅向。
其性能远好于基本预测器。
在此基础上再做改进,有锦标赛预测器,即全局/局部⾃适应预测器,由⾃适应选择器来决定是使⽤全局预测器还是局部预测器。
锦标赛预测器是⽬前最好的预测器。
预测时应当可以获得分⽀⽬标地址,否则预测是没有意义的,因此,仅有分⽀历史表BHT的信息不⾜以进⾏动态分⽀预测的实现,我们通常需要分⽀⽬标缓冲器BTB来实现转移历史的管理。
BTB是⼀个类似Cache的结构。
查找时,⽤PC查BTB,当标记与PC内容相等时命中。
当BTB缺失且执⾏结果为转移时建⽴新⾏。
当BTB命中时根据执⾏结果更新对应⾏的转移历史。
在设置BTB后,IF段时查BTB,命中时写⼊PC,否则PC正常⾃增。
ID段判断是否为BTB缺失的分⽀指令,此处可以进⾏静态预测。
EX段根据执⾏结果更新BTB。
当出现错误预测时,需要清空流⽔线以恢复现场,并重置PC。
2022年华中科技大学计算机应用技术专业《计算机系统结构》科目期末试卷A(有答案)
2022年华中科技大学计算机应用技术专业《计算机系统结构》科目期末试卷A(有答案)一、选择题1、对系统程序员不透明的应当是()A.CACHE 存储器B.系列机各档不同的数据通路宽度C.指令缓冲寄存器D.虚拟存储器2、在尾数下溢处理方法中,平均误差最大的是()A.截断法B.舍入法C.恒置"1"法D.ROM查表法3、在计算机系统的层次结构中,机器被定义为()的集合体A.能存储和执行相应语言程序的算法和数据结构B.硬件和微程序(固件)C.软件和固件D.软件和硬件4、计算机系统的层次结构按照由高到低的顺序分别为()。
A.高级语言机器级,汇编语言机器级,传统机器语言机器级,微程序机器级B.高级语言机器级,应用语言机器级,汇编语言机器级,微程序机器级C.应用语言机器级,传统机器语言机器级,汇编语言机器级,操作系统机器级D.应用语言机器级,操作系统机器级,微程序机器级,传统机器语言机器级5、下列说法正确的是()A."一次重叠"是一次解释一条指令B."一次重叠"是同时解释相邻两条指令C.流水方式是同时只能解释两条指令D."一次重叠"是同时可解释很多条指令6、虚拟存储器常用的地址映象方式是( )A.全相联B.段相联C.组相联D.直接7、计算机系统多级层次中,从下层到上层,各级相对顺序正确的应当是()。
A.汇编语言机器级,操作系统机器级,高级语言机器级B.微程序机器级,传统机器语言机器级,汇编语言机器级C.传统机器语言机器级,高级语言机器级,汇编语言机器级D.汇编语言机器级,应用语言机器级,高级语言机器级8、输入输出系统硬件的功能对()是透明的。
A.操作系统程序员B.应用程序员C.系统结构设计人员D.机器语言程序设计员9、推出系列机的新机器,不能更改的是( )A.原有指令的寻址方式和操作码B.系统总线的组成C.数据通路宽度D.存贮芯片的集成度10、以下说法中,不正确的是,软硬件功能是等效的,提高硬件功能的比例会:( )A.提高解题速度B.提高硬件利用率C.提高硬件成本D.减少所需要的存贮器用量二、判断题11、指令间的读写相关是全局相关。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
只要预测出错,往往是连续两次而不是一次。
5.解决方法 采用两个预测位的预测机制。 在两个预测位的分支预测中,更改对分支的 预测必须有两次连续预测错误。 两位分支预测的状态转换图
虚拟存储器的特点
9/28
4.3 控制相关的动态解决技术
分支不成功 分支成功 分支成功 分支不成功 分支预测: 不成功 01 分支成功 00 11 分支成功 10
F8,F6,F2
F10,F0,F6 F6,F8,F2
25/28
4.3 控制相关的动态解决技术
解 状态如图4.15所示。
保留站
名称
Add1
忙 操作 no no
Vj
Vk
Qj
Qk
目的
Add2
Add3
no
#3 #5
Regs[4 Mult1 no MULTD Mem[45+Regs[R2]] Mem[34+Regs[R2]] #3 Mult2 yes DIVD
第四章 指令级并行
4.3 控制相关的动态解决技术
处理器一个时钟周期流出多条指令受到以下两 个因素的限制:
• •
流出 n 条指令的处理器中,遇到分支指令 的 速度也快了n倍;
根据 Amdahl 定律可知,随着机器 CPI 的降 低 , 控制相关对性能的影响越来越大。
虚拟存储器的特点
1/28
4.3 控制相关的动态解决技术
20/28
4.3 控制相关的动态解决技术
(2)在控制相关消除之前指令前瞻执行; (3)对基本块采用动态调度。 2. 基于硬件的前瞻是动态地根据数据相关性来选择 指令和指令的执行时间。
实质:数据流驱动运行(data-flow execution)
只要操作数有效,指令就可以执行。 3.指令的确认 前瞻执行的指令产生的结果要一直到指令处 于非前瞻执行状态时,才能确定为最终结果,才
虚拟存储器的特点
13/28
1. 分支目标缓冲结构和工作过程
当前 PC 查找、比较 地址标示 分 支 目 标 缓 冲 分支目标 PC 分支目标指令
命中? N
Y
命中,则认为本指令是分支,且分支成功,以分支 目标缓冲中分支目标 PC 作为下一条指令地址
没有命中,则认为本指令不是 分支,按普通指令执行
图4.12 分支目标缓冲的结构和工作过程
虚拟存储器的特点
18/28
4.3 控制相关的动态解决技术
4. 对分支预测机制的一种改进 在缓冲区中不仅存入目的地址,而且还存入一 个或多个目标指令。 有两种潜在的好处:
在连续取指令之前,可以较长时间的访问缓冲 区,这时的分支目的缓冲区较大。
对目的指令进行缓冲,构成称为分支目标指令 缓冲(branch folding)的结构,它可使无条 件分支的延迟达到零,甚至有的条件分支也可 达到零延迟 。
26/28
ROB
项号
1
忙 no no LD LD
指令
F6,34(R2) F2,45(R3) F8,F6,F2 F10,F0,F6
状态 确认 确认 写结果 写结果 执行
目的
F6 F2 F0
值 Mem[34+Regs[R2]] Mem[45+Regs[R3]] #2Regs[F4] #1-#2
2
3 4 5 6
虚拟存储器的特点
12/28
4.3 控制相关的动态解决技术
4.3.2 分支目标缓冲
目标:将分支的开销降为零。 方法:分支目标缓冲 将分支成功的分支指令的地址和它的分支目 标地址都放到一个缓冲区中保存起来,缓冲区 以分支指令的地址作为标示;取指令阶段,所 有指令地址都与保存的标示作比较,一旦相同, 我们就认为本指令是分支指令,且认为它转移 成功,并且它的分支目标(下一条指令)地址 就是保存在缓冲区中的分支目标地址。 这个缓冲区就是分支目标缓冲区(BranchTarget Buffer,简记为BTB,或者BranchTarget Cache)。
23/28
虚拟存储器的特点
使用再定序缓冲的处理部件的硬件结构
从指令部件来 再定序缓冲 ……
浮点 操作 队列
去存储器 操作总线 操作数总线 (地址/数据)
浮点寄存器组
保留站 从存储器来 (取的结果) ) FP 加法器 公共数据总线 FP 乘法器
图4.14 采用Tomasulo算法并支持前瞻执行的DLX浮点部件的结构
决定预测的走向。 记录分支历史的方法有以下几种: (1)仅仅记录最近一次或最近几次的分支历史; (2)记录分支成功的目标地址;
•,相当于前
面两种方式的结合; (4)记录分支目标地址的一条或若干条指令。
虚拟存储器的特点
3/28
4.3 控制相关的动态解决技术
分支预测缓冲技术(Branch-Prediction Buffer或者 Branch History Table,简写为BTB或者BHT): 目前广泛使用的最简单的动态分支预测技术。 使用一片存储区域,记录最近一次或几次分支特 征的历史。 1. 只有1个预测位的分支预测缓冲
2
2 0
不是
不是
表4.3 采用BTB技术时指令在各种情况下的延迟
虚拟存储器的特点
16/28
4.3 控制相关的动态解决技术
例4.7 按表4.3计算分支转移总的延迟,根据下面的假 设,计算分支目标缓冲的性能。 (1)对于BTB中的指令,预测准确率90% (2)缓冲区命中率90% (3)不在BTB中分支转移成功的比例为60% 解 根据表4.3的分类,性能计算包括4个部分: ( 1 )在 BTB 中,预测成功,实际成功,此时的 延迟为0。 (2)在BTB中,预测成功,实际不成功,此时 的延迟为:
虚拟存储器的特点
5/28
4.3 控制相关的动态解决技术
2. 分支预测缓冲技术包括两个步骤
分支预测 如果当前缓冲记录的预测位为“1”,则预
测分为成功;如果预测位为“0”,则预测分支 为不成功。
预测位修改 如果当前分支成功,则预测位置为“1”; 如果当前分支不成功,预测位置为“0”。
3. 分 支 预 测 错 误 时, 预测位就被修改 ,并且需 要恢复现场,程序从分支指令处重新执行。
否则预测下一次分支不成功。
预测位的修改和两位预测时相同: 当分支成功时计数器的值加1,不成功时减1。
研究表明: n位分支预测的性能和两位分支预测差不多, 因而大多数处理器都只采用两位分支预测。
11/28
4.3 控制相关的动态解决技术
7.对于真实的应用程序,两位的分支预测的准 确率可达到多少呢? SPEC89标准程序的测试: 在 使 用 4096 个 记 录 项 的 缓 冲 区 时 , 分 支 预测准确率可达到99%到82%。 使用无穷多历史记录项的分支预测缓冲, 只有少量程序的分支预测准确率仅仅比 4096 个记录项提高 1% ,多数程序的预测精度是相 同的。 因此,对于 SPEC89 应用环境而言, 4K 的 缓冲区是恰当的。 8.上述分支预测机制对于改进后的DLX流水线没 有帮助。
虚拟存储器的特点
6/28
4.3 控制相关的动态解决技术
得到分支结果 i+1 分支指令 i-1 i i+2
猜测执行路径 实际执行路径
p+1
p+2
图4.10 分支预测执行不成功和重新执行过程
虚拟存储器的特点
7/28
4.3 控制相关的动态解决技术
例4.6 一个循环共循环10次,它将分支成功9次, 1 次不成功。假设此分支的预测位始终在 缓冲区中。那么分支预测的准确性是多少? 解 这种固定的预测将会在第一次和最后一次 循环中出现预测错误。
4.3 控制相关的动态解决技术
分支预测: 成功
分支不成功 分支不成功
图4.11 具有两个分支预测位的分支预测缓冲状态转换机制
虚拟存储器的特点
10/28
4.3 控制相关的动态解决技术
6. n位分支预测缓冲
采用n位计数器,则计数器的值在0到2n-1之间:
当 计 数 器 的 值 大 于 或 等 于 最 大 值 的 一 半 ( 2n-1 ) 时,则预测下一次分支成功;
yes MULTD F0,F2,F4
yes SUBD yes DIVD
F8
F10 F6
yes ADDD
F6,F8,F2
写结果
#4+#2
浮点寄存器状态表
域 ROB号 忙
F0 3 yes
F2
F4
F6 6
F8 4 yes
F10 5 yes
… … …
F30
no
no
yes
no
通过再定序缓冲,可以在进行精确异常处理的同时进行动态指令调度。
第一次预测错误是源于上次程序的执行, 因为上一次程序最后一次分支是不成功的。
最后一次预测错误是不可避免的,因为前 面的分支总是成功,共九次。 因此,尽管分支成功的比例率是90%, 但分支预测的准确性为80%(两次不正确, 8次确)。
虚拟存储器的特点
8/28
4.3 控制相关的动态解决技术
4.1位预测机制的缺点
预测错误,清除取来的 指令并从分支的另外 一个目标取指令,删除 BTB 中对应项
预测成功, 后续指令无 延迟执行
问题:解决预测错误或不命中的延迟。
4.3 控制相关的动态解决技术
3. 采用BTB技术时指令在各种情况下的延迟
指令在BTB中? 预测结果 实际的动作 是 是 延迟周期 0
成功
成功
成功
不成功 成功 不成功
索引:分支指令地址的低位。
存储区:1位的分支历史记录位,又称为
预测位,记录该指令最近一次 分支是否成功。