导航菜单

计算机考研

文章目录【计算机组成原理2012年真题43题-11分】【第一步:信息提取】【第二步:具体解答】【计算机组成原理2012年真题44题-12分】【第一步:信息提取】【第二步:具体解答】

【计算机组成原理2012年真题43题-11分】

假设某计算机的CPU主频为80MHz,CPI为4,平均每条指令访存1.5次,主存与Cache之间交换的块大小为16B,Cache 的命中率为99%,存储器总线宽带为32位。请回答下列问题。

(1)该计算机的MIPS 数是多少?平均每秒Cache缺失的次数是多少?在不考虑DMA传送的情况下,主存带宽至少达到多少才能满足CPU的访存要求?

(2)假定在Cache缺失的情况下访问主存时,存在0.0005%的缺页率,则CPU平均每秒产生多少次缺页异常?若页面大小为4KB,每次缺页都需要访问磁盘,访问磁盘时DMA传送采用周期挪用方式,磁盘IO接口的数据缓冲寄存器为32位,则磁盘IO接口平均每秒发出的DMA请求次数至少是多少?

(3)CPU和 DMA控制器同时要求使用存储器总线时,哪个优先级更高?为什么?

(4)为了提高性能,主存采用4体低位交叉存储模式,工作时每1/4个存储周期启动一个体,若每个体的存储周期为50ns,则该主存能提供的最大带宽是多少?

【第一步:信息提取】

CPU主频为80MHz:CPU时钟周期12.5ns

CPI为4:执行一条指令需要4个时钟周期

平均每条指令访存1.5次:见字如面

主存与Cache之间交换的块大小为16B:见字如面

Cache 的命中率为99%:见字如面

存储器总线宽带为32位:4B

【第二步:具体解答】

第一小题:

(1)该计算机的MIPS 数是多少?

平均每秒CPU执行的指令数为80M/4 = 20M,故 MIPS 数为20;

(2)平均每秒Cache缺失的次数是多少?在不考虑DMA传送的情况下,主存带宽至少达到多少才能满足CPU的访存要求?

平均每条指令访存1.5次,故平均每秒Cache缺失的次数=20M×1.5×(1-99%)= 300k;

当Cache缺失时,CPU 访问主存,主存与Cache之间以块为传送单位,此时,主存带宽为16B×300k/s = 4.8MBps。在不考虑DMA传送的情况下,主存带宽至少达到4.8MBps才能满足CPU的访存要求。

第二小题:

(1)假定在Cache缺失的情况下访问主存时,存在0.0005%的缺页率,则CPU平均每秒产生多少次缺页异常?

题中假定在Cache缺失时访问主存,平均每秒产生缺页中断300000x0.0005%= 1.5次。

(2)若页面大小为4KB,每次缺页都需要访问磁盘,访问磁盘时DMA传送采用周期挪用方式,磁盘IO接口的数据缓冲寄存器为32位,则磁盘IO接口平均每秒发出的DMA请求次数至少是多少?

因为存储器总线宽度为32位,所以每传送32位数据,磁盘控制器发出一次DMA请求,故平均每秒磁盘DMA请求的次数至少为1.5×4KB/4B= 1.5K= 1536。

第三小题:

(1)CPU和 DMA控制器同时要求使用存储器总线时,哪个优先级更高?为什么?

CPU 和 DMA控制器同时要求使用存储器总线时,DMA 请求优先级更高;

因为DMA请求得不到及时响应,I/O传输数据可能会丢失。

第四小题:

(1)为了提高性能,主存采用4体低位交叉存储模式,工作时每1/4个存储周期启动一个体,若每个体的存储周期为50ns,则该主存能提供的最大带宽是多少?

四体交叉存储模式能提供的最大带宽为4×4B/50ns= 320MBps

总结:

计算机的性能指标、存储器的性能指标、DMA的性能分析,DMA方式的特点,多体交叉存储器的性能分析。

【计算机组成原理2012年真题44题-12分】

某16位计算机中,带符号整数用补码表示,数据Cache和指令Cache分离。题44表给出了指令系统中部分指令格式,其中Rs 和Rd表示寄存器,mem表示存储单元地址,(x)表示寄存器x或存储单元x的内容。

在这里插入图片描述

该计算机采用5段流水式执行指令,各流水段分别是取指(正),译码/读寄存器(ID)、执行/计算有效地址(EX)、访问存储器(M)和结果写回寄存器(WB),流水线采用“按序发射,按序完成”方式,没有采用转发技术处理数据相关,并且同一个寄存器的读和写操作不能在同一个时钟周期内进行。请回答下列问题:

(1)若int型变量x的值为-513,存放在寄存器R1中,则执行"SHL R1"后,R1中的内容是多少?(用十六进制表示)

(2)若某个时间段中,有连续的4条指令进入流水线,在其执行过程中没有发生任何阻塞,则执行这4条指令所需的时钟周期数为多少?

(3)若高级语言程序中某赋值语句为x = a+b,x、a和 b均为int型变量,它们的存储单元地址分别表示为[x]、[a]和[b]。该语句对应的指令序列及其在指令流水线中的执行过程如题44图所示。

在这里插入图片描述

则这4条指令执行过程中,I的ID段和工的F段被阻塞的原因各是什么?

(4)若高级语言程序中某赋值语句为x=x*2+a,x和 a均为unsigned int类型变量,它们的存储单元地址分别表示为[x]、[a],则执行这条语句至少需要多少个时钟周期?要求模仿题44图画出这条语句对应的指令序列及其在流水线中的执行过程示意图。

【第一步:信息提取】 【第二步:具体解答】

第一小题:

(1)若int型变量x的值为-513,存放在寄存器R1中,则执行"SHL R1"后,R1中的内容是多少?(用十六进制表示)

x的机器码为 [ x] 补= 1111110111111111 B [x]_补= 1111 1101 1111 1111B[x]补​=1111110111111111B,即指令执行前(RI1)=FDFFH,右移1位后位1111 1110 1111 1111B,即指令执行后(R1)= FEFFH。

第二小题:

(1)若某个时间段中,有连续的4条指令进入流水线,在其执行过程中没有发生任何阻塞,则执行这4条指令所需的时钟周期数为多少?

每个时钟周期只能有一条指令进入流水线,从第5个时钟周期开始,每个时钟周期都会有一条指令执行完毕,故至少需要4+(5-1)= 8个时钟周期。

第三小题:

(1)若高级语言程序中某赋值语句为x = a+b,x、a和 b均为int型变量,它们的存储单元地址分别表示为[x]、[a]和[b]。该语句对应的指令序列及其在指令流水线中的执行过程如题44图所示。则这4条指令执行过程中,I的ID段和工的F段被阻塞的原因各是什么?

I 3I_3I3​的ID段被阻塞的原因:因为I 3I_3I3​ 与I 1I_1I1​ 和I 2I_2I2​ 都存在数据相关,需等到I 1I_1I1​ 和I 2I_2I2​ 将结果写回寄存器后,I 3I_3I3​才能读寄存器内容,所以I的ID段被阻塞

I 4I_4I4​的F段被阻塞的原因:因为I的前一条指令在ID段被阻塞,所以I 4I_4I4​的IF段被阻塞

第四小题:

(1)若高级语言程序中某赋值语句为x=x*2+a,x和 a均为unsigned int类型变量,它们的存储单元地址分别表示为[x]、[a],则执行这条语句至少需要多少个时钟周期?要求模仿题44图画出这条语句对应的指令序列及其在流水线中的执行过程示意图。

在这里插入图片描述

相关推荐: