摘要:本知识点在历年考试中频繁出现,因为它与我们实际工作中的流水线作业非常相似。掌握该知识点在于理解流水线的工作原理,并且能够计算出流水线指令执行时间,以及影响流水线执行的因素。
2.1.5【网络工程师考试知识点】流水线与并行处理
本知识点在历年考试中频繁出现,因为它与我们实际工作中的流水线作业非常相似。掌握该知识点在于理解流水线的工作原理,并且能够计算出流水线指令执行时间,以及影响流水线执行的因素。
1. 指令的重叠执行
指令的执行过程可以被分解为相互独立的几个阶段,具体的分法要根据各种处理机的情况而确定。在图2-6中把一条指令的执行过程分为3个阶段。当有多条指令要在处理机中执行时,根据重叠程度的不同可以有多种执行方式:顺序执行方式、 一次重叠执行方式、二次重叠执行方式。
图2-6 一条指令的执行过程
l顺序执行方式。指令的执行过程如图2-7a所示。采用顺序执行方式执行n条指令所用的时间为:
图2-7 指令的几种执行方式
l一次重叠执行方式。这是一种最简单的重叠方式,如图2-7b所示,把执行第k条指令与取第k+1条指令同时进行。如果执行一条指令的两个过程的时间均相等,则执行n条指令所用的时间为:
l二次重叠执行方式。为了进一步提高指令的执行速度,可以把取第k+1条指令提前到与分析第k条指令同时进行,同样,分析第k+1条指令与执行第k条指令同时进行,如图2-7c所示。如果执行一条指令的三过程的时间相等,则执行n条指令所用的时间为:
2. 流水线执行时间
假定有某类任务,它可以划分为N个子任务,每个子任务需要的时间均为t.那么采用流水线方式,完成k个此类任务所需时间很容易得出:T=Nt+(k-1)×t.也就是说,除了第一个任务需要一个完整的执行时间Nt,之后每隔t时间,便会执行完一个任务。
但如果每个子任务所要执行的时间不同,则总的运行时间取决于这些子任务中最慢的那段,我们也称它为流水线周期。通常为了提高工作效率,采用继续划分子任务的方式,将其分割成更小的子任务。此类流水线执行时间的计算,一般分几种情况考虑:
简单算法:一般为了方便计算,将各个功能段的实际执行时间(可能互不相等)都以流水线周期时间,即:
T=(指令条数+子任务数-1)×流水线周期
如下图所示,显然标准算法与简单算法只是在第一条指令执行所需时间的不同,但标准算法更加精确。读者在考试时,可根据提供的答案来确定试题具体考查的哪种计算方法。
图2-8 常规流水线工作方式
编辑推荐:
软考备考资料免费领取
去领取