跳到主要内容

408模拟选择题 · 计算机组成原理 · 第1章 计算机系统概述

1.2 计算机系统层次结构

1.2.3 计算机软件

  1. 【竟成·模拟二-12】 下列软件中,不属于系统软件的是()。
A. 编译程序    B. 操作系统    C. 文本处理程序    D. 数据库管理系统
查看答案与解析

答案: C

解析: 系统软件用于管理计算机资源、控制系统运行,或为其他软件提供基础运行环境。编译程序属于语言处理程序,操作系统负责管理软硬件资源,数据库管理系统负责数据库的组织与管理,三者都属于系统软件。

文本处理程序主要帮助用户完成文字录入、编辑和排版等具体任务,属于应用软件,因此选择 C。

  • A:编译程序是系统软件,负责将高级语言源程序翻译为目标程序。
  • B:操作系统是最基本的系统软件。
  • C:文本处理程序面向具体应用需求,属于应用软件。
  • D:数据库管理系统属于系统软件,为数据库应用提供基础服务。

  1. 【竟成·模拟七-12】 在高级语言源程序要执行时,将高级语言转换为机器语言,并且翻译一句执行一句,这样的程序为()。
A. 汇编程序    B. 链接程序    C. 编译程序    D. 解释程序
查看答案与解析

答案: D

解析: 解释程序的工作特点是对高级语言源程序逐句进行翻译,并立即执行已经翻译的语句,即“翻译一句,执行一句”,通常不生成可独立保存的目标程序。因此选择 D。

  • A:汇编程序将汇编语言源程序翻译成机器语言目标程序。
  • B:链接程序将多个目标模块及所需库文件组合成可执行文件。
  • C:编译程序通常一次性翻译整个高级语言源程序,生成目标程序后再执行。
  • D:解释程序边翻译边执行,与题意一致。

1.2.6 计算机系统的工作原理

  1. 【王道·卷三-Q13】 某计算机采用小端方式存储,按字节编址,减法指令 sub ax, imm 的功能为 (ax)immax\displaystyle (ax) - imm \rightarrow ax。imm表示立即数,该指令对应的机器码为2DXXXX,其中XXXX对应imm的机器码,如果 imm=3\displaystyle \mathrm{imm} = - 3(ax)=7\displaystyle (ax) = 7,则该指令对应的机器码和执行后 SF\displaystyle SF 标志位的值分别为( )。
A. 2DFFFD, 0    B. 2DFFFD, 1    C. 2DFDFF, 0    D. 2DFDFF, 1
查看答案与解析

答案: C

解析: 立即数为 16 位,3\displaystyle -3 的 16 位补码为:

(3)=FFFDH\displaystyle (-3)_{补}=\mathrm{FFFDH}

小端方式规定低有效字节存放在低地址处,因此立即数的两个字节按 FDH\displaystyle \mathrm{FDH}FFH\displaystyle \mathrm{FFH} 的顺序出现在机器码中。操作码为 2DH\displaystyle \mathrm{2DH},故完整机器码为:

2D FD FF\displaystyle \mathrm{2D\ FD\ FF}

2DFDFF

指令执行结果为:

(ax)=7(3)=10\displaystyle (ax)=7-(-3)=10

结果为正数,其最高位为 0\displaystyle 0,所以符号标志 SF=0\displaystyle SF=0。因此选择 C。

  • A、B:将立即数按大端字节顺序写入,不符合小端存储方式。
  • D:机器码正确,但正数结果的 SF\displaystyle SF 应为 0\displaystyle 0

  1. 【王道·卷三-Q18】 通常将在部件之间进行数据传输的指令称为传输指令。在下列关于各类传输指令的功能的描述中,错误的是( )。
A. 出/入栈指令(push/pop)实现CPU和栈顶之间的数据传输
B. 访存指令(load/store)实现CPU和存储单元之间的数据传输
C. I/O指令(in/out)实现CPU和I/O端口之间的数据传输
D. 寄存器传输指令(move)实现CPU和寄存器之间的数据传输
查看答案与解析

