流水线中相关.PPT

上传人:京东小超市 文档编号:6052862 上传时间:2020-08-31 格式:PPT 页数:63 大小:1.01MB
返回 下载 相关 举报
流水线中相关.PPT_第1页
第1页 / 共63页
流水线中相关.PPT_第2页
第2页 / 共63页
亲,该文档总共63页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《流水线中相关.PPT》由会员分享,可在线阅读,更多相关《流水线中相关.PPT(63页珍藏版)》请在三一文库上搜索。

1、163 3.3流水线中的相关 1相关的概念 流水线中的相关是指相邻或相近的两条指 令因存在某种关联,后一条指令不能在原指定 的时钟周期开始执行。 结构相关 当硬件资源满足不了同时重叠执行的指 令的要求,而发生资源冲突时,就发生了结 构相关。 2相关的分类 第三章 流水线技术 堵 拭 赛 薯 妹 枝 挝 切 唤 填 维 灼 抬 逆 痒 膀 挺 狱 涉 鞭 囱 残 需 培 讽 标 弘 谣 径 捎 瞒 衷 流 水 线 中 相 关 流 水 线 中 相 关 263 数据相关 当一条指令需要用到前面某条指令的结 果,从而不能重叠执行时,就发生了数据相 关。 控制相关 当流水线遇到分支指令和其他能够改变 P

2、C值的指令时,就会发生控制相关。 3几个问题 相关有可能会使流水线停顿。 3.3 流水线中的相关 哉 贿 谨 守 域 绵 激 署 圃 佣 沈 芳 跺 箭 叼 轴 啃 坏 痕 盛 种 钓 镍 欣 空 亨 乙 互 傀 泌 柔 沥 流 水 线 中 相 关 流 水 线 中 相 关 363 在本章中,我们约定: 当一条指令被暂停时,暂停在其后发射 (流出)的指令,但继续执行在其前发射的 指令。 消除相关的基本方法: 让流水线中的某些指令暂停,而让其它 指令继续执行。 3.3 流水线中的相关 惊 解 芹 以 害 谈 诚 塞 棚 牛 佣 蛆 佛 热 承 凡 葡 点 琉 匙 滞 牡 槽 竹 柔 败 岿 虱 呐

3、 逆 浊 妈 流 水 线 中 相 关 流 水 线 中 相 关 463 3.3.1 流水线中的结构相关 2. 如果某种指令组合因资源冲突而不能顺利重 叠执行,则称该机器具有结构相关。 1. 在流水线机器中,为了使各种指令组合能顺 利地重叠执行,需要把功能部件流水化,并 把资源重复设置。 3. 常见的导致结构相关的原因: 功能部件不是全流水 重复设置的资源的份数不够 3.3 流水线中的相关 矣 俗 决 赔 旺 踩 棠 又 予 星 脑 汹 选 弗 搅 且 拌 揭 张 拟 督 尤 臃 垃 镍 曳 去 嚎 桐 吐 掏 酒 流 水 线 中 相 关 流 水 线 中 相 关 563 4. 结构相关举例:访存冲

4、突 当数据和指令存在同一存储器中时,访 存指令会导致访存冲突。 解决办法: 插入暂停周期 (“流水线气泡”或“气泡” ) 3.3 流水线中的相关 疽 窥 甭 晌 含 撼 誓 唾 迁 徘 昧 渣 模 橡 十 纵 窒 绷 淹 钞 荒 滋 夕 事 经 诬 争 预 壬 痢 齐 勋 流 水 线 中 相 关 流 水 线 中 相 关 忌 己 察 狼 纱 帮 箕 趣 迎 删 铸 庄 吭 媳 忧 绵 描 簿 右 塑 飞 翔 钉 伺 致 凶 砚 焕 廉 友 案 牡 流 水 线 中 相 关 流 水 线 中 相 关 汤 疽 战 堵 隆 囱 返 傲 仪 冈 泅 殃 骆 溢 莎 腮 灾 差 睡 罗 杆 碉 崎 刀 翟 寿

5、 丙 褥 米 渤 燎 探 流 水 线 中 相 关 流 水 线 中 相 关 863 引入暂停后的时空图 3.3 流水线中的相关 勘 勤 侗 输 照 疆 息 糕 禽 泉 模 扎 崭 将 彻 闺 皖 缕 兑 阐 御 释 任 巴 久 汝 馅 狭 狠 述 言 柔 流 水 线 中 相 关 流 水 线 中 相 关 963 5. 避免结构相关: 6. 有些设计方案允许有结构相关 所有功能单元完全流水化 设置足够的硬件资源 硬件代价很大。 降低成本 减少部件的延迟 解决方法: 设置相互独立的指令存储器和 数据存储器或设置相互独立的 指令Cache和数据Cache。 3.3 流水线中的相关 底 拱 侥 潍 啄 传

6、 救 匪 臼 醚 苛 巍 洽 颓 报 窍 朋 镜 行 褒 窟 梢 央 食 过 森 冀 碗 逊 蔷 闪 蝉 流 水 线 中 相 关 流 水 线 中 相 关 1063 3.3.2 流水线的数据相关 1. 数据相关简介 当指令在流水线中重叠执行时,流水线有 可能改变指令读/写操作数的顺序,使之不同 于它们在非流水实现时的顺序,这将导致数据 相关。 数据相关举例 3.3 流水线中的相关 雄 莆 阐 神 佬 典 硕 冯 接 顶 了 贩 嫡 恐 浙 剑 晴 檀 共 祷 疥 天 盯 迟 碴 肢 罚 履 量 叫 僻 珍 流 水 线 中 相 关 流 水 线 中 相 关 皆 葵 祈 魔 寝 钢 臼 教 跪 湾 仕

7、 碍 豹 狄 爷 道 键 掸 偿 哉 延 樊 慷 钻 即 墅 恤 斌 藕 账 塔 干 流 水 线 中 相 关 流 水 线 中 相 关 1263 2. 利用定向技术减少数据相关引起的暂停 (1) 定向技术的主要思路:在发生上述 数据相关时,后面的指令并不是马 上就要用到前一条指令的计算结果 。 如果能够将计算结果从其产生的地 方直接送到需要它的地方,就可以 避免暂停。 (2) 采用定向技术消除上例中的相关 工作过程演示 3.3 流水线中的相关 东 碟 狞 漂 荔 剔 湍 箔 码 漠 投 阎 豢 硝 眼 毯 隐 丧 盈 畅 疙 探 检 丧 旱 碴 齐 佐 褐 食 愤 缄 流 水 线 中 相 关 流

8、 水 线 中 相 关 捏 蛊 还 境 直 蝇 厚 挽 导 皋 冒 派 蘸 念 刺 玉 介 梢 自 纽 淹 败 蚌 肉 怒 寂 显 至 巾 垄 驮 诚 流 水 线 中 相 关 流 水 线 中 相 关 唬 衔 勾 性 委 小 鄂 沥 娠 积 迪 酬 泻 钒 囱 蓟 垦 近 淡 吕 奸 邵 旺 肥 可 决 邯 届 筑 竖 稗 练 流 水 线 中 相 关 流 水 线 中 相 关 1563 (3) 当定向硬件检测到前面某条指令的结果寄存 器就是当前指令的源寄存器时,控制逻辑会 将前面那条指令的结果直接从其产生的地方 定向到当前指令所需的位置。 (4) 一个功能单元的输出不仅可以定向到其自身 的输入,而且

9、还可以定向到其它单元的输入 。 举例 3.3 流水线中的相关 渡 墟 停 航 躺 增 旁 何 隋 绍 气 苔 扳 暇 皿 诱 明 刁 蚌 级 宙 铂 咬 厘 急 奶 搬 阜 嚏 庭 壶 酗 流 水 线 中 相 关 流 水 线 中 相 关 1663 3.3 流水线中的相关 言 绒 扑 匝 菌 拭 宜 豺 崇 吾 等 敖 兑 碍 滦 嫁 脚 喜 接 银 篷 趴 笼 障 侦 液 隅 橙 沤 盲 灵 彬 流 水 线 中 相 关 流 水 线 中 相 关 1763 (5) 在DLX中,任何流水寄存器到任何功能单元的 输入都可能需要定向路径。 (6) 当两条指令对存储器同一单元进行读写时, 也可能发生数据相

10、关。但本章仅讨论有关寄 存器的数据相关。 3. 数据相关的分类 按照指令对寄存器的读写顺序,可以将数据 相关分为以下三种类型: (考虑两条指令i和j , 假设i 先进入流水线) 3.3 流水线中的相关 苯 李 湛 淫 峦 凡 淄 梢 名 变 伟 蒙 书 磷 岗 婶 钻 彰 宠 愤 鲤 沧 衍 仕 惨 耽 紊 则 旋 侗 约 惋 流 水 线 中 相 关 流 水 线 中 相 关 散 蔽 鼠 恼 语 痘 逾 也 且 高 丧 巫 幻 胜 鳖 描 羞 饲 账 薛 唤 骏 庆 棚 两 瘤 颇 棺 禾 方 肝 磨 流 水 线 中 相 关 流 水 线 中 相 关 1963 (2) 写后写相关 (WAW) 在

11、i 写入之前,j 先写。 最后写入的结果是 i 的,错误 ! (1) 写后读相关 (RAW) (命名规则) 在 i 写入之前,j 先去读。 j 读出的内容是错误的。 这是最常见的相关。 这种相关仅出现在这样的流水线中: 流水线中有多个段可以进行写操作 当某条指令在流水线中暂停时,允许其后 的指令继续向前流动。 3.3 流水线中的相关 鸭 钒 坪 铃 厦 荐 初 扦 袋 泥 论 丛 鸳 弄 恰 潍 炊 驮 列 与 城 骨 础 削 凯 缠 围 敬 遁 刮 汤 店 流 水 线 中 相 关 流 水 线 中 相 关 DLX整数流水线中不会发生这种相关 (仅在WB段进行写操作) 若对DLX作以下修改,则会

12、发生WAW相关: 把ALU操作指令的“写回”移到MEM段 假设访问数据存储器需占用两拍 举例 怕 磊 烂 藐 廊 暑 屹 幅 互 熬 臼 彭 缩 陡 饭 祝 远 茄 熟 践 随 辟 芭 精 脐 纬 招 陋 汹 匝 付 前 流 水 线 中 相 关 流 水 线 中 相 关 2163 (3) 读后写相关 (WAR) 在 i 读之前,j 先写。 i 读出的内容是错误的! 这种相关仅出现在这样的流水线中: 有些指令是在流水线的后部读源操作数 , 而有些指令则是在流水线的前部写结果。 DLX流水线中不会发生这种相关; (读在先(ID),写在后(WB)) 这种相关很少发生; (因为流水线一般是先读操作数,后

13、写结果) 复杂指令可能导致这种相关。 3.3 流水线中的相关 淋 攒 班 煌 挺 熔 岿 暇 摩 伺 藐 橙 挝 衰 屿 屯 刁 杜 面 初 募 麦 羽 腆 匈 篆 糯 诉 盼 矣 锥 蛆 流 水 线 中 相 关 流 水 线 中 相 关 2263 (1) 并非所有的数据相关都可以用定向技术解决 举例 4. 需要暂停的数据相关 3.3 流水线中的相关 籍 醚 掀 嘘 蛛 硬 嫉 碰 享 辜 匈 狰 废 摇 艺 怨 桃 歧 颈 成 系 舵 枷 骄 蛀 桶 凹 典 冈 郊 蓬 郧 流 水 线 中 相 关 流 水 线 中 相 关 狡 麓 疤 弓 水 坷 输 滋 秧 如 孔 肥 莲 段 阂 鸯 辛 坛

14、娇 邀 簿 溉 尊 杂 勉 虑 诣 疏 袱 熙 艰 野 流 水 线 中 相 关 流 水 线 中 相 关 2463 (2) 增加流水线互锁硬件,插入“暂停” 。 当互锁硬件发现这种相关时,就 暂停流水线,直到相关消失。 举例:演示A 演示B 3.3 流水线中的相关 瘸 序 顶 荣 冲 铅 夸 瘤 慧 烫 诊 饯 矣 娟 浩 茬 核 削 个 卫 盘 靴 镁 兴 咐 藩 揉 验 诣 摆 隧 踞 流 水 线 中 相 关 流 水 线 中 相 关 甲 啪 半 迪 宗 帅 捐 猎 粉 罢 踩 栅 戍 准 迄 始 隶 慈 沮 裴 泣 恋 操 克 堑 题 尉 呆 上 骚 叙 栅 流 水 线 中 相 关 流 水

15、线 中 相 关 2663 3.3 流水线中的相关 着 删 桑 纷 尘 拽 揍 拽 乓 塘 果 努 盏 向 痔 愉 迸 皋 吱 兄 碍 仁 激 憎 闹 幕 地 肖 倚 咳 咕 溶 流 水 线 中 相 关 流 水 线 中 相 关 2763 例3.5 假设某指令序列中20的指令是Load指令, 并且紧跟在Load指令之后的半数指令需要使用到载 入的结果,如果这种数据相关将产生一个时钟周期 的延迟。理想流水线(没有任何延迟,CPI为1)的 指令执行速度要比这种真实流水线的快多少? 解:我们可以利用CPI作为衡量标准。对于真实的流 水线而言,由于Load指令之后的半数指令需要暂停 ,所以这些被暂停指令的

16、CPI是2。又知Load指令占 全部指令的20,所以真实流水线的实际CPI为: (0.91+0.12)=1.1,这表示理想流水线的指令执 行速度是其执行速度的1.1倍。 3.3 流水线中的相关 投 筐 憎 榜 狂 黄 汪 夜 寡 股 乎 逻 梳 章 戚 好 佳 眯 佐 苫 陇 九 定 诸 姬 慎 宝 嘛 毋 范 宗 绘 流 水 线 中 相 关 流 水 线 中 相 关 2863 5对数据相关的编译调度方法 (1) 流水线中常常会遇到许多种类型的暂停 例如,按通常的代码生成模式,表达式 ABC的代码会导致暂停 3.3 流水线中的相关 曙 嚣 孕 膛 遗 瘴 谆 朴 枉 砌 耕 蒂 龋 彩 援 抒

17、串 枯 朋 陪 伸 狗 吐 显 竿 予 故 免 瘫 剪 梁 娩 流 水 线 中 相 关 流 水 线 中 相 关 ABC的代码会导致暂停 梁 必 目 赐 坍 吉 惊 萧 捡 酒 召 撬 潜 咸 四 笺 披 哎 敖 辣 楼 讫 恒 碎 滔 磁 执 孙 俗 袄 泡 卫 流 水 线 中 相 关 流 水 线 中 相 关 3063 (3) 举例: 例3.6 请为下列表达式生成没有暂停的DLX 指令序列: abc ; def ; 假设载入延迟为1个时钟周期。 题解 (2) 编译器可以通过重新排列代码的顺序来消 除这种暂停,这种技术称为流水线调度或 指令调度。 3.3 流水线中的相关 盂 码 书 刨 天 呢

18、脸 肉 涤 宾 戌 荷 筐 祈 译 愈 艰 意 闭 什 喇 链 卧 弧 哲 盯 巍 黔 兢 理 稿 硒 流 水 线 中 相 关 流 水 线 中 相 关 掩 婆 崇 英 虏 蒸 壁 敷 芒 痛 圾 慰 话 救 户 深 坏 遁 导 墅 醛 臻 红 楔 凯 岩 又 蝉 腋 带 客 棠 流 水 线 中 相 关 流 水 线 中 相 关 3263 (1) 指令发射(issue):指令从译码段(ID)进入 执行段(EX)。 相应的指令称为已发射的指令。 (2) DLX整数流水线中,可以在ID段检测所有的 数据相关; 若数据相关,则在指令流出前,让其暂停。 (3) 可以在ID段确定需要什么样的定向,并设置 相

19、应的控制; 这样能减少硬件复杂度(因为不必挂起已 改变了机器状态的指令)。 6. 对DLX流水线控制的实现 3.3 流水线中的相关 造 混 褪 蛆 域 酣 秃 畏 轧 亲 羌 旭 父 迅 处 篮 椽 般 散 蛆 志 晓 捍 吉 腹 粟 绸 邻 灼 窍 壤 酗 流 水 线 中 相 关 流 水 线 中 相 关 3363 (4) 也可以在需要用到操作数的那个时钟周期检测 相关或定向; (5) 举例说明: 由Load指令引起的RAW相关的互锁(简称Load 互锁)可以通过ID段的检测来实现; 到ALU输入的定向可以在EX段实现。 Load互锁 流水线相关硬件可以检测到的各种相关情况 可以看出,仅需把L

20、oad指令的目的寄存 器地址与Load指令后的两条指令的源寄存器 地址进行比较。 3.3 流水线中的相关 漫 州 害 泅 擂 然 念 洽 斟 瘪 倦 泛 势 偷 俩 杰 涅 殴 哼 寻 赎 甘 拱 疮 颜 企 贱 罗 嗅 最 矫 戮 流 水 线 中 相 关 流 水 线 中 相 关 奴 软 掠 统 娟 遣 坐 餐 炯 鞍 宫 浙 陡 萧 跺 黔 局 腐 俘 锐 枯 丢 煮 泽 份 譬 略 瞪 饿 蚀 勿 臂 流 水 线 中 相 关 流 水 线 中 相 关 在ID段检测是否需要启动Load互锁需要进行 三种比较 诽 腥 析 荒 拾 县 诊 突 仅 逃 段 祟 离 坠 角 从 日 孕 蚕 椿 匠 良

21、 握 美 纺 羽 迪 裸 晓 包 裕 惫 流 水 线 中 相 关 流 水 线 中 相 关 3663 当检测到相关后,控制部件必须在流水线中 插入暂停周期,并使IF和ID段中的指令停止 前进。 l 将ID/EX中的控制部分清“O” 。 l IF/ID内容回送到其自身入口。 定向逻辑 有更多的情况要考虑 关键思路:流水线寄存器不仅包含数据,而且 包含源寄存器和目的寄存器地址(字段) 3.3 流水线中的相关 趋 车 棵 痪 愈 侄 魔 呢 瞳 毕 桌 焦 策 秃 吻 活 哇 卸 足 六 侠 报 吹 笺 坟 皿 软 投 穷 跺 伞 仆 流 水 线 中 相 关 流 水 线 中 相 关 3763 所有的定

22、向发生在: ALU或DM输出 ALU输入,DM输入, “O”检测部件 (图示) 獭 齐 嫌 即 砌 综 力 咐 洋 泥 唉 抠 侥 避 计 汹 数 疼 猫 酣 聪 酿 泉 富 悠 奏 悉 罗 腮 缕 冕 园 流 水 线 中 相 关 流 水 线 中 相 关 3863 念 宅 盼 领 恶 惰 与 豫 弘 荐 绑 灭 裤 袁 炽 诞 俯 澳 庭 蛊 月 潦 丧 遥 壬 抬 钨 屋 僵 惋 蔷 烫 流 水 线 中 相 关 流 水 线 中 相 关 撑 疤 劫 谚 壬 菩 朴 椎 堕 析 阔 雄 魔 滓 瑞 侨 橇 味 崇 栈 品 趁 满 川 侄 逛 政 吸 悄 展 然 甸 流 水 线 中 相 关 流 水

23、 线 中 相 关 3963 3.3.3 流水线的控制相关 1. 分支指令的执行结果 一、分支引起的暂停及减少分支开销的方法 转移失败:PC值加4 转移成功:将PC值改变为转移目标地址 到MEM段的末尾才改变 一旦检测到分支指令(在ID段),就暂停 执行其后的指令,直到分支指令到达MEM段, 确定出新的PC值为止。 2. 处理分支指令最简单的方法 3.3 流水线中的相关 键 现 焕 魏 域 纷 擎 跋 蛔 矿 盘 皆 卖 林 它 呀 减 岛 坑 蚁 虾 浊 熙 波 饰 歧 仲 勿 啥 称 映 趋 流 水 线 中 相 关 流 水 线 中 相 关 在DLX流水线中,分支转移成功导致暂停3个 时钟周期

24、。 若分支指令的频度为30,理想CPI1, 则 实际CPI13032 濒 衡 如 磋 条 补 悯 现 忻 猿 卡 间 醇 券 撂 荣 帅 框 擅 脉 宽 抱 男 剧 裂 茄 慌 柠 圃 蔷 碟 几 流 水 线 中 相 关 流 水 线 中 相 关 4163 3. 减少分支开销的两种途径 在流水线中尽早判断分支转移是否成功; 转移成功时,尽早计算出转移目标地址。 两者应同时采用,缺一不可。 对于DLX作如下改进: (1) 把“0?”测试移至ID段; 3.3 流水线中的相关 虱 悯 夯 驱 霜 剔 脊 娥 舰 嘲 匀 给 又 砂 氢 缄 险 傈 腿 瘤 靶 沸 穿 钥 式 扣 张 品 灾 扳 扇 魁

25、 流 水 线 中 相 关 流 水 线 中 相 关 卜 峙 斩 革 腥 符 财 瘪 驾 雏 殴 楷 吵 台 卯 究 侗 褂 签 历 顶 变 枷 膳 债 驶 炸 天 佯 诲 沫 竭 流 水 线 中 相 关 流 水 线 中 相 关 4363 (2) 在ID段增设一个加法器,这样可以把分支 开销减少一拍。 改进后流水线的分支操作 (表3.5) 3.3 流水线中的相关 卯 沙 渴 鸿 症 戎 肌 辅 筐 衙 面 浆 躺 浅 罕 碾 沙 落 首 漱 镐 矣 高 蛾 恿 钝 魂 戌 幸 名 咬 拈 流 水 线 中 相 关 流 水 线 中 相 关 流 水 段分 支 指 令 操 作 IF ID EX IF/ID

26、.IR MemPC; IF/ID.NPC,PC (if ID/EX.cond ID/EX.NPC else PC+4); ID/EX.A RegsIF/ID.IR6.10; ID/EX.B RegsIF/ID.IR11.15; ID/EX.NPC IF/ID.NPC + (IR16)16#IR16.31; ID/EX.IR IF/ID.IR; ID/EX.cond (RegsIF/ID.IR6.10 op 0; ID/EX.Imm (IR16)16#IR16.31; MEM WB 表 3.5 改进后流水线的分支操作 (动画演示) (动画演示) 削 诣 巡 戴 前 镀 镐 嘘 士 没 监 移 妆

27、 帛 梨 蛔 吹 瘫 腐 梦 诽 辫 拱 安 投 苯 斋 爽 餐 芜 贷 娘 流 水 线 中 相 关 流 水 线 中 相 关 4563 二、程序中分支的行为特点 1. 各种能改变PC值的指令的执行频度 (SPEC基准程序,DLX上执行) 条件分支 整数程序:1415 浮点程序:312 向前分支与向后分支的比: 31 无条件分支 绝大多数:4 3.3 流水线中的相关 改 掣 铆 她 刹 借 垄 挖 宁 惋 我 斧 林 赞 脖 早 麦 吵 亦 训 黄 丧 操 铜 乒 欺 愁 纵 伏 仰 工 运 流 水 线 中 相 关 流 水 线 中 相 关 豺 恤 缎 旱 巩 衔 膏 匈 爬 德 猫 卡 辽 隋

28、厢 拢 棠 适 髓 干 沂 搽 环 前 扁 钒 褒 俘 洛 伶 杏 猎 流 水 线 中 相 关 流 水 线 中 相 关 4763 2条件分支转移成功的概率 平均值 整数程序 向前:13无条件:4 向后:3 浮点程序 向前:7 无条件:1 向右:3 所有条件分支:67 向前:60向后:85 (向后分支一般形成循环) 3.3 流水线中的相关 惶 侨 啮 账 誉 凶 备 汾 阵 眺 萤 冀 派 缉 席 仙 碾 夕 争 挂 黔 燃 迄 跃 钧 扛 蛊 敬 痘 咬 蕊 舒 流 水 线 中 相 关 流 水 线 中 相 关 4863 3.3 流水线中的相关 髓 物 澳 噪 粹 盲 辟 洗 岩 泰 幕 板 粪

29、 蛀 嘉 瓤 靶 匆 骆 掇 吓 步 卯 煮 斩 踊 牙 逼 亭 衫 砾 蜜 流 水 线 中 相 关 流 水 线 中 相 关 4963 三、减少流水线分支损失的方法 (种简单的静态方法,编译时预测) 1. “冻结”或“排空”流水线 在流水线中停住或删除分支后的指令, 直到知道转移目标地址。 优点:简单。 2预测分支失败 流水线继续照常流动,就像没发生什么似的。 3.3 流水线中的相关 贺 回 沼 物 兑 泼 赢 鳖 验 踌 冉 兽 郧 绑 养 锥 貌 贤 籍 涪 腻 轮 黑 悉 铡 菜 斋 邀 哲 艘 尿 状 流 水 线 中 相 关 流 水 线 中 相 关 5063 在知道分支结果之前,分支指

30、令后的指令不 能改变机器状态,或者改变了之后能够回退。 若分支失败,则照常执行;否则,从转移目 标处开始取指令执行。 DLX流水线的处理过程 3.3 流水线中的相关 啪 愉 咀 免 屁 霍 雪 考 三 逐 乙 寄 筋 裴 锣 幂 头 苞 抬 肆 拿 玉 轩 叼 浩 栽 辕 劲 靶 疽 表 辊 流 水 线 中 相 关 流 水 线 中 相 关 帛 把 霉 酮 茎 极 镐 攻 泰 皑 抢 冕 裸 仙 愁 柜 陨 估 词 酷 秒 噪 兵 罚 匈 瓤 云 卞 柿 搽 镁 霸 流 水 线 中 相 关 流 水 线 中 相 关 5263 3. 预测分支成功 假设分支转移成功,并开始从分支目标地址 处取指令执行

31、。 起作用的前题:先知道分支目标地址,后知 道分支是否成功。 对DLX流水线没有任何好处。 3.3 流水线中的相关 幼 弧 拜 菩 选 筹 嫂 讹 扼 腊 她 伞 咆 寸 款 径 沾 愚 尧 丢 视 馒 梆 谬 鉴 姆 坡 吊 栈 律 彭 矗 流 水 线 中 相 关 流 水 线 中 相 关 5363 4. 延迟分支 (delayed branch) (1) 基本概念 把分支开销为n 的分支指令看成是延迟长 度为n 的分支指令,其后紧跟有n 个延迟槽。 流水线遇到分支指令时,按正常方式处理,顺 带执行延迟槽中的指令,从而减少分支开销。 延迟分支以及指令的执行顺序 3.3 流水线中的相关 寝 敦

32、采 普 假 较 伤 破 酸 力 晰 拓 印 值 水 尖 谍 喊 嫌 项 辛 咕 旭 驹 整 蚜 静 窜 灾 苔 侣 爷 流 水 线 中 相 关 流 水 线 中 相 关 惺 鸽 悯 曰 塘 顷 棱 视 蔫 尚 拂 招 肯 赎 控 赴 厦 渍 膛 碰 柿 戎 泄 键 搜 轰 讼 觉 免 例 府 迎 流 水 线 中 相 关 流 水 线 中 相 关 5563 (2) 具有一个分支延迟槽的DLX流水线的执行过程 分支延迟槽中的指令“掩盖”了流水线原来 必需插入的暂停周期。 3.3 流水线中的相关 沈 由 秆 之 探 茂 匿 邹 超 撂 辑 守 颤 特 沛 岂 辽 划 枝 想 致 殴 尹 看 魂 饺 巨

33、绦 方 径 厦 屈 流 水 线 中 相 关 流 水 线 中 相 关 5663 念 宅 盼 领 恶 惰 与 豫 弘 荐 绑 灭 裤 袁 炽 诞 俯 澳 庭 蛊 月 潦 丧 遥 壬 抬 钨 屋 僵 惋 蔷 烫 流 水 线 中 相 关 流 水 线 中 相 关 耶 源 舞 瞪 型 桨 笔 墩 嘱 扰 锐 秘 请 抒 嗅 嘶 淳 目 滨 疾 踌 蕴 守 窄 鼓 会 随 二 士 三 瓷 拳 流 水 线 中 相 关 流 水 线 中 相 关 (3) 分支延迟指令的调度(编译器) 任务:在延迟槽中放入有用的指令 三种调度方法 l 从前调度 (最好) l 从目标处调度 l 从失败处调度 卉 巨 菲 劝 在 股 倘

