分析指令 分析指令
免费智能真题库 > 历年试卷 > 系统分析师 > 2013年上半年 系统分析师 上午试卷 综合知识
  第15题      
  知识点:   流水线技术
  章/节:   计算机组成与体系结构       

 
某计算机系统采用4级流水线结构执行指令,设每条指令的执行由取指令分析指令、取操作数、运算并保存结果组成(注:括号中是指令执行周期),并分别用4个子部件完成,该流水线的最大吞吐率为(14);若连续向流水线输入5条指令,则该流水线的加速比为(15)。
 
 
  A.  1:1
 
  B.  2:1
 
  C.  8:3
 
  D.  3:8
 
 
 

 
  第58题    2014年上半年  
   54%
流水线技术是通过并行硬件来提高系统性能的常用方法。对于一个k段流水线,假设其各段的执行时间均相等(设为t),输入到流水线中..
  第15题    2011年上半年  
   55%
以下关于复杂指令集计算机(Complex Instruction Set Computer, CISC)弊端的叙述中,错误的是(15)。
  第17题    2017年上半年  
   46%
以下关于复杂指令集计算机(Complex Instruction Set Computer,CISC) 的叙述中,正确的是( )。
   知识点讲解    
   · 流水线技术
 
       流水线技术
        流水线技术是通过并行硬件来提高系统性能的常用方法,它其实是一种任务分解的技术,把一件任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构来负责执行,而这些执行机构可以同时并行工作。
               参数计算
               假定有某种类型的任务,共可分成n个子任务,每个子任务需要时间t,则完成该任务所需的时间即为nt。若以传统的方式,则完成k个任务所需的时间是knt;而使用流水线技术执行,则花费的时间是(n+k-1)t。也就是说,除了第一个任务需要完整的时间外,其他都通过并行,节省了大量的时间,只需一个子任务的单位时间就够了。
               如果每个子任务所需的时间不同,则其速度取决于其执行顺序中最慢的那个(也就是流水线周期值等于最慢的那个指令周期),要根据实际情况进行调整。
               例如,若指令流水线把一条指令分为取指、分析和执行3部分,且3部分的时间分别是取指2ns,分析2ns,执行1ns。那么,最长的是2ns。要注意的是,在设计流水线的周期时,是以执行时间最长的那一个部分为标准的。因此100条指令全部执行完毕需要的时间就是:(2+2+1)+(100-1)×2=203 ns。
               另外,还应该掌握几个关键的术语:流水线的吞吐率、加速比。流水线的吞吐率(ThroughPut rate, TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的力口速比(speedup ratio)。
               例如,在上述例子中,203ns的时间内完成了100条指令,则从指令的角度来看,该流水线的吞吐率为(100×109)/203=4.93×108/s(1s=109ns),加速比为500/203=2.46(如果不采用流水线,则执行100条指令需要500ns)。
               影响流水性的主要因素
               流水线的关键在于“重叠执行”,因此如果这个条件不能够满足,流水线就会被破坏。这种破坏主要来自3种情况:
               (1)转移指令。因为前面的转移指令还没有完成,流水线无法确定下一条指令的地址,因此也就无法向流水线中添加这条指令。从这里的分析可以看出:无条件跳转指令是不会影响流水线的。
               全局性相关就是指转移指令(尤其是条件转移指令)与它后面的指令之间存在关联,使之不能同时解释,执行转移指令时,可能会改动指令缓冲器中预取到的指令内容,从而会造成流水线吞吐率和效率下降,比局部性相关的影响要严重得多,所以称为全局性相关。解决全局性相关有3种方法:猜测转移分支、加快和提前形成条件码、加快短循环程序的处理。
               (2)共享资源访问的冲突。也就是后一条指令需要使用的数据,与前一条指令发生的冲突,或者相邻的指令使用了相同的寄存器,这也会使得流水线失败。为了避免冲突,就需要把相互有关的指令进行阻塞,这样就会引起流水线效率的下降。一般来说,指令流水线级数越多,越容易导致数据相关,阻塞流水线。当然,也可以在编译系统上进行设置,当发现相邻的语句存在资源共享冲突的时候,在两者之间插入其他语句,将两条指令进入流水线的时间拉开,以避免错误。
               局部性相关处理由于流水机器同时解释多条指令,这些指令可能有对同一主存单元或同一寄存器“先写后读”的要求,这时就出现了相关,这种相关包括指令相关、访存操作数相关以及通用寄存器组相关等,它只影响相关的两条或几条指令,而且至多影响流水线的某些段推后工作,并不会改动指令缓冲器中预取到的指令内容,影响是局部的,所以称为局部性相关。解决局部性相关有两种方法:一种是推后法,即推后对相关单元的读,直至写入完成,另一种是通路法,即设置相关专用通路,使得不必先把运算结果写入相关存储单元,再从这里读出后才能使用,而是经过相关专用通路直接使用运算结果,这样可以加快速度。
               (3)响应中断。当有中断请求时,流水线也会停止。流水线响应中断有两种方式:一种是立即停止现有的流水线,称为精确断点法,这种方法能够立即响应中断,缩短了中断响应时间,但是增加了中央处理器的硬件复杂度。还有一种是在中断时,在流水线内的指令继续执行,停止流水线的入口,当所有流水线内的指令全部执行后,再执行中断处理程序。这种方式中断响应时间较长,被称为不精确断点法,优点是实现控制简单。
               非线性流水线
               在本节的介绍中,都是以线性流水线为例的,即假设系统中只存在一条流水线。如果系统中同时存在多条流水线,则需要进行变通处理。
               例如,设指令由取指、分析、执行3个子部件完成,并且每个子部件的时间均为t。若采用常规标量单流水线处理机(即该处理机的度为1),连续执行12条指令,根据前面的介绍,则共需(12+3-1)t=14t。若采用度为4的超标量流水线处理机,连续执行上述12条指令,则因为同时运行4条流水线,平均每条流水线只需执行3条指令,因此只需(3+3-1)t=5t
   题号导航      2013年上半年 系统分析师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第15题    在手机中做本题