答案: D

解析: 寄存器本身位于 CPU 内部,寄存器传送指令 move 实现的是寄存器之间,或寄存器与其他可作为操作数的部件之间的数据传送,而不能表述为“CPU 和寄存器之间”的传送。因此 D 的描述错误。

  • A:pushpop 分别完成 CPU 寄存器与栈顶存储单元之间的数据传送,描述正确。
  • B:loadstore 用于 CPU 与主存单元之间的数据传送,描述正确。
  • C:inout 用于 CPU 与 I/O 端口之间的数据传送,描述正确。
  • D:寄存器属于 CPU 内部部件,应表述为寄存器之间的数据传送。

  1. 【王道·卷五-Q12】 冯·诺依曼机可以区分指令和数据的部件是( )。
A. 总线    B. 控制器    C. 控制存储器    D. 运算器
查看答案与解析

答案: B

解析: 在冯·诺依曼机中,指令和数据都以二进制形式存放在同一存储器中,单从存储内容的形式上无法区分二者。计算机根据当前所处的工作阶段以及访问目的进行区分:取指周期中取出的内容被送入指令寄存器并由控制器译码,执行周期中取出的内容则作为操作数使用。因此,负责识别和解释指令的是控制器,选择 B。

  • A:总线只负责传输地址、数据和控制信息,不能自行判断内容是指令还是数据。
  • B:控制器负责取指、译码并发出控制信号,能够根据执行过程区分指令和数据。
  • C:控制存储器用于存放微程序控制器中的微指令,不负责区分主存中的指令和数据。
  • D:运算器负责算术和逻辑运算,不负责指令识别。

  1. 【王道·卷七-Q12】 在某32位计算机中,全局变量buf的声明为 int buf[4]={-2,103,-10,-20};假定buf的地址为 0×8049320\displaystyle 0\times 8049320,则地址 0×804932a\displaystyle 0\times 804932a 中的内容为( )。
A. 00000000    B. 11111010    C. 11110101    D. 11111111
查看答案与解析

答案: D

解析: 32 位计算机中 int 通常占 4 字节。数组各元素的地址范围为:

  • buf[0]0×80493200×8049323\displaystyle 0\times8049320\sim0\times8049323
  • buf[1]0×80493240×8049327\displaystyle 0\times8049324\sim0\times8049327
  • buf[2]0×80493280×804932B\displaystyle 0\times8049328\sim0\times804932B

因此地址 0×804932A\displaystyle 0\times804932A 位于 buf[2],其值为 10\displaystyle -1010\displaystyle -10 的 32 位补码为:

10=FFFFFFF6H\displaystyle -10=\mathrm{FFFFFFF6H}

在常见的小端存储方式下,四个字节按低地址到高地址依次为:

F6H, FFH, FFH, FFH\displaystyle \mathrm{F6H},\ \mathrm{FFH},\ \mathrm{FFH},\ \mathrm{FFH}

地址 0×804932A\displaystyle 0\times804932A 是该整数的第 3 个字节,内容为 FFH=111111112\displaystyle \mathrm{FFH}=11111111_2,故选择 D。

  • A:对应字节值为 00H\displaystyle 00H,与负数补码的高字节不符。
  • B:111110102=FAH\displaystyle 11111010_2=FAH,不是 10\displaystyle -10 补码在该地址处的字节。
  • C:111101012=F5H\displaystyle 11110101_2=F5H,同样不符。
  • D:111111112=FFH\displaystyle 11111111_2=FFH,正确。

  1. 【竟成·模拟四-12】 下列关于计算机的说法正确的是()。
A. 计算机做的所有工作必须先编写成程序才能完成
B. 存储在存储器内部的指令和数据在形式上有所差别
C. CPU的时钟频率越高,计算机的运行速度越快
D. 计算机系统即为硬件系统
查看答案与解析

答案: A

