导航菜单
首页 >  ceph存储原理期末笔试考试真题  > 【计组理论期末考试模拟题】21级计科专业计算机组成原理

【计组理论期末考试模拟题】21级计科专业计算机组成原理

【计组理论期末考试模拟题】21级计科专业计算机组成原理一、选择题二、多选题三、填空题四、程序填空题五、编程题

一、选择题

2-1 在定点二进制运算器中,减法运算一般通过()来实现。 A.原码运算的二进制减法器 B.补码运算的二进制加法器 C.原码运算的十进制加法器 D.补码运算的二进制减法器

2-2 假定用若干块2K x 4位的存储芯片组成一个16K x 8位的存储器,则地址 251FH 所在芯片的最大地址是( ) A.2BFFH B.2FFFH C.27FFH D.25FFH

注释:   芯片的大小为 2K×4 位,而存储器的大小为 16K×8 位,得出要获得这样一个大小的存储器,需要 16 片 2K×4 位的芯片。   如果按字节编址,对应一个大小为 16K×8 位的存储器,需要14位地址,其中高 4 位为片选地址,低 11 位为片内地址,而题目给出的地址 251FH 转换为二进制为0010 0101 0001 1111 B,其高 4 位为1001,即片选地址为 9。   因此,地址 251FH 对应第 9 片芯片,该芯片的最大地址为 0010 0111 1111 1111 B,即27FFH。

2-3 为实现 Cache地址映射,需要将来自CPU的物理地址根据映射方式进行不同划分,下列描述中错误的是 ( ) A.全相联映射方式下,将地址划分为主存块地址和块内偏移地址两部分 B.直接相联映射方式下,根据Cache大小将地址划分为标记(Tag)、索引(Index)和块内偏移地址三部分。其中Index指向Cache特定行位置 C.组相联映射方式下,根据Cache 分组数大小将地址划分为标记(Tag)、索引(Index)和块内偏移地址三部分。其中Index指向Cache特定组位置 D.K路组相联是指CACHE被分成K组

注释: K路组相联是指主存中的一块可以选择映射到Cache中K个位置   【Computer Organization笔记21】高速缓存 Cache :多路组相联的地址映射、一致性、缺失、MESI协议

2-4 冯诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU依据( )来区分它们。 A.指令和数据的地址形式不同 B.指令和数据的寻址方式不同 C.指令和数据的表示形式不同 D.指令和数据的访问时间不同

注释: 冯诺依曼计算机是根据指令周期的不同阶段,来区分从内存中取出的是指令还是数据。   参考: 【计算机组成原理】CPU如何区分指令和数据

2-5 假定有 4 个整数用 8 位补码分别表示 r1=F2H, r2=FEH, r3=F8H, r4=F5H,若将运算结果存放在一个 8 位寄存器中,则下列运算中会发生溢出的是 ()。 A.r1×r2 B.r2×r3 C.r1×r4 D.r2×r4

注释: r1 = F2H = -14,r2 = FEH = -2 r3 = F8H = -8,r4 = F5H = -11 8位寄存器可以表示的数据范围为 [ −2 7∼2 7− 1 ] [-2^{7} \sim 2^{7} - 1][−27∼27−1] 即 [ − 128 ∼ 127 ] [-128 \sim 127][−128∼127] 当 r1 x r4 = -14 x -11 = 154 超过寄存器所能表示的范围,则发生了溢出

2-6 某计算机的 Cache 共有 32 块,采用 8路组相联映射方式(即每组8块)。每个主存块大小为 32B,按字节编址。主存3312号单元所在主存块应装入到的 Cache 组号是___。 A.0 B.1 C.2 D.3

注释:   【知识点】 Cache和主存的映射方法   8路组相联映射,就是 8 个Cache为一组,组与组之间使用直接映射,组内采用全相联映射。 cache共有 32 块,则 cache组数 = 32 / 8 = 4组。第一组为0,即0~3组。 每个主存块大小是 32B,一个单元一字节,那么,3312号单元的位置 = 3312 / 32 = 103 余 16,即在主存的第103块上。   组相联映射关系公式 cache组号=主存块号 mod cache组数(主存块号除组数取余),代入即cache组号 = 103 mod 4 = 3。   参考: 【408】计算机组成原理-Cache组号的运算

2-7 下列选项中,指执行每条指令所需要的平均时钟周期数的是 A.MIPS B.IPC C.CPI D.机器字长

