指令级并行性及其动态扩展
计算机体系结构期末试题-湖南城市学院

题一11.计算机系统结构的层次结构由高到低分别为应用语言机器级,高级语言机器级,汇编语言机器级,操作系统机器级,传统机器语言机器级,微程序机器级12.计算机系统弗林(Flynn)分类法,把计算机系统分成单指令流单数据流(SISD)、单指令流多数据流(SIMD)、多指令单数据流和多指令多数据流四大类。
13.透明指的是客观存在的事物或属性从某个角度看不到,它带来的好处是简化某级的设计,带来的不利是无法控制。
22.数据结构和数据表示之间是什么关系?确定和引入数据表示的基本原则是什么?数据表示是能由硬件直接识别和引用的数据类型。
数据结构反映各种数据元素或信息单元之间的结构关系。
数据结构要通过软件映象变换成机器所具有的各种数据表示实现,所以数据表示是数据结构的组成元素。
(2分)不同的数据表示可为数据结构的实现提供不同的支持,表现在实现效率和方便性不同。
数据表示和数据结构是软件、硬件的交界面。
(2分)除基本数据表示不可少外,高级数据表示的确定和引入遵循以下原则:(1)看系统的效率有否提高,是否减少了实现时间和存储空间。
(2)看引入这种数据表示后,其通用性和利用率是否高。
15.引入数据表示的两条基本原则是:一看系统的效率有否提高;二看数据表示的通用性和利用率是否高。
13.计算机组成指的是计算机系统结构的逻辑实现,包括机器级内的数据流和控制流的组成及逻辑设计等。
计算机实现指的是计算机组成的物理实现,。
21、软件和硬件在什么意义上是等效的?在什么意义上是不等效的?逻辑上等效,性能、价格、实现难易程度上不一样。
22.说明翻译和解释的区别和联系.区别:翻译是整个程序转换,解释是低级机器的一串语句仿真高级机器的一条语句。
联系:都是高级机器程序在低级机器上执行的必须步骤。
19.计算机系统结构也称计算机体系结构,指的是传统机器级的系统结构。
它是软件和硬件/固件的交界面,是机器语言汇编语言程序设计者或编译程序设计者看到的机器物理系统的抽象。
系统结构名词解释(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。
是指指令之间存在的一种并行性,利用它,计算机可以并行执行两条或两条以上的指令。
指令调度:通过在编译时让编译器重新组织指令顺序或通过硬件在执行时调整指令顺序来消除冲突。
指令级并行的概念

目 录
• 指令级并行简介 • 指令级并行技术 • 指令级并行应用场景 • 指令级并行面临的挑战与解决方案 • 指令级并行未来展望
01
指令级并行简介
定义与特点
定义
指令级并行是指计算机在执行程序时, 通过同时执行多个指令来提高处理速 度的一种并行处理技术。
特点
指令级并行主要依赖于处理器中的指 令流水线,通过并行执行多个指令, 实现处理速度的提升。
详细描述
超线程技术允许在一个物理处理器核心上同时运行多个线程,从而实现指令级的 并行处理。通过精细的调度和管理,超线程技术可以有效地利用处理器资源,提 高处理器的整体性能。
VLIW(Very Long Instruction Word)技术
总结词
VLIW技术是一种将多个操作码和操作数组合到一个长指令中,由处理器一次执行的方法。
VS
详细描述
EPIC技术强调在编译阶段对程序进行并 行化处理,通过分析程序中的指令关系和 数据依赖关系,自动地生成并行执行的代 码。EPIC技术的目标是最大化处理器的 并行执行能力,从而提高程序的执行效率 。
03
指令级并行应用场景
科学计算
科学计算是利用计算机进行大规模数值计算以解决科学研究 和工程领域中的复杂问题。指令级并行技术可以提高科学计 算的效率和精度,例如在气候模拟、流体动力学模拟、物理 模拟等领域的应用。
指令缓存失效问题
指令缓存失效问题
由于指令的执行结果可能被缓存在缓存中, 当指令并行执行时,缓存失效可能导致指令 重新读取数据,从而影响并行执行的效率。
解决方案
通过缓存行对齐技术,将并行执行的指令对 齐到同一缓存行,以减少缓存失效的次数。 此外,可以使用写回策略来将指令的执行结
计算机体系结构的基本概念

计算机体系结构的基本概念计算机体系结构是指机器语言程序的设计者或是编译程序设计者所看到的计算机系统的概念性结构和功能特性。
Amdahl所定义的体现结构是指程序员面对的是硬件的系统。
所关心的是如何合理的进行软硬件功能的分配。
计算机系统结构是指机器语言级的程序员所了解的计算机的属性,即外特性。
可以包含数据表示,寄存器定义、数量、使用方式,指令系统,中断系统,存存储系统,IO系统等。
计算机组成是计算机结构的逻辑实现。
可以包含数据通路宽度,专用部件设置,缓冲技术,优化处理等。
计算机的实现是指其计算机组成的物理实现。
包括处理机,主存部件的物理结构,器件的集成度,速度的选择,模块、硬件、插件底板的划分和连接。
从使用语言的角度,可以把计算机系统按功能从高到低分为7级:0应用语言机器级、1高级程序语言机器级、2汇编语言机器级、3操作系统机器级、4传统机器语言机器级、5微程序机器级和6电子线路级。
3~6级为虚拟机,其语言功能均由软件实现。
硬件功能分配的基本原则:(1)功能要求。
首先是应用领域对应的功能要求,其次是对软件兼容性的要求;(2)性能要求。
如运算速度,存储容量,可靠性,可维护性和人机交互能力等;(3)成本要求。
体系结构设计的方法有三种:由上而下-从考虑如何满足应用要求开始设计;由下而上-基于硬件技术所具有的条件;由中间开始的方法。
体系设计的步骤:需求分析、需求说明、概念性设计、具体设计、优化和评价。
计算机体系结构的分类:(1)弗林FL YNN分类法:按指令流和数据流将计算机分为4类:①单指令流、单数据流-Single Instruction Stream Single Data Stream,SISD。
计算机,即传统的单处理机,通常用的计算机多为此类,如脉动阵列计算机systolic array;②单指令流、多数据流-Multiple,SIMD。
典型代表是并行处理机。
其并行性在于指令一级。
如ILLIAC、PEPE、STARAN、MPP等;③MISD计算机;④MIMD计算机。
计算机体系结构性能优化方法

计算机体系结构性能优化方法在计算机体系结构的发展过程中,性能优化是一个至关重要的环节。
性能优化是指在保持计算机系统硬件和软件功能的前提下,提高其计算速度、响应时间、资源利用率和可靠性等方面的手段和措施。
本文将介绍一些常见的计算机体系结构性能优化方法。
一、并行计算并行计算是通过将一个任务拆分为多个子任务,然后将这些子任务分配给多个处理器同时执行的方法。
它可以充分利用多核处理器的并行计算能力,提高计算吞吐量和并发能力。
在并行计算中,需要注意任务的划分和调度,合理安排任务的调度顺序和负载均衡,以充分发挥并行计算的优势。
二、指令级并行指令级并行是通过同时执行多条指令来提高计算机的性能。
它包括指令并发和流水线技术。
指令并发是指在同一时钟周期内并行执行多条指令,充分利用处理器的执行单元。
流水线技术是指将指令的执行过程划分为多个阶段,使多条指令在不同阶段同时执行,以提高指令的吞吐量。
三、存储器层次结构优化存储器层次结构是计算机存储器的组织方式。
在性能优化中,存储器的访问速度是一个关键因素。
通过合理设计存储器的层次结构,如缓存技术、预取技术和虚拟存储器技术,可以提高存储器的访问速度和命中率,减少访问延迟,从而提高计算机的性能。
四、并行I/O优化在大规模数据处理和并行计算中,I/O操作成为性能瓶颈。
通过采用并行I/O技术,可以同时进行多个I/O操作,提高数据传输的速度和并发能力。
在并行I/O优化中,还可以使用缓冲区和预读取技术来提高I/O性能,减少CPU等待时间。
五、负载均衡优化负载均衡是指将任务合理分配给多个处理器,使得各个处理器的负载均衡,提高系统的整体性能。
在负载均衡优化中,需要考虑任务的复杂度和执行时间,采用任务分配算法和调度算法来实现任务的均衡分配。
六、优化算法和数据结构优化算法和数据结构是计算机程序设计的关键。
通过优选算法和数据结构,可以提高程序的效率和性能。
在实际应用中,可以使用一些常见的优化算法,如贪心算法、分治算法和动态规划算法,以及高效的数据结构,如哈希表和平衡二叉树,来优化计算机的性能。
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
① 根据历史记录(预测位状态)进行分支预测 ② 根据实际分支情况修改预测位
计算机系统结构--《张晨曦、王志英》课后习题参考答案

第1章计算机系统结构的基本概念1.1 解释下列术语层次机构: 按照计算机语言从低级到高级的次序, 把计算机系统按功能划分成多级层次结构, 每一层以一种不同的语言为特征。
这些层次依次为: 微程序机器级, 传统机器语言机器级, 汇编语言机器级, 高级语言机器级, 应用语言机器级等。
虚拟机: 用软件实现的机器。
翻译: 先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序, 然后再在这低一级机器上运行, 实现程序的功能。
解释: 对于高一级机器上的程序中的每一条语句或指令, 都是转去执行低一级机器上的一段等效程序。
执行完后, 再去高一级机器取下一条语句或指令, 再进行解释执行, 如此反复, 直到解释执行完整个程序。
计算机系统结构: 传统机器程序员所看到的计算机属性, 即概念性结构与功能特性。
在计算机技术中, 把这种本来存在的事物或属性, 但从某种角度看又好像不存在的概念称为透明性。
计算机组成: 计算机系统结构的逻辑实现, 包含物理机器级中的数据流和控制流的组成以及逻辑设计等。
计算机实现: 计算机组成的物理实现, 包括处理机、主存等部件的物理结构, 器件的集成度和速度, 模块、插件、底板的划分与连接, 信号传输, 电源、冷却及整机装配技术等。
系统加速比: 对系统中某部分进行改进时, 改进后系统性能提高的倍数。
Amdahl定律: 当对一个系统中的某个部件进行改进后, 所能获得的整个系统性能的提高, 受限于该部件的执行时间占总执行时间的百分比。
程序的局部性原理: 程序执行时所访问的存储器地址不是随机分布的, 而是相对地簇聚。
包括时间局部性和空间局部性。
CPI: 每条指令执行的平均时钟周期数。
测试程序套件: 由各种不同的真实应用程序构成的一组测试程序, 用来测试计算机在各个方面的处理性能。
存储程序计算机: 冯·诺依曼结构计算机。
其基本点是指令驱动。
程序预先存放在计算机存储器中, 机器一旦启动, 就能按照程序指定的逻辑顺序执行这些程序, 自动完成由程序所描述的处理工作。
指令级并行

可弱化为:指令执行顺序的改变不能导致程序中发 生新的异常。
如果能做到保持程序的数据相关和控制相关, 就能保持程序的数据流和异常行为。
例:
DADDU R2,R3,R4
BEQZ R2,L1
LW
R1,0(R2)
L1 :
如果不保持关于R2的数据相关,程序的执 行结果就会改变。
软硬件结合方法:显式并行指令计算EPIC。
4.5 循环展开和指令调度
4.5.1 循环展开和指令调度的基本方法 为了充分发挥流水线的作用,必须设法让
它满负荷工作。因此要充分开发指令之间 存在的并行性,找出不相关的指令序列, 让它们在流水线上重叠并行执行。 增加指令间并行性最简单和最常用的方法
浮点计算
另一个浮点计算
3
浮点计算 浮点store(S.D)
2
浮点load(L.D) 浮点计算
1
浮点load(L.D) 浮点store(S.D)
0
Load指令的结果可以通过定向路径及时送给 store指令,所以延迟为0,不用插入停顿。
例4.6 对于下面的源代码,转换成MIPS汇编 语言,在不进行指令调度和进行指令调度两 种情况下,分析其代码一次循环所需的执行 时间。
1.流流水水线线处处理理机机的的实实际际CCPIP就I是理想流水线的
CPI加上各类停顿的时钟周期数: CPI流水线 = CPI理想 + 停顿结构冲突
+ 停顿数据冲突+ 停顿控制冲突
CPI理想即理想CPI,是衡量流水线最高性能 的指标之一。
IPCIP(C:In每s个tru时c钟ti周on期s内P完er成C的y指cl令e 条)数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
3.3.5 Pipelining Control Hazards
Taxonomy
Structural hazards Data hazards
of Hazards
12
Modify MIPS Datapath
Move the Branch Computation Forward
IF/ID 4
ID/EX
EX/MEM
MEM/WB
ADD
MUX
转移 发生
0?
MUX
16
Sign extend
32
MUX
13
数 据 存 储 器
PC
ALU
IR
IR11..15 MEM/ WB .IR
if R2=0 then ADD R1,R2,R3
ADD R1,R2,R3 if R2=0 then SUB R4,R5,R6 (b)From target
ADD R1,R2,R3 if R2=0 then SUB R4,R5,R6
(a)From before
(c)From fall-through
These are conflicts over hardware resources.
Instruction depends on result of prior computation which is not ready (computed or stored) yet OK, we did these, Double Bump, Forwarding path, software scheduling, otherwise have to stall
10
IF/ID 4
ID/EX
EX/MEM
MEM/WB
ADD
MUX
转移 发生
0?
AL
IR6..10
U
MUX
16
Sign extend
32
MUX
11
数 据 存 储 器
PC
ALU
IR
IR11..15 MEM/ WB .IR
寄 存 器
MUX
数 据 存 储 器
Pipeline status for predict-taken
Hardware
Compiler
Treat every branch as taken (evidence: more than 60% branches are taken) As soon as the branch target address is computed, assume the branch to be taken and begin fetching and executing at the target. Only useful when the target is known before the branch outcome. No advantage at all for MIPS 5-stage pipeline. Can improve the performance by coding the most frequent case in the taken path.
5
二、The Penalty of Control hazard
b=3
6
三、Dealing with the control hazard
Four simple solutions
Freeze or flush the pipeline
Predict-not-taken (Predict-untaken)
48 or 72
15
(4)Delayed branch
Good
Strange
Just 1 cycle to figure out what the right branch address is So, not 2 or 3 cycles of potential NOP or stall
Can improve the performance by coding the most frequent case in the untaken path.
9
(3)Predict –taken
Most branches(60%) are taken, so we should make the taken branch more faster. Why not try assuming the branch always taken?
news
16
Branch delay slot
Hence the name: branch delay slot
Consequence
The instruction cycle after the branch is used for address calculation , 1 cycle delay necessary SO…we regard this as a free instruction cycle, and we just DO IT
20
Example: rewrite the code (b-2)
Loop: LW R2, 0(R1) ADD R3, R2, R4 SW R3, 0(R1) DIV ….. …… SUB R1, R1, #4 BNEZ R1, Loop Loop: LW R2, 0(R1) ADD R3, R2, R4 DIV …... …... SUB R1, R1, #4 BNEZ R1, Loop SW R3, +4(R1)
44 BEQ R1, R3, 24 48 AND R12, R2, R5 72 LW R4, 50(R7) 76 48 AND R12, R2, R5 IF ID IF EX idle IF MEM idle ID IF WB idle idle idle IF idle idle idle ID idle idle EX
17
How to adjust the codes?
ADD R1,R2,R3 if R2=0 then Delay slot SUB R4,R5,R6 ADD R1,R2,R3 if R2=0 then Delay slot ADD R1,R2,R3 if R2=0 then Delay slot SUB R4,R5,R6
7
(1)Freeze or flush the pipeline
8
(2)Predict not-taken
Hardware:
Treat every branch as not taken (or as the formal instruction)
Compiler:
When branch is not taken, the fetched instruction just continues to flow on. No stall at all. If the branch is taken, then restart the fetch at the branch target, which cause 3 stall.(should turn the fetched instruction into a no-op)
information
OK, it’s always 1 cycle, and we always have to wait And on MIPS, this instruction always executes, no matter whether the branch taken or not taken. (hardware scheme)
Control
hazards can cause a greater and greater performance loss for MIPS pipeline than do data hazards.
3
Example: Branches
4
Branches of Basic Pipelined Datapath
Branch is taken: 1 stall
44 BEQ R1, R3, 24 IF ID EX MEM WB
48 AND R12, R2, R5
72 LW R4, 50(R7) 76 80
IF
idle
IF
idle
ID IF
idle
EX ID IF
idle
MEM EX ID WB MEM EX
Branch is not taken: 3 stall
18
Example: rewrite the code (a)
19
Example: rewrite the code (b-1)
Loop: LW R2, 0(R1) ADD R3, R2, R4 SW R3, 0(R1) …… SUB R1, R1, #4 BNEZ R1, Loop
LW R2, 0(R1) Loop: ADD R3, R2, R4 SW R3, 0(R1) …… SUB R1,R1, #4 BNEZ R1, Loop LW R2, 0(R1)
21
Schedualing strategy vs. performance improvement
Scheduling Requirements strategy a. From before branch b. From target Improves when? performance