冒险 (计算机系统结构)

✍ dations ◷ 2025-09-14 03:57:14 #冒险 (计算机系统结构)

冒险(hazard)又称作危障或险象,是指在计算机CPU的微体系结构中,指令流水线乱序执行中的一些问题可能会导致得到不正确的计算结果。有3类典型的冒险:

有几种方法用于应对这些风险,如流水线停顿(流水线气泡),寄存器直通等待。

指令在一个流水线处理器中的执行被分为若干阶段,因此在一个时刻有多条指令处于流水线的不同阶段上被处理。如取操作数、执行等等。Intel的Pentium就是处理器流水线。有的处理器进一步是指令乱序执行,如Intel的Pentium Pro开创的Intel P6微体系结构。指令的乱序执行就会引入一些危险的情况。

指令乱序执行时,可能会发生读取数据与写入数据之间的时序与空间的相关性,成为数据冒险。如果不加以处理,可能会导致竞态条件。 有3种可能的数据冒险:

以下为先写后读(RAW)的示例:

i1. R2 <- R1 + R3
i2. R4 <- R2 + R3

第一个指令是计算一个值,并将其储存在R2,而第二个指令是使用这个值计算结果并储存在R4,但是在我们拿出第二步的操作数时,第一步的结果还未被储存。因此我们具有一种数据相关性。我们可以说那有 一种数据依赖性对于指令i2,他依赖于指令i1的完成。

结构冒险是指多条指令同时要访问处理器一处硬件。典型例子是一个存储单元被一条指令取操作数同时另一条指令要写入结果。

又称分支冒险,指令流水时,处理器遇到分支指令,不能在流水开始阶段就判断出分支结果。

流水线汽泡,也称作流水线停顿,可以同时解决上述3种冒险。指令译码时如果控制器发现可能存在冒险,就插入NOP(No Operation)指令。这样在有风险的指令进入流水线时,上一条指令已经在流水线中经过了充分多的周期,从而化解了冒险。如果插入的NOP的数量等于流水线的级数,那么处理器就排空了整个流水线。这被称为冲刷流水线(flushing the pipeline)。

有几种方案与算法解决数据冒险。

避免控制风险的办法:

相关

  • 生理生理学(英语:physiology/ˌfɪziˈɒlədʒi/; 来自古希腊语 φύσις (physis),意即:“nature, origin”,和 -λογία (-logia),意即:“study of” ) 是生物学的一门子领域,研
  • *激发是在任意能级上能量的提升。在物理学中有对于这种能级有专门定义:往往与一个原子被激发至激发态有关。在量子力学中,一个系统(例如一个原子,分子或原子核)的激发态是该系统中
  • 秦越人约周威烈王十九年(公元前407年)前后地点有三种说法:扁鹊(约前407年-约前310年),原姓秦,名越人,一名缓,号卢医、扁鹊,中国战国时代医师。约生于周威烈王十九年(公元前407年)前后,卒于周赧王
  • 黄岛区黄岛区是中国山东省青岛市所辖的一个市辖区。地理坐标为北纬35°35′~36°08′,东经119°30′~120°18′。黄岛区与第九个国家级新区青岛西海岸新区实行一个机构两块牌子的管理
  • 迈克尔·阿加齐迈克尔·阿加齐(意大利语:Michael Agazzi;1984年7月3日-)是一位意大利足球运动员。在场上司职守门员。他现在效力于切塞纳足球俱乐部。
  • 七甸街道七甸街道是中国云南省昆明市呈贡区下辖的一个街道,位于呈贡区东北部,距呈贡区主城22公里,距昆明市18公里。东临宜良县,南接澄江县,北依昆明市官渡区。辖区面积126平方千米,2008年
  • 徐绍沆徐绍沆(?-?),号云瞻,常州府宜兴县人。明朝政治人物,官至河南按察使。万历四十四年丙辰进士。天启二年任户部郎中。六年闰六月,升河南副使徐绍沆为本省右参政,分巡大梁。崇祯元年二月,
  • 李郁芬 (1928年)李郁芬(1928年2月-2020年12月8日),中华人民共和国学者,复旦大学原子能系教授,曾参与中华人民共和国第一颗原子弹研制,国家发明一等奖、全国科学大会奖获得者。
  • 伊本·开拉尼希伊本·开拉尼希(阿拉伯语:ابن القلانسي‎) (c. 1071 ~1160年3月18日)是一名生活在12世纪大马士革的阿拉伯政客和编年史家。开拉尼希出身于班努·塔米姆(英语:Banu Ta
  • T-1教练机T-1教练机是二次大战后日本首次研发的军用机,由于二战后重建航空自卫队初期使用美制教练机而想到要研制国产教练机,此机以美制F-86军刀战斗机为蓝本而由富士重工业于1958年推出,故T-1可以说是F-86的双座教练机型,初期采用英国制喷射发动机(T-1A),之后改用日本国产发动机(T-1B),T-1教练机已于2006年退役