计算机组成原理期末复习题和答案 下载本文

1. 一个容量为16K×32位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片?(P150 7)

1K×4位,2K×8位,4K×4位,16K×1位,4K×8位,8K×8位 解:地址线和数据线的总和 = 14 + 32 = 46根; 选择不同的芯片时,各需要的片数为:

1K×4:(16K×32) / (1K×4) = 16×8 = 128片 2K×8:(16K×32) / (2K×8) = 8×4 = 32片 4K×4:(16K×32) / (4K×4) = 4×8 = 32片 16K×1:(16K×32)/ (16K×1) = 1×32 = 32片 4K×8:(16K×32)/ (4K×8) = 4×4 = 16片 8K×8:(16K×32) / (8K×8) = 2×4 = 8片

2. 什么叫刷新?为什么要刷新?说明刷新有几种方法。(P150 9) 解:刷新:对DRAM定期进行的全部重写过程;

刷新原因:因电容泄漏而引起的DRAM所存信息的衰减需要及时补充,因此安排了定期刷新操作;

常用的刷新方法有三种:集中式、分散式、异步式。

集中式:在最大刷新间隔时间内,集中安排一段时间进行刷新,存在CPU访存死时间。

分散式:在每个读/写周期之后插入一个刷新周期,无CPU访存死时间。 异步式:是集中式和分散式的折衷。

3. 一个8K×8位的动态RAM芯片,其内部结构排列成256×256形式,存取周期为0.1μs。试问采用集中刷新、分散刷新和异步刷新三种方式的刷新间隔各为多少?(P150 11)

解:采用分散刷新方式刷新间隔为:2ms,其中刷新死时间为:256×0.1μs=25.6μs

采用分散刷新方式刷新间隔为:256×(0.1μs+×0.1μs)=51.2μs 采用异步刷新方式刷新间隔为:2ms

4. 设CPU共有16根地址线,8根数据线,并用(低电平有效)作访存控制信号,作读写命令信号(高电平为读,低电平为写)。现有下列存储芯片:ROM(2K×8位,4K×4位,8K×8位),RAM(1K×4位,2K×8位,4K×8位),及74138译码器和其他门电路(门电路自定)。试从上述规格中选用合适芯片,画出CPU和存储芯片的连接图。要求:(P151 15)

(1)最小4K地址为系统程序区,4096~16383地址范围为用户程序区。 (2)指出选用的存储芯片类型及数量。 (3)详细画出片选逻辑。 解:(1)地址空间分配图:

系统程序区(ROM共4KB):0000H-0FFFH 用户程序区(RAM共12KB):1000H-3FFFH

(2)选片:ROM:选择4K×4位芯片2片,位并联

RAM:选择4K×8位芯片3片,字串联(RAM1地址范围为:1000H-1FFFH,RAM2地址范围为2000H-2FFFH, RAM3地址范围为:3000H-3FFFH)

(3)各芯片二进制地址分配如下: A1A1A1A1A1A1AAAAAA5 4 3 2 1 0 9 8 7 6 5 4 ROM1,0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 RAM1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 RAM2 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 RAM3 0 0 1 1 1 1 1 1 1 1 1 1 CPU和存储器连接逻辑图及片选逻辑如下图(3)所示: MREQG1G2AA15A14A13A12A11A0G2BABCY7A3 0 1 0 1 0 1 0 1 A2 0 1 0 1 0 1 0 1 A1 0 1 0 1 0 1 0 1 A0 0 1 0 1 0 1 0 1 74138Y3Y2Y1Y0......PD/PROG...ROM2......RAM1...CS...RAM2...CS...RAM3...CPUROM1...OEOER/WR/WR/WCSD0D3D4......D7R/W

5. 欲传送的二进制代码为1001101,用奇校验来确定其对应的汉明码,若在第6位出错,说明纠错过程。(P151 20)

解:欲传送的二进制代码为1001101,有效信息位数为n=7位,则汉明校验的校验位为k位,则:2k>=n+k+1,k=4,进行奇校验设校验位为C1C2C3C4,汉明码为C1C2B7C3B6B5B4C4B3B2B1,

C1=1⊕B7⊕B6⊕B4⊕B3⊕B1=1⊕1⊕0⊕1⊕1⊕1=1 C2=1⊕B7⊕B5⊕B4⊕B2⊕B1=1⊕1⊕0⊕1⊕0⊕1=0 C3=1⊕B6⊕B5⊕B4=1⊕0⊕0⊕1=0 C4=1⊕B3⊕B2⊕B1=1⊕1⊕0⊕1=1

故传送的汉明码为10100011101,若第6位(B5)出错,即接收的码字为10100111101,则

P1=1⊕C1’⊕B7’⊕B6’⊕B4’⊕B3’⊕B1’=1⊕1⊕1⊕0⊕1⊕1⊕1=0 P2=1⊕C2’⊕B7’⊕B5’⊕B4’⊕B2’⊕B1’=1⊕0⊕1⊕1⊕1⊕0⊕1=1 P3=1⊕C3’⊕B6’⊕B5’⊕B4’=1⊕0⊕0⊕1⊕1=1 P4=1⊕C4’⊕B3’⊕B2’⊕B1’=1⊕1⊕1⊕0⊕1=0

P4P3P2P1=0110说明第6位出错,对第6位取反即完成纠错。

6. 假设CPU执行某段程序时共访问Cache命中4800次,访问主存200次,已知

Cache的存取周期为30ns,主存的存取周期为150ns,求Cache的命中率以及Cache-主存系统的平均访问时间和效率,试问该系统的性能提高了多少倍?(P152 29)

解:Cache被访问命中率为:4800/(4800+200)=24/25=96%

则Cache-主存系统的平均访问时间为:ta=0.96*30ns+(1-0.96)*150ns=34.8ns Cache-主存系统的访问效率为:e=tc/ta*100%=30/34.8*100%=86.2% 性能为原来的150ns/34.8ns=4.31倍,即提高了3.31倍。

7. 一个组相连映射的CACHE由64块组成,每组内包含4块。主存包含4096块,每块由128字组成,访存地址为字地址。试问主存和高速存储器的地址各为几位?画出主存地址格式。(P152 30)

解:cache组数:64/4=16 ,Cache容量为:64*128=213字,cache地址13位 主存共分4096/16=256区,每区16块

主存容量为:4096*128=219字,主存地址19位,地址格式如下: 主存字块标记(8位) 组地址(4位) 字块内地址(7位)

8. 设机器数字长为8位(含1位符号位在内),写出对应下列各真值的原码、补码和反码。 -13/64,29/128,100,-87 (P290 4) 解:真值与不同机器码对应关系如下: 真值 -13/64 29/128 100 -87 二进制 -0.001101 0.0011101 1100100 -1010111 原码 1.001 1010 0.001 1101 0110 0100 1101 0111 补码 1.1100110 0.001 1101 0110 0100 10101001 反码 1.1100101 0.001 1101 0110 0100 10101000

9.设机器数字长为16位,写出下列各种情况下它能表示的数的范围。设机器数采用一位符号位,答案均用十进制表示。(P290 16) (1)无符号数;

(2)原码表示的定点小数。 (3)补码表示的定点小数。 (4)补码表示的定点整数。 (5)原码表示的定点整数。

(6)浮点数的格式为:阶码6位(含1位阶符),尾数10位(含1位数符)。分别写出其正数和负数的表示范围。

(7)浮点数格式同(6),机器数采用补码规格化形式,分别写出其对应的正数和负数的真值范围。

解:(1)无符号整数:0 ~ 216 - 1,即:0~ 65535;

无符号小数:0~1-216,即:0~0.99998;

(2)原码定点小数:-1+215~1-215,即:-0.99997~0.99997 (3)补码定点小数:-1~1-215,即:-1~0.99997 (4)补码定点整数:-215~215-1,即:-32768~32767 (5)原码定点整数:-215+1~215-1,即:-32767~32767