注释: MIPS : 单字长定点指令平均执行速度 Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数 IPC : Instructions Per Clock/Cycle的缩写,表示CPU每个时钟周期内执行的指令数

2-8 下图是某条指令的执行过程,请根据图中执行步骤,分析该指令最可能是( )

LAD.png

A.LAD B.STO C.MOV D.ADD E.JMP

2-9 一条跳转指令有 64 位,按字节编址。若该指令是无条件跳转指令,执行后会跳转到[PC的值-2]的程序地址。当取出这条指令但未被译码时,PC 的值自动加( )。 A.-2 B.0 C.1 D.8

注释: 如果按字节编址,PC 的值是自动加 1个字长( 位数 / 8),即 64 / 8 = 8 如果按字编址,PC的值是自动加 1

2-10 计算机内存按字节编址,内存地址为由低到高排列。设A=0x12345678,采用大端方式下,存放在地址0-3中,则地址3存放的内容为()。 A.0x12 B.0x34 C.0x56 D.0x78

参考资料 数据存储:小端模式和大端模式——终于搞明白了!!!

二、多选题

3-1 设x为整数,x的真值为34,以下选项与x不相等的有() A.补码二进制串为1,011110的数 B.反码二进制串为0,100010的数 C.原码二进制串为0,100010的数 D.反码二进制串为0,011101的数 E.补码二进制串为0,100010的数 F.移码二进制串为1,100010的数

注释: 34 = 0,100010 [原] = 0,100010 [反] = 0,100010 [补] = 0,100010 [移]

  参考资料: 计算机组成原理之移码表示法

3-2 下列选项中,不能缩短程序执行时间的措施是 A.减少MIPS B.增加CPI最大指令的比例 C.对程序进行编译优化 D.提高CPU时钟频率

三、填空题

4-1 (本题考查课程目标2) 某机字长16位,指令16位,定长指令;指令ADD (R1),R0的功能为(R0)+((R1))→(R1),即将R0中数据与R1内容所指向的主存单元的数据相加,并将结果送入R1内容所指向的主存单元中;数据通路图中控制信号为1表示有效,假设MAR输出一直处于使能状态。

Screenshot 2023-05-22 153402.png

问题1【第0空】:取指令阶段(包括指令译码)共需要 4 个节拍(时钟周期)。

问题2【C1:第1空,C2:第2、3、4空,C3:第5、6空,C6:第7空,C7:第8、9、10空,C8:第11、12空,C9:第13空,C10:第14、15空】:请补全每个节拍(时钟周期)的功能及控制信号。

时钟功能有效控制信号C1MAR←(PC)PCout, MARinC2MDR←M( MAR )MemR , MDRinE ,PC+1C3IR ←(MDR)MDRout, IRinC4指令译码无C5MAR←(R1)R1out,MARinC6MDR ←M(MAR)MemR, MDRinEC7A← (MDR)MDRout , AinC8AC←(R0)+ (A)Add ,R0out,ACinC9MDR ←(AC)ACout,MDRinC10M(MAR) ←(MDR)MDRoutE, MemW

注释:   题干已给出取值和译码阶段每个节拍的功能和有效控制信号,我们应以弄清楚取指阶段中数据通路的信息流动为突破口,读懂每个节拍的功能和有效控制信号,然后应用到解题思路中,包括划分执行步骤、确定完成的功能、需要的控制信号。   先分析题干中提供的示例(本部分解题时不做要求):   取指令的功能是根据PC的内容所指的主存地址,取出指令代码,经过MDR,最终送至IR。这部分和后面的指令执行阶段的取操作数、存运算结果的方法是相通的。 C 1 : ( P C ) → M A R C1: (PC) \rightarrow MARC1:(PC)→MAR   在读写存储器前,必须先将地址(这里为(PC))送至 MAR。 C 2 : M ( M A R ) → M D R , ( P C ) + 1 → P C C2: M(MAR) \rightarrow MDR, (PC) + 1 \rightarrow PCC2:M(MAR)→MDR,(PC)+1→PC   读写的数据必须经过 MDR,指令取出后 PC 自增 1。 C 3 : ( M D R ) → I R C3: (MDR) \rightarrow IRC3:(MDR)→IR   然后将读到的MDR中的指令代码送至IR进行后续操作。 指令“ADD (Rl), R0”的操作数一个在主存中,一个在寄存器中,运算结果在主存中。根据指令功能,要读出R1的内容所指的主存单元,必须先将R1的内容送至MAR,即 ( R 1 ) → M A R (R1) \rightarrow MAR(R1)→MAR。而读出的数据必须经过 MDR,即 M ( M A R ) → M D R M(MAR) \rightarrow MDRM(MAR)→MDR。 因此,将 R1 的内容所指的主存单元的数据读出到MDR的节拍安排如下: C 5 : ( R 1 ) → M A R C5: (R1) \rightarrow MARC5:(R1)→MAR C 6 : M ( M A R ) → M D R C6: M(MAR) \rightarrow MDRC6:M(MAR)→MDR   ALU 一端是寄存器A, MDR 或 R0 中必须有一个先写入 A 中,如 MDR。 C 7 : ( M D R ) → A C7: (MDR) \rightarrow AC7:(MDR)→A   然后执行加法操作,并将结果送入寄存器 AC。 C 8 : ( A ) + ( R 0 ) → A C C8: (A) + (R0) \rightarrow ACC8:(A)+(R0)→AC   之后将加法结果写回到 R1 的内容所指的主存单元,注意 MAR 中的内容没有改变。 C 9 : ( A C ) → M D R C9: (AC) \rightarrow MDRC9:(AC)→MDR C 10 : ( M D R ) → M ( M A R ) C10: (MDR) \rightarrow M(MAR)C10:(MDR)→M(MAR)   有效控制信号的安排并不难,只需看数据是流入还是流出,如流入寄存器X就是Xin,流 出寄存器 X 就是 Xout。还需注意其他特殊控制信号,如 PC+1、Add 等。