34、 危 汕 哄 见 靳 臆 沟 彦 就 猫 安 勉 驹 具 凌 肘 孕 相 捆 超 芽 忌 险 镀 讲 流 水 线 中 相 关 流 水 线 中 相 关 5863 念 宅 盼 领 恶 惰 与 豫 弘 荐 绑 灭 裤 袁 炽 诞 俯 澳 庭 蛊 月 潦 丧 遥 壬 抬 钨 屋 僵 惋 蔷 烫 流 水 线 中 相 关 流 水 线 中 相 关 调 度 策 略对调度的要求什么情况下起作用? 从 前 调 度 从目标处调度 从失败处调度 必须保证在分支失败时执行被调度 的指令不会导致错误。有可能需要 复制指令。 被调度的指令必须与分支无关 必须保证在分支成功时执行被调度 的指令不会导致错误。 任何情况 分支成

35、功时 (但由于复制指令,有 可能会增大程序空间) 分支失败时 三种方法的要求及效果 惜 层 诊 脓 惹 碱 症 铡 岩 萌 魁 锹 堆 输 豢 尺 烽 首 姆 放 业 澈 晾 鞭 口 地 粘 晚 裸 徘 讽 虾 流 水 线 中 相 关 流 水 线 中 相 关 5963 l 对放入延迟槽的指令有限制 l 编译器预测分支是否成功的能力 延迟分支调度受到的限制 进一步改进:引入“取消分支” 若预测方向正确,正常执行延迟槽中的指令; 否则,将之变为no-op指令。 3.3 流水线中的相关 洼 桐 琉 亭 捷 名 乔 桐 切 昏 蜡 藐 完 蛰 淘 百 握 糯 杭 纤 奔 插 舵 噪 乒 苫 诧 谱 儿

36、 据 萤 届 流 水 线 中 相 关 流 水 线 中 相 关 6063 3.3 流水线中的相关 婶 筏 右 丫 宛 太 宠 三 爷 呈 凿 砒 苞 步 窄 披 趾 彻 朋 预 揽 频 词 门 寄 湘 棒 峪 竟 冰 糜 抠 流 水 线 中 相 关 流 水 线 中 相 关 预测成功-取消”分支的执行过程 肩 俄 寺 窿 亥 必 督 姓 逻 滓 眷 支 刊 蛹 邀 企 整 悦 会 帖 贞 铭 医 桅 镣 庙 祁 瓜 烯 劣 庐 都 流 水 线 中 相 关 流 水 线 中 相 关 6263 四、各种分支处理方法的性能 1. 假设: 理想CPI1 则流水线的加速比为: SD(1C)D(1fp分支) D

37、 流水线的深度 C 分支引起的流水线暂停时钟周期数 (每条指令的平均值) f 分支的出现频度 p分支 分支开销 2DLX流水线中各种分支处理方法的开销 (表3.7) 3.3 流水线中的相关 鸿 哲 控 砒 层 枯 胖 装 替 蜡 技 棵 光 咬 造 窥 礁 牟 渭 创 滴 澳 统 墟 邻 讶 直 饮 孔 裤 烫 案 流 水 线 中 相 关 流 水 线 中 相 关 6363 表 3.7 各种减少分支损失方法的效果 调度方法 每条分支指令的 平均分支损失 暂停流水线 预测分支成功 预测分支失败 1.00 每条条件分支指 令的分支损失 延迟分支 每条无条 件分支指 令的损失 具有分支暂停 的实际 CPI 整型 平均 浮点 平均 整型 平均 整型 平均 浮点 平均 浮点 平均 1.00 1.00 0.62 0.25 1.00 1.001.00 1.00 1.00 0.69 0.21 1.001.171.15 1.001.171.15 0.741.121.110.701.00 0.350.000.301.041.04 3.3 流水线中的相关 瞪 爪 抬 协 镐 疡 寄 汰 封 丑 嘉 媒 皑 常 滓 艘 镣 聊 焊 观 谁 命 氏 乾 赘 涎 雹 修 轴 避 阻 颠 流 水 线 中 相 关 流 水 线 中 相 关

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

当前位置:首页 > 其他


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