计算机体系结构期末复习(一二章)
由于内容比较多,分为两次发出
注意:可能有部分考点遗漏,可能有部分例题没有匹配正确的知识点或被遗漏,欢迎各位补充
第一章
1. 计算机系统的层次性
知识点:
例题:
- (单选题)在计算机系统层次结构中,从低层到高层,各层相对顺序正确的是( )
A. 传统机器语言机器级 → 高级语言机器级 → 应用语言机器级 → 汇编语言机器级
B. 传统机器语言机器级 → 微程序语言机器级 → 汇编语言机器级 → 应用语言机器级
C. 微程序语言机器级 → 传统机器语言机器级 → 汇编语言机器级 → 高级语言机器级
D. 汇编语言机器级 → 高级语言机器级 → 应用语言机器级 → 传统机器语言机器级
正确答案: C:微程序语言机器级 → 传统机器语言机器级 → 汇编语言机器级 → 高级语言机器级; - (单选题)传统机器程序员所看到的计算机属性,即概念性结构与功能特性,是()
A. 计算机机器语言
B. 计算机系统结构
C. 计算机组成原理
D. 计算机的实现
正确答案: B:计算机系统结构; - (单选题)直接执行微指令的是( )
A. 编译程序
B. 汇编程序
C. 硬件
D. 操作系统
正确答案: C:硬件;
2. 透明性
知识点:
例题:
- (单选题)从计算机系统结构上讲,机器语言程序员能看到的机器属性是( )
A. 计算机硬件的全部组成
B. 计算机软件所完成的功能
C. 计算机各部件的硬件实现
D. 编程要用到的硬件组织
正确答案: D:编程要用到的硬件组织; - (单选题)下列对系统程序员不透明的是( )
A. Cache 存储器
B. 虚拟存储器
C. 数据通路宽度
D. 指令缓冲寄存器
正确答案: B:虚拟存储器; - (单选题)对机器语言程序员透明的是( )
A. 条件码寄存器
B. 通用寄存器
C. 乘法器
D. 中断字寄存器
正确答案: C:乘法器; - (单选题)对机器语言程序员透明的是( )
A. 通用寄存器
B. 主存寄存器
C. 条件码寄存器
D. 中断字寄存器
正确答案: B:主存寄存器; - (多选题)对于计算机体系结构,下列哪些项是透明的?
A. 数据总线宽度
B. 程序中断
C. 阵列控制部件
D. 堆栈指令
E. 访问方式保护
F. Cache 存储器
正确答案: ACF:数据总线宽度; 阵列控制部件; Cache 存储器; - (多选题)对汇编语言程序员透明的是( )
A. 移位器
B. 时序发生器
C. 乘法器
D. 磁盘外设
E. 指令缓冲器
正确答案: ABCDE:移位器; 时序发生器; 乘法器; 磁盘外设; 指令缓冲器; - (单选题)对汇编语言程序员透明的是( )
A. 程序性中断
B. 浮点数据表示
C. 访问方式保护
D. I/O 方式中的 DMA 访问方式
正确答案: B:浮点数据表示;
3. 冯·诺依曼计算机的体系结构
知识点
例题
(单选题)以下关于冯诺依曼体系结构计算机的描述中,正确的是( )
A. 采用八进制作为数字计算机的数制基础
B. 控制器是计算机的核心,完成各种算数运算和逻辑运算
C. 具有冯诺依曼体系结构的计算机由控制器、运算器、存储器、输入设备、输出设备构成
D. 程序可以像数据那样存放在运算器中,由计算机自动控制运行
正确答案: C:具有冯诺依曼体系结构的计算机由控制器、运算器、存储器、输入设备、输出设备构成;
4. 并行性
知识点:
例题
暂无
4. 提高计算机并行性的技术途径
知识点:
提高并行的技术途径一般有:时间重叠、资源重复和资源共享。
时间重叠:典型应用:流水线技术
资源重复:典型应用:双机系统
资源共享:典型应用:网络打印机、云服务器等
例题
- (单选题)下列选项中,不是并行性开发途径的是( )
A. 时间重叠
B. 资源共享
C. 器件改进
D. 资源重复
正确答案: C:器件改进;
6. 体系结构设计的定量原理
知识点:
1. 大概率事件优先原则
追求全局的最优结果
2. 程序的局部性原理(二八原理)
程序执行时所访问存储器在时-空上是相对地簇聚
这种簇聚包括指令和数据两部分
例题
暂无
7. Amdahl 定理
知识点
例题
-
(判断题)Amdahl 定律中“系统加速比”指计算机体系结构改进后的性能的提高。
A. 对
B. 错
正确答案: 对 -
(单选题)假设高速缓存 Cache 工作速度为主存的 5 倍,且 Cache 被访问命中的概率为 90%,则采用 Cache 后,能使整个系统获得加速比为( )。
A. 5
B. 3.57
C. 5.17
D. 4.21
正确答案: B:3.57;
答案解析:Cache 存储器访问时间为 t,主存储器为 5t。Sn = T0/Tn = 5t / (0.9*t+0.1*5t) = 3.57 -
某计算机有 3 个部件可以改进,且各改进后的性能提高倍数分别为: S e 1 = 30 S_{e1}=30 Se1=30, S e 2 = 20 S_{e2}=20 Se2=20, S e 3 = 10 S_{e3}=10 Se3=10,试问:
(1)如果部件 1 和部件 2 在计算机中的重要度均为 30%,那么部件 3 在计算机中的重要度为多少时,系统加速比才可以达到 10?
(2)如果 3 个部件在计算机中的重要度分别为 30%、30%、20%,同时对 3 个部件进行改进,那么计算机性能提高倍数为多少?
(1)在多个部件可改进情况下,Amdahl 定理的扩展:
已知 S1=30,S2=20,S3=10,Sn=10,F1=0.3,F2=0.3,得:
Sn = 1 / ( (1-F1-F2-F3) + F1/S1 + F2/S2 + F3/S3)
得 F3=0.36,即部件 3 的可改进比例为 36%。
(2)设系统改进前的执行时间为 T,则 3 个部件改进前的执行时间为:(0.3+0.3+0.2)T = 0.8T,不可改进部分的执行时间为 0.2T。
已知 3 个部件改进后的加速比分别为 S1=30,S2=20,S3=10,因此 3 个部件改进后的执行时间为:0.3T/S1 + 0.3T/S2 + 0.2T/S3 = 0.045T
改进后整个系统的执行时间为:Tn = 0.045T+0.2T = 0.245T
那么系统中不可改进部分的执行时间在总执行时间中占的比例是:
Sn = T / 0.245T = 4.08
第二章
1. 浮点数
知识点
例题
-
(单选题)
浮点数在机器中的表示形式如下所示,若阶码位数为 Q,尾数位数为 P,
则以下关于浮点数表示的叙述中,正确的是( )。
① Q 的值影响浮点数的精度,Q 越大,所表示的浮点数精度越高
② Q 的值影响浮点数的范围,Q 越大,所表示的浮点数值范围越大
③ P 的值影响浮点数的范围,P 越大,所表示的浮点数范围越大
④ P 的值影响浮点数的精度,P 越大,所表示的浮点数精度越高
A. ①③
B. ②③
C. ①④
D. ②④
正确答案: D:②④; -
(单选题)在计算机中,一位 R 进制数需要( )位二进制数来表示?
A.
B. R
C.
D.
正确答案: D:; -
(单选题)
A. 4
B. 1
C. 6
D. 2
正确答案: C:6; -
(单选题)
在浮点数表示中,决定浮点数数据个数的参数是( )① 阶码位数 Q
② 阶码数值 E
③ 尾数数值 M
④ 尾数位数 P
A. ①③
B. ②④
C. ②③
D. ①④
正确答案: D:①④; -
(单选题)浮点数阶码位数采用二进制 Q 位,尾数位数为 P,则该浮点数的最大阶值为( )
A.
B.
C.
D.
正确答案: B :; -
(单选题)计算机的浮点数采用阶码基值 S=2,阶码位数为 2,尾数基值为 16,尾数位数 P=4。计算机在非负阶、规格化情况下的浮点数个数是多少( )
A. 32
B. 60
C. 245760
D. 24
正确答案: B:60; -
(单选题)
A. 31
B. 33
C. 32
D. 40
正确答案: D:40; -
(多选题)浮点数数据表示包含哪些参数( )
A. 尾数数值 M
B. 阶码数值 E
C. 尾数位数 P
D. 尾数基值 R
E. 阶码基值 S
F. 阶码位数 Q
正确答案: ABCDEF:尾数数值 M; 阶码数值 E; 尾数位数 P; 尾数基值 R; 阶码基值 S; 阶码位数 Q; -
(多选题)在浮点数表示中,随着尾数基值 R 的不断增大,下列选项正确有( )
A. 运算精度损失增大
B. 运算速度提高
C. 表示数据范围缩小
D. 表示数据个数增多
正确答案: BD:运算速度提高; 表示数据个数增多; -
(多选题)浮点数的表示格式由哪几部分组成( )
A. 尾数位数
B. 数据符号位
C. 阶码符号位
D. 阶码基值
E. 阶码位数
正确答案: ABCE:尾数位数; 数据符号位; 阶码符号位; 阶码位数;
2. 指令系统
知识点
待补充
例题
-
(单选题)从以下有关 RISC 的描述中,选择正确的描述( )。
A. 通用寄存器的数量少
B. 指令字长不固定
C. 支持的寻址方式更多
D. 大部分指令在一个机器周期内完成
正确答案: D:大部分指令在一个机器周期内完成;答案解析:RISC 指令系统相对于 CISC 指令系统并没有产生出更多的寻址方式。RISC 指令是使用较多的指令条数去实现复杂的指令功能,绝大部分的指令是在一个机器周期完成的,而且通用寄存器数量较多,可以提高指令的执行速度,使指令简单、有效。RISC 中的字长固定,可以降低指令的烦琐程度。
-
(单选题)以下关于 RISC 和 CISC 计算机的叙述中,正确的是( )。
A. RISC 不采用流水线技术,CISC 采用流水线技术
B. RISC 使用复杂的指令,CISC 使用简单的指令
C. RISC 采用较多的通用寄存器,CISC 采用很少的通用寄存器
D. RISC 采用组合逻辑控制器,CISC 普通采用微程序控制器
正确答案: C:RISC 采用较多的通用寄存器,CISC 采用很少的通用寄存器; -
(单选题)以下关于 CISC 和 RISC 的描述中,不正确的是( )。
A. RISC 强调对指令流水线的优化
B. CISC 的指令集复杂庞大,而 RISC 的指令集简单精简
C. CISC 体系结构下各种指令的执行时间相差不大
D. RISC 采用 Load/Store 结构
正确答案: C:CISC 体系结构下各种指令的执行时间相差不大;答案解析:RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器,起源于 80 年代的 MIPS 主机(即 RISC 机),RISC 机中采用的微处理器统称 RISC 处理器,它能够以更快的速度执行操作(每秒执行更多百万条指令,即 MIPS)。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。精简指令集包含了简单、基本的指令,通过这些简单、基本的指令,就可以组合成复杂指令。每条指令的长度都是相同的,可以在一个单独操作里完成。大多数的指令都可以在一个机器周期里完成,并且允许处理器在同一时间内执行一系列的指令。强调对指令流水线的优化,同时采用 Load/Store 结构进行外部数据的访问。CISC 是复杂指令系统计算机(Complex Instruction Set Computer)的简称,微处理器是台式计算机系统的基本处理部件,每个微处理器的核心是运行指令的电路。指令由完成任务的多个步骤所组成,把数值传送进寄存器或进行相加运算。CISC 的指令集复杂庞大,而 RISC 则较为精简,在 CISC 体系结构下各种指令的执行时间相差较大。
-
(多选题)按信息处理的功能配置来看,指令系统可以分为哪些类型( )。
A. 复杂指令系统
B. 混合指令系统
C. 精简指令系统
D. 以上都不是
正确答案: ABC:复杂指令系统 ; 混合指令系统; 精简指令系统; -
(多选题)RISC 实现的关键技术有哪些( )。
A. 寄存器窗口重叠技术
B. 延迟转移与指令取消技术
C. 优化编译技术
D. 以上都不是
正确答案: ABC:寄存器窗口重叠技术; 延迟转移与指令取消技术; 优化编译技术; -
(多选题)复杂指令系统功能配置途径有哪些( )。
A. 面向目标程序优化
B. 支持操作系统实现
C. 支持高级语言与编译软件
D. 以上都不是
正确答案: ABC:面向目标程序优化; 支持操作系统实现; 支持高级语言与编译软件;
3. 指令字优化目标
知识点
指令字格式优化设计的主要自标有两个:
一是使指令字的平均长度尽量短,即利用较少的二进制位数来指示指令的功能操作与操作数存放位置以便节省程序目标代码的存储空间;二是使指令格式尽量规整,以减轻硬件译码分析的复杂度,提高指令的处理速度。
例题
暂无
4. 指令字格式
知识点
例题
(单选题)某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令 29 条,二地址指令 107 条,每个地址字段 6 位,则指令字长至少应该是( )?
A. 23
B. 32
C. 28
D. 24
正确答案: D:24;
答案解析:三地址指令有 29 条,所以需要操作码 5 位,剩余 32-29=3 条,提供给二地址指令使用,而二地址比三地址指令多出 6 位,则可以表示 3×2^6=192 条 >107 条,所以至少需要 3×6+5=23 条,而指令字长应为 8 的倍数,所以指令字长至少应该是 24 条。
(单选题)一个计算机系统采用 32 位单字长指令,地址码为 12 位,若定义了 250 条二地址指令,还可以有几条单地址指令?
A. 6144
B. 24576
C. 384
D. 16384
正确答案: B:24576;
5. 操作码的编码
知识点
注意:R表示的是信息冗余量,计算R的1.96为第二张图中的H(信息源熵)
例题
-
(单选题)n(n≥2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,错误的是( )
A. 树中一定没有度为1的结点
B. 树中任一非叶结点的权值一定不小于下一层任一结点的权值
C. 树中两个权值最小的结点一定是兄弟结点
D. 该树一定是一棵完全二叉树
正确答案: D:该树一定是一棵完全二叉树; -
(单选题)已知字符集{ a, b, c, d, e, f, g, h }。若各字符的哈夫曼编码依次是 0100, 10, 0000, 0101, 001, 011, 11, 0001,则编码序列 0100011001001011110101 的译码结果是( )
A. acgabfh
B. afbeagd
C. afeefgd
D. adbagbb
正确答案: C:afeefgd; -
(单选题)设一台模拟计算机的指令系统有I1、I2、I3、I4共4条指令,其出现次数相应为{4,2,5,1},则该指令系统的哈夫曼编码比固定长度编码节省了多少位数?
A. 2
B. 5
C. 0
D. 4
正确答案: A:2; -
(多选题)通常操作码的编码方法有哪些( )?
A. 固定长度编码法
B. Huffman编码法
C. 等长扩展编码法
D. 不等长扩展编码法
正确答案: ABCD:固定长度编码法; Huffman编码法; 等长扩展编码法; 不等长扩展编码法; -
一台处理机有1~110共10条指令,经统计指令在程序中出现的概率如下:l1:0.25、l2:0.20、l3:0.15、l4:0.10、l5:0.08、l6:0.08、l7:0.05、l8:0.04、l9:0.03、l10:0.02。
(1)计算这10条指令操作码编码的最短平均长度(信息源熵)。
(2)写出这10条指令的Huffman编码,并计算操作码编码的平均长度和信息余量。
(3)采用3/7扩展编码法和2/8扩展编码法编制这10条指令的操作码编码,并分别计算它的平均长度和信息冗余量,说明哪一种扩展编码较好及其理由。(1) 根据 Huffman 压缩编码准则,指令系统所有指令操作码的最短平均长度 H(即信息源熵) 为:
H = − ∑ i = 1 N ( p i × l o g 2 p i ) H=-\displaystyle\sum_{i=1}^N(p_i×log_2p_i) H=−i=1∑N(pi×log2pi)
所以有:
H = − ( 0.25 × l o g 2 0.25 + 0.20 × l o g 2 0.20 + 0.15 × l o g 2 0.15 + 0.10 × l o g 2 0.10 + 0.08 × l o g 2 0.08 + 0.08 × l o g 2 0.08 + 0.05 × l o g 2 0.05 + 0.04 × l o g 2 0.04 + 0.03 × l o g 2 0.03 + 0.02 × l o g 2 0.02 ) = 2.96 H=-(0.25×log_2~0.25+0.20×log_2~0.20+0.15×log_2~0.15+0.10×log_2~0.10+0.08×log_2~0.08+0.08×log_2~0.08+0.05×log_2~0.05+0.04×log_2~0.04+0.03×log_2~0.03+0.02×log_2~0.02)=2.96 H=−(0.25×log2 0.25+0.20×log2 0.20+0.15×log2 0.15+0.10×log2 0.10+0.08×log2 0.08+0.08×log2 0.08+0.05×log2 0.05+0.04×log2 0.04+0.03×log2 0.03+0.02×log2 0.02)=2.96
(2) 根据给出的使用频度,在构造 Huffman 树的过程中,有两个结点可供合并,因此可生成不同的 Huffman 树,其中给出一棵如图所示,相应的 Huffman 编码如表所示。
因为 Huffman 编码的平均长度为:
L = ∑ i = 1 N ( p i × l i ) L=\displaystyle\sum_{i=1}^N(p_i×l_i) L=i=1∑N(pi×li)
所以有:L=0.25×2+0.20×2+0.15×3+0.10×3+0.08×4+0.08×4+0.05×5+0.04×5+0.03×5+0.02×5=2.99(位)
(3)3/7 扩展编码和 2/8 扩展编码如表所示。
3/7 扩展编码要求短码码点数为 3,长码码点数为 7。所以短码长取 2 位,有码点 2^2^=4 个,用一个作扩展标志;长码长取 3 位,有码点 2^3^=8 个,有一个未被利用,即有一个多余码点。编码的平均长度为:
L=(0.25+0.20+0.15)×2+(0.10+0.08+0.08+0.05+0.04+0.03+0.02)×5
=3.2(位)
2/8 扩展编码要求短码码点数为 2,长码码点数为 8。所以短码长取 2 位,有码点 2^2^=4 个,用二个作扩展标志;长码长取 2 位,有码点 2^2^×2=8 个,码点全部被利用,即没有多余码点。
L=(0.25+0.20)×2+(0.15+0.10+0.08+0.08+0.05+0.04+0.03+0.02)×4
=3.1(位)
可见,3/7 扩展编码优于 2/8 扩展编码。
-
某处理机指令字长为16位,有二地址指令、一地址指令和零地址指令三类,每个地址码字段均为6位。
(1)如果二地址指令有15条,一地址指令和零地址指令的条数基本相等。问一地址指令和零地址指令各有多少条?并为这三类指令分配操作码。
(2)如果要求这三类指令条数的比例大约为1:9:9,请问这三类指令各有多少条?(1) 由题意可知,当指令为双地址时,其操作码长度为 4 位(16-2×6),所以用于扩展一个地址码为操作码的编码数为 2 4 − 15 = 1 2^4-15=1 24−15=1。
要使一地址指令和零地址指令的条数基本相等,则一地址指令操作码也应留一个编码用于扩展一个地址码为操作码而使指令变为零地址。这时,一地址指令数为: 2 6 − 1 = 63 2^6-1=63 26−1=63,零地址指令数为: 2 6 = 64 2^6=64 26=64。
15 条双地址指令操作码编码可以为:0000~1110,1111 为扩展编码。
63 条一地址指令操作码编码可以为:1111 000000~1111 111110,一个扩展编码为:1111 111111。
64 条零地址指令操作码编码可以为:1111 111111 000000~1111 111111 111111。
(2) 由题意可知,设二地址指令数为 X,则一地址指令和零地址指令数为 9X。
当指令为双地址时,其操作码长度为 4 位(16-2×6),总的编码数为: 2 4 2^4 24,其中 X 个编码用于二地址指令的操作码编码,可以用于扩展一个地址码为操作码的扩展编码数为: 2 4 − X 2^4-X 24−X;扩展一个地址码为操作码后,总的编码数为: 2 6 ( 2 4 − X ) 2^6(2^4-X) 26(24−X)。
当指令为单地址时,其中 9X 个编码用于单地址指令的操作码编码,可以用于扩展一个地址码为操作码的扩展编码数为: 2 6 ( 2 4 − X ) − 9 X 2^6(2^4-X)-9X 26(24−X)−9X;扩展一个地址码为操作码后,总的编码数为: 2 6 [ 2 6 ( 2 4 − X ) − 9 X ] 2^6[2^6(2^4-X)-9X] 26[26(24−X)−9X]。
当指令为零地址时,全部编码用于零单地址指令的操作码编码,且为 9X,所以有:
2 6 [ 2 6 ( 2 4 − X ) − 9 X ] = 9 X 2^6[2^6(2^4-X)-9X]=9X 26[26(24−X)−9X]=9X
解之有:X=14.0004,取整即 X=14,所以二地址指令的条数为 14、一地址指令的条数为: 2 6 ( 2 4 − 14 ) − 2 − 126 2^6(2^4-14)-2-126 26(24−14)−2−126、零地址指令的条数为: 2 6 × 2 = 128 2^6×2=128 26×2=128。