CPU时间与IO时间
-------------------------------------------------------------------------------------------------------------------------------
1.假定基准程序A在某计算机上的运行时间为100秒,其中90秒为CPU时间,其余
为l/O时间。若CPU速度提高50%,I/O速度不变,则运行基准程序A所耗费的时间是()。
A.55秒
B.60秒
C.65秒
D.70秒
解析:
在本题上下文中,基准程序(Benchmark Program)表示:这是一个用来测量和评估计算机性能的程序。通过运行这个程序,我们可以得到计算机完成特定任务所需的时间。
在本题上下文中,CPU时间(CPU Time)表示:这是指CPU处理指令所花费的时间。简单来说,就是CPU在执行程序的计算任务时所用的时间。
在本题上下文中,I/O时间(Input/Output Time)表示:这是指进行输入输出操作所需的时间。例如,读取硬盘上的数据或向屏幕显示信息等操作所花费的时间。
在这个问题中,我们有一个基准程序A,它在某台计算机上运行,总共用了100秒。这100秒中,有90秒是CPU在工作(CPU时间),剩下的10秒是进行I/O操作的时间(I/O时间)。
现在,我们提升了CPU的速度,提高了50%。这里的“提高50%”可以理解为CPU的效率增加了,它现在能在更短的时间内完成同样的工作。但我们的I/O操作速度没有变化,所以I/O时间仍然是原来的时间。
原来的CPU时间是90秒。CPU速度提高50%,意味着CPU所需的时间会减少到原来的2/3(因为原来的时间是100%,现在增加了50%,所以新的速度是150%,时间与速度成反比,所以原来的时间要除以1.5,即乘以2/3)。
因此,
新的CPU时间 = 原来的CPU时间 × 2/3新的CPU时间 = 90秒 × 2/3新的CPU时间 = 60秒I/O时间没有变,仍然是10秒。新的总时间 = 新的CPU时间 + I/O时间新的总时间 = 60秒 + 10秒新的总时间 = 70秒
所以,如果CPU速度提高50%,而I/O速度不变,运行基准程序A所耗费的时间将是70秒。
笔记:
提高50% = 原来时间的2/3
CPU速度提高,时间减少;I/O不变,时间不变。新时间=减少后的CPU时间+原I/O时间。
平均CPI
-------------------------------------------------------------------------------------------------------------------------------
2.某计算机主频为1.2GHz,其指令分为4类,它们在基准程序中所占比例及CP如下表所示。
该机的MIPS数是()。
指令类型 | 所占比例 | CPI |
A | 50% | 2 |
B | 20% | 3 |
C | 10% | 4 |
D | 20% | 5 |
A.100
B.200
C.400
D.600
解析:
主频(Clock Speed):
主频是指计算机的中央处理器(CPU)每秒钟可以进行的时钟周期数,通常以赫兹(Hz)为单位。1 GHz(千兆赫兹)等于1,000,000,000 Hz。
CPI(Cycles Per Instruction):
CPI是执行一条指令所需要的时钟周期数。不同的指令可能需要不同数量的周期来完成。
MIPS(Million Instructions Per Second):
MIPS是一种衡量计算机性能的指标,表示每秒可以执行多少百万条指令。
首先,我们需要计算执行一条指令平均所需的时钟周期数,这被称作平均CPI。而在计算平均CPI上,使用加权平均的方法,我们将每种指令的CPI乘以它的比例,然后将它们加在一起。
因此,
平均CPI=(2×0.5)+(3×0.2)+(4×0.1)+(5×0.2)平均CPI=1+0.6+0.4+1平均CPI=3
而在计算每秒钟可以执行的指令数上,计算机的主频是1.2GHz,这意味着每秒有1.2亿个时钟周期。
每秒时钟周期数=1.2 GHz=1.2×10^9Hz
然后,我们用每秒的时钟周期数除以平均CPI,就可以得出每秒可以执行的指令数。
因此,
接着,将每秒指令数转换为MIPS,由于MIPS是以百万条指令每秒计算的,我们需要将每秒指令数除以1,000,000。
CPU执行时间
-------------------------------------------------------------------------------------------------------------------------------
3.某计算机主频为1GHz,程序P运行过程中,共执行了10000条指令,其中,80%的指令执行
平均需1个时钟周期,20%的指令执行平均需10个时钟周期。程序P的平均CPI和CPU执行时间分别是()
A.2.8,28μs
B.28,28μs
C.2.8,28ms
D.28,28ms
解析:
题目没有明确提到"CPU"二字。程序在计算机上运行时消耗的时间主要由CPU的处理时间构成。当我们谈论程序在机器上的执行时间时,我们通常指的是CPU完成所有指令所需的时间
CPU主频(F): 这是指中央处理单元(CPU)的工作频率,通常以赫兹(Hz)为单位。1GHz等于10的9次方赫兹(1,000,000,000 Hz),这意味着CPU每秒可以进行10亿次操作。
在计算机和现代电子设备中,处理器(CPU)的速度通常以兆赫兹或吉赫兹来表示。例如,一个1 GHz的处理器的主频是1,000,000,000赫兹。
时钟周期: CPU的操作是按时钟周期同步进行的,一个时钟周期是CPU执行一个基本操作所需的时间。时钟周期的长度是主频的倒数。因此,如果CPU的主频是1GHz,那么每个时钟周期的时间是1秒除以10亿,即1纳秒(1ns)。
CPI(Clock per Instruction): 每条指令所需的时钟周期数。不同的指令可能需要不同数量的时钟周期来完成。
在平均CPI计算计算上,我们有10000条指令,其中80%(即8000条)的指令平均需要1个时钟周期,另外20%(即2000条)的指令平均需要10个时钟周期。我们可以将这些信息用来计算平均CPI。
首先,我们计算两种指令分别对总CPI的贡献:
对于80%的指令,每条指令1个周期,贡献为:0.8 * 1 = 0.8
对于20%的指令,每条指令10个周期,贡献为:0.2 * 10 = 2.0
然后,我们将两者相加得到平均CPI:
平均CPI = 0.8 + 2.0 = 2.8
这意味着平均来看,每执行一条指令需要2.8个时钟周期。
在CPU执行时间计算上,现在我们知道了总共的指令数以及平均每条指令需要的时钟周期数,我们可以计算程序执行需要多少个时钟周期,然后再转换成实际时间。
首先计算总的时钟周期数:
总时钟周期数 = 平均CPI * 指令数 = 2.8 * 10000 = 28000时钟周期
因为1个时钟周期是1纳秒,所以总的执行时间为:
CPU执行时间 = 总时钟周期数 * 时钟周期时间 = 28000 * 1ns = 28000ns
纳秒到微秒的转换是:1000纳秒 = 1微秒,因此:
CPU执行时间 = 28000ns / 1000 = 28微秒(28μs)
综上所述,程序P的平均CPI是2.8,CPU执行时间是28微秒。正确答案是A. 2.8, 28μs。
笔记:
CPU执行时间:
时间单位的换算如下:
-------------------------------------------------------------------------------------------------------------------------------
4.程序P在机器M上的执行时间是20秒,编译优化后,P执行的指令数减少到原来的70%,而CPI增加到原来的1.2倍,则P在M上的执行时间是()。
A.8.4秒
B.11.7秒
C.14秒
D.16.8秒
解析:
CPU执行时间可以通过下面的公式来计算:
在题目只提到了指令数和CPI的变化,没有提到周期时间的变化,因此我们假设周期时间是恒定的。所以,我们的关注点是指令数和CPI如何影响程序的执行时间。
根据题目,程序P在未经优化时在机器M上的执行时间是20秒。优化后,程序执行的指令数减少到原来的70%,而每条指令的周期数(CPI)增加到原来的1.2倍。假设原始的指令数是I,原始的CPI是C,那么优化后的执行时间T可以用下面的公式来表示:
T=(I×70%)×(C×120%)×周期时间
由于原始的执行时间是20秒,我们可以用下面的公式表示:
20秒=I×C×周期时间
现在我们代入T来计算优化后的执行时间:
T=(I×70%)×(C×120%)×周期时间T=0.7I×1.2C×周期时间T=0.84×I×C×周期时间T=0.84×20秒T=16.8秒
所以,经过编译优化后,程序P在机器M上的执行时间是16.8秒。正确答案是D。
笔记:
CPU执行时间可以通过下面的公式来计算:
-------------------------------------------------------------------------------------------------------------------------------
5.假定计算机M1和M2具有相同的指令集体系结构(1SA),主频分别为1.5GHz和1.2GHz。在M1和M2上运行某基准程序P,平均CPI分别为2和1,则程序P在M1和M2上运行时间的比值是()。
A.0.4
B.0.625
C.1.6
D.2.5
解析:
在本题上下文中,指令集体系结构(ISA)表示: 指的是一组指令,它定义了计算机可以执行的操作和指令的格式。因为M1和M2具有相同的ISA,我们可以假设它们执行同样的指令来完成同一个任务。
在本题上下文中,主频(时钟频率)表示: 计算机的主频是指其内部时钟每秒钟的周期数,通常以赫兹(Hz)为单位。1GHz等于10亿次周期每秒。主频越高,计算机每秒能执行的周期数越多。
在本题上下文中,每条指令的周期数(CPI)表示: CPI是执行每条指令所需的周期数。CPI越低,意味着每条指令需要的时间越少。
CPU执行时间可以通过下面的公式来计算:
现在,我们来计算两台计算机上程序P的执行时间的比值。我们不知道程序P的确切指令数,但我们可以用一个变量来代表它,比如说“N”。
在M1上的程序执行时间:
由于M1的主频是1.5GHz,我们有:
所以:
在M2上的程序执行时间:
由于M2的主频是1.2GHz,我们有:
现在,我们要找的是两个执行时间的比值:
即:
由于在比值计算中N会被约掉,我们可以简化公式为:
因公式编辑不便,故公式采用了截图。
笔记:
CPU执行时间可以通过下面的公式来计算:
周期时间与主频的关系:
浮点操作次数FLOPS (Floating Point Operations Per Second)
-------------------------------------------------------------------------------------------------------------------------------
6.2017年公布的全球超级计算机T0P500排名中,我国“神威湖之光”超级计算机蝉联第一,
其浮点运算速度为93.0146 PFLOPS,说明该计算机每秒钟完成的浮点操作次数为()。
A.9.3×10^13次
B.9.3×10^15次
C.9.3千万亿次
D.9.3亿亿次
解析:
在本题上下文中,浮点运算 (Floating Point Operation)表示:在计算机科学中,浮点数是用来表示实数的,它可以表示非常大或者非常小的数,因为它包含了一个指数部分。浮点运算就是对这些浮点数进行的加、减、乘、除等操作。
在本题上下文中,FLOPS (Floating Point Operations Per Second)表示: 这是一个衡量计算机性能的单位,表示计算机每秒能进行多少次浮点运算。这个指标对于理解超级计算机的能力非常重要。
在本题上下文中,PetaFLOPS 表示: "Peta"代表了10的15次方。所以,1 PetaFLOPS = 1,000,000,000,000,000 FLOPS(1后面跟着15个零)。
“神威·太湖之光”超级计算机的性能是93.0146 PFLOPS。
这意味着它每秒可以进行93.0146 * 10^15次的浮点运算。
即9.30146 * 10^16次
故正确答案是D.9.3亿亿次。
笔记:
FLOPS (Floating Point Operations Per Second)(每秒浮点运算次数),衡量计算速度的单位。
PetaFLOPS: "Peta"代表了10的15次方。 1 PFLOPS = 10^15 FLOPS。
FLOPS单位的换算是基于10的幂次方,每个级别相差1000倍。
MIPS
-------------------------------------------------------------------------------------------------------------------------------
7. 假定某计算机的CPU主频为80MHz,CPI为4,平均每条指令访存1.5次,主存与Cache之间交换的块大小为16B,Cache的命中率为99%,存储器总线宽带为32位。请回答下列问题:
(1)该计算机的MIPS数是多少?
解析:
CPI与主频已经在上述题目中多次进行详解过,故不加赘述。
在本题上下文中,MIPS (Million Instructions Per Second)表示: 这是衡量计算机性能的一种单位,表示计算机每秒可以执行多少百万条指令
为了便于理解,简化公式原有的IC(IC 是每秒执行的指令数,单位是 instructions/second), IC = 1,因为 MIPS 的计算公式默认就是针对每条指令进行的。
其中 f 是 CPU 的主频,CPI 是每条指令平均的周期数。
给定的 f = 80MHz = 80 * 10^6 Hz,CPI = 4。
代入公式得到:
MIPS = (80 * 10^6) / (4 * 10^6)MIPS = 20
所以,该计算机的 MIPS 数是 20。
笔记:
MIPS简化公式如下:
CPI公式如下(可以通过CPU执行时间化简而来):