Contents

计算机组成与结构笔记

零零碎碎的计算机组成与结构学习笔记

计算机系统概论

1.2.4计算机的性能指标

机器字长:指参与运算的基本位数,由加法器、寄存器的位数决定。

机器字长以“字节Byte”为基本单位,字节用大写B表示,位用小写b表示,1Byte=8bit

数据通路宽度:数据总线一次能并行传送的位数,是指外部数据总线的宽度,影响信息传输能力、计算机有效处理速度。

主存容量:一个主存储器所能存储的全部信息量。

主存容量一般以字节数表示,1024B=1KB

影响计算机运算速度的指标

  • 吞吐量:计算机在单位时间内处理请求的数量

  • 响应时间:计算机对请求作出的响应时间(包括CPU时间与等待时间总和)

  • 主频 (f):时钟频率,表示在CPU内数字脉冲信号震荡的速度

  • 时钟周期 (T):CPU主频的倒数($T=\frac{1}{f}$),CPU中最小的时间元素,每个动作最少一个时钟周期

  • CPI(Cycles perInstruction):每条指令执行所用的时钟周期数

    CPI常用IPC(Instruction per Cycle)表示,即每个时钟周期执行的指令数

    $IPC = \frac{1}{CPI}$

  • CPU执行时间:$CPU执行时间 = \frac{CPU时钟周期数}{时钟频率} = \frac{指令数*CPI}{时钟频率}$

  • MIPS(MillionInstructions per Second):每秒执行多少百万条($10^6$)指令,值越大计算机速度越快

    $MIPS = \frac{指令条数}{执行时间*10^6} = \frac{主频}{CPI} = 主频 * IPC$

  • MFLOPS(MillionFloating-point Operations per Second):每秒执行多少百万次浮点运算

    $MFLOPS = \frac{浮点操作次数}{执行时间*10^6}$

例题:

例1-1︰某程序在一台时钟频率为2GHz的计算机A上运行需要10秒。现在将设计一台计算机B希望将运行时间缩短为6秒。计算机的设计者采用的方法是提高时钟频率,但这会影响CPU其余部分的设计,使计算机B运行该程序时需要相当于计算机A的1.2倍的时钟周期数。那么计算机设计者应该将时钟频率提高到多少?

解:

在A上运行该程序需要的时钟周期数:

$$ CPU时间_A = \frac{CPU时钟周期数_A}{时钟频率_A} $$

$$ 10s = \frac{CPU时钟周期数_A}{2* 10^9} 周期数/s $$

$$ CPU时钟周期数_A = 20*10^9 周期数 $$

B的CPU时间公式为: $$ CPU时间_B = 1.2 * \frac{CPU时钟周期数_A}{时钟频率_B} $$

$$ 6s = 1.2 *20 * \frac{10^9时钟周期数_A}{时钟频率_B} $$

$$ 时钟频率_B = 1.2* 20 * \frac{10^9时钟周期数}{6s} = 0.2 * 20 * \frac{10^9时钟周期数}{秒} \\ = 4 * 10^9 时钟周期数/s \\ = 4GHz $$

例1-2∶假设计算机A的时钟周期为250ps,对某程序的CPI为2.0 ; 计算机B的时钟周期为500ps,对同样程序的CPI为1.2。对于该程序,请问哪台计算机执行的速度更快? 快多少?

解:

对于固定程序,每台计算机执行的总指令数是相同的,用$I$表示

首先,每台计算机的CPU时钟周期数: $$ CPU时钟周期数_A = 1 * 2.0 $$

$$ CPU时钟周期数_B = 1* 1.2 $$

每台计算机的CPU时间: $$ CPU时间_A = CPU时钟周期数_A * 时钟周期 = 1* 2.0 * 250ps = 500 * 1ps $$ 同理: $$ CPU时间_B = 1* 1.2 * 500ps = 600 * 1ps $$

$$ \frac{CPU性能_A}{CPU性能_B} = \frac{执行时间_B}{执行时间_A} = 600* \frac{1ps}{500} = 1.2 $$