计算机体系结构期末复习 第三章

• 处理指令的步骤
– 取指:从内存中读取指令字节
– 译码:读取操作数
– 执行:ALU执行指令指明的操作
– 访存:将数据写入内存或者读取内存的值
– 写回:将结果写入到寄存器文件
– 更新:将PC设置成下一条指令的地址

• 取指阶段执行操作
– 取出指令代码(icode)与指令功能(ifun)
– 寄存器指示符rA和rB
– 常数valC
– 计算下一条指令的地址valP、

• 译码阶段的操作
– 从寄存器文件中读取操作数得到valA与valB
• 执行阶段的操作
– ALU(算术逻辑单元)指明指令执行的操作,得到valE
• 访存阶段执行的操作
– 见数据写入内存或者从内存读入数据
• 写回阶段执行操作
– 将结果写回到寄存器文件
• 更新
– 将PC设置为下一条指令的地址

指令的并行执行
– 空间并行性:即在一个处理机内设置多个独立的操作部件,并让这些操作部件并行工作,这种处理机称为多操作部件处理机或超标量处理机;
– 时间并行性:就是采用流水线技术。流水线技术是一种非常经济、对提高处理机的运算速度非常有效的技术。

流水线原理:
• 重叠执行方式(一种最简单的流水线方式)
– 优点:执行时间缩短,功能部件的利用率明显提高
– 缺点:需要增加一些硬件,控制过程稍复杂
流水线性能指标
吞吐率,加速比,效率
• 吞吐率(Though Put):单位时间内流水线能处理的任务数量。
– 求流水线吞吐率的最基本公式:TP = n / Tk
n为任务数, Tk为完成n个任务所用时间
加速比完成一批任务,不使用流水线与使用 流水线所用的时间之比
效率
在这里插入图片描述

流水线瓶颈段解决:

在这里插入图片描述

• 线性流水线(Linear Pipelining)
每个流水段都流过一次,且仅流过一次
• 非线性流水线(Nonlinear Pipelining)
在流水线的某些流水段之间有反馈回路或前馈回路
• 单功能流水线:
• 只能完成一种固定功能的流水线
Cray-1计算机中有12条;YH-1计算机有18条;Pentium有一条5段的定点和一条8段的浮点流水线;PentiumⅢ有三条指令流水线,其中两条定点指令流水线,一条浮点指令流水线。
• 多功能流水线:
• 流水线的各段通过不同连接实现不同功能

• 流水线中相关的分类
– 数据相关(局部相关)
– 控制相关(全局相关)
• 流水线冒险:相关导致的流水线产生错误
– 数据冒险
控制冒险
数据冒险:流水线使原先有先后顺序的指令同时处理,当出现某些指令的组合时,可能会导致指令使用了错误的数据

解决方法:暂停,转发将计算结果从一个阶段传到较早阶段称为转发
控制冒险
解决方法:分支预测
• 分支预测器猜测条件表达式的两路分支中哪一路最可能发生,然后推测执行这一路的指令,来避免流水线停顿造成的时间浪费。如果后来发现分支预测错误,那么流水线中推测执行的那些中间结果全部放弃,重新获取正确的分支路线上的指令开始执行,这招致了程序执行的延迟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值