解析: 计算机采用存储程序工作方式,需要通过程序中的指令序列规定数据处理步骤。计算机能够完成的自动处理工作,都必须由程序加以描述并交由计算机执行,因此 A 正确。

  • A:程序是计算机自动完成任务的指令集合,表述正确。
  • B:指令和数据在存储器中都以二进制形式存放,在形式上没有本质差别。
  • C:计算机性能不仅由主频决定,还与指令条数、平均 CPI\displaystyle CPI、存储系统和体系结构等因素有关。
  • D:完整的计算机系统由硬件系统和软件系统共同组成。

  1. 【竟成·模拟五-12】 下列属于冯·诺依曼结构计算机工作方式的基本特点的是()。
A. 指令按地址访问并顺序执行    B. 采用十进制方式存储和处理数据
C. 指令存储器和数据存储器分离    D. 访问存储器时按内容读取数据
查看答案与解析

答案: A

解析: 冯·诺依曼结构采用“存储程序”工作方式,程序和数据预先存入存储器,CPU 按程序计数器给出的地址取指。除转移指令改变执行顺序外,指令通常按地址顺序依次执行,因此选择 A。

  • A:体现了按地址取指和程序顺序执行的基本方式,正确。
  • B:计算机内部采用二进制表示和处理信息,而不是十进制。
  • C:冯·诺依曼结构的指令和数据存放在同一存储器中;指令存储器和数据存储器分离是哈佛结构的典型特征。
  • D:普通主存按地址访问;按内容访问是相联存储器的特征。

1.3 计算机的性能指标

1.3.1 计算机的主要性能指标

  1. 【王道·卷一-Q12】 假定执行一条指令 I\displaystyle I 需要20个时钟周期,该指令在程序中出现的频率为 10%\displaystyle 10\%,其他所有指令的平均 CPI\displaystyle CPI 为5,则CPU执行指令 I\displaystyle I 所用的时间占整个CPU时间的比例是多少?( )。如果对硬件进行改进能使指令 I\displaystyle I 的执行时间缩短为10个时钟周期,但同时会使CPU时钟周期延长 10%\displaystyle 10\%,那么是否值得采取这种改进措施?( )。
A. 30.77%\displaystyle 30.77\%,值得    B. 15.39%\displaystyle 15.39\%,值得    C. 30.77%\displaystyle 30.77\%,不值得    D. 15.39%\displaystyle 15.39\%,不值得
查看答案与解析

答案: A

解析: 设程序总指令条数为 N\displaystyle N。指令 I\displaystyle I10%\displaystyle 10\%,其他指令占 90%\displaystyle 90\%。改进前程序的总时钟周期数为:

N×10%×20+N×90%×5=6.5N\displaystyle N\times 10\%\times20+N\times90\%\times5 =6.5N

其中,执行指令 I\displaystyle I 所用的时钟周期数为 2N\displaystyle 2N,因此其所占 CPU 时间比例为:

2N6.5N×100%30.77%\displaystyle \dfrac{2N}{6.5N}\times100\% \approx30.77\%

改进后,平均时钟周期数变为:

N×10%×10+N×90%×5=5.5N\displaystyle N\times10\%\times10+N\times90\%\times5 =5.5N

但新的时钟周期长度是原来的 1.1\displaystyle 1.1 倍,因此新旧 CPU 执行时间之比为:

TT=5.5N×1.1T6.5N×T=6.056.50.931\displaystyle \dfrac{T_{新}}{T_{旧}} =\dfrac{5.5N\times1.1T}{6.5N\times T} =\dfrac{6.05}{6.5} \approx0.931

新执行时间小于原执行时间,约缩短 6.9%\displaystyle 6.9\%,所以改进值得采用。故选择 A。

  • B、D:错误地按指令条数比例或其他方式计算了时间占比。
  • C:时间占比正确,但误判了改进后的总执行时间。

  1. 【王道·卷二-Q12】 下面给出了改善计算机性能的四种可能措施: I. 用更快速的处理器替换原来的慢速处理器 II. 增加同类处理器的个数,使不同的处理器能同时执行程序 III. 优化编译生成的代码,减少程序执行的总时钟周期数 IV. 缩短指令执行过程中访问内存的时间 其中能够缩短CPU执行时间的措施是( )。
