- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机组成原理 指令重叠控制方式 在一个计算机系统中,CPU的控制器是整个系统的指挥中心,它把运算器、存储器以及I/O等设备组成一个有机系统。 计算机程序和原始数据的输入,在CPU内的信息处理,CPU处理结果的输出,外部设备与主机之间的信息交互等都是在控制器的控制下实现的。控制器是指令系统的执行机构。它完成任何一条指令通常都经过取指令、分析指令、执行指令三个阶段,因此控制器就必须有这三种功能,当然还应有控制外部设备和中断处理等功能。 这里要研究的是如何加快指令执行过程,也就是加快机器语言的解释过程。解释过程是由机器内的控制机构控制,它调用一串微指令(或微操作)去实现每条机器指令,并控制这一串微指令与解释下一条机器指令的另一串微指令之间的衔接。 为了加快单条指令的解释过程,可采用的途径有:选用更高速的器件;采用更好的运算方法;减少解释过程所需要的节拍数;使解释过程的各个动作并行执行等。在此基础上为要提高机器语言程序的执行速度,则需采用同时解释两条、多条以至整段程序的控制方式。 指令的解释可以有三种控制方式,即顺序方式、重叠方式和流水方式。 取指令 分析 执行 取指K+1 取指K 分析K 执行K 分析K+1 执行K+1 图 机器指令的微操作 图 指令间的操作顺序 优点:控制简单 缺点:速度慢 重叠方式 重叠方式指的是在解释第K条指令的操作完成之前,就开始解释第K+1条指令; 重叠解释并不能加快指令的实现,但能加快相邻两条指令以至一段程序的解释; “一次重叠”指的是任何时候都只是“执行K”与“分析K+1”重叠; 一次重叠是重叠机器一般采用的方法。 重叠方式 取指K+1 取指K 分析K 执行K 分析K+1 执行K+1 图 指令重叠方式 流水的基本概念 计算机的流水处理过程非常类似于工厂中的流水装配线; 为了实现流水,首先把输入的任务(或过程)分割为一系列子任务,并使各子任务能在流水线的各个阶段并发地执行; 当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现了子任务级的并行性。 若完成一条指令的时间为T,则对分解为“分析”和“执行”两个子过程:T=2?t1,即每隔?t1=T/2就可处理出一个结果; 而对分解为“取指令”、“指令译码”、“取操作数”和“执行”4个子过程的,则T=4?t2,即每隔?t2=T/4就可处理出一个结果。 对流水计算机来说,上一条指令与下一条指令的四个子过程在时间上重叠执行; 因此,当流水线满载时,每个时钟周期可以输出一个结果; 由于其过程相当于现代工业生产装配线上的流水作业,因此把这种处理机称为流水计算机。 流水控制方式有关的问题 流水线中的相关是指相邻或相近的两条指令因存在某种关联,后一条指令不能在原指定的时钟周期开始执行。 资源相关 数据相关 控制相关 资源相关: 资源相关是指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突; 也就是说当硬件资源满足不了同时重叠执行的指令的要求,而发生资源冲突时,就发生了资源相关。 资源相关冲突的解决办法: 一是指令停顿一拍后再启动; 二是增设一个存储器,将指令和数据分别放在两个存储器中。 下面仅就在同一时间内(纵向来看)“分析K”和“取指K+1”的重叠对计算机组成提出了什么样的要求。 “分析K”的时间内,主要操作是形成操作数真地址和访内取操作数,而“取指K+1”也需访内。但是一般的机器,操作数和指令是混合存储于同一主存内的,因而同时只能访问一个存储单元,这样就实现不了“分析K”和“取指K+1”的重叠。 为了实现重叠的解释,可以采用不同的硬件结构方法来完成。 第一种方法:设置两个存储器,并独立编址,分别存放操作数和指令就可同时访内了。 第二种方法:操作数和指令仍混存与内存中,但用多体交叉存储结构,只要相邻的第K+1条指令及K条指令中所需要的操作数不在同一个存储体中,则能在一个主存周期内取出这两者,从而实现两条指令的“分析K”和“取指K+1”时间上的重叠。 第三种方法:设置指令缓冲寄存器(简称指缓),预先把指令由主存取到这个寄存器。这样,“分析K”就能和“取指K+1”重叠, 因为只有前者“分析K”需要访问主存储器取操作数,而后者“取指K+1”是由指令缓冲寄存器取第K+1条指令。以下解释为什么能预先取出指令。 其原因是由于一条指令的“执行”操作,如相加或相乘的操作时间往往会比“分析”的操作时间要长,因此,出现图4.38所示那样。三者在一段时间同时操作,但使用一套存储器执行完第K-1条操作后,在虚线以右的时间段内得到结果;而“分析K”的取数访内时间在虚线以左,这是因为tt,由于访存时间错开了,所以它们可以重叠操作。由上图还可以看
文档评论(0)