一、选择题
12. 基准程序A在某计算机上的运行时间为100秒,其中90为CPU时间,其余时间忽略不计,若CPU速度提高50%,I/O速度不变,则运行基准程序A所耗费的时间是 A. 55 B. 60 C. 65 D.70
13.在C语言中,int型占32位,short型占16位,若有下列语句 unsigned short x=65530; unsigned int y=x; 则执行后,y的十六进制表示为 A 0000 7FFA B 0000 FFFA C FFFF 7FFA D FFFF FFFA
14. float 类型(即IEEE754单精度浮点数格式)能表示的最大正整数是:
A 2126-2103 B. 2127-2104 C. 2127-2103 D 2128-2104
15. 某计算机存储器按字节编址,采用小端方式存放数据。假定编译器规定int型和short型长度分别为32位和16位,并且数据按边界对齐存储。某C语言程序段如下:
struct {
int a;
char b;
short c;
}record;
Record.a=273;
若record变量的首地址为0xc008,则低至0Xc008中的内容及record.c的地址是
A. 0x00、0xC00D B. 0x00、0xC00E C. 0x11、0xC00D D. 0x11、0xC00E
16. 下列关于闪存(Flsah Memory)的叙述中,错误的是
A. 信息可读可写,并且读、写速度一样快 B. 存储元由MOS管组成,是一种半导体存储器
C. 掉电后信息不丢失,是一种非易失性存储器 D. 采用随机访问方式,可替代计算机外部存储器
17. 假设某计算机按字编址,Cashe有4个行,Cashe和主存之间交换的块为存储?字。若Cashe的内存初始为空,采用2路组相联映射方式和LRU替换策略。访问的主存地址依次为0,4,8,2,0,6,8,6,4,8时,命中Cashe的次数是
A. 1 B. 2 C. 3 D. 4
18.某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法。共有33个为命令,构成5个互斥类,分别包含7、3、12、5?和6?,问一个需要几位(控制位?) A. 5 B. 6 C. 15 D. 33
19.设总线频率为100MHZ,数据总线和地址总线公用一组总线,32位宽,存储字长也是32位。传送一次地址获知一次数据需要一个始终周期。采用猝发式发送,则128位数据需要的时间是
A. 20ns B. 40ns C.50ns D. 80ns
答案:D,B,D,D,A,C,C,C,D,D,B
二、综合应用题
43.假定某计算机的CPU 主频为 80MHz,CPI 为 4,平均每条指令访存 1.5 次,主存与 Cache 之间交换的块大小为 16B,Cache 的命中率为 99%,存储器总线宽带为 32 位。请
回答下列问题。
1)该计算机的MIPS 数是多少?平均每秒 Cache 缺失的次数是多少?在不考虑 DMA
传送的情况下,主存带宽至少达到多少才能满足 CPU 的访存要求?
2)假定在Cache 缺失的情况下访问主存时,存在 0.0005%的缺页率,则 CPU 平均每秒产生多少次缺页异常?若页面大小为 4KB,每次缺页都需要访问磁盘,访问磁盘时 DMA 传送采用周期挪用方式,磁盘 I/O 接口的数据缓冲寄存器为 32 位,则磁盘 I/O 接口平均每秒发出的 DMA 请求次数至少是多少?
3)CPU 和 DMA 控制器同时要求使用存储器总线时,哪个优先级更高?为什么?
4)为了提高性能,主存采用 4 体低位交叉存储模式,工作时每 1/4 个存储周期启动一
个体。若每个体的存储周期为 50ns,则该主存能提供的最大带宽是多少?
解:
(1)平均每秒 CPU 执行的指令数为:
80M
/4=
20M
,故 MIPS 数为 20;(1 分) ,平均每条指令访存 1.5 次,故平均每秒 Cache 缺失的次数=
20M
×1.5×(1-99%)=300k;(1分);当 Cache 缺失时,CPU 访问主存,主存与 Cache 之间以块为传送单位,此时,主存带宽为 16B×300k/s =4.8MB/s。在不考虑 DMA 传输的情况下,主存带宽至少达到 4.8MB/s 才能满足 CPU 的访存要求。(2 分)
(2)题中假定在 Cache 缺失的情况下访问主存,平均每秒产生缺页中断 300000 ×0.0005%=1.5 次。因为存储器总线宽度为 32 位,所以每传送 32 位数据,磁盘控制器发出一次 DMA 请求,故平均每秒磁盘 DMA 请求的次数至少为 1.5×4KB/4B=1.5K=1536。(2 分)
(3)CPU 和 DMA 控制器同时要求使用存储器总线时,DMA 请求优先级更高;(1分) ,因为 DMA 请求得不到及时响应,I/O 传输数据可能会丢失。(1 分)
(4)4 体交叉存储模式能提供的最大带宽为 4×4B/50ns=320MB/s。(2 分)
44.某16 位计算机中,带符号整数用补码表示,数据Cache 和指令Cache 分离。题44 表给出了指令系统中部分指令格式,其中Rs 和Rd 表示寄存器,mem 表示存储单元地址,(x)表示寄存器x 或存储单元x 的内容。
表指令系统中部分指令格式
名称 |
指令的汇编格式 |
指令功能 |
加法指令 |
ADDRs,Rd |
(Rs)+(Rd)->Rd |
算术/逻辑左移 |
SHLRd
|
2*(Rd)->Rd |
算术右移 |
SHRRd
|
(Rd)/2->Rd |
取数指令 |
LOADRd, mem |
(mem)->Rd |
存数指令 |
STORERs, mem |
(Rs)->mem |
该计算机采用5 段流水方式执行指令,各流水段分别是取指(IF)、译码/读寄存器(ID)、执行/计算有效地址(EX)、访问存储器(M)和结果写回寄存器(WB),流水线采用“按序发射,按序完成”方式,没有采用转发技术处理数据相关,并且同一个寄存器的读和写操作不能在同一个时钟周期内进行。请回答下列问题:
1)若int 型变量x 的值为-513,存放在寄存器R1 中,则执行指令“SHL R
1”
后,R1 的内容是多少?(用十六进制表示)
2)若某个时间段中,有连续的4 条指令进入流水线,在其执行过程中没有发生任何阻塞,则执行这4 条指令所需的时钟周期数为多少?
3)若高级语言程序中某赋值语句为x=a+b,x、a 和b 均为int 型变量,它们的存储单元地址分别表示为[x]、[a]和[b]。该语句对应的指令序列及其在指令流水线中的执行过程如下图所示。
I1 LOAD R1,[a]
I2 LOAD R2,[b]
I3 ADD R1,R2
I4 STORER2,[x]
图指令序列及其执行过程示意图
则这4 条指令执行过程中,I3 的ID 段和I4 的IF 段被阻塞的原因各是什么?
4)若高级语言程序中某赋值语句为x=x*2+a,x 和a 均为unsigned int 类型变量,它们的存储单元地址分别表示为[x]、[a],则执行这条语句至少需要多少个时钟周期?要求模仿题44 图画出这条语句对应的指令序列及其在流水线中的执行过程示意图。
解:
(1)x 的机器码为[x]补=1111 1101 1111B,即指令执行前(R1)=FDFFH,右移1 位后为1111 1110 1111 1111B,即指令执行后(R1)=FEFFH。(2 分)【评分说明】仅正确写出指令执行前的(R1)可给1 分。
(2)至少需要4+(5-1)=8 个时钟周期数。(2 分)
(3)I3 的ID 段被阻塞的原因:因为I3 与I1 和I2 都存在数据相关,需等到I1 和I2 将结果写回寄存器后,I3 才能读寄存器内容,所以I3 的ID 段被阻塞。(1 分)
I4 的IF 段被阻塞的原因:因为I4 的前一条指令I3 在ID 段被阻塞,所以I4 的IF 段被阻塞。(1 分)
(4)因2*x 操作有左移和加法两种实现方法,故x=x*2+a 对应的指令序列为
I1LOADR1,[x]
I2LOADR2,[a]
I3SHLR1//或者ADDR1,R1
I4ADDR1,R2
I5STORER2,[x]
【评分说明】指令正确给2 分;其他正确答案同样给分;部分正确,酌情给分。
这5 条指令在流水线中执行过程如下图所示。(3 分)
|
|
|
|
|
|
|
|
时间单元 |
|
|
|
|
|
|
|
指令 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
I1 |
IF |
ID |
EX |
M |
WB |
|
|
|
|
|
|
|
|
|
|
|
|
I2 |
|
IF |
ID |
EX |
M |
WB |
|
|
|
|
|
|
|
|
|
|
|
I3 |
|
|
IF |
|
|
ID |
EX |
M |
WB |
|
|
|
|
|
|
|
|
I4 |
|
|
|
|
|
IF |
|
|
|
ID |
EX |
M |
WB |
|
|
|
|
I5 |
|
|
|
|
|
|
|
|
|
IF |
|
|
|
ID |
EX |
M |
WB |
故执行x=x*2+a 语句最少需要17 个时钟周期。(1 分)
容是多少?(用十六进制表示)
(
2
)
在某个时间段中,有连续的
4
条指令进入流水线,在其执行过程中没有发生指令段
阻塞,则执行这
4
条指令所需要的时钟周期是多少?
(
3
)
高级语言程序中某赋值语句为
x=a+b
,
x
、
a
和
b
均为
int
型变量,
它们的存储单元地
址分别表示为
[x]
、
[a]
和
[b]
。该语句对应的指令序列及其在指令流中的执行过程如
题
44
图所示。
I1
LOAD
R1
,
[a]
I2
LOAD
R2
,
[b]
I3
ADD
R1
,
R2
I4
STORE R2
,
[x]
容是多少?(用十六进制表示)
(
2
)
在某个时间段中,有连续的
4
条指令进入流水线,在其执行过程中没有发生指令段
阻塞,则执行这
4
条指令所需要的时钟周期是多少?
(
3
)
高级语言程序中某赋值语句为
x=a+b
,
x
、
a
和
b
均为
int
型变量,
它们的存储单元地
址分别表示为
[x]
、
[a]
和
[b]
。该语句对应的指令序列及其在指令流中的执行过程如
题
44
图所示。
I1
LOAD
R1
,
[a]
I2
LOAD
R2
,
[b]
I3
ADD
R1
,
R2
I4
STORE R2
,
[x]
容是多少?(用十六进制表示)
(
2
)
在某个时间段中,有连续的
4
条指令进入流水线,在其执行过程中没有发生指令段
阻塞,则执行这
4
条指令所需要的时钟周期是多少?
(
3
)
高级语言程序中某赋值语句为
x=a+b
,
x
、
a
和
b
均为
int
型变量,
它们的存储单元地
址分别表示为
[x]
、
[a]
和
[b]
。该语句对应的指令序列及其在指令流中的执行过程如
题
44
图所示。
I1
LOAD
R1
,
[a]
I2
LOAD
R2
,
[b]
I3
ADD
R1
,
R2
I4
STORE R2
,
[x]
容是多少?(用十六进制表示)
(
2
)
在某个时间段中,有连续的
4
条指令进入流水线,在其执行过程中没有发生指令段
阻塞,则执行这
4
条指令所需要的时钟周期是多少?
(
3
)
高级语言程序中某赋值语句为
x=a+b
,
x
、
a
和
b
均为
int
型变量,
它们的存储单元地
址分别表示为
[x]
、
[a]
和
[b]
。该语句对应的指令序列及其在指令流中的执行过程如
题
44
图所示。
I1
LOAD
R1
,
[a]
I2
LOAD
R2
,
[b]
I3
ADD
R1
,
R2
I4
STORE R2
,
[x]
容是多少?(用十六进制表示)
(
2
)
在某个时间段中,有连续的
4
条指令进入流水线,在其执行过程中没有发生指令段
阻塞,则执行这
4
条指令所需要的时钟周期是多少?
(
3
)
高级语言程序中某赋值语句为
x=a+b
,
x
、
a
和
b
均为
int
型变量,
它们的存储单元地
址分别表示为
[x]
、
[a]
和
[b]
。该语句对应的指令序列及其在指令流中的执行过程如
题
44
图所示。
I1
LOAD
R1
,
[a]
I2
LOAD
R2
,
[b]
I3
ADD
R1
,
R2
I4
STORE R2
,
[x]
容是多少?(用十六进制表示)
(
2
)
在某个时间段中,有连续的
4
条指令进入流水线,在其执行过程中没有发生指令段
阻塞,则执行这
4
条指令所需要的时钟周期是多少?
(
3
)
高级语言程序中某赋值语句为
x=a+b
,
x
、
a
和
b
均为
int
型变量,
它们的存储单元地
址分别表示为
[x]
、
[a]
和
[b]
。该语句对应的指令序列及其在指令流中的执行过程如
题
44
图所示。
I1
LOAD
R1
,
[a]
I2
LOAD
R2
,
[b]
I3
ADD
R1
,
R2
I4
STORE R2
,
[x]