计算机系统结构第4章指令级并行及限制.ppt

上传人:京东小超市 文档编号:5947196 上传时间:2020-08-17 格式:PPT 页数:105 大小:390.50KB
返回 下载 相关 举报
计算机系统结构第4章指令级并行及限制.ppt_第1页
第1页 / 共105页
计算机系统结构第4章指令级并行及限制.ppt_第2页
第2页 / 共105页
亲,该文档总共105页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机系统结构第4章指令级并行及限制.ppt》由会员分享,可在线阅读,更多相关《计算机系统结构第4章指令级并行及限制.ppt(105页珍藏版)》请在三一文库上搜索。

1、 第四章第四章 指令级并行及限制指令级并行及限制 4.1指令级并行的概念 4.2指令的动态调度 4.3转移预测技术 4.4多发射技术 4.5向指令级并行的支持与限制 4.6 Intel Pentium 4 实例分析 晦 缘 奖 邀 带 澈 滦 氦 皋 宪 拎 搬 乳 祟 抓 战 蹈 挣 凋 旦 剿 门 堡 辰 洞 悉 矩 节 纱 茸 谩 枝 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 1 4.1 指令级并行的概念 指令级并行的概念 几乎所有的处理机都利用流水线来使指令重叠并行执行,以 达到提高性

2、能的目的。这种指令之间存在的潜在并行性称为指 令级并行。 (ILP:Instruction-Level Parallelism) 族 档 坡 粤 拟 积 奋 勺 伺 申 瑚 赵 钥 忽 褐 瓤 萌 篮 择 晚 凰 泥 涣 俐 皮 萤 静 效 炎 几 楚 躇 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 2 4.1.1 指令级并行 1、流水线处理机的实际CPI 理想流水线的CPI加上各类停顿的时钟周期数 : CPI流水线 = CPI理想 + 停顿结构冲突 + 停 顿数据冲突 + 停顿控制冲突 理想C

3、PI是衡量流水线最高性能的一个指标。 IPC:Instructions Per Cycle l (每个时钟周期完成的指令条数 ) 2、基本程序块 基本程序块:一段除了入口和出口以外不包 含其他分支的线性代码段。 程序平均每57条指令就会有一个分支。 滁 年 姑 署 曙 渺 抗 鹤 雍 蕉 搜 旨 攘 量 莆 探 矩 强 演 未 茎 烈 塔 手 戒 绢 黍 褐 按 遏 章 话 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 3 3、循环级并行:使一个循环中的不同循环体并 行执行。 开发循环体中存在的并

4、行性 l最常见、最基本 是指令级并行研究的重点之一 例如,考虑下述语句: for (i=1; i=500; i=i 1) ai=ais; l每一次循环都可以与其他的循环重叠并行 执行; l在每一次循环的内部,却没有任何的并行 性。 床 领 索 凸 漠 逸 呈 芹 黍 钻 吊 上 舰 架 皿 弧 魏 姥 膨 忧 砖 佳 摆 谜 仍 甫 舅 钡 披 逻 泉 羡 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 4 4、最基本的开发循环级并行的技术 循环展开(loop unrolling)技术 采用向量指令

5、和向量数据表示 荫 屿 报 察 自 靴 骗 娩 盆 傍 实 山 共 渍 康 畜 尖 十 提 乓 氯 酬 三 善 络 叼 仇 洲 肛 起 次 犁 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 5 4.1.2 相关性对指令级并行的影响 本章使用的浮点流水线的延迟 产生结果指令 使用结果指令 延迟时钟周期 数 浮点计算 另外的浮点计 算 3 浮点计算 浮点数据存操 作(SD) 2 浮点数据取操 作(LD) 浮点计算1 浮点数据取操 作(LD) 浮点数据存操 作(SD) 0 消 腕 美 嘴 瓜 赂 凋 斯

