当前位置:首页 > > 充电吧
[导读]Atiitt 流水线停顿问题与解决方法 1. 流水线技术方式分类 12. 但在实际中,会出现2种情况使流水线停顿下来或不能启动: 22.1. 1、多个任务在同一时间周期内争用同一个流水段 22.2.

Atiitt 流水线停顿问题与解决方法

 

1. 流水线技术方式分类 1

2. 但在实际中,会出现2种情况使流水线停顿下来或不能启动: 2

2.1. 1、多个任务在同一时间周期内争用同一个流水段 2

2.2. 数据依赖。 2

3. 处理器流水线中的冲突 2

3.1. 7.1 流水线中的资源冲突 2

3.2. 7.2 流水线中的数据冲突 3

4. 为了能够尽可能的减少流水线停顿带来的性能损失,可以使用“动态调度”的方法 3

 

 

1. 流水线技术方式分类

3、按连接的方式分类:

  静态流水线:同一时间内,多功能结构只能按一种功能的连接方式工作。

动态流水线:同一时间内,可以有多种功能的连接方式同时工作。

4、按处理的数据类型分类:

  标量流水线:一般数据

  向量流水线:矢量数据。X+Y=Z每一个代表一维数据。

5、流水线结构上分类:

  线性流水线:指各功能模块顺序串行连接,无反馈回路,如前面介绍的。

  非线性流水线:带有反馈回路的流水线。

 

 

 

2. 但在实际中,会出现2种情况使流水线停顿下来或不能启动:

流水线技术

2.1. 1、多个任务在同一时间周期内争用同一个流水段

。例如,假如在指令流水线中,如果数据和指令是放在同一个储存器中,并且访问接口也只有一个,那么,两条指令就会争用储存器;在一些算数流水线中,有些运算会同时访问一个运算部件。

2.2. 数据依赖。

2、

比如,A运算必须得到B运算的结果,但是,B运算还没有开始,A运算动作就必须等待,直到B运算完成,两次运算不能同时执行。
解决方案:
第一种情况,增加运算部件的数量来使他们不必争用同一个部件;
第二种情况,用指令调度的方法重新安排指令或运算的顺序。

3. 处理器流水线中的冲突


处理器的流水线设计中另外一个问题便是流水线中的冲突(Hazards),主要分为资源冲突和数据冲突。
 

3.1. 7.1 流水线中的资源冲突


 
资源冲突是指流水线中硬件资源的冲突,最常见的是运算单元的冲突,譬如除法器需要多个时钟周期才能完成运算,因此在前一条除法指令运算完成之前,新的除法指令如果也需要除法器则会存在着资源冲突。在处理器的流水线中硬件资源冲突种类还有较多,在此不做一一赘述。解决资源冲突的方法可以通过复制硬件资源或者流水线停顿等待硬件资源的方法解决。
 

3.2. 7.2 流水线中的数据冲突


 
数据冲突是指不同的指令之间的操作数存在数据相关性造成的冲突。常见的数据相关性包括:
 
WAR(Write-After-Read)相关性,又称先读后写相关性:表示“后序执行的指令需要写回的结果寄存器索引”与“前序执行的指令需要读取的源操作数寄存器索引”相同造成的数据相关性。因此,从理论上来讲,在流水线中“后序指令”一定不能比和它有WAR相关性的“前序指令”先执行,否则“后序指令”先写回了结果至通用寄存器组中,“前序指令”再读取操作数时,就会读到错误的数值。
 
WAW(Write-After-Write)相关性,又称先写后写相关性:表示“后序执行的指令需要写回的结果寄存器索引”与“前序执行的指令需要写回的结果寄存器索引”相同造成的数据相关性。因此,从理论上来讲,在流水线中“后序指令”一定不能比和它有WAW相关性的“前序指令”先执行,否则“后序指令”先写回了结果至通用寄存器组中,“前序指令”再写回结果至通用寄存器组中就会将其覆盖。
 
RAW(Read-After-Write)相关性,又称先写后读相关性:表示“后序执行的指令需要读取的源操作数寄存器索引”与“前序执行的指令需要写回的结果寄存器索引”相同造成的数据相关性。因此,从理论上来讲,在流水线中“后序指令”一定不能比和它有RAW相关性的“前序指令”先执行,否则“后序指令”便会从通用寄存器组中读回错误的源操作数

 

4. 为了能够尽可能的减少流水线停顿带来的性能损失,可以使用“动态调度”的方法

 

之所以RAW称之为真数据相关,是因为其没有办法通过寄存器重命名的方法将相关性去除。一旦产生RAW相关性,后序的指令一定要使用和它有RAW数据相关性的前序指令执行完成的结果,从而造成流水线的等待停顿。为了能够尽可能的减少流水线停顿带来的性能损失,可以使用“动态调度”的方法。动态调度的思想本质上可以归结于以下方面:
 
一方面采用数据旁路传播(Data Bypass and Forward)技术尽可能的让前序指令的计算结果更快的旁路传播给后序相关指令的操作数;
 
另一方面尽可能的让后序相关指令在等待的过程中不阻塞流水线而让其他无关的指令能够继续顺利执行。
 
早期的Tomasulo算法中通过保留站可以达到这两方面的功效,但是保留站由于保存了操作数无法做到很大的深度(否则面积和时序的开销巨大)。
 
最新的高性能处理器普遍采用在每个运算单元前配置乱序发射队列(Issue Queue)的方式,发射队列仅追踪RAW相关性而并不存放操作数,因此可以做的很深(譬如16个表项)。在发射队列中的指令一旦相关性解除之后,再从发射队列中发射出来读取物理寄存器组(Physical Register File),然后发送给运算单元开始计算。
 
有关处理器的数据相关性问题和包括动态调度技术在内的解决方法,如果阐述清楚几乎可以单独成书,本文限于篇幅只能提纲挈领式的予以简述。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