A. I、II、III    B. I、II、IV    C. I、III、IV    D. I、II、III、IV
查看答案与解析

答案: D

解析: CPU 执行时间可表示为:

TCPU=指令条数×CPI×时钟周期长度\displaystyle T_{CPU}=\text{指令条数}\times CPI\times\text{时钟周期长度}

也可写为:

TCPU=指令条数×CPI主频\displaystyle T_{CPU}=\dfrac{\text{指令条数}\times CPI}{\text{主频}}

四项措施都可能缩短程序的执行时间:

  • I:更快速的处理器通常具有更高主频或更高单周期处理能力,可缩短执行时间。
  • II:对于可并行处理的程序,增加处理器数量可将任务分配给多个处理器同时执行,从而缩短完成时间。
  • III:编译优化可减少指令条数或总时钟周期数,直接缩短执行时间。
  • IV:缩短访存时间可减少存储器等待周期,降低平均 CPI\displaystyle CPI,从而缩短执行时间。

因此 I、II、III、IV 均正确,选择 D。

  • A、B、C:都遗漏了至少一种能够改善执行时间的有效措施。

  1. 【王道·卷三-Q12】 假定 M1\displaystyle M1M2\displaystyle M2 是以不同方式实现同一个指令集的两种机器,M1\displaystyle M1 的时钟频率为 800MHz,M2\displaystyle 800\mathrm{MHz}, M2 的时钟频率为 400MHz\displaystyle 400\mathrm{MHz}。该指令集中共有 A\displaystyle AB\displaystyle BC\displaystyle C 三类指令。有两种不同的编译器 C1\displaystyle C1C2\displaystyle C2,假设对同一个程序而言,两种编译器生成的代码中的指令总条数相等,但各类指令的组合情况不同。各类指令在 M1\displaystyle M1M2\displaystyle M2 上运行时,所需的平均时钟周期数和两种编译器生成的代码中各类指令所占的比例如下表所示。若在 M1\displaystyle M1M2\displaystyle M2 上都用 C1\displaystyle C1 编译器,则 M1\displaystyle M1 的执行速度约是 M2\displaystyle M2 的( )倍;若在 M1\displaystyle M1M2\displaystyle M2 上都用 C2\displaystyle C2 编译器,则 M2\displaystyle M2 的执行速度约是 M1\displaystyle M1 的( )倍。
指令类M1的CPIM2的CPIC1的程序C2的程序
A2130%30%
B3250%20%
C41.520%50%
A. 1.2, 1.1    B. 1.1, 1.2    C. 1.1, 1.1    D. 1.2, 1.2
查看答案与解析

答案: C

解析: 对于相同程序,若指令总条数为 N\displaystyle N,则 CPU 执行时间为:

T=N×CPIf\displaystyle T=\dfrac{N\times CPI}{f}

使用编译器 C1\displaystyle C1 时,两台机器的平均 CPI\displaystyle CPI 分别为:

CPIM1,C1=2×30%+3×50%+4×20%=2.9,CPIM2,C1=1×30%+2×50%+1.5×20%=1.6.\displaystyle \begin{aligned} CPI_{M1,C1} &=2\times30\%+3\times50\%+4\times20\%\\ &=2.9,\\ CPI_{M2,C1} &=1\times30\%+2\times50\%+1.5\times20\%\\ &=1.6. \end{aligned}

因为“执行速度”与执行时间成反比,所以 M1\displaystyle M1 相对于 M2\displaystyle M2 的速度倍数为:

VM1VM2=TM2TM1=1.6/4002.9/800=3.22.91.1\displaystyle \dfrac{V_{M1}}{V_{M2}} =\dfrac{T_{M2}}{T_{M1}} =\dfrac{1.6/400}{2.9/800} =\dfrac{3.2}{2.9} \approx1.1

使用编译器 C2\displaystyle C2 时:

