免费智能真题库 > 历年试卷 > 系统分析师 > 2014年上半年 系统分析师 上午试卷 综合知识
  第58题      
  知识点:   流水线技术   系统性能   硬件   运算器
  关键词:   流水线   系统性能   硬件   运算器   执行时间        章/节:   计算机组成与体系结构       

 
流水线技术是通过并行硬件来提高系统性能的常用方法。对于一个k段流水线,假设其各段的执行时间均相等(设为t),输入到流水线中的任务是连续的理想情况下,完成n个连续任务需要的总时间为(58)。若某流水线浮点加法运算器分为5段,所需要的时间分别是6ns、7ns、8ns、9ns和6ns,则其最大加速比为(59)。

 
 
  A.  nkt
 
  B.  (k+n-1)t
 
  C.  (n-k)kt
 
  D.  (k+n+1)t
 
 
 

 
  第17题    2017年上半年  
   47%
以下关于复杂指令集计算机(Complex Instruction Set Computer,CISC) 的叙述中,正确的是( )。
  第14题    2013年上半年  
   51%
某计算机系统采用4级流水线结构执行指令,设每条指令的执行由取指令
  第15题    2013年上半年  
-->
   57%
某计算机系统采用4级流水线结构执行指令,设每条指令的执行由取指令
 

   知识点讲解    
   · 流水线技术    · 系统性能    · 硬件    · 运算器
 
       流水线技术
        流水线技术是通过并行硬件来提高系统性能的常用方法,它其实是一种任务分解的技术,把一件任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构来负责执行,而这些执行机构可以同时并行工作。
               参数计算
               假定有某种类型的任务,共可分成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
 
       系统性能
               系统性能定义和指标
               计算机系统性能指标以系统响应时间和作业吞吐量为代表。响应时间(Elapsed Time)是指用户从输入信息到服务器完成任务给出响应的时间,即计算机系统完成某一任务(程序)所花费的时间,比如存储器访问、输入/输出等待、操作系统开销等。作业吞吐量是整个服务器在单位时间内完成的任务量。假定用户不间断地输入请求,则在系统资源充裕的情况下,单个用户的吞吐量与响应时间成反比,即响应时间越短,吞吐量越大。为了缩短某一用户或服务的响应时间,可以分配给它更多的资源。性能调整就是根据应用要求和服务器具体运行环境和状态,改变各个用户和服务程序所分配的系统资源,充分发挥系统能力,用尽量少的资源满足用户要求,达到为更多用户服务的目的。
               计算机性能的其他常用指标还包括MIPS (Million Instruction Per Second)和MFLOPS(Million Floating-point Instruction Per Second)。
               (1) MIPS=指令数/(执行时间×1000000)。
               其主要特点如下:
               ① MIPS大小和指令集有关,不同指令集的计算机间的MIPS不能比较。
               ②在同一台计算机上MIPS是变化的,因程序不同而变化。
               ③有时MIPS指标会出现矛盾。
               ④主要适用于带有硬件浮点处理器的计算机。
               ⑤MIPS中,除包含运算指令外,还包含取数、存数、转移等指令在内。
               ⑥MIPS只适宜于评估标量机。
               ⑦相对MIPS指相对参照机而言的MIPS,通常用VAX-11/780机处理能力为1MIPS。
               (2)MFLOPS=浮点指令数/(执行时间×1000000)。
               ①与机器和程序有关。
               ②测量浮点运算时,比MIPS准确。
               ③MFLOPS比较适宜于评估向量计算机。
               ④MFLOPS与MIPS关系:1MFLOPS≈3MIPS。
               ⑤MFLOPS仅仅只能用来衡量计算机浮点操作的性能,而不能体现计算机的整体性能。例如编译程序,不管计算机的性能有多好,它的MFLOPS不会太高。
               ⑥MFLOPS是基于操作而非指令的,所以它可以用来比较两种不同的计算机。
               ⑦MFLOPS依赖于操作类型。例如100%的浮点加要远快于100%的浮点除。
               ⑧单个程序的MFLOPS值并不能反映计算机的性能。
               系统性能评估
               计算机性能评价技术可用于开发中和开发后的系统评价。主要包括三种技术:分析技术、模拟技术、测量技术。
                      分析技术
                      分析技术是在一定假设条件下,计算机系统参数与性能指标参数之间存在着某种函数关系,按其工作负载的驱动条件列出方程,用数学方法求解。其特点是具有理论的严密性,节约人力和物力,可应用于设计中的系统。它的数学工具主要是利用排队论模型进行分析。
                      模拟技术
                      模拟技术首先是对于被评价系统的运行特性建立系统模型,按系统可能有的工作负载特性建立工作负载模型;随后编写模拟程序,模仿被评价系统的运行;设计模拟实验,依照评价目标,选择与目标有关因素,得出实验值,再进行统计、分析。其特点在于可应用于设计中或实际应用中的系统,可与分析技术相结合,构成一个混合系统。分析和模拟技术最后均需要通过测量技术验证。
                      测量技术
                      测量技术则是对于已投入使用的系统进行测量,通常采用不同层次的基准测试程序评估。其评估层次包括实际应用程序、核心程序、合成测试程序三个层次,但必须均为国际性组织认可的程序,同时需要对评估结果进行分析和统计以保证其准确性。
                      常用的国际认可的用来测试机器性能的测试基准测试程序(按评价准确性递减的顺序):
                      (1)实际的应用程序方法。
                      运行例如C编译程序、Tex、字处理软件、CAD工具等。
                      (2)核心基准程序方法。
                      从实际的程序中抽取少量关键循环程序段,并用它们来评价计算机的性能。
                      (3)简单基准测试程序。
                      简单基准测试程序通常只有10~100行而且运行结果是可以预知的。
                      (4)综合基准测试程序。
                      为了体现平均执行而人为编制的,类似于核心程序,没有任何用户真正运行综合基准测试程序。
 
       硬件
        硬件是计算机物理设备的总称,也称为硬件设备,通常是电子的、机械的、磁性的或光的元器件或装置,一般分为中央处理器、存储器和输入、输出设备。
 
       运算器
        运算器由算术逻辑单元(Arithmetic and Logic Unit,ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器等组成,它是数据加工处理部件,用于完成计算机的各种算术和逻辑运算。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器有如下两个主要功能。
        (1)执行所有的算术运算,例如加、减、乘、除等基本运算及附加运算。
        (2)执行所有的逻辑运算并进行逻辑测试,例如与、或、非、零值测试或两个值的比较等。
        下面简要介绍运算器中各组成部件的功能。
        (1)算术逻辑单元(ALU)。ALU是运算器的重要组成部件,负责处理数据,实现对数据的算术运算和逻辑运算。
        (2)累加寄存器(AC)。AC通常简称为累加器,它是一个通用寄存器,其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。例如,在执行一个减法运算前,先将被减数取出暂存在AC中,再从内存储器中取出减数,然后同AC的内容相减,将所得的结果送回AC中。运算的结果是放在累加器中的,运算器中至少要有一个累加寄存器。
        (3)数据缓冲寄存器(DR)。在对内存储器进行读/写操作时,用DR暂时存放由内存储器读/写的一条指令或一个数据字,将不同时间段内读/写的数据隔离开来。DR的主要作用为:作为CPU和内存、外部设备之间数据传送的中转站;作为CPU和内存、外围设备之间在操作速度上的缓冲;在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。
        (4)状态条件寄存器(PSW)。PSW保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,主要分为状态标志和控制标志,例如运算结果进位标志(C)、运算结果溢出标志(V)、运算结果为0标志(Z)、运算结果为负标志(N)、中断标志(I)、方向标志(D)和单步标志等。这些标志通常分别由1位触发器保存,保存了当前指令执行完成之后的状态。通常,一个算术操作产生一个运算结果,而一个逻辑操作产生一个判决。
   题号导航      2014年上半年 系统分析师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第58题    在手机中做本题