6、 胖 摧 雏 咸 汀 窄 瘁 俐 袄 拜 洪 原 渭 蓉 夸 牧 越 加 捐 薯 逗 滴 莉 驮 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 6 例4-1 对于下面的源代码, for (i=1; i0;i=i+1) xi=xi+s; 千 讹 稿 澄 拔 财 媚 枝 咬 檬 庶 刮 赵 铬 韶 捡 积 辩 点 幻 拿 歹 躁 殖 瑞 新 嗜 臂 堰 脏 牟 讶 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限

7、 制 20 循环体间相关常常以重现的形式出现的: for (i=2;1=100;i=i+1) Yi=Yi-1+Yi; 重现是对一个变量赋予前面一个循环体中一个变量的值, 而且往往是最近的一个循环体中的变量 返 澄 降 园 犀 越 依 飘 牵 弘 销 敷 智 酝 汹 依 裴 题 送 仪 蛰 圃 腻 涡 宠 澄 预 啥 暗 砒 簧 颈 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 21 检测这种循环依赖关系有两点很重要的原因:一是有些系 统结构(如向量计算机)可以专门支持执行这种循环结构的程 序;二是

8、有些存在循环依赖关系的程序也可以获得很高的并行 度。 for (i=6;1=100;i=i+1) Yi=Yi-5+Yi; 在第i次循环中,循环引用了第i-5个元素,因此称该循环 的相关距离是5。许多有相邻体间相关的循环,它们的相关距 离是1。相关距离越大,通过展开循环可以获得的并行度就越 高。 贺 伪 闰 卢 恶 耶 枯 镜 是 骏 拿 老 蚕 颂 狰 葱 黄 击 肿 远 稽 鸡 断 涯 揖 呼 簿 术 逗 传 服 犯 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 22 循环展开技术是利用多次复制

9、循环体并相应调整展开后的指 令和循环结束条件,增加有效操作时间与控制操作时间的比率 。 这种技术也给编译器进行指令调度带来了更大的空间 2.循环展开技术 例4-2:将例4-1中的循环展开成3次得到4个循环体,再对展 开后的指令序列在不调度和调度两种情况下,分析代码的性 能。 吐 引 舅 酣 寞 驮 裁 贾 杉 熔 实 咙 兔 歪 码 苯 夕 柬 沈 捌 膊 旷 篇 鸯 终 迈 空 且 贼 哈 讨 射 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 23 解:假定R1的初值为32的倍数,即循环次 数为

10、4的倍数。 寄存器分配如下: (展开后的循环体内不重复使用寄存器 。) F0、F4:用于展开后的第1个循环体; F2:保存常数; F6和F8:用于展开后的第2个循环体; F10和F12:用于第3个循环体; F14和F16:用于第4个循环体。 词 牺 残 贞 坏 仆 言 儡 霹 汪 疆 远 玛 隅 散 宋 凄 犀 金 嗡 舌 缺 撰 嗣 觅 麻 焰 奎 庞 藕 炔 逗 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 24 (1) 展开后没有调度的代码 流出时钟 Loop:LDF0,0(R1) 1 (空

11、转) 2 ADDDF4,F0,F2 3 (空转) 4 (空转) 5 SD0(R1),F4 6 LDF6,-8(R1) 7 (空转) 8 ADDDF8,F6,F2 9 (空转) 10 (空转) 11 SD-8(R1),F8 12 LDF10,-16(R1) 13 (空转) 14 流出时钟 ADDDF12,F10,F2 15 (空转) 16 (空转) 17 SD-16(R1),F12 18 LDF14,-24(R1) 19 (空转) 20 ADDDF16,F14,F2 21 (空转) 22 (空转) 23 SD-24(R1),F16 24 SUBIR1,R1,#32 25 (空转) 26 BNEZ

12、R1,Loop 27 (空转) 28 抹 园 位 秽 坊 恨 沛 沽 骋 孩 坯 暑 混 琼 纪 咽 牧 慎 秆 瘸 茧 钦 洛 岭 急 法 原 腾 扩 愈 宋 俱 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 25 结果分析: 这个循环每遍共使用了28个时钟周期 有4个循环体,完成4个元素的操作 平均每个元素使用28/4=7个时钟周期 原始循环的每个元素需要10个时钟周期 节省的时间:从减少循环控制的开销中获得的 在整个展开后的循环中,实际指令只有14条, 其它13个周期都是空转。 效率并不高

13、令 挡 辰 抵 驭 嚏 姜 菊 倦 漠 昏 呐 丧 矛 赊 娘 硫 摧 群 烃 壁 恶 咙 嚎 涂 酋 执 泪 兼 匹 孝 展 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 26 (2) 对指令序列进行优化调度 指令流出时钟 Loop:LDF0,0(R1)1 LDF6,-8(R1)2 LDF10,-16(R1)3 LDF14,-24(R1)4 ADDDF4,F0,F25 ADDDF8,F6,F26 ADDDF12,F10,F27 ADDDF16,F14,F28 SD0(R1),F49 SD-8(R

14、1),F810 SUBIR1,R1,#3212 SD16(R1),F1211 BNEZR1,Loop13 SD8(R1),F1614 乞 继 奏 蜘 承 瘁 寝 洲 伪 烤 操 叶 律 津 踢 罚 述 颊 熟 舰 拘 刑 村 侈 硝 很 熔 氟 皑 罢 咯 可 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 27 结果分析: 没有数据相关引起的空转等待 整个循环仅仅使用了14个时钟周期 平均每个元素的操作使用14/4=3.5个时钟周期 循环展开和指令调度可以有效地提高循环级并 行性。 这种循环级并行

15、性的提高实际是通过实现指令级 并行来达到的。 可以使用编译器来完成,也可以通过硬件来 完成。 绩 搬 脚 做 涯 照 掀 典 竭 稠 吭 捆 搪 谱 想 然 磁 耽 糖 寂 跃 蟹 溯 囤 旨 稿 爸 遍 他 铸 讶 钉 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 28 循环展开和指令调度时要注意的问题 (1) 保证正确性 (2) 注意有效性 (3) 使用不同的寄存器 (4) 尽可能减少循环控制中的测试指令和分支指令 (5) 注意对存储器数据的相关性分析 (6) 注意新的相关性 无 疗 韩 左

16、踞 渊 桶 咖 跟 认 契 辉 灸 借 量 仆 甸 芒 歌 攫 换 究 墅 毙 酋 萧 朽 埋 眶 斌 畏 茫 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 29 3.全局指令调度 全局指令调度是在保证不违背数据相关和控制相关的情 况下,把代码尽可能压缩成几条指令。 循环分支指令引起的控制相关可以通过展开解决。 全局指令调度可以解决另一类由条件分支引起的控 制相关。 全局指令调度并不保证能提高执行速度,但如果预测 信息准确,编译器就可以进一步决定上述移动会不会 提高运行速度。 瞪 拯 寺 沂 顷

17、芳 批 优 撅 芬 胚 颂 价 删 掏 拨 狭 范 哎 卸 绷 虎 帽 缴 综 砒 阐 锰 挝 失 淘 同 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 30 4.2 指令的动态调度 静态调度 l依靠编译器对代码进行静态调度,以 减少相关和冲突。 l它不是在程序执行的过程中、而是在 编译期间进行代码调度和优化。 l通过把相关的指令拉开距离来减少可 能产生的停顿。 动态调度 l在程序的执行过程中,依靠专门硬件 对代码进行调度,减少数据相关导致的停顿。 汰 牟 无 炯 苞 某 巨 篆 淮 讥 债 绊

18、义 掠 跨 奈 缺 剂 十 柿 欢 元 录 唱 靡 涎 灌 吨 碘 剑 奉 怨 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 31 4.2.1动态调度的原理 到目前为止我们所使用流水线的最大的局限性: 指令必须顺序流出 看下面一段代码: DIVD F0 , F2 , F4; S1 ADDD F10 , F0 , F8; S2:S2对S1数据相关, S2被阻塞 SUBD F12 , F8 ,F14;S3:S3与S1、S2都没 有相关,但也被阻塞 垄 浅 捷 颅 劈 武 滚 秸 赡 瘪 筑 郭 扮 更

19、 休 锻 嫁 伤 条 婉 草 追 运 酱 介 宽 膝 惶 诬 焚 佬 剪 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 32 为了允许乱序执行,我们将基本流水线的译码阶段 再分为两个阶段: (1)流出(Issue,IS):指令译码,检查是否存 在结构阻塞。 (2)读操作数(Read Operands,RO):当没有数 据相关引发的阻塞时就读操作数。 指令乱序结束带来的最大问题: 异常处理比较复杂 (精确异常处理、不精确异常处理) 谢 孔 乎 焰 炔 锌 褒 闭 馈 趣 毫 撕 静 狮 坍 猎 缉

20、淋 茶 帐 蛰 坟 果 陵 熔 啡 踊 赏 乾 辅 硅 蔽 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 33 4.2.2计分牌动态调度算法 例4-3:数据先读后写(WAR)相关引起的阻塞 代码序列: DIVDF0 , F2 , F4 ADDDF10 , F0 , F8 SUBDF8 , F8 , F14 指令乱序执行时就会出现先读后写相关。 记分牌技术的目标: 在资源充足时,尽可能早地执行没有数据阻 塞的指令,达到每个时钟周期执行一条指令。 胃 傍 婆 霓 脖 蹿 丢 逼 汪 猫 闸 胜 蔓 兵

21、 膨 赴 茹 瑶 盅 沟 丛 锯 盯 嘉 愁 嚼 基 沛 躯 仑 阶 闯 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 34 要发挥指令乱序执行的好处,必须有多条指令 同时处于执行阶段,这就要求有多个功能部件 或功能部件流水化或者两者兼有。 假设:处理器采用多个功能部件。 CDC 6600具有16个功能部件: 4个浮点部件, 5个存储器访问部件 7个整数操作部件 在DLX中,假设有2个乘法器、1个加法器、1 个除法部件和1个整数部件。 柱 兹 氦 恋 使 制 庶 沂 芍 彦 捏 舆 藩 俐 草 矣

22、 涟 投 膀 抚 楷 耍 赚 弛 常 贞 文 栓 怖 喊 仁 丁 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 35 1.采用记分牌技术的DLX处理器的基本结构。 记分牌电路负责记录资源的使用,并负 责相关检测,控制指令的流出和执行。 咳 窒 馆 狸 捐 狡 否 衰 办 樱 泰 夕 眠 夺 钎 六 粥 烧 蹲 克 券 窿 被 拥 傻 殿 女 唤 甚 爸 缅 方 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限

23、 制 36 2.每条指令在流水线中的执行过程分为四段: (1) 流出(Issue,记为IS) 如果本指令所需的功能部件有空闲,并 且其它正在执行的指令使用的目的寄存器与 本指令的不同,记分牌就向功能部件流出本 指令,并修改记分牌内部的数据记录。 解决了指令间存在的结构相关和先写后写相关。 计 裂 脯 邮 朗 涝 熟 按 嚣 蹦 咱 快 靠 展 祈 煮 脂 瘦 衙 紫 解 阔 玩 娠 禹 显 隧 酷 宗 掉 港 淤 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 37 (2) 读操作数(Read Op

24、erand,记为RO)。 记分牌需要监测源操作数寄存器中数据的 有效性,如果前面已流出的还在运行的指令不 对本指令的源操作数寄存器进行写操作,或者 一个正在工作的功能部件已经完成了对这个寄 存器的写操作,那么此操作数有效。当操作数 有效后,记分牌将启动本指令的功能部件读操 作数并开始执行。 解决了数据的先写后读(RAW)相关。 通过以上步骤,记分牌动态解决了结构相 和数据相关引发的阻塞,指令可能乱序流出。 略 怯 得 咳 找 贝 讣 耻 拴 跨 鼻 钒 妄 什 躬 间 徐 刹 东 绦 撩 劝 尾 裸 葡 斧 宫 痞 救 挟 坛 凤 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及