4-2(本题考查课程目标2) 某计算机字长为16位,主存地址空间大小为8GB,按字编址。采用单字长指令格式,指令各字段定义如下图所示:

image.png

转移地址采用相对寻址方式,相对偏移量用补码表示。寻址方式如下表所示:

image.png

问题1【第0、1、2、3空】: 该指令系统最多可有 16 条指令,该计算机最多有 8 个通用寄存器,存储器地址寄存器MAR至少需要 32 位,存储器数据寄存器MDR至少需要 16 位。

问题2【第4空】: 转移指令的目标地址范围是 0x0000~0x FFFF 。(用十六进制表示,仅限填数字和大写字母,问题3也适用该限制规则)。

问题3【第5空】: 若操作码 1101B 表示加法操作,助记符为add,寄存器R4,R5的编号分别为 100B 和 101B,R4的内容为0x1234,R5的内容为0x5678,地址 0x1234 中的内容为 0x5678 ,地址 0x5678 中的内容为 0x1234 ,则汇编语句add (R4),(R5)+ 逗号前为源操作数,逗号后为目的操作数,对应的机器码是 0x D315 。

【第6、7、8、9空】该指令执行以后,寄存器 R5 和存储单元 0x 5678 号单元的内容会发生改变,改变后的内容分别为是 0x 5679 和 0x 68AC 。

注释:   1)操作码占 4 位,则该指令系统最多可有2 4= 2^4=24= 16 条指令。操作数占6位,其中寻址方式占 3 位、寄存器编号占 3 位,因此该机最多有2 3= 2^3=23= 8 个通用寄存器。主存地址空间大小为 8GB,按字编址,字长为16位,共有 8 G B / 2 B =2 33/2 1=2 328GB/2B = 2^{33}/2^{1} = 2^{32}8GB/2B=233/21=232 个存储单元,因此MAR至少为 32 位;因为字长为 16 位,故MDR至少为 16 位。   2)寄存器字长为 16 位,PC 和 Rn 可表示的地址范围均为 0 ~2 16− 1 0~2^{16} -10~216−1,而主存地址空间为2 162^{16}216,故转移指令的目标地址范围为 0000H~FFFFH ( 0 ~2 16− 1 ) (0~2^{16} -1)(0~216−1)。   3)汇编语句“add (R4), (R5)+”,对应的机器码为

字段OPMsRsMdRd内容1101001100010101说明add寄存器间接R4寄存器间接、自增R5

将对应的机器码写成十六进制形式为1101 0011 0001 0101B=D315H。   该指令的功能是将 R4 的内容所指存储单元的数据与 R5 的内容所指存储单元的数据相加,并将结果送入 R5 的内容所指存储单元中。(R4)=1234H,(1234H)=5678H;(R5)=5678H,(5678H) =1234H;执行加法操作 5678H+1234H=68ACH,之后 R5 自增。   该指令执行后,R5 和存储单元 5678H 的内容会改变,R5的内容从 5678H 变为 5679H,存储单元 5678H 中的内容变为该指令的计算结果 68ACH。   参考

相关推荐: