第五章 标量处理机

加快标量处理机的机器语言的解释是组成设计的基本任务,可通过两方面实现:

1、通过选用更高速的期间,采取更好的运算算法,提高指令内容各微操作的并行程度,减少解题过程所需要的拍数等措施,加快每条机器指令的解释。

2、通过控制机构同时解释两条、多条以至整段程序的方式,加快整个机器语言的解释。

5.1 重叠方式

5.1.1 重叠原理与一次重叠

顺序解释:各指令之间顺序串行地进行,每条指令内部各个微操作也顺序串行的进行。

解释一条机器指令的微操作可归并成指令、分析和执行三部分。

对一条机器指令的解释

对一条机器指令的解释

取指:指令计数器的内容访主存,取出该指令送到指令寄存器、

分析:对指令的操作码进行译码,按寻址方式和地址字段,形成操作数真地址,并用此地址去取操作数,为取下一条还要形成下一条的地址。

执行:对操作数进行运算、处理或存储运算结果。

顺序解释优点:控制简单,转入下条指令的时间易于控制。

缺点:上一步操作未完成,下一步操作便不能开始,速度上不去,计算机各部分利用率低。

指令的重叠是在解释第K条指令的操作完成之前,就开始解释第K+1条指令。

指令的顺序解释与重叠解释

指令的顺序解释与重叠解释

重叠虽不能加快一条指令的解释,却能加快相邻两条指令以至整段程序的解释。

实现指令的重叠解释必须在计算机组成上要满足一下几点:

1)解决访主存的冲突

方法1:让操作数和指令分别存放于两个独立编制且可同时访问的存储器中,有利于数据保护,但增加了主存控制器的复杂性及软件设计的麻烦。

方法2:增设采用先进先出方式工作的指令缓冲寄存器(指缓),乘主存空闲时,预取下一条或下几条指令存储于指缓中,最多可预存多少条指令取决于指缓容量,若每次都从指缓取指,取指K+1时间短,可将取指K+1与分析K+1合并,从而由取指K+2、分析K+1、执行K重叠变成只是分析K+1与执行K重叠。

方法3:仍维持指令和操作数混存,但采用多体交叉主存结构,只要第K条指令的操作数与第K+1条指令不在同一个体内,仍可在一个主存周期内取得,从而实现分析K与取指K+1的重叠,若两者正好共存在一个体内,则无法重叠,存在一些局限性。

一次重叠工作方式

一次重叠工作方式

2)解决“分析”与“执行”操作的并行

为了实现执行k与分析k+1重叠,硬件上还应有独立的分析部件和指令执行部件。

3)解决分析与执行操作控制上的同步

指令分析部件和指令执行部件任何时候都只有相邻两条指令在重叠解释的方式为一次重叠。

好处是节省硬件,计算机指令分析部件和指令执行部件均只需要一套,简化了控制设计时适当安排好微操作,使分析和执行的时间尽量等长,重叠才能有较高的效率。

4)解决指令间各种相关的处理

条件转移成功是,重叠实际变成了顺序。

控制上解决邻近指令之间可能出现的某种关联。

K+1条指令的源操作数地址i正好是第K条指令存放运算结果的地址,在进行顺序解释时,由于先由第K条指令把运算结果存进主存i单元,而后再由第K+1条指令从i单元取出,不会出错,但在分析K+1与执行K重叠解释是,分析K+1i单元取出的源操作数内容变成了执行K存进预算结果,这必然出错。

这种因机器语言中邻近指令之间出现了关联,为防止出错,让它们不能同时解释的现象称为发生了关联。

上例是在KK+1条指令的数据地址之间有了关联,称为发生了数相关。

书相关不知发生在主存空间,还会发生在通用寄存器空间

指令相关:

由于在执行K的末尾才形成第K+1条指令,按照一次重叠的时间关系,分析K+1所分析的是已取进指缓的第K+1条指令的旧内容,因此会出错,为避免出错,第KK+1条指令就不能同时解释,我们称此时这两条指令间发生了指令相关。

指缓容量越大或说指令与处理能力越强的计算机发生指令相关的概率就越高。

当第k条指令是条件转移时

当第k条指令是条件转移时

5.1.2 相关处理

1.转移指令的处理

当程序中遇到条件转移时,一旦条件转移成功,重叠解释实际变成了顺序解释。

标量计算机中的条件转移概率可达10%~30%,重叠效率会下降,重叠方式的计算机在程序中应尽量减少使用条件转移指令,若要用条件转移指令时,可采用延迟转移技术,由编译程序生成目标程序时,将转移指令与条件转移无关的第K-1条指令变换位置,使条件转移成功也不会使重叠效率下降。

2.指令相关的处理

对于有指缓的计算机,由于指令时提前从主存取进指缓的。为判定是否发生了指令相关,需要对多条指令的运算结果地址比较,这很复杂,有指令相关还需要将相关指令作废,重取并更换指缓内容,这样做不仅操作控制复杂,也增加了辅助操作的时间,需要一个主存周期去取指,时间损失更大。

由于指令相关由指令允许修改引起,规定在程序运行过程中不允许修改指令,指令相关就不可能发生,不准修改指令还可以实现程序的可载入和程序的递归调用,为满足程序设计灵活性的需要,在程序运行过程中有时希望修改指令,这时可设置一条执行指令来解决。

使被修改指令时以执行指令的操作数形式出现的,将指令相关转化成了数相关,只需统一按数相关处理即可。

3.主存空间数相关的处理

主存空间数相关是相邻两条指令之间出现对主存同一单元要求先写而后读的关联,如果让直行k与分析k+1在时间上重叠,就会使分析k+1读出的书不是第k条指令执行完应写入的结果而出错,要想不出错,只有推后分析k+1的读。

推后读的常见方法是由存控(存储器控制器)给读数、写数申请安排不同的访存优先级来解决。

当中央处理机和通道同时都访存出现相关时,由存控给每个主存周期中对发生的各种访存申请排队,有限处理级别高的申请,在存控中将写数级别安排成高于读数级别,则kk+1出现数相关(主存)时,存控有限处理执行k的写数,将分析k+1读申请推迟到下一个主存周期处理,自动实现推后分析k+1

主存数相关的处理

主存数相关的处理

4.通用寄存器组相关的处理

通用寄存器组的相关又有操作数相关和变址值或基址值相关。

推后分析k+1和设置相关专用通路是解决重叠方式相关处理的两种基本方法,前者以降低速度为代价,使设备基本不增加,后者以增加设备为代价,使重叠率不下降。

若相关的概率很低,不宜采用“相关专用通路”法。

一次和二次相关指的是相关指令相隔的指令条数。

B一次相关与二次相关

B一次相关与二次相关

基址值相关其解决办法同数相关一样,也有推后分析和设置专用通路两种。

为实现两条指令在时间上重叠解释,首先要付出空间代价,如增设数据总线、控制总线、指令缓冲器、地址加法器、相关专用通路,将指令分析部件和指令执行部件功能分开,独立设置。

主存采用多体交叉等,处理好指令之间可能存在的关联,如转移的处理,根据哈夫曼思想在成本和效率上权衡选用。

合理搭配号机器指令顺序及指令内部微操作的时间关系以提高重叠的效率。

用相关专用通路解决通用寄存器组的数相关

用相关专用通路解决通用寄存器组的数相关

 

与本文相关的文章
版权声明
转载保留版权: 大D综合研究院 | 《《计算机系统结构》读书笔记(十二)》
本文链接地址:https://www.dadclab.com/archives/3145.jiecao
转载须知:如果您需要转载本文,请将版权信息,版权授权方式,以及本文的链接地址注明,谢谢合作。
本文被贴上了: , , , , , , , 标签