【计算机体系结构】相关

简介: 【计算机体系结构】相关

微信截图_20220519154037.png


相关


  1. 相关是导致流水线冲突的主要原因。


  1. 相关
  • 两条指令之间存在某种依赖关系。
  • 如果两条指令相关,则他们就有可能不能在流水线中重叠执行或者只能部分重叠执行。


  1. 三类相关有:数据相关(真数据相关)、名相关、控制相关


数据相关


对于两条指令i (前一条指令)和 j (后一条指令),如果在以下条件之一成立,则称指令j和指令i数据相关。


  1. 指令j 使用指令i 产生的结果


  1. 指令j 与指令k 数据相关,指令k 又与指令i数据相关。


数据相关特点


  1. 具有传递性


  1. 反映了数据的流动关系,即如何从其产生者流动到其消费者


实例:


微信截图_20220519154057.png


存在数据相关的指令:


  1. L.D与ADD.D的数据相关(L.D指令将访存结果写入F0,而ADD.D需要使用L.D的访存结果)


  1. ADD.D与S.D的数据相关(ADD.D将计算结果写入F4,而S.D需要使用ADD.D的计算结果写入存储器)


  1. S.D与DADDIU的数据相关(前者修改R1的值,后者使用R1的值作为分支条件)


数据相关检测


  1. 当数据的流动是经过寄存器时,相关的检测比较直观和容易。


  1. 当数据的流动是经过存储器时,检测比较复杂。


(原因:1. 相同形式的地址其有效地址未必相同。2. 形式不同的地址其有效地址可能相同)


名相关


名:


  • 指令访问的寄存器或存储器单元的名称(例:R5,0x00001000等)


名相关:


  • 如果两条指令使用相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。


细分:


  1. 反相关
    如果指令j 写的名与指令i 读的名相同,则称指令i 和j 发生了反相关。
    实例:

微信截图_20220519154118.png


  1. 输出相关
    如果指令j 和指令i 写相同的名,则称指令i 和j 发生了输出相关


实例:


微信截图_20220519154127.png


名相关的特点


  1. 名相关的两条指令之间没有数据的传递。


  1. 如果一条指令中的名改变了,并不影响另外一条指令的执行。


消除名相关的方法:换名技术(通过改变指令中操作数的名来消除名相关)

例:对于寄存器操作数进行换名称为寄存器换名。


  • 既可以用编译器静态实现,也可以用硬件动态完成。


实例:

微信截图_20220519154138.png


控制相关


①控制相关是指由分支指令引起的相关

②为了保证程序应有的执行顺序,必须严格按控制相关确定的顺序执行


控制相关实例:


微信截图_20220519154153.png


  • 这里不能把s 移到if 语句的then 之后



目录
相关文章
|
2月前
|
算法 调度
计算机系统结构
【1月更文挑战第5天】计算机系统结构。
40 2
|
存储 缓存 虚拟化
五、计算机体系结构及内存分层体系
五、计算机体系结构及内存分层体系
五、计算机体系结构及内存分层体系
|
11月前
|
C++ 内存技术
计算机体系结构词汇表
计算机体系结构词汇表
|
存储 缓存 固态存储
存储器层次结构
实际的软件开发过程中,常会遇到服务端请求响应时间长,吞吐率不够。 分析对应问题时,你肯定听过“主要瓶颈不在CPU,而在I/O”,存储很重要。
167 0
|
缓存 虚拟化 芯片
【操作系统】第三章:计算机体系结构及内存分层体系(Part1:计算机体系结构)
【操作系统】第三章:计算机体系结构及内存分层体系(Part1:计算机体系结构)
211 0
|
存储 算法 搜索推荐
|
存储 算法 程序员
《数字逻辑设计与计算机组成》一 1.4 计算机体系结构
本节书摘来自华章出版社《数字逻辑设计与计算机组成》一 书中的第1章,第1.4节,作者:[美]尼克罗斯·法拉菲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1594 0