20155222卢梓杰 课下测试04补做
20155222卢梓杰 课下测试04补做
-
1.SEQ+对SEQ的改变有()
A . PC的计算挪到取指阶段
B . PC的计算挪到访存阶段
C . 电路重定时
D . 插入流水线寄存器
E . 对信号进行重排和标号
F . 处理流水线冒险
正确答案: A C D E F
解析:在SEQ+中,创建状态寄存器来保存在一条指令执行过程中计算出来的信号。然后,当一个新的时钟周期开始时,这些信号值通过同样的逻辑来计算当前指令的PC。
SEQ+中对状态元素的改变称为电路重定时,在SEQ+的各个阶段之间插入了流水线寄存器,并对信号重新排列。 -
2.图中的代码说明异常处理的细节问题是()
A . 同时多条指令引起异常
B . 指令执行引起异常,后来由于分支预测错误,取消了该指令
C . 不同阶段更新系统状态的不同部分
D . 与流水线无关的异常
正确答案: B
解析:在这个程序中,流水线会预测选择分支,因此他会取出并以一个值为0xFF的字节作为指令。译码阶段会因此发现一个非法指令异常。稍后,流水线会发现不应该选择分支,因此根本就不应该取出位于地址0x00e的指令。流水线控制逻辑会取消该指令,但是我们想要避免出现异常。
-
3.Y86-64中()指令没有访存操作.
A . rrmovl
B . irmovq
C . rmmovq
D . pushq
E . jXX
F . ret
正确答案: A B
解析:rrmovl是寄存器-寄存器传送,irmovq是立即数-寄存器传送,不需要访存。 -
4.在Y86-64中,对一条跳转指令,决定是不是应该选择分支的阶段是()
A . fetch
B . decode
C . execute
D . memory
E . write back
F . PC update
正确答案: C
解析:在执行阶段,算数/逻辑单元(ALU)要么执行指令指明的操作(根据ifun的值),计算存储器引用的有效地址,要么增加或减少栈指针。得到的值我们称为valE。在此,也可能设置条件码。对一条跳转指令来说,这个阶段会检验条件码和分支条件,看是不是应该选择分支。 -
5.Y86-64中,指令执行分为()阶段
A . 3
B . 4
C . 5
D . 6
E . 7
F . 8
正确答案: D
解析:取指(fetch)、译码(decode)、执行(execute)、访存(memory)、写回(write)、更新PC(PC update) -
6.一个典型的寄存器文件包括()
A . 读端口
B . 控制端口
C . 写端口
D . 时钟
正确答案: A C D
解析:寄存器文件有两个读端口,还有一个写端口。这样一个多端口随机访问存储器允许同时进行多个读和写操作。向寄存器文件写入字是由时钟信号控制的。 -
7.Y86-64中,使用时钟寄存器保存()
A . the program counter (PC)
B . the register file(%rax-%r14)
C . the condition codes (CC)
D . the program status (Stat)
正确答案: A C D
解析:每当每个时钟到达上沿时,值才会从寄存器的输入传送到输出。我们的Y86处理器会用时钟寄存器保存程序计数器(PC)、条件代码(CC)和程序状态(Stat)。 -
8.In this circuit, the 2-bit signal code would then control the selection among the four data words A, B, C, and D. We can express the generation of signals s1 and s0 using equality tests based on the possible values of code,which is true( )
A . bool s1 = code == 2 || code == 3;
B . bool s0 = code == 2 || code == 3;
C . bool s1 = code in { 2, 3 };
D . bool s1 = code in { 2, 3 };
正确答案: A C
解析:在这个电路中,两位的信号code就可以用来控制四个数据字A、B、C和D做选择,根据可能的code值,可以用相等测试来表示信号s1和s0的产生:
bool s1 = code == 2 || code == 3;还有一种更简洁的方式来表示这样的操作:dangcode在集合{2,3}中s1为1:bool s1 = code in { 2, 3 }; -
9.下图中能实现subq的是()
A . 0
B . 1
C . 2
D . 3
正确答案: B
- 10.下面HCL代码的功能是()
A . 求ABC中的最大值
B . 求ABC中的最小值
C . 对ABC从小到大排序
D . 对ABC从大到小排序
正确答案: B
- 11.有关下图说法正确的是()
A .
int out = [
s:A
1:B
];
B .
int out = [
s:A
0:B
];
C .
int out = [
A:s
B:1
];
D .
int out = [
A:s
B:0
];
正确答案: A
解析:同c语言的switch语句不同,我们不要求不同的选择表达式只见互斥。从逻辑上讲,这些选择表达式是顺序求值的,且第一个求值为1的情况会被选中。
-
12.下面说法正确的是()
A . ALU是一种时序电路。
B . ALU是一种组合电路。
C . 寄存器是一种时序电路
D . 寄存器是一种组合电路
正确答案: B C
解析:区分在有没有时钟 -
13.有关HCL,下面说法正确的是()
A:
B:
C:
A . 图A中位级与非门的HCL表达式是 bool Y = !(A&&B)
B . HCL表达式a||!a的值是1
C . B图对应的HCL描述是 bool eq=(a&&b)||!(a&&b)
D . C图可以用来实现if..else功能
正确答案: A B D
解析:B有两个输入a和b,有唯一的输出eq,当a和b都是1或都是0时,输出为1。C图是一个多路复用器。多路复用器根据输入控制信号的值,从一组不同的数据信号中选出一个。
-
14.与、或、非三种逻辑门可以用一种门()实现。
A . 与非门
B . 与门
C . 或非门
D . 或门
正确答案: A C
解析:与、或、非三种逻辑门可以用一种门(与非门, 或者 或非门)实现。
重要意义在于:一旦物理上实现了Nand,就可以用Nand构建任意布尔函数的物理实现。
-
15.下图中,out = a&&b的是()
A:
B:
C:
A . A
B . B
C . C
D . None of all
正确答案: B
-
16.实现一个数字系统需要的组成部分有()
A . combinational logic to compute functions on the bits
B . memory elements to store bits
C . hardware control language
D . clock signals to regulate the updating of the memory elements.
正确答案: A B D
解析:要实现一个数字系统需要三个主要的组成部分:计算对位进行操作的函数的组合逻辑、存储位的存储器元素,以及控制存储器元素更新的时钟信号。 -
17.安装YIS用到的Linux命令有()
A . wget
B . ln
C . ping
D . tar
E . ls
F . pwd
正确答案: A B D
解析:cd
~/Code/shiyanlou_cs413
wget
http://labfile.oss.aliyuncs.com/courses/413/sim.tar
tar -xvf sim.tar cd
sim
sudo apt-get install bison flex tk
sudo ln -s
/usr/lib/x86_64-linux-gnu/libtk8.6.so /usr/lib/libtk.so
sudo ln -s
/usr/lib/x86_64-linux-gnu/libtcl8.6.so /usr/lib/libtcl.so
make -
18.有关Y86-64的状态码,下面说法正确的是()
A . AOK表示正常操作
B . AOK的值是0
C . HLT表示遇到非法指令
D . 3表示遇到非法地址
正确答案: A D
解析:
1 AOK 正常操作
2 HLT 处理器执行halt命令
3 ADR 遇到非法地址
4 INS 遇到非法指令 -
19.Y86-64中共有()个跳转指令。
A . 7
B . 6
C . 2
D . 4
正确答案: A
解析:jmp、jle、jl、je、jne、jge、jg。 -
20.Y86-64中"addq %rax, %rcx"对应的机器码是()
A . 6010
B . 6001
C . 60010000000000000000
D . 00000000000000006001
E . 00000000000000006010
F . 60100000000000000000
正确答案: B
addl 60 subl 61 andl 62 xorl 63
jmp 70 jne 74 jle 71 jge 75 jl 72 jg 76 je 73
rrmol 20 cmovne 24 cmovle 21 cmovge 25 cmovl 22 cmovg 26 cmove 23
0 %eax 1 %ecx 2 %edx 3 %ebx 4 %esp 5 %ebp 6 %esi 7 %eadi F 无寄存器 -
21.Y86-64中"rrmovq %rax, %rcx"对应的机器码是()
A . 2001
B . 2010
C . 20010000000000000000
D . 00000000000000002001
E . 00000000000000002010
F . 20100000000000000000
正确答案: A -
22.Y86-64的指令编码长度是()字节
A . 1
B . 2
C . 8
D . 9
E . 10
F . 2-10
G . 4-10
H . 1-10
正确答案: H
解析:指令编码长度从1-6个字节不等。一条指令含有一个单字节的指令指示符,可能含有一个单字节的寄存器指示符,还可能含有一个四字节的常数字 -
23.Y86-64指令支持的整数操作的长度是()
A . 1字节
B . 2字节
C . 4字节
D . 8字节
E . 都可以
正确答案: D -
24.Y86-64中有()个程序寄存器
A . 8
B . 16
C . 15
D . 14
正确答案: C
解析:%eax %ecx %edx %ebx %esp %ebp %esi %eadi ZF SF OF PC Stat DMEM -
25.Y86-64中程序员(汇编程序员、编译器等)可见的状态包括()
A . 程序寄存器
B . 条件码
C . 程序状态
D . 程序计数器(PC)
E . 内存
正确答案: A B C D E
解析:Y86程序中的每条指令都会读取或修改处理器状态的某些部分。这成为程序员可见状态。