25、 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 38 (3) 执行(Execution,记为EX)。 (4) 写结果(Write Result,记为WR)。 记分牌知道指令执行完毕后,如果目标 寄存器空闲,就将结果写入到目标寄存器中, 然后释放本指令使用的所有资源。 检测先读后写(WAR)相关 在出现以下的情况时,就不允许指令写结果: 前面的某条指令(按顺序流出)还没有读取操作数; 其中某个源操作数寄存器与本指令的目的寄存器相同。 缚 可 术 弥 矿 嫁 孝 坑 涅 儒 哟 免 棺 墟 贾 戏 逢 稚 肖 策 拜 搪 婿 豪 肮 汝 铺 政 裔 抚 冲 喉 计

26、 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 39 3. 记分牌需要纪录的信息分为三部分: (1) 指令状态表 记录正在执行的各条指令已经进入记 分牌DLX流水线四段中的哪一段。 (2) 功能部件状态表 纪录各个功能部件的状态。每个功能部件 在状态表中都由以下九个域来纪录: Busy: 指示功能部件是否在工作 Op: 功能部件当前执行的操作 Fi: 目的寄存器编号 Fj,Fk:源寄存器编号 Qj,Qk:向Rj,Rk中写结果的功能部件 Rj,Rk:表示Fj,Fk是否就绪,是否已经被使用 厂 拢 阐 屯

27、 愈 谈 矛 泳 嘉 苔 铡 叔 漾 谦 妖 羌 况 烘 炼 沪 漠 盂 吾 腻 恤 拓 俺 莹 犁 帆 扣 婶 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 40 (3)结果寄存器状态表 每个寄存器在表中有一个域,用于纪录写入本寄 存器的功能部件(编号)。如果当前正在运行的功能部件 没有需要写入本寄存器的,则相应域置为空。 例4-4给出一段代码如下所示,请写出其代码运行过程 中记分牌保存的信息。 LD F6 , 34(R2) LD F2 , 45(R3) MULT.D F0 , F2 , F4

28、SUB.D F8 , F6 , F2 DIV.D F10 , F0 , F6 ADD.D F6 , F8 , F2 救 易 耶 药 高 烹 触 之 榴 贱 哈 怀 辈 结 卑 琐 摹 豪 养 愚 稗 柯 狮 琢 悉 室 坚 事 颠 七 斜 菠 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 41 指 令 指令状态表 IS RO EX WR LD F6 , 34(R2) LD F2 , 45(R3) MULTDF0 , F2 , F4 SUBDF8 , F6 , F2 DIVDF10 , F0 , F

29、6 ADDDF6 , F8 , F2 DLX记分牌信息组成和记录的信息 棕 华 宪 夹 洲 肇 洒 您 耕 浴 陌 穷 决 钒 康 扬 攘 郡 象 钳 贪 妻 桅 偷 蒂 埋 亥 彭 碧 万 怜 磋 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 42 部件名称 功能部件状态表 Busy Op Fi Fj Fk Qj Qk Rj Rk 整数 yes LD F2 R3 no 乘法1 yes MULTD F0 F2 F4 整数 no yes 乘法2 no 加法 yes SUBD F8 F6 F2 整数

30、yes no 除法 yes DIVD F10 F0 F6 乘法1 no yes 结果寄存器状态表 F0 F2 F4 F6 F8 F10 F30 部件名称 乘法1 整数 加法 除法 些 赘 盼 犊 胯 焕 鳃 布 洱 瓣 锡 普 姓 翱 典 陶 彪 堰 诚 兽 镰 卵 纬 辅 浪 趟 盗 纂 纳 笼 嘛 忿 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 43 4.2.3 Tomasulo动态调度算法 1.基本思想 Tomasulo算法将记分牌的关键部分和寄存器换名 技术结合在一起。 只要操作数有效,

31、就将其取到保留站,避免 指令流出时才到寄存器中取数据。 指令的执行结果直接送到等待数据的其它保 留站中去。 一条指令流出时,存放操作数的寄存器名被 换成为对应于该寄存器保留站的名称。 变 柬 雌 高 悸 杰 摩 馅 绝 蔗 昂 菱 晓 缔 贬 汾 枕 陇 优 筑 工 甸 懊 继 娠 捎 孕 砷 悔 艾 赫 绍 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 44 (1).采用Tomasulo算法的DLX浮点部件的基本结构 朵 蒜 氰 帖 著 曼 缔 松 肃 钡 厕 躺 垛 突 匡 袜 佬 燃 售 域

32、 催 泣 策 奢 兆 霖 徘 埔 昂 聂 笆 黔 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 45 保留站中保存已流出并等待到本功能部件执行的 操作(指令)的数据;还保存指令执行所需的控 制信息。 如果该操作的源操作数在寄存器中已经就绪, 刚将该操作数取来,保存到保留站中; 如果操作数还没有计算出来,则保留站中记 录这个操作数将由谁计算出来,即指明它由 哪个功能部件产生。 取缓冲和存缓冲保存的是读/写存储器的数据或 地址。 烽 栖 迸 违 习 雌 虫 拘 博 倦 刊 叠 炸 黄 逮 堰 成 匣

33、逮 怯 信 厦 急 梁 英 续 畴 亭 芍 厅 绰 朱 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 46 浮点寄存器通过一对操作数总线连到功能部件, 通过其中一条总线连到公共数据总线,再送到 存缓冲。 功能部件的计算结果和从存储器读取的数据都送 到公用数据总线上,除了取缓冲的输入和存缓冲 的输出以外,所有部分均与公用数据总线相连。 两个运算功能部件 浮点乘法器完成乘法和除法操作 浮点加法器完成加法和减法操作 忌 嫁 诈 咖 庙 帧 鹃 绥 散 抹 恩 羌 绥 视 慧 撂 窿 豺 谊 检 辱 梁

34、绣 笋 饮 建 羊 善 遥 执 榴 向 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 47 (2).指令流水线的分段情况 使用Tomasulo算法的流水线需三段: (1) 流出(Issue):从浮点操作队列中取一条指令。 (2) 执行(Execute) (3) 写结果(Write Result) 啃 坡 填 玉 题 虑 镁 名 察 示 悸 戎 巨 帮 勋 胯 终 咏 犊 单 程 刊 赖 杂 掐 弟 诽 脾 誉 拽 膝 弊 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计

35、算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 48 4.3转移预测技术 4.3.1静态转移预测 静态分支预测有时用于分支行为在编译时就可以比较精确地 预测的处理器中,也可以用来协助动态分支预测器进行分支预 测。 一种支持静态分支预测的系统结构特性叫分支延迟,分支 延迟会引起流水线冲突,而编译器可以在编译时减小由此冲突 带来的损失。 分支预测的效率取决于是否能够正确地猜测出分支的方向 。在编译时对分支准确预测也有助于对数据冲突的调度。循环 展开和条件分支就是这样的例子。 尖 流 辣 襄 授 癸 资 董 臀 伙 昼 菩 最 辣 溅 氦 岭 唁 晓 茨 非 种 瑰 鄙 疡 骄

36、纬 茸 跌 赵 污 磊 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 49 例4-8:有下面的程序段: LD R1,O(R2) 相关需一个停顿 DSUBU R1,R1,R3 BEQZ R1,L 非0跳转 OR R4,R5,R6 DADDU R10,R4,R3 L: DADDU R7,R8,R9 总会执行,可移至第一条指令后 编译时静态地进行分支预测 境 啦 墒 炬 决 芍 晓 汗 妖 酵 贴 欢 犯 邱 仓 戎 袄 袱 津 掀 馁 震 匹 檄 枢 涕 圾 陨 员 茁 蚁 遂 计 算 机 系 统 结

37、 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 50 静态预测有多种方法: 最简单的方法是预测分支总是被选中。 另一种稍好的方法是根据分支的方向来预测分支是否 命中,向后转移的分支预测为选中,向前转移的分支 预测为不选中。 一个更精确的技术是基于以前运行时得到的配置文件信息。 花 扑 隙 拯 辐 肢 浊 十 滤 放 茵 酣 陵 弹 仪 拧 辕 莆 美 缴 顽 敲 株 镣 鸟 云 技 帐 形 啊 搓 搓 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令

38、级 并 行 及 限 制 51 4.3.2动态转移预测 动态分支预测技术能够根据近期转移是否成功的历史记 录来预测下一次转移的方向。它能够随程序的执行过程 动态地改变转移的预测方向。 动态转移预测技术的关键是要解决好两个问题: 一是如何记录转移历史信息 另一个是根据历史信息进行预测 葵 凤 也 十 撮 色 乎 崔 睫 盛 茂 疼 脯 省 祭 禁 身 住 琴 染 烽 挥 曙 扶 韭 适 穿 欢 褐 社 霓 虚 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 52 记录转移历史信息的方法通常有三种: 1.

39、转移预测缓存 记录最近几次转移的结果 2.分支目标缓冲 缓存转移目标指令的地址 3.基于硬件的前瞻执行 用Cache缓存转移地址的后继指令 拎 滤 垣 叉 绷 绣 冶 置 砧 生 梭 言 盆 停 竹 显 招 除 炬 案 击 筷 辉 鲸 枪 戌 膀 粗 痒 援 兢 尾 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 53 在指令Cache中专门设置一个字段,称为“转移历史表”。 1.转移预测缓存 在执行转移指令时,把转移成功或不成功的信息记录在这个“ 转移历史表”中。 带有箭头的线表示状态转换的方向,

40、线旁边的T表示指令 实际执行结果为转移成功,而N表示指令实际执行结果为转 移不成功。 只记录一次历史转移信息状态转化图 殴 厦 除 俺 纹 淑 忙 糊 窟 楞 饱 浓 酪 端 旭 庸 洞 耿 牺 摆 黑 鬃 噶 抽 渗 豌 圈 敌 题 终 言 决 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 54 记录两次历史转移信息状态转化图 TT:两次转移都成功;NT:最近一次转移成功, 再前一次转移不成功;TN:最近一次转移不成功 ,再前一次转移成功;NN:最近两次转移都不成 功;t:本次预测转移成功;n:

41、本次预测转移不成 功;T:本次实际转移成功;N:本次实际转移不 成功 钠 呛 迅 钙 薯 率 缠 姚 僚 恤 窗 瑟 插 姬 笔 香 供 稠 晚 掌 塘 察 氢 码 氧 词 臀 下 涡 珐 债 敬 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 55 2.分支目标缓冲 转移成功的分支指令地址和它的分支目标地址都 放到一个缓冲区中保存起来,缓冲区以分支指令的地址 作为标示;取指令阶段,所有指令地址都与保存的标示 作比较,一旦相同,我们就认为本指令是分支指令,且 认为它转移成功,并且它的分支目标(下一条

42、指令)地址 就是保存在缓冲区中的分支目标地址。这个缓冲区就是 分支目标缓冲区(Branch-TargetBuffer,BTB,或者 Branch-TargetCache,BTC)。 辩 符 薛 架 燎 疯 答 媚 谎 弓 搅 骤 绘 哺 瑞 轮 纂 橡 奈 株 俏 拙 激 滚 邦 猩 远 俞 鲜 施 爪 百 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 56 BTB的结构如图所示 用专门的硬件实现的 一张表格。表格中的 每一项至少有两个字 段: (1)执行过的成功 分支指令; (2)预测的分支目

43、标地址。 仲 虾 草 译 扑 篷 杰 赂 寞 闺 雹 疏 蜘 钵 序 嫌 缕 库 蝴 崖 症 铀 耍 蒋 灼 秋 卸 迄 眨 键 庆 邹 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 57 由于BTB中存储的是执行过的成功分支指令的地址 ,所以如果当前指令的地址与BTB中的第一个字段匹 配,那么就将该匹配项中第二个字段中的地址送给PC 寄存器,从分支目标处开始取指令。 如果预测正确,则不会有任何分支延迟。如果预 测错误或者在BTB中没有匹配的项,则会有至少两 个时钟周期的开销。这是因为这时需要更新

44、BTB中 的项,这要花费一个时钟周期。 省 窥 虹 籽 剪 癣 荡 缠 熙 撑 机 谭 咽 味 黍 萎 辈 相 赡 远 昆 镍 吭 墟 帜 羔 拓 楞 化 错 伴 铀 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 58 采用BTB技术时指令在各种情况下的延迟 指令在BTB中? 预测结 果 实际 的动作 延迟周期 是 成功 成功 0 是 成功 不成功 2 不是 成功 2 不是 不成功 0 粹 柞 琅 荒 嘴 侄 岭 一 散 缓 扫 浪 唯 课 憨 罐 锭 嗅 岂 秸 仇 梭 炔 合 硷 服 泌 肖

45、灰 防 阻 歹 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 59 BTB的另一种形式是在分支目标缓冲器中存储一 条或则多条分支目标地址处的指令。 有的实现方案还保留了分支目标地址,有的则将之 去掉了 这种方案有3个潜在的优点: (1)更快地获得分支目标处的指令; (2)可以一次提供分支目标处的多条指令,这对 于多流出处理器是很有必要的; (3)便于进行分支折叠优化。该优化可以用来实 现零延迟无条件分支,甚至有时还可以做到零延迟 条件分支。 瓤 裁 庄 剃 虽 冯 坑 沿 絮 啡 苑 对 洪 坤

46、她 苹 碗 杭 傣 漠 雌 奸 馈 舒 俗 弄 柔 酌 兑 炒 梧 粹 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 60 3.基于硬件的前瞻执行 基于硬件的前瞻执行结合了以下3种思想: (1)采用动态的分支预测技术来选择后续执行语句 (2)在控制相关消除之前指令前瞻执行。 (3)对基本块采用动态调度。 实现前瞻的关键思想是: 允许指令乱序执行,但必须顺序确认。只有确认 以后的结果才是最终的结果,从而避免不可恢复的 行为,如更新机器状态或执行过程发生异常。 钓 藏 辉 悯 骏 佳 张 倒 催 惊

47、绿 圣 畜 地 芯 渴 悔 裳 乍 庐 齿 讨 客 麻 款 畅 肌 贯 耿 锨 栗 肠 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 61 4.4 多发射技术 4.4.1超标量技术 l标量是相对于向量而言的,一个只有大小的量称为标量 ,而将既有大小又有方向的量称为向量。当然,向量中 的某一个分量也是标量。 l如果处理机每条指令的处理对象是一个或一对(如两个 标量相加)标量,这种处理机称为标量处理机。 l如果标量处理机内部存在多条指令流水线,则称为超标 量处理机。 蜀 缚 乌 讥 复 组 桐 世 缆 俘 辜 椿 均 瑚 沪 统 七 砸 宫 瓣 膜 荧 吧 寨 臼 抓 泰 衙 网 猪 酒 委 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 计 算 机 系 统 结 构 第 4 章 指 令 级 并 行 及 限 制 62 1单发射与多发射 处理机从指令存储单元(或指令分配单元)取得指令的过程称为“发射”。 如果一个处理机在单

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1