考研408计算机统考分两部分,80分单项选择题和70分大题,满分150分。单项选择题总共80分,每小题2分,40小题。单项选择题,1-10题是数据结构部分;11-22题是计算机组成原理部分;23-32题是操作系统部分;33-40题是计算机网络部分。综合应用题70分,共7小题,41和42题是数据结构题,分值各为10分和15分;43和44题是计算机组成原理题,各占8分和13分;45和46题是操作系统题,各占7分和8分;47题是计算机网络题,分值为9分。为了方便大家更好的来备考,小编为大家整理了“2020年408计算机考研真题”,希望可以帮助大家更好的复习408计算机考研内容。
2020年考研408计算机统考考研真题
二、综合应用题(第41~47小题,共70分)
43、(13分)有实现x×y的两个C语言函数如下:
unsigned umul (unsigned x, unsigned y) { return x*y; }
int imul (int x, int y) {return x * y; }
假定某计算机M中ALU只能进行加减运算和逻辑运算。请回答下列句题。
(1)若M的指令系统中没有乘法指令,但有加法、减法和位移等指令,则在M上也能实现上述两个函数中的乘法运算,为什么?
(2)若M的指令系统中有乘法指令,则基于ALU、位移器、寄存器以及相应控制逻辑实现乘法指令时,控制逻辑的作用是什么?
(3)针对以下三种情况:a)没有乘法指令;b)有使用ALU和位移器实现的乘法指令;c)有使用阵列乘法器实现的乘法指令,函数umul()在哪种情况下执行时间最长?哪种情况下执行的时间最短?说明理由
(4)n位整数乘法指令可保存2n位乘积,当仅取低n位作为乘积时,其结果可能会发生溢出。当n=32、x=231-1、y=2时,带符号整数乘法指令和无符号整数乘法指令得到的x×y的2n位乘积分别是什么(用十六进制表示)?此时函数umuI()和imuI()的返回结果是否溢出?对于无符号整数乘法运算,当仅取乘积的低位作为乘法结果时,如何用2n位乘积进行溢出判断?
44、(10分)假定主存地址为32位,按字节编址,指令Cache和数据Cache与主存之间均采用8路组相联映射方式,直写(Write Through)写策略和LRU替换算法,主存块大小为64B,数据区容量各为32KB。开始时Cache均为空。请回答下列问题。
(1)Cache每一行中标记(Tag)、LRU位各占几位?是否有修改位?
(2)有如下C语言程序段:
for(k=0;k<1024;k++)
s[k]=2*s[k];
若数组s及其变量k均为int型,int型数据占4B,变量k分配在寄存器中,数组s在主存中的起始地址为0080 00C0H,则该程序段执行过程中,访问数组s的数据Cache缺失次数为多少?
(3)若CPU最先开始的访问操作是读取主存单元0001 0003H中的指令,简要说明从Cache中访问该指令的过程,包括Cache缺失处理过程。