计算机组成原理2010年A卷
计算机组成原理2010年A卷
1. A 2’s-complement overflow cannot occur when _________.
A. two positive numbers are added
B. two negative numbers are added
C. a positive number is added to a negative number
D. a positive number is subtracted from a negative number
答案:D. a positive number is subtracted from a negative number
2.
What is the effect of the following instruction?
move ecx, [ebp+8]
A. Add 8 to the contents of ebp and store the sum in ecx.
B. Add 8 to the contents of ebp, treat the sum as a memory address and
store the contents at that address in ecx.
C. Add 8 to the contents of the memory location whose address is stored
in ebp and store the sum in ecx.
D. Add the contents of ebp to the contents of memory address 8 and store
the sum in ecx.
答案:B. Add 8 to the contents of ebp, treat the sum as a memory address and store the contents at that address in ecx.
解释:
move ecx, [ebp+8]
是一个汇编指令,表示将内存地址ebp+8
中的内容加载到寄存器ecx
中。
[ebp+8]
表示的是将ebp
寄存器中的值加上 8,得到一个内存地址,然后从该地址加载数据并存储到ecx
中。
- 因此,选项 B 描述了这个操作的正确含义:将
ebp+8
计算得到的内存地址中的内容存储到ecx
中。
3. The number of bits reserved for the tag field is ________.
已知条件:
- 物理地址:24位
- 缓存条目数:64
- 块大小:4个字(每个字4字节)
答案:A. 14
解释:
- 总地址位数:24位物理地址。
- 缓存大小:64个缓存条目。
- 块大小:每块4个字(每个字4字节),即每块16字节。
首先计算索引位数:
- 64个缓存条目需要 $ _2 64 = 6 $ 位来标识缓存条目的位置。
接着,计算块内偏移位数:
- 每块16字节需要 $ _2 16 = 4 $ 位来标识块内的偏移。
剩下的位数就是标记位(Tag),即:
- 总地址位数:24
- 减去索引位数:6
- 减去块内偏移位数:4
因此,标记位数为:
$ 24 - 6 - 4 = 14 $
4. The total number of bits in the cache is ________.
注意包含有效位,标签位,数据存储。
答案:B. \(2^6*(143)\)
解释:
每个缓存条目由以下几个部分组成:
- 有效位:1位
- 标签位:14位(根据上面的计算)
- 数据存储:每块16字节,即每块存储 16 字节 * 8 位/字节 = 128 位。
因此,每个缓存条目的总位数是:
$ 1 + 14 + 128 = 143 $
对于64个缓存条目,缓存的总位数为:
$ 64 = 9152 $
5. As part of handling interrupts, the processor must inform the device that its request has been recognized. This may be accomplished by means of a special control signal: __________ signal.
A. interrupt-enable
B. interrupt-acknowledge
C. interrupt-request
D. interrupt-service
答案:B. interrupt-acknowledge
解释:
- interrupt-acknowledge (IAK)
信号用于告诉中断请求设备,处理器已经识别到它的中断请求并开始处理中断。
- interrupt-enable
用于启用中断,但不用于确认请求。
- interrupt-request
是设备向处理器发送的请求信号。
- interrupt-service 并不是一个常见的控制信号术语。
6. In IEEE 754 double-precision floating point number standard, instead of the signed exponent, E, the value actually stored in the exponent field is an unsigned integer __________.
A. E’=E+127
B. E’=E+128
C. E’=E+1023
D. E’=E+1024
答案:C. E’=E+1023
解释:
在 IEEE 754
双精度浮点数标准中,指数字段存储的是一个无符号的整数,表示方式为
E' = E + 1023,其中 E 是实际的有符号指数。
- 通过加上一个偏移量(1023),我们将有符号的指数 E 转换为无符号的整数
E'。
- 选项 A 和 B 提供的偏移量 127 和 128
是用于单精度浮点数的指数偏移。
- 选项 D 的 1024 并不是正确的偏移量。
7. The microroutines for all instructions in the instruction set of a computer are stored in a special memory called the __________.
A. flash memory
B. control store
C. μPC
D. SRAM
答案:B. control store
解释:
- control store
存储计算机指令集的微程序(microroutines),这些微程序负责控制计算机的每个硬件操作。
- flash memory
是一种非易失性存储器,用于存储数据,但不用于存储微程序。
- μPC
是微程序计数器,用于跟踪当前执行的微程序位置。
- SRAM 是静态随机存取存储器,用于一般数据存储,而非存储微程序。
8. In DMA transfers, the data transfer unit between main memory and I/O devices is __________.
A. byte
B. word
C. block of data
D. bit
答案:C. block of data
解释:
在 直接内存访问(DMA) 中,数据传输的单位通常是一个
数据块(block of
data),这意味着一次数据传输可以是多个字节、字或其他单位的集合。
- byte、word 和 bit
都是较小的传输单位,而 DMA 通常设计为以数据块为单位进行高效传输。
- DMA 通过高效的批量数据传输,提高了 CPU 的性能,避免了逐个字节或字的传输。
9. __________ arise from resource conflicts when the hardware cannot support all possible combinations of instructions simultaneously in overlapped execution.
A. Structural hazards
B. Data hazards
C. Control hazards
D. Branch hazards
答案:A. Structural hazards
解释:
- Structural hazards
是由于硬件资源不足,无法支持多个指令在流水线中同时并行执行所导致的问题。例如,两个指令需要访问同一个硬件资源(如同一个寄存器、内存、ALU等),但硬件无法同时处理这两个请求,因此会发生结构性危害。
- Data hazards 发生于指令间有数据依赖。
- Control hazards
发生于控制流改变时,如分支指令。
- Branch hazards 是控制流改变时引起的危害,是控制危害的一种特殊情况。
10. In microprogram-controlled machines, the relationship between the machine instruction and the microinstruction is __________.
A. a machine instruction is executed by a microinstruction
B. a microinstruction is composed of several machine instructions
C. a machine instruction is interpreted by a microroutine composed of
microinstructions
D. a microroutine is executed by a machine instruction
答案:C. a machine instruction is interpreted by a microroutine composed of microinstructions
解释:
- 在微程序控制的计算机中,每个机器指令 都通过
微指令
来解释,微指令是组成微程序(microroutine)的一部分。微程序通过多条微指令控制机器执行步骤。
- A
选项的描述并不准确,机器指令并非由单一微指令执行。
- B
选项也不准确,微指令并不是由多条机器指令组成。
- D 选项错误,机器指令和微程序是两种不同的层次。
11. In memory-mapped I/O system, we use __________ to differentiate memory locations and I/O devices.
A. different addresses
B. different address buses
C. different instructions
D. different control signals
答案:A. different addresses
解释:
在 内存映射 I/O 系统 中,内存和 I/O
设备共享同一地址空间,区分它们的是 不同的地址。通过将
I/O
设备分配到内存空间的不同部分,处理器可以通过访问不同的地址来区分内存和
I/O 设备。
- 不同的地址总线 并不是区分内存和 I/O 的方式。
- 不同的指令 也不是区分内存和 I/O 设备的方法。
- 不同的控制信号 确实用于控制内存和 I/O 的访问,但根本的区分仍然依赖于地址。
12. A major advantage of direct mapping of a cache is its simplicity. The main disadvantage of this organization is that __________.
A. It’s more expensive than other types of cache organization.
B. Its access time is greater than that of other cache
organizations.
C. The cache hit ratio is degraded if two or more blocks used
alternatively mapped onto the same block frame in the cache.
D. It does not allow simultaneously access to the intended data and its
tag.
答案:C. The cache hit ratio is degraded if two or more blocks used alternatively mapped onto the same block frame in the cache.
解释:
- 直接映射缓存的主要缺点是当两个或多个内存块映射到缓存中的同一个缓存块时,可能会交替访问这个缓存块,从而导致缓存命中率下降。这种现象称为冲突失效(conflict
miss)。
- A
选项错误,直接映射通常比其他缓存组织(如全相联映射或组相联映射)更简单,也不一定更昂贵。
- B
选项也不准确,直接映射的访问时间通常较短,但受限于缓存命中率的降低。
- D 选项错误,直接映射缓存允许同时访问数据和标签。
问题 13
问题
假设被乘数是 110011,乘数是 101100。如果使用布斯算法将它们相乘,那么布斯重编码后的乘数是____。 A. – 1 + 1 0 – 1 1 0 B. – 1 – 1 0 – 1 0 0 C. – 1 + 1 0 – 1 0 0 D. + 1 + 1 0 – 1 0 0
答案
C
解释
布斯算法涉及对乘数进行重编码。基本步骤是从右到左查看乘数中的位对,并按照以下重编码规则执行:
- 如果当前位对是“00”或“11”,记录为 0。
- 如果当前位对是“01”,记录为 +1。
- 如果当前位对是“10”,记录为 -1。
对于乘数 101100:
- 最右边的位对“00”,我们记录为 0。
- 下一位对“10”,得到 -1。
- 然后“11”,记录为 0。
- 接着“01”,记录为 +1。
- 最后“00”,记录为 0。
所以布斯重编码后的乘数是 – 1 + 1 0 – 1 0 0。
问题 14
问题
如果 2006 年版本的计算机执行一个程序需要 200 秒,而 2007 年制造的该计算机版本执行相同程序需要 150 秒,那么制造商在这两年期间实现的加速比是____。 A. 1.44 B. 1.78 C. 1.63 D. 1.33
答案
D
解释
加速比的计算公式为:加速比 = 旧系统的执行时间 / 新系统的执行时间。
在此处,2006 年版本(旧系统)的执行时间是 200 秒,2007 年版本(新系统)的执行时间是 150 秒。
加速比 = 200 / 150 = 1.33。
问题 15
问题
假设一条分支指令采用相对寻址方式。它长度为两个字节,第一个字节包含操作码,第二个字节包含偏移量(用补码表示)。假设当处理器取分支指令的第一个字节时,程序计数器(PC)会自动指向下一条指令。起初(在取分支指令之前)PC 的值为 2008H,如果程序想要跳转到地址 2001H,那么这条分支指令第二个字节的内容是____。 A. 07H B. F7H C. 09H D. F9H
答案
D
解释
我们想要跳转到 2001H。偏移量的计算方法是目标地址 -(取指令后 PC 的值)。
偏移量 = 2001H - 2008H,十进制下为 -7。
- -7的补码表示为 11111001,十六进制表示为 F9H。所以这条分支指令第二个字节的内容是 F9H。
问题
在需要设计64位CPU核心时,解释行波进位全加器的缺点,并针对该缺点给出一种解决方案(只需给出电路名称,无需绘制解决方案的电路)。
答案
缺点: 在设计64位CPU核心时,行波进位全加器的主要缺点在于传播延迟。在行波进位加法器中,一个全加器级的进位输出会作为下一级的进位输入。这意味着进位需要依次通过所有的级进行传递。对于64位加法器来说,由于进位信号需要依次通过64个全加器级进行传播,累计的传播延迟会相当显著。这可能会减慢加法运算的速度,并限制CPU执行算术运算的速度。
解决方案: 超前进位加法器。超前进位加法器通过利用逻辑方程提前生成进位信号,而不是等待进位依次通过每一级,从而减少了传播延迟。相较于行波进位加法器,它能够实现更快的加法运算。
问题
一个系统有48位虚拟地址和36位物理地址。如果该系统使用4096字节(即4KB)的页面,那么地址空间能够支持多少个虚拟页面和物理页面?
答案
虚拟页面数量: 页面大小为4096字节,也就是\(2^{12}\)字节。虚拟地址空间是48位。 要算出虚拟页面的数量,我们需要用虚拟地址空间中可寻址单元的总数除以每个页面可寻址单元的数量。 虚拟地址空间中可寻址单元的总数是\(2^{48}\)个。 每个页面可寻址单元的数量是\(2^{12}\)个(因为页面大小为\(2^{12}\)字节)。 虚拟页面的数量\(N_{v}\)计算公式如下: \(N_{v}=\frac{2^{48}}{2^{12}} = 2^{48 - 12}=2^{36}\)
物理页面数量: 物理地址空间是36位。 物理地址空间中可寻址单元的总数是\(2^{36}\)个。 每个页面可寻址单元的数量同样是\(2^{12}\)个(基于4096字节的页面大小)。 物理页面的数量\(N_{p}\)计算公式如下: \(N_{p}=\frac{2^{36}}{2^{12}} = 2^{36 - 12}=2^{24}\)
所以,虚拟地址空间能够支持\(2^{36}\)个虚拟页面,物理地址空间能够支持\(2^{24}\)个物理页面。
寻址问题:
假设计算机的字长是 16 位,主存容量是 64K 字(即 64K × 16 位)。该计算机使用单字长单地址指令,并且包含 64 种指令。设计一个指令格式,支持直接寻址、间接寻址、索引寻址和相对寻址模式。
解决方案:
我们需要设计指令格式,首先需要考虑以下几个方面:
- 计算机字长:字长是 16 位,每条指令的大小应该为 16 位。
- 内存容量:64K 字意味着主存的地址范围是 0 到 65535(即 16 位地址)。
- 指令集大小:有 64 种指令,因此操作码部分需要足够多的位来表示 64 个不同的指令。
步骤:
1. 指令格式的设计:
由于计算机使用单字长单地址指令,我们可以将 16 位的指令格式分为以下部分:
- 操作码(Opcode):需要足够的位来表示 64 种不同的指令。64 种指令可以用 6 位表示(\(2^6 = 64\))。
- 地址部分(Address):地址部分需要足够的位来表示 64K 字的地址。64K 字需要 16 位地址。
- 由于使用了单地址指令,这意味着指令中只包含一个操作数地址。
2. 指令格式:
在考虑寻址模式的情况下,我们将指令分为以下几个字段:
- 操作码(Opcode):6 位
- 寻址模式标志(Addressing Mode):2 位,表示使用的寻址模式(直接、间接、索引和相对寻址)
- 地址(Address):8 位,用于表示地址或偏移量
我们将地址字段的位数设计为 8 位,而剩余的 8 位可以用于寻址模式标志和地址。根据实际需求,可能需要调整位数。
3. 寻址模式的设计:
使用 2 位寻址模式标志来指示不同的寻址方式(直接、间接、索引、相对)。这样,寻址模式标志和地址的组合将决定不同的寻址方式。
- 00:直接寻址(Direct Addressing)
- 01:间接寻址(Indirect Addressing)
- 10:索引寻址(Indexed Addressing)
- 11:相对寻址(Relative Addressing)
4. 总结设计:
- 操作码:6 位
- 寻址模式:2 位
- 地址:8 位
因此,指令的总长度为: $ 6 , + 2 , + 8 , = 16 , $
这满足了 16 位指令格式的要求。
5. 举例:
假设我们有以下几条指令及其寻址方式:
- 直接寻址:
- 操作码:6 位
- 寻址模式:00(直接寻址)
- 地址:8 位
- 间接寻址:
- 操作码:6 位
- 寻址模式:01(间接寻址)
- 地址:8 位
- 索引寻址:
- 操作码:6 位
- 寻址模式:10(索引寻址)
- 地址:8 位
- 相对寻址:
- 操作码:6 位
- 寻址模式:11(相对寻址)
- 地址:8 位
6. 总结:
该计算机的指令格式设计如下:
- 操作码:6 位
- 寻址模式:2 位
- 地址:8 位 总共为 16 位,符合 16 位指令字的要求。
问题
已知浮点数按如图 1 所示的 12 位格式来表示。比例因子有隐含的基数 2 以及 5 位、偏移量为 15 的指数,其中指数的两个端点值 0 和 31 分别用于表示精确的 0 和无穷大。6 位尾数按照 IEEE 格式进行归一化,在二进制小数点左边有一个隐含的 1。对操作数 \(A = 0 10001 011011\),\(B = 1 01111 101010\)执行加法运算(答案中使用舍入作为截断方法,并写出计算过程)。
答案
(1)最大正数和最小正数
- 最大正数: 对于指数部分,5 位、偏移量为 15 的表示方式下,能表示的最大非无穷大指数值对应的编码是 30(因为 31 表示无穷大),其实际指数值为 \(30 - 15 = 15\)。 尾数部分,6 位且归一化(有隐含的 1),最大的尾数表示为 \(1.111111\)(二进制),转换为十进制是 \(1 + \frac{1}{2} + \frac{1}{4} + \frac{1}{8} + \frac{1}{16} + \frac{1}{32} = 1.96875\)。 所以最大正数为 \(1.96875×2^{15}\)(十进制)。
- 最小正数: 指数部分最小的非零指数对应的编码是 1(0 用来表示精确 0 ),其实际指数值为 \(1 - 15 = -14\)。 尾数最小为 \(1.000000\)(二进制),也就是十进制的 1。 所以最小正数为 \(1×2^{-14}\)(十进制)。
(2)进行加法
后面再写了。