第一章习题解答
1.1 什么是程序存储式计算机?
程序存储式计算机指采用存储程序原理工作的计算机。
存储程序原理又称“冯·诺依曼原理”,其核心思想包括:
程序由指令组成,并和数据一起存放在存储器中;
计算机启动后,能自动地按照程序指令的逻辑顺序逐条把指令从存储器中读出来,自
动完成由程序所描述的处理工作。
1.2 通用计算机几个主要部件是什么?
主机(CPU、主板、内存);
外设(硬盘/光驱、显示器/显卡、键盘/鼠标、声卡/音箱);
1.3 以集成电路级别而言,计算机系统的三个主要组成部分是什么?
中央处理器、存储器芯片、总线接口芯片
1.4 阐述摩尔定律。
每 18 个月,芯片晶体管密度提高一倍,运算性能提高一倍,而价格下降一半。
1.5 讨论:摩尔定律有什么限制,可以使用哪些方式克服这些限制?摩尔定律还会持
续多久?在摩尔定律之后电路将如何演化?
摩尔定律不能逾越的四个鸿沟:基本大小的限制、散热、电流泄露、热噪。具体问题
如:晶体管体积继续缩小的物理极限,高主频导致的高温……
解决办法:采用纳米材料、变相材料等取代硅、光学互联、3D、加速器技术、多内核……
(为了降低功耗与制造成本,深度集成仍是目前半导体行业努力的方向,但这不
可能永无止,因为工艺再先进也不可能将半导体做的比原子更小。用作绝缘材料的二
氧化硅,已逼近极限,如继续缩小将导致漏电、散热等物理瓶颈,数量集成趋势终有
终结的一天。一旦芯片上线条宽度达到纳米数量级时,相当于只有几个分子的大小,
这种情况下材料的物理、化学性能将发生质的变化,致使采用现行工艺的半导体器件
不能正常工作,摩尔定律也就要走到它的尽头了。业界专家预计,芯片性能的增长速
度将在今后几年趋缓,一般认为摩尔定律能再适用 10 年左右,其制约的因素一是技术,
二是经济。)
1.6 试以实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系与相互
影响。
计算机系统结构主要是指程序员关心的计算机概念结构与功能特性,而计算机组
成原理则偏重从硬件角度关注物理机器的组织,更底层的器件技术和微组装技术则称
为计算机实现。例如:确定指令集中是否有乘法指令属于计算机体系结构的内容,而
乘法指令是由专门的乘法器实现还是用加法器实现则属于计算机组成原理的内容,乘
法/加法器底层的物理器件类型及微组装技术则属于计算机实现的内容。
同一计算机制造商提供的不同系列的计算机通常采用不同的结构,而同系列的计
算机则具有相同的结构和不同的组织,因此同一系列的不同型号计算机价格和性能特
点也不相同。如某系列机都支持相同的指令系统,但其中的低档机可采用顺序方式对
指令进行分析、处理,而高档机则可采用流水或其它并行处理方式;或某系列机都支
持相同的数据形式(如 16/32 位的定点数、32/64/128 位的浮点数),但其中的低档机
可采用采用较窄的数据通路宽度(8 位或 16 位),而高档机则可采用较宽的数据通路
宽度(32 位)。另一方面,显然计算机现阶段能达到的实现技术会直接制约其可采用
的系统结构和组成方法。
1.7 区分微处理器的关键特征是什么?
微处理器可通过以下两个基本特征来区分:
字长:表示 CPU 一次传送或处理数据的最大二进制位数。通常与 CPU 的数据总线宽度、
寄存器宽度以及 ALU 宽度一致。
主频:通常以 MHz 表示,决定 CPU 内的最小时钟速率,从而决定处理器每秒可执行
的指令数目。
1.8 某测试程序在一个 40 MHz 处理器上运行,其目标代码有 100 000 条
指令,由如下各类指令及其时钟周期计数混合组成,试确定这个程序的有效
CPI、MIPS 的值和执行时间。
指 令 类 型
指 令 计 数
时钟周期计数
整数算术
数据传送
浮点数
控制传送
45 000
32 000
15 000
8000
1
2
2
2
1. Cycles Per Instruction(CPI)
=(45000/100000)*1+(32000/100000)*2+(15000/100000)*2+(8000/100000)*2
=0.45*1+0.32*2+0.15*2+0.08*2=1.55
2. Million Instructions Per Second(MIPS)
=40/1.55=25.8
3. 执行时间 T
=(100000*1.55)*(1/(40*106) )=15.5/4*10-3= 3.875*10-3 s= 3.875ms
1.9 存储器分层结构是如何提高性能的?
常用的存储设备或技术有很多,通常来说速度越快则每位价格越高。因此现代计
算机系统通常把不同容量、不同速度的存储设备按一定的层次结构组织起来,形成一
个统一的存储系统,以解决存储容量、存取速度和价格之间的矛盾。
多层次存储系统要达到的目标是:整个存储系统速度接近 M1(最靠近 CPU 的存
储层)而价格和容量接近 Mn(最远离 CPU 的存储层)。这就要求越靠近 CPU 的存储
设备速度越快,当然每位价格也就越高,容量也就越小。由于绝大多数程序访问具有
局部性原理,因此可以把近期 CPU 需要使用的程序和数据放在尽可能靠近 CPU 的存储
器中。CPU 访问存储器时,首先是访问 M1,若 M1“命中”则直接存取,若 M1“失
效”则将 M2 中包含所需数据的块或页调入 M1;若在 M2 中也找不到,就访问 M3,
依此类推。这样 CPU 对存储器的大部分访问操作都可以针对速度较快的存储层完成,
整个系统的性能也就得到了提高。
1.10 说明 RISC 架构与 CISC 架构之间的区别 。
RISC
CISC
设计重点
降低指令执行的硬件复杂度,但对编译器有
更高的要求
侧重指令执行的硬件功能性,控制
器的硬件设计复杂
指令集
流水线
指令种类少,长度固定,且执行简单,可在
单时钟周期完成
指令复杂,长度通常不固定,执行
也需要多个周期
指令处理过程可被拆分成能够被流水线并行
执行的规则步骤
指令执行通常需要调用微程序
寄存器
有更多的通用寄存器
专用寄存器较多。
load-store 结构
为避免耗时的访存操作,把访存与数据处理
分开。
处理器能够直接处理内存中的数
据。
RISC,CISC 的一些看法误区:
RISC 指令都是简单指令
LDREQ R0,[R1,R2,LSR #16]!指令的强大,一般的 CISC 处理器望尘莫及。RISC 的
“简单”是指指令集的执行时间、指令长度、指令格式整齐划一。
CISC 的复杂指令速度慢、执行效率很低
现代 CISC 处理器具有非常长的流水线(PIII 采用了 25 级的流水线),执行速度
快。但老的 CPU 执行速度可能较慢。但 RISC 不管是老的 CPU,还是新的 CPU,指令
执行时间都是相同的,不需要在对指令执行作出优化。
RISC 处理器比 CISC 处理器需要更多的寄存器
这不是一个需求问题,而是一个实现问题。所以有的 CISC 寄存器与 RISC 相当。
一般情况 RISC 需要比较多的寄存器。
RISC 都有流水线,ARM2 没有采用流水线。
第三章习题
3.1 什么是冯·诺伊曼计算机结构?其运行的基本原理如何?
冯.诺依曼计算机由运算器、控制器、存储器、输入设备和输出设备构成,采用二进制表示
信息,以存储器为中心,按存储程序原理工作。
存储程序原理指编好的程序首先放入存储器,开始工作后,由控制器自动、高速依次从存储
器中取出指令并执行。
3.2. 微处理器的体系结构可以分为几种?试分别说明各种体系结构的优缺点。
类型
优点
缺点
随机逻辑 针对指令硬件做了专门的优化,所用的逻
辑门数少,制造费用低。
微码体系
结构
相比于硬件,微代码不容易出错,建立微
代码比较省时,改动微代码更为容易,CPU
版本升级简单。
流水线体
系结构
超标量体
系结构
并行的执行不同指令的不同阶段,提高了
指令的吞吐率,增强了处理器性能。
实现了真正的并行执行,让 MIPS 可以大
于时钟频率。
指令集设计与硬件电路设计紧密相
关,设计过程复杂,难以实现复杂
指令,设计难以重用。
微代码的开销大于硬件实现,微控
制必须要比 CPU 运行速度更高。
处理器设计较为困难,在设计中需
要解决数多种冲突问题
更多的硬件资源,设计极其复杂
3.3 高级编程语言、汇编语言以及机器语言之间有哪些不同?
机器语言是直接用二进制代码表达的计算机语言。指令用“0”和“1”组成,并分成
若干段,各段的编码表示不同的含义。机器语言面向硬件,是唯一可以由硬件直接执行的语
言。
汇编语言采用符号代替机器语言中的二进制码:用助记符(Mnemonic)代替操作码,用
地址符号(Symbol)或标号(Label)代替地址码。汇编语言与机器语言一一对应,因此不具有移
植性,但更易于读写和理解。汇编语言源程序需要汇编成机器语言才能交给硬件执行。
高级编程语言语法和结构更类似普通英文,且由于远离对硬件的直接操作,因此移植
性较好。高级语言源程序需要编译(或解释)成机器语言才能交给硬件执行。
3.5 什么是计算功能指令、数据传输指令以及控制流程指令?
计算功能指令:对数据进行处理完成算术运算或逻辑运算等的指令。
数据传输指令:负责把数据、地址或立即数传送到寄存器、I/O 端口或存储单元中,或
者反方向传送的指令。
控制流程指令:用来控制程序执行流程的指令,有测试、转移、跳转等子类。
3.6 解释跳转、分支、调用以及中断所需进行的操作。
跳转:根据“跳转”指令指计算目的地址,修改程序指针。
分支:根据“分支”指令判断执行条件,计算跳转地址,修改程序指针。
调用:保存断点,根据“调用”指令计算子程序入口地址,修改程序指针,执行完毕
后恢复断点。
中断:保护断点及现场,查找中断向量表以确定中断程序入口地址,修改程序指针,
执行完毕后恢复现场及断点。
3.7 固定长度指令编码有什么优缺点?
可以简化硬件设计、减小指令译码的时间,但指令编码的效率不高,信息冗余度大,
可扩展性差。
3.8 在处理器工作频率、CPI 和处理器性能方面,哪些因素会增加流水线深度?
时钟周期越小,则要求组合电路的延迟越小,流水线级数越多,但过多的流水线无助
于处理器工作频率的提高。
CPI 越大,为了提高运算效率则流水级数需求越多。
处理器性能和流水线级数是一个动态平衡的关系,需要具体在设计流水线的同时考虑
冲突。
3.9 一个时钟频率为 2.5 GHz 的非流水式处理器,其平均 CPI 是 4。此处理器的升级版
本引入了 5 级流水。然而,由于如锁存延迟这样的流水线内部延迟,使新版处理器的
时钟频率必须降低到 2 GHz。
(1) 对一典型程序,新版所实现的加速比是多少?
(2) 新、旧两版处理器的 MIPS 各是多少?
(1)对于一个有 N 条指令的程序来说:
非流水式处理器的总执行时间
T
0
4(
N
5.2/()
9
6.1)10
N
10
9
s
5 级流水处理器的总执行时间
T
1
(
N
2/()15
9
)10
(2
N
)4
10
9
s
加速比=
T
0
T
1
2.3
N
4
N
,N 很大时加速比≈3.2
(2)非流水式处理器 CPI=4,则其执行速度=2500MHz/4=625MIPS。
5 级流水处理器 CPI=1,则其执行速度=2000 MHz /1=2000 MIPS。
3.10 随机逻辑体系结构的处理器的特点是什么?详细说明各部件的作用。
随机逻辑的特点是指令集设计与硬件的逻辑设计紧密相关,通过针对特定指令集进行
硬件的优化设计来得到逻辑门最小化的处理器,以此减小电路规模并降低制造费用。
主要部件包括:产生程序地址的程序计数器,存储指令的指令寄存器,解释指令的控
制逻辑,存放数据的通用寄存器堆,以及执行指令的 ALU 等几个主要部分构成。
3.11 分别详细说明采用可变时钟周期与多时钟周期改进随机逻辑体系结构的原理。
CPU 内部时序信号的定时方式可以分成同步控制、异步控制、联合控制三种方式。
其中同步控制指在任何情况下,所有指令在执行时所需的机器周期数和时钟周期数都
固定不变。同步控制的一种实现方式就是可变时钟周期,指 CPU 根据当前指令的操作特性
调整时钟周期,将大多数指令操作安排在一个较短的机器周期内完成,对某些复杂操作,则
采取延长机器周期的办法来解决。
而异步控制的一种实现方式就是多时钟周期,指时钟周期不变,但 CPU 每条指令的执
行周期可由多少不等的机器周期数组成。
3.12 什么是微代码体系结构?微指令的作用是什么?
在微码结构中,控制单元的输入和输出之间被视为一个内存系统。控制信号存放在一
个微程序内存中,指令执行过程中的每一个时钟周期,处理器从微程序内存中读取一个控制
字作为指令执行的控制信号并输出。
微指令只实现必要的基本操作,可以直接被硬件执行。通过编写由微指令构成的微代
码,可以实现复杂的指令功能。微指令使处理器硬件设计与指令集设计相分离,有助于指令
集的修改与升级,并有助于实现复杂的指令。
3.13 微码体系结构与随机逻辑体系结构有什么区别?
(1) 指令集的改变导致不同的硬件设计开销。
在设计随机逻辑结构时,指令集和硬件必须同步设计和优化,因此设计随机逻辑的结
构比设计微码结构复杂得多,而且硬件和指令集二者中任意一个变化,就会导致另外一个变
化。
在微码结构中,指令设计通过为微码 ROM 编写微码程序来实现的,指令集的设计并不
直接影响现有的硬件设计。因此,一旦修改了指令集,并不需要重新设计新的硬件。
(2) 从性能上比较
随机逻辑在指令集和硬件设计上都进行了优化,因此在二者采用相同指令集时随机逻
辑结构要更快一些。但微码结构可以实现更复杂指令集,因此可以用较少的指令完成复杂的
功能,尤其在存储器速度受限时,微码结构性能更优。
3.14 说明流水线体系结构中 4 个阶段的操作。能把流水线结构分为 5 阶段?如果可能,
试给出你的方案。
流水线若分为四个阶段应包括:取指,译码,执行,数据回写
流水线若分为五个阶段应包括:取指,译码,执行,存储器操作,数据回写
3.15 什么是超标量体系结构?
超标量是通过内置多条流水线或多个流水部件以实现多条指令的同时执行,其实质是
以空间换取时间。
而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一步甚至多步操
作,其实质是以时间换取空间。
3.16 指令乱序执行可以带来什么好处?
通过将指令执行顺序重新排序,让满足执行条件的指令尽早地执行,从而提高处理器
性能。
指令的乱序执行可以减少流水线冲突,减轻流水操作时由于数据等待、控制等待、资
源冲突等中断时,其他无关指令也必须等待的问题,从而提高了流水线的效率。
3.17 讨论:假设处理器速度和主存储器时延之间的差距不断增大,计算机性能是否
可能决定于存储器访问时间?在这种情况下,哪些微处理器架构特性会提高处理器性
能?哪些不会?如果计算机具有一个比现在快 100 倍的处理器,但是存储器速度仅仅
是现在存储器的两倍,这样计算机和当前计算机设计方法上有什么区别?
可能。
如果出现这种情况,采用微码结构、流水线结构以及超标量结构(一次取多条指令)
都可以提高处理器性能,尤其是微码结构。而随机逻辑结构则不合适。
如果出现一个比现在速度快 100 倍的处理器,而存储器速度仅快两倍,则设计计算机
体系结构时首先应该考虑如何尽量减少访问存储器的次数。
第四章习题
4.1 地址映像方法有哪几种?它们各有什么优缺点?
(1) 内存地址映射指内存虚拟地址空间到物理地址空间的转换。
分页技术:特点是页的大小固定;优点是程序不必连续存放,因此没有外碎片(每个
内碎片不超过页大小);缺点是增加了硬件成本(如需要地址变换机构)和系统开销(如需
要好的调页算法)。
分段技术:特点是段的大小可变;优点是每个段按内容独立,因此可以分别编写和编
译,可以针对不同类型的段采取不同的保护,可以按段为单位来进行共享(包括通过动态链
接进行代码共享);缺点是会导致碎片。
(2) I/O 地址映射指系统中 I/O 端口的编址方式。
独立编址技术:优点是系统中存储单元和 I/O 端口的数量可达到最大;缺点是需专门信
号来指示系统地址线上出现的是存储单元地址还是端口地址,I/O 指令的功能比较弱。
存储器映像编址技术:优点是对端口操作和存储器单元操作完全一样,因此系统简单,
并且对端口操作的指令比较多;缺点是 CPU 对存储单元和 I/O 单口的实际寻址空间都小于
其最大寻址空间。
4.2 EPROM 存储器芯片没有写入信息时,各个单元的内容是什么?某 SRAM 单元中
存放一个数据(如 5AH),CPU 将它读取后,该单元的内容是什么?
EPROM 存储器芯片在没有写入信息时,各个单元的内容均为全“1”。
SRAM 为非破坏性读出,因此该单元的内容在读取后保持不变。
4.4 下列 ROM 芯片各需多少地址输入端?多少数据输出端?
(1) 16×4 位
(2) 32×8 位 (3) 256×4 位
(4) 512×8 位
(1)16×4 位=24*4bit,因此有 4 个地址输入端和 4 个数据输出端。
(2)32×8 位=25*4bit,因此有 5 个地址输入端,8 个数据输出端。
(3)256×4=28*4bit,因此有 8 个地址输入端,4 个数据输出端。
(4)512×8=29*4bit,因此有 9 个地址输入端,8 个数据输出端。
4.7 某计算机系统 ROM 为 6K,最后一个单元的地址为 9BFFH,RAM 为 3K。已知其
地址为连续的,且 ROM 在前,RAM 在后,求该存储器的首地址和末地址。
该存储器的首地址(第一个 ROM 单元地址)为:9BFFH-6K+1=9C00H-1800H=8400H
该存储器末地址(最后一个 RAM 单元地址)为:9BFFH+3K==9BFFH+0C00H=0A7FFH
4.8 若某系统有 16 条地址线,现用 SRAM 2114(1K×4)存储芯片组成存储系统,试问采
用线选译码时,系统的存储容量最大为多少?需要多少个 2114 存储芯片?
每片 2114 需要 10 条地址线,剩余 6 条地址线进行线选译码最多可以区分 6 组 12 个芯
片。这时系统的存储容量最大为(1K*4bit)*2 片/组*6 组=6KB。
4.10 设有一个具有 24 位地址和 8 位字长的存储器,问:
(1) 该存储器能够存储多少字节的信息?
(2) 如果该存储器由 4 M×1 位的 RAM 芯片组成,需要多少片?
(3) 在此条件下,若数据总线为 8 位,需要多少位地址线用于芯片选择?
(1)该存储器的存储容量=224 =16M 字节
(2)需要 4M*1 的芯片数目:
16
4
M
M
8
1
32
片
(3)用于片内字选的地址线应满足:222 =4M,即字选需要 22 根地址线,片选需要 2
根地址线。
4.13 试为某 8 位计算机系统设计一个具有 8KB ROM 和 40KB RAM 的存储器。要求
ROM 用 EPROM 芯片 2732 组成,从 0000H 地址开始;RAM 用 SRAM 芯片 6264 组
成,从 4000H 地址开始。
查阅资料可知,2732 容量为 4K×8(字选线 12 根),6264 容量为 8K×8(字选线 13 根),
因此本系统中所需芯片数目及各芯片地址范围应如下表所示:
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1
共需 2 片
2732 构成系
统 ROM
红色为片选
共需 5 片
6264 构成系
统 RAM
红色为片选
第一片
地址范围
第二片
地址范围
第一片
地址范围
第二片
地址范围
第三片
地址范围
0000H~
0FFFH
1000H~
1FFFFH
4000H~
5FFFH
6000H~
7FFFFH
8000H~
9FFFFH
第四片
地址范围
0A000H~
0BFFFFH
第五片
地址范围
0C000H~
0DFFFFH
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
硬件连线方式之一如下图所示: