[工程科技]9现代微机结构_RISC技术.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工程科技]9现代微机结构_RISC技术

? 对条件转移指令: 采用分支预测或指令重调度 例: 1: MOV R1, R2 2: MOV R6, a 3: OR R7, R6 4: ADD R3, R4 5: JNC, N 6: ADD R4, R5 …… N: AND R7, R8 指令顺序调整为: 1: ADD R3, R4 2: JNC, N 3: MOV R1, R2 4: MOV R6, a 5: OR R7, R6 6: ADD R4, R5 …… N: AND R7, R8 调整后的流水线: F D E W F D E W F D E W F D E W F D E W F D E W 如果转移成功 N: AND R7, R8 ADD R3, R4 JNC, N MOV R1, R2 MOV R6, a …… OR R7, R6 6: ADD R4, R5 如果转移成功, 不再执行6号及后续指令, 否则仍将执行6号指令及后续指令。 (2) 数据相关 数据相关也称为数据冒险(或数据依赖)。指程序有先后顺序的两条指令对共享变量的读、写操作, 由于操作顺序上的原因, 流水线可能输出错误的结果。 因为这种相关性的违背只是错误的必要条件而不是充要条件, 不一定会发生错误, 所以称之为冒险。 共有三类数据冒险: 写后读(RAW)冒险 、读后写(WAR)冒险、写后写(WAW)冒险。 这三类冒险如下图所示。 目的 源 写 读 I1 I2 (a) RAW冒险 目的 源 写 读 I1 I2 (b) WAR冒险 目的 目的 写 写 I1 I2 (c) WAW冒险 在指令流水线中很容易出现RAW冒险, 而WAR和WAW两类冒险在指令流水线中一般不会出现。所以, 下面主要说明写后读(RAW)这类数据相关。 ADD R0, R1 ; R0+R1 ? R0 INC R0 ; R0+1 ? R0 MOV R2, R3 ; R3 ? R2 ... ADD R0, R1 MOV R2, R3 INC R0 ... 解决方法:指令重调度或插入空操作指令或硬件自动冻结周期 例: 第一条指令与第二条指令出现了数据相关 ADD R0, R1 NOP INC R0 MOV R2, R3 ... F D E W F D E W F D E W F D E W (3) 资源冲突 资源冲突的典型情况: 不同指令对存储器的访问 如下图的指令流水线: 如果该阶段出现访存(如ld/St指令), 则与第三条指令的取指操作冲突。 若访存, 与第四条指令的的取指操作冲突。 不同指令执行时, 要求使用同一资源。 解决措施: (1) 硬件自动冻结(阻塞)某一个周期 F D E W F D E W F D E W F D E W 或者: 假设第一条指令的执行需要访存,则与其它指令的取指指冲突 F D E W F D E W F D E W F D E W (2) 从结构设计上避免冲突 指令Cache和数据Cache分离, 使取指令和取数据相互独立, 可以大幅度地减少总线资源冲突。 这种结构称为哈佛结构(Harvard architecture)。目前的处理器基本上都采用了这种结构, 如Pentium和i860处理器均采用该结构。 另一种方式是: 用一个Cache, 但指令端口和数据端口分离, 因此可以同时访问两个不同端口,指令和数据分别从两个不同端口读取, 但实现起来比较复杂。 资源冲突也有其它情况。例如, 两条指令都要求使用一个加法部件或图形处理部件等。 一般可采用的方法是: 为可能导致冲突的共享资源设置一个“忙”

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档