- 4
- 0
- 约1.02万字
- 约 66页
- 2022-07-21 发布于江西
- 举报
第 16 章;本章主要内容;16.1 高性能微处理器所采用的先进技术;指令间的“相关”是指后面一条指令需要等前面一条(或几条)指令的执行结果,或者要等前面的一条(或几条)指令用完它们所需要的硬件资源(如存储器)后才能执行完。也就是说,后面一条指令必须等待前面一条(或几条)指令流过流水线后才能执行完。
指令间的“相关”可分为:结构相关、数据相关和控制相关。
下面分别说明这三种“相关”的不同特性、产生原因及处理方法。
;1. 结构相关;2. 数据相关;
图16.1 数据相关及其处理方法
;从图16.1(a)中可以看到,指令2从寄存器R1中取操作数是在流水级D,而指令1把结果送入寄存器R1是在流水级W。显然,指令2取操作数是在指令1把结果送入R1之前,所以指令2取来的是R1中先前(未执行指令1时)的旧内容,从而发生错误。
要解决数据相关,需要设置专门的检查数据相关的硬件??在每次取操作数时,把取数的地址同它前面正在流水线中尚未完成写数操作的所有写数指令的写数地址进行比较,如果有相同的,说明有数据相关存在,就必须采取相应措施。
就本例而言,解决数据相关最简单的办法就是推迟执行读数操作,等待相关的写数指令完成写数操作之后,再执行读数操作。如图16.1(b)所示。;从图16.1(b)可见,指令2要等待指令1在流水级W的操作完成之后才启动流水级D的操作,指令2在流水线中停顿了两个时钟周期。这
原创力文档

文档评论(0)