4.1.2程序执行过程中的重叠操作 与先行控制 1.程序执行过程中的重叠操作 在计算机运行的过程中,指令的解释方式可分为三种,即顺序、重叠 和流水,依据不同的解释方式,可以产生不同的工作方式和过程。下面仅 介绍顺序解释方式和重叠解释方式,流水线方式将在第4.2节介绍。 (1)顺序解释方式 顺序解释是最简单的种方式,它是一条指令执行完后再去解释下一 条指令。早期的计算机多采用这种方式,指令执行过程分为取指令、分析 (译码)和执行三个阶段,顺序进行,其示意如图43所示。 取指k分析k执行k取指k+1分析k+1执行k+1 图43顺序执行方式
4.1.2 程序执行过程中的重叠操作 与先行控制 1.程序执行过程中的重叠操作 在计算机运行的过程中,指令的解释方式可分为三种,即顺序、重叠 和流水,依据不同的解释方式,可以产生不同的工作方式和过程。下面仅 介绍顺序解释方式和重叠解释方式,流水线方式将在第4.2节介绍。 (1)顺序解释方式 顺序解释是最简单的一种方式,它是一条指令执行完后再去解释下一 条指令。早期的计算机多采用这种方式,指令执行过程分为取指令、分析 (译码)和执行三个阶段,顺序进行,其示意如图4.3 所示。 图4.3 顺序执行方式
若取指令、分析和执行所用的时间(周期)相等,设为t,则顺 序解释执行指令所需要的时间3×门×t如果各部分时间表示 为指、t析和轨行,则顺序执行嚓条指令所用的时间为: 7=∑(t取十t分十1执) (4.1) (2)重叠解释方式是在两条相邻指令的解释过程中,存在某些时段 可以重叠进行,其示意如图4.4所示。 取指k分析k执行k 取指k+1分析k+1执行k+1 (a)一次重叠工作方式 取指k分析k执行k1 取指k+1分析k+1执行k+1 (b)二次重叠工作方式 图44重叠执行方法
若取指令、分析和执行所用的时间(周期)相等,设为t,则顺 序解释执行n条指令所需要的时间T=3×n×t。如果各部分时间表示 为t取指、t分析和t执行,则顺序执行n条指令所用的时间为: (2)重叠解释方式是在两条相邻指令的解释过程中,存在某些时段 可以重叠进行,其示意如图4.4所示。 图4.4 重叠执行方法 T=∑(t取i+t分i+t执i) n i=1 (4.1)
图(a)是一次重叠方式,执行m涤条指令所用的时间为:7=(2+1)t 图(b)是二次重叠方式,执行条指令所用的时间为 7=3+(-1)t=(m+2)t 为实现重叠解释方式,需要硬件支持,比如设置指令缓冲寄存器 或称指令队列。又如程序与数据分别存储,以便分别迅速读取操作 数。 若指令的解释过程可分为两个段,上述重叠解释过程可如图4.5 所示。如果“分析”和“执行”的时间相同,那么解释执行n条指令 的时间为 7=(+1)t 分析k 执行k 分析k+1执行k+1 图45两阶段一次重叠工作方式
图4.5 两阶段一次重叠工作方式 图(a)是一次重叠方式,执行n条指令所用的时间为:T=(2n+1)t; 图(b)是二次重叠方式,执行n条指令所用的时间为: T=3t+(n-1)t=(n+2)t。 为实现重叠解释方式,需要硬件支持,比如设置指令缓冲寄存器 或称指令队列。又如程序与数据分别存储,以便分别迅速读取操作 数。 若指令的解释过程可分为两个段,上述重叠解释过程可如图4.5 所示。如果“分析”和“执行”的时间相同,那么解释执行n条指令 的时间为: T=(n+1)t
2.先行控制 分析k「执行k 执行部件空闲 在上述重叠解释方式中假 分析k+1 执行k+1 设“分析”和“执行”的时间 分析部件空闲 分析k2执行k 相等,但是实际的解释执行过 (a)分析与执行时间不相等重叠方式 程中,“分析”和“执行”的 分析k 执行k 时间往往不相等,如图4.6(a) 分析k+1 执行k+1 分析k2 所示,这样解释执行n条指令 执行k+2 (b)先行控制方式 的时间为: 图46分析与执行时间不相等 和先行控制方式 7=1分1+∑[max(t2,A1)]+执n (4.2)
2.先行控制 在上述重叠解释方式中假 设“分析”和“执行”的时间 相等,但是实际的解释执行过 程中,“分析”和“执行”的 时间往往不相等,如图4.6(a) 所示,这样解释执行n条指令 的时间为: T=t分1+∑[max(t分i,t执i-1)]+t执n n i=2 (4.2) 图4.6 分析与执行时间不相等 和先行控制方式
□分析k执行k 分析k1 执行k+1 分析k+2 执行k+2 (b)先行控制方式 图46分析与执行时间不相等和先行控制方式 为解决重疊过程中的“空闲”,可采用先行控制技术,使 “分析”和“执行”分别连续进行,如图4.6(b)所示。这时, 执行条指令所需要的时间为 7先行=t分1+∑/(43)
为解决重叠过程中的“空闲”,可采用先行控制技术,使 “分析”和“执行”分别连续进行,如图4.6(b)所示。这时, 执行n条指令所需要的时间为: n i=1 T先行=t分1+∑t执i (4.3) 图4.6 分析与执行时间不相等和先行控制方式