- 1、本文档共67页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 标量处理机 第五章 标量处理机 1.标量处理机:只有标量数据表示和标量指令系统的处理机称为标量处理机。标量处理机是一种最通用,也是使用最普遍的处理机。 2.标量处理机中提高指令执行速度的主要途径有: ①提高主频;②缩短CPI——设计更好的算法和功能部件;③指令级并行——主要方法,又可分为: a.流水线技术和超流水线技术; b.超标量技术 ; c.VLIW; 5.1 先行控制技术 5.2 流水线处理机 5.3 超标量与超流水处理机 5.1 先行控制技术 一、指令的重叠执行 设一条指令的执行分成三个阶段:取指、分析和执行,且每个阶段的执行时间都为n。则,可有下面的三种执行方式: 1.顺序执行 2.一次重叠 3.二次重叠 (如图5.2所示,p.254) 5.1 先行控制技术 5.1 先行控制技术 二、先行控制技术 上面的处理存在两个问题: 问题一: 在上面的讨论中有一个重要假设:每个阶段的执行时间都为n。如果不等,则有些阶段会出现空闲。 问题二: 主存访问冲突。例如,取指令k+1时,正在分析指令k,而分析指令k时可能也需要取操作数! 要解决上述问题,必须采用先行控制技术。 先行控制技术的关键是缓冲技术和预处理技术。 1.采用先行控制技术的处理机结构 5.1 先行控制技术 2.四个先行缓冲栈 (1) 先行指令缓冲栈——缓冲主存和指令分析器 (2) 先行操作栈——存放经过指令分析器预处理后的指 令。这种预处理内容很多。 5.1 先行控制技术 例如将M型指令(如MOV AX,[0001])转换为R型指令,具体过程如下: a)将主存地址0001通知先行读数栈,同时用先行读数栈的寄存器编号代替0001主存地址,预处理后的指令进入先行操作栈。 b)对于R型指令,不需任何处理,直接进入先行操作栈。 因此,先行操作栈在指令分析器和运算器之间提供缓冲。 (3)先行读数栈 (4)后行写数栈——如果指令有要写回主存的数据,先写到后行写数栈,指令继续执行。后行写数栈能在主存有空闲时,再写入主存。 5.1 先行控制技术 先行控制技术和和指令的重叠执行方式有不同:在指令分析器和运算器执行的两条指令可能不相邻! 三、数据相关 相关:所谓相关(correlation)是指在一段程序的相近指令之间有某种关系,这种关系可能影响指令的重叠执行。通常,把相关分为两大类。 数据相关:在执行本条指令的过程中,如果用到的指令、操作数、变址偏移量等正好是前面指令的执行结果,则必须等待前面的指令执行完成,并把结果写到生存或通用寄存器中之后,本条指令才能开始执行,这种相关称为数据相关。 控制相关:控制相关是指由条件分支指令、转子程序指令、中断等引起的相关。 5.1 先行控制技术 解决数据相关的一般方法: ①推后分析法 ②设置专用路径 1.指令相关 例如: k: STORE R1, k+1 k+1: … 在流水线或采用先行控制技术的处理机中,指令相关严重影响效率。 解决方法:运行中不能修改指令。 2.主存操作数相关 例如:k: add [0001],ax k+1: mov bx, [0001] 5.1 先行控制技术 在现代计算机中,中间结果一般写入寄存器,所以该类相关发生不多。 解决方法:推后分析法。 5.1 先行控制技术 3.通用寄存器数据相关 例如:k: add ax ,bx k+1: mov cx, ax 在现代计算机中,该类相关发生很多。 解决方法:①推后分析法——降低运算速度为代价解决 寄存器相关 ②设置专用数据通路(如图5.15所示)。 4.变址相关 例如: k: ADD BX,AX k+1: MOV CX,[BX] 解决方法:推后分析法和设置专用数据通路 5.1 先行控制技术 5.1 先行控制技术 四、控制相关 控制相关是指因为程序的执行方向可能被改变而引起的相关。可能改变程序执行方向的指令通常有无条件转移、一般条件转移、复合条件转移、子程序调用、中断等。 有些资料上把上一节中介绍的数据相关称为局部相关,而把本节将要介绍的控制相关称为全局相关。这是因为数据相关影响到的仅仅是本条指令附近的少数几条指令,而控制相关影响的范围要大得多,它可能引起程序执行方向的改变。 无条件转移指令和一般条件转移指令可以在指令分析器就执行完成,不需要送入先行操作栈和指令执行部件
文档评论(0)