CPIM1,C2=2×30%+3×20%+4×50%=3.2,CPIM2,C2=1×30%+2×20%+1.5×50%=1.45.\displaystyle \begin{aligned} CPI_{M1,C2} &=2\times30\%+3\times20\%+4\times50\%\\ &=3.2,\\ CPI_{M2,C2} &=1\times30\%+2\times20\%+1.5\times50\%\\ &=1.45. \end{aligned}

此时 M2\displaystyle M2 相对于 M1\displaystyle M1 的速度倍数为:

VM2VM1=TM1TM2=3.2/8001.45/400=1.61.451.1\displaystyle \dfrac{V_{M2}}{V_{M1}} =\dfrac{T_{M1}}{T_{M2}} =\dfrac{3.2/800}{1.45/400} =\dfrac{1.6}{1.45} \approx1.1

因此两空均约为 1.1\displaystyle 1.1,选择 C。

  • A、B、D:均至少有一个速度比计算错误。比较速度时不能只比较主频或平均 CPI\displaystyle CPI,必须综合使用 T=N×CPI/f\displaystyle T=N\times CPI/f

  1. 【王道·卷四-Q12】 已知一台时钟频率为 2GHz\displaystyle 2GHz 的计算机的CPI为1.2。某程序 P\displaystyle P 在该计算机上的指令条数为 4×109\displaystyle 4\times 10^{9} 条。若在该计算机上程序 P\displaystyle P 从开始启动到执行结束所经历的时间是4s,则运行 P\displaystyle P 所用的CPU时间占整个CPU时间的百分比大约是( )。
A. 40%\displaystyle 40\%    B. 60%\displaystyle 60\%    C. 80%\displaystyle 80\%    D. 100%\displaystyle 100\%
查看答案与解析

答案: B

解析: 程序的 CPU 执行时间为:

TCPU=指令条数×CPI主频=4×109×1.22×109=2.4s\displaystyle \begin{aligned} T_{CPU} &=\dfrac{\text{指令条数}\times CPI}{\text{主频}}\\ &=\dfrac{4\times10^9\times1.2}{2\times10^9}\\ &=2.4\mathrm{s} \end{aligned}

程序从启动到结束的总经历时间为 4s\displaystyle 4\mathrm{s},其中可能还包含 I/O 等待、操作系统服务等非 CPU 执行时间。因此 CPU 时间所占比例为:

2.44×100%=60%\displaystyle \dfrac{2.4}{4}\times100\%=60\%

故选择 B。

  • A、C:均不是根据指令条数、CPI\displaystyle CPI 和主频计算得到的比例。
  • D:只有当程序的全部经历时间都用于占用 CPU 时才成立,本题 CPU 时间仅为 2.4s\displaystyle 2.4\mathrm{s}

  1. 【王道·卷五-Q21】 某支持猝发传输的同步总线的时钟频率为200MHz,带宽为32位,地址和数据线复用,每个时钟周期传输一个地址或数据。若一次存储器读总线事务传输用的时间为25ns,第一个周期传输地址和命令,则本次传输的有效数据位数是( )。
A. 32位    B. 160位    C. 128位    D. 256位
查看答案与解析

答案: C

解析: 总线时钟频率为 200MHz\displaystyle 200\mathrm{MHz},一个时钟周期为:

T=1200×106=5ns\displaystyle T=\dfrac{1}{200\times10^6}=5\mathrm{ns}

一次总线事务持续 25ns\displaystyle 25\mathrm{ns},包含的时钟周期数为:

255=5\displaystyle \dfrac{25}{5}=5

第一个周期用于传输地址和命令,因此真正用于传输数据的周期数为:

51=4\displaystyle 5-1=4

每个数据周期可传输 32\displaystyle 32 位,所以有效数据位数为:

4×32=128\displaystyle 4\times32=128\text{位}

因此选择 C。

  • A:只计算了一个数据周期传输的数据量。
  • B:将全部 5 个周期都误认为数据传输周期,忽略了首周期传输地址和命令。
  • D:相当于误算为 8 个数据周期。

  1. 【王道·卷六-Q22】 某计算机系统中的软盘以中断方式与CPU进行数据传输,CPU的主频为50MHz,传输单位为16bit,软盘的数据传输率为50KB/s。若每次传输的开销(包括中断)为100个时钟周期,则软盘工作时CPU用于软盘数据传输的时间占整个CPU时间的比例是( )。
A. 5%\displaystyle 5\%    B. 10%\displaystyle 10\%    C. 15%\displaystyle 15\%    D. 20%\displaystyle 20\%
查看答案与解析

答案: A

解析: 每次传输单位为 16bit=2B\displaystyle 16\mathrm{bit}=2\mathrm{B}。按 1KB=1024B\displaystyle 1\mathrm{KB}=1024\mathrm{B} 计算,每秒传输次数为:

50×10242=25600次/秒\displaystyle \dfrac{50\times1024}{2}=25600\text{次/秒}

每次传输需要 CPU 开销 100\displaystyle 100 个时钟周期,因此每秒用于软盘传输的时钟周期数为:

25600×100=2.56×106\displaystyle 25600\times100=2.56\times10^6

CPU 每秒共有:

50MHz=50×106个时钟周期\displaystyle 50\mathrm{MHz}=50\times10^6\text{个时钟周期}

因此占用比例为:

2.56×10650×106×100%=5.12%5%\displaystyle \dfrac{2.56\times10^6}{50\times10^6}\times100\% =5.12\% \approx5\%

故选择 A。若按 1KB=1000B\displaystyle 1\mathrm{KB}=1000\mathrm{B} 近似计算,则结果恰为 5%\displaystyle 5\%,选项不变。

  • B、C、D:均高估了每秒中断次数或每次中断所占用的 CPU 周期数。

  1. 【竟成·模拟一-12】 某机器M的主频为100MHz。程序P中最初没有左移2位指令,对P进行优化,将程序中所有的乘4指令都换成左移2位指令,得到优化后的程序P1。已知在M上执行程序P时访问乘4指令的Cache命中率为90%,命中后的CPI为94,程序执行时间为12s。执行程序P1时访问左移2位指令的Cache命中率为99%,命中后的CPI为3,程序执行时间为10s。当Cache未命中时都需要额外的100个时钟周期进行访存取指,则P中乘4指令被换成左移2位指令的数量是()。
A. 1×106\displaystyle 1\times 10^6    B. 2×106\displaystyle 2\times 10^6    C. 3×106\displaystyle 3\times 10^6    D. 4×106\displaystyle 4\times 10^6
查看答案与解析

答案: B

解析: 乘 4 指令的 Cache 未命中率为 10%\displaystyle 10\%,其平均 CPI\displaystyle CPI 为:

CPI4=94+10%×100=104\displaystyle CPI_{乘4}=94+10\%\times100=104

左移 2 位指令的 Cache 未命中率为 1%\displaystyle 1\%,其平均 CPI\displaystyle CPI 为:

CPI左移=3+1%×100=4\displaystyle CPI_{左移}=3+1\%\times100=4

每替换一条指令可减少的时钟周期数为:

1044=100\displaystyle 104-4=100

优化前后程序执行时间减少:

1210=2s\displaystyle 12-10=2\mathrm{s}

主频为 100MHz\displaystyle 100\mathrm{MHz},对应减少的总时钟周期数为:

2×100×106=2×108\displaystyle 2\times100\times10^6=2\times10^8

设被替换的乘 4 指令共有 N\displaystyle N 条,则:

100N=2×108\displaystyle 100N=2\times10^8

解得:

N=2×106\displaystyle N=2\times10^6

因此选择 B。

  • A、C、D:均与优化所减少的总时钟周期数不符。

  1. 【竟成·模拟三-12】 某基准程序在主频为200MHz的处理器上运行,编译生成的指令类型及数目如下表所示,该基准程序的执行时间和有效MIPS分别是()。
指令类CPI指令条数
A14500
B3200
C1500
D2800
A. 8500ns、118    B. 170μs、235    C. 85μs、118    D. 17000ns、235
查看答案与解析

答案: 题面无正确选项;按题面数据应为 36μs\displaystyle 36\mu\mathrm{s}、约 166.7MIPS\displaystyle 166.7\mathrm{MIPS}

解析: 程序执行的总指令条数为:

N=4500+200+500+800=6000\displaystyle N=4500+200+500+800=6000

总时钟周期数为各类指令的“指令条数乘以 CPI\displaystyle CPI”之和:

C=4500×1+200×3+500×1+800×2=4500+600+500+1600=7200\displaystyle \begin{aligned} C &=4500\times1+200\times3+500\times1+800\times2\\ &=4500+600+500+1600\\ &=7200 \end{aligned}

主频为 200MHz\displaystyle 200\mathrm{MHz},一个时钟周期为:

1200×106=5ns\displaystyle \dfrac{1}{200\times10^6}=5\mathrm{ns}

因此程序执行时间为:

T=7200×5ns=36000ns=36μs\displaystyle T=7200\times5\mathrm{ns}=36000\mathrm{ns}=36\mu\mathrm{s}

有效 MIPS 为:

MIPS=600036×106×106=600036166.7\displaystyle \begin{aligned} \mathrm{MIPS} &=\dfrac{6000}{36\times10^{-6}\times10^6}\\ &=\dfrac{6000}{36}\\ &\approx166.7 \end{aligned}

所以依据题面表格,正确结果应为 36μs\displaystyle 36\mu\mathrm{s}、约 166.7MIPS\displaystyle 166.7\mathrm{MIPS},四个选项均不匹配,题目数据或选项应存在排版错误。

  • A、B、C、D:其执行时间均不等于 7200\displaystyle 7200 个时钟周期在 200MHz\displaystyle 200\mathrm{MHz} 主频下对应的 36μs\displaystyle 36\mu\mathrm{s},相应 MIPS 也与总指令条数 6000\displaystyle 6000 不符。

  1. 【竟成·模拟六-12】 假定计算机M1\displaystyle M_1M2\displaystyle M_2具有相同的指令集体系结构(ISA),M1\displaystyle M_1的主频为800MHz,某基准程序P在M1\displaystyle M_1M2\displaystyle M_2上运行分别需要12s和8s,M2\displaystyle M_2的平均CPI为M1\displaystyle M_1的1.5倍,则M2\displaystyle M_2的主频为()。
A. 800MHz    B. 1.2GHz    C. 1.5GHz    D. 1.8GHz
查看答案与解析

答案: D

解析: 两台机器具有相同的 ISA,对同一个基准程序执行的指令条数相同。设指令条数为 N\displaystyle NM1\displaystyle M1 的平均 CPI\displaystyle CPICPI1\displaystyle CPI_1,则:

T1=N×CPI1f1=12s,T2=N×1.5CPI1f2=8s.\displaystyle \begin{aligned} T_1&=\dfrac{N\times CPI_1}{f_1}=12\mathrm{s},\\ T_2&=\dfrac{N\times1.5CPI_1}{f_2}=8\mathrm{s}. \end{aligned}

两式相除:

T1T2=CPI1/f11.5CPI1/f2=f21.5f1\displaystyle \dfrac{T_1}{T_2} =\dfrac{CPI_1/f_1}{1.5CPI_1/f_2} =\dfrac{f_2}{1.5f_1}

代入 T1/T2=12/8=1.5\displaystyle T_1/T_2=12/8=1.5f1=800MHz\displaystyle f_1=800\mathrm{MHz}

1.5=f21.5×800MHz\displaystyle 1.5=\dfrac{f_2}{1.5\times800\mathrm{MHz}}

因而:

f2=1.5×1.5×800MHz=1800MHz=1.8GHz\displaystyle f_2=1.5\times1.5\times800\mathrm{MHz}=1800\mathrm{MHz}=1.8\mathrm{GHz}

故选择 D。

  • A、B、C:均不足以抵消 M2\displaystyle M2 平均 CPI\displaystyle CPI 增大到 1.5\displaystyle 1.5 倍的影响,同时实现运行时间由 12s\displaystyle 12\mathrm{s} 缩短到 8s\displaystyle 8\mathrm{s}