目录
2.CPU 时钟周期、主频、CPI、CPU 执行时间、MIPS
第 1 章 计算机系统概述
【考纲内容】
1. 计算机系统层次结构
(1)计算机系统的基本组成
(2)计算机硬件的基本结构
(3)计算机软件和硬件的关系
(4)计算机系统的工作原理
“存储程序” 工作方式;高级语言程序与机器语言程序之间的转换;程序和指令的执行过程
2. 计算机性能指标
吞吐量、响应时间;CPU 时钟周期、主频、CPI、CPU 执行时间;MIPS、MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS、ZFLOPS。
【考情统计】
年份
单选题
综合题
总分值
考点
2009
1
0
2
冯・诺依曼计算机
2010
1
0
2
计算机的性能指标
2011
1
0
2
计算机的性能指标
2012
1
1
3
计算机的性能指标
2013
1
1
4
计算机的性能指标
2014
1
0
2
计算机的性能指标
2015
1
0
2
机器语言程序
2016
1
0
2
高级语言程序与机器语言程序之间的转换
2017
1
0
2
计算机的性能指标
2018
1
0
2
冯・诺依曼计算机
2019
1
0
2
冯・诺依曼计算机
2020
1
0
2
计算机的性能指标
2021
1
0
2
计算机的性能指标
2022
1
0
2
计算机的性能指标
2023
1
0
2
计算机的性能指标
2024
0
0
0
未直接考察
【考点解读】
本章的考查主要以选择题为主,一般每年都会至少考一道选择题。对于计算机层次结构相关知识,即使没有直接进行考查,也通常会在计算机组成原理考题的题干中涉及,间接进行考查。对于计算机性能指标相关知识,还有一定几率结合后续的章节以简答题的形式进行考查。
【复习建议】
本章是计算机组成原理的概述,掌握本章的内容可以为后面知识的学习打下坚实的基础。本章内容分为计算机系统层次结构和计算机性能指标两大部分。前一部分的内容在学习的过程中可以结合图片进行理解,其中要重点了解冯・诺伊曼计算机的基本原理以及程序的转换过程,前一部分的知识点也会在后续章节进行扩展。后一部分的内容主要为概念和计算,是需要熟练掌握的。遇到本章难以理解的知识点无需担心,后续章节会持续深入学习,可以在学习到后面内容的时候,回看概述部分相关内容,加深理解。
请考生在学习过程中思考如下问题,答案将在章末给出。
1.冯・诺依曼计算机的主要特点有哪些?
2.计算机硬件的基本组成以及它们的功能是什么?
3.计算机完成一个任务的大致过程是什么?
4.如何衡量计算机的性能?
1.1 计算机系统层次结构
1.1.1 计算机系统的基本组成
计算机系统由硬件系统和软件系统两大部分组成。
计算机硬件是构成计算机系统各功能部件的物理实体,是计算机完成各项工作的物质基础,如处理器、存储器、外部设备等均属于硬件系统。
计算机软件是指与计算机系统操作有关的各种程序和相关的文档和数据,其中程序是用程序设计语言描述的适合计算机执行的语句指令序列,而指令是指示计算机执行某种操作的命令,数据是指令操作的对象。8.完整的计算机系统应包括( )。
A. 计算机硬件与软件系统
B. CPU 和存储器
C. 控制单元和算术逻辑单元
D. 主机、鼠标、键盘和显示屏8.【参考答案】 A
【解析】 CPU 和存储器合称为主机,B 错误。CU 和 ALU 合称为 CPU,C 错误。外部设备不仅有鼠标、键盘和显示屏,D 错误。1.1.2 计算机硬件的基本结构
1. 冯・诺依曼计算机的主要特点
当前计算机主要是基于冯・诺依曼体系结构设计的。1945 年,数学家冯・诺依曼在研究 EDVAC 机时提出了 “存储程序” 的概念,以此概念为基础的各类计算机统称为冯・诺依曼计算机。它的特点可归结如下:
·采用存储程序工作方式。将程序和数据以同等地位放入存储器中,CPU 根据指令周期的不同阶段来区分指令和数据。程序预先存入存储器中,计算机在工作中能从程序首地址取出第一条指令并加以执行,以后就按照该程序的规定顺序执行其他指令,直至程序执行结束。
20.【2009】冯・诺伊曼计算机中指令和数据均以二进制形式存放在存储器中,CPU 区分它们的依据是( )。
A. 指令操作码的译码结果
B. 指令和数据的寻址方式
C. 指令周期的不同阶段
D. 指令和数据所在的存储单元20.【参考答案】 C
【解析】 指令周期可分为取指周期、间址周期、执行周期和中断周期。一般 CPU 在取指周期从存储器中读指令,在执行周期从存储器中读数据。(指令执行过程详见第 5 章)·计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备五大部件组成。
·指令和数据存放在存储器中,按地址访问。
·计算机内部采用二进制 “0”、“1” 来表示指令和数据,两者形式上没有区别。
·指令由操作码和地址码组成,操作码用来表示操作的类型,地址码用来表示操作数在存储器中的位置(详见第 4 章)。
23.【2019】下列关于冯・诺依曼计算机基本思想的叙述中,错误的是( )。
A. 程序的功能都通过中央处理器执行指令实现
B. 指令和数据都用二进制数表示,形式上无差别
C. 指令按地址访问,数据都在指令中直接给出
D. 程序执行前,指令和数据需预先存放在存储器中23.【参考答案】 C
【解析】 “指令按地址访问” 是正确的,“数据都在指令中直接给出” 是错误的。数据由指令的地址码指出,除了立即寻址,数据均存放在存储器内,C 错误。3.以下有关冯・诺依曼计算机的叙述中,错误的是( )。
A. 指令由操作码和地址码两部分组成
B. 指令和数据存放在存储器中,按地址访问
C. 指令按地址访问,所有数据在指令中直接给出
D. 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备 5 大部分组成3.【参考答案】 C
【解析】 数据不一定会在指令中直接给出,一般都要在间址周期取操作数(详见第 4 章数据寻址方式),C 错误。2.以下有关冯・诺依曼计算机的叙述中,正确的是( )。
A. 程序和数据以同等地位放入存储器中,CPU 根据指令周期的不同阶段来区分指令和数据
B. 指令和数据可以从形式上区分
C. 指令以二进制形式存放,数据以十进制形式存放
D. 指令存放在控制器中,数据存放在存储器中2.【参考答案】 A
【解析】 计算机内部采用二进制 “0”、“1” 来表示指令和数据,两者形式上没有区别,B、C 错误。指令和数据存放在存储器中,D 错误。1.冯・诺依曼计算机的核心思想是( )。
A. 存储程序控制
B. 以二进制表示信息
C. 以运算器为核心
D. 数据流驱动方式1.【参考答案】 A
【解析】 冯・诺依曼计算机的核心思想为存储程序控制。冯・诺依曼计算机是指令流(控制流)驱动方式,而非数据流驱动方式,D 错误。2. 计算机的功能部件
(1) 输入设备
输入设备是从计算机外部向计算机内部传送信息的装置。其功能是将数据、程序及其他信息,从人们熟悉的形式转换为计算机能够识别和处理的形式输入到计算机内部。常用的输入设备有键盘、鼠标、光笔、扫描仪、数字化仪、条形码阅读器等。
(2) 输出设备
输出设备是将计算机的处理结果传送到计算机外部供计算机用户使用的装置。其功能是将计算机内部二进制形式的数据信息转换成人们所需要的或其他设备能接受和识别的信息形式。常用的输出设备有显示器、打印机、绘图仪等。通常将输入设备和输出设备统称为 I/O 设备(Input/Output),它们都属于计算机的外部设备。
(3) 运算器
运算器的核心为算术逻辑单元 ALU(Arithmetic Logic Unit)。它的主要功能是完成算术运算和逻辑运算。算术运算是指加、减、乘、除及它们的复合运算。而逻辑运算是指与、或、非、大于等于等逻辑比较和逻辑判断操作。在计算机中,任何复杂运算都可以转化为基本的算术与逻辑运算,然后在运算器中完成。
26. 【2020】下列给出的部件中,其位数(宽度)一定与机器字长相同的是( )。
I. ALU
II. 指令寄存器
III. 通用寄存器
IV. 浮点寄存器
A. 仅 I、II
B. 仅 I、III
C. 仅 II、III
D. 仅 II、III、IV26.【参考答案】 B
【解析】 机器字长是指计算机能直接处理的二进制数据的位数,是 CPU 内部用于整数运算的数据通路的宽度。机器字长与通用寄存器位数 (宽度) 和 CPU 内部的运算器位数相等。而指令寄存器的位数与指令字长相同。(4) 控制器
控制单元 CU(Controller Unit)是计算机的指挥系统,控制器一般由指令寄存器、指令译码器、时序电路和控制电路组成。它的主要功能是从内存取指令和执行指令。指令是指示计算机如何工作的一段比特信息流,由操作码(操作方法)及地址码(操作对象的位置)两部分组成。控制器通过地址访问存储器、逐条取出选中单元指令,分析指令,并根据指令产生的控制信号作用于其它各部件来完成指令要求的工作。上述工作周而复始,保证了计算机能自动连续地工作。
17.计算机区别于其他计算工具的最本质的特点是( )。
A. 自动连续地执行程序
B. 运算速度快
C. 运算精度高
D. 存储能力强17.【参考答案】 A
【解析】 冯・诺依曼计算机的核心思想为存储程序控制,存储程序控制保证了计算机能够自动连续地执行程序。16.( )可以区分存储单元中存放的是指令还是数据。
A. 控制器
B. 运算器
C. 用户
D. 输入输出设备16.【参考答案】 A
【解析】 控制器根据指令周期的不同阶段来区分指令和数据。6.在主机中能对指令进行译码的器件是( )。
A. MAR
B. ALU
C. 控制器
D. MDR6.【参考答案】 C
【解析】 控制器一般由指令寄存器、指令译码器、时序电路和控制电路组成。它的基本功能是从内存存取指令和执行指令。(5) 存储器
存储器是计算机的记忆装置,它的主要功能是存放程序和数据。程序是计算机操作的依据,数据是计算机操作的对象。存储器根据其与 CPU 联系的密切程度可分为内存储器和外存储器两大类。内存在计算机主机内,它直接与运算器、控制器交换信息,一般只存放正在运行的程序和待处理的数据。内存容量虽小,但存取速度快,主存、Cache、寄存器等都属于内存。程序必须调入内存方可执行,为了扩大内存储器的容量,引入了外存储器。外存作为内存储器的延伸和后援,间接和 CPU 联系,用来存放一些系统需要使用,但又不急于使用的程序和数据。外存存取速度慢,但存储容量大,可以长时间地保存大量信息,常见的外存有磁盘、U 盘等。
提示:本章掌握五大功能部件的概念及功能即可,其工作原理会在后续章节深入学习。
因早期计算机功能较为单一,不能同时实现运算和控制这两个功能,所以早期的运算器和控制器是分离的。当时的存储器以磁芯存储器为主,存储的信息量少。那时的人们对计算机的要求是能完成一些基本运算,对数据处理要求不高。所以早期计算机以运算器为核心。4.早期的冯・诺依曼计算机是以( )为核心的。
A. 运算器
B. 控制器
C. 存储器
D. 输入输出设备4.【参考答案】 A
【解析】 早期计算机以运算器为核心,如今计算机以存储器为核心。如图 1.1 所示。
现代微处理器的问世,使得运算器和控制器集成到一个芯片里,处理效率得到很大提升。同时半导体存储器替代磁芯存储器,存储容量成倍扩大。如果采用以运算器为中心的计算机结构,每次 I/O 操作都需要控制器和运算器参与,就会浪费很多可以用于运算的时间。存储器为中心的计算机结构则可以让 I/O 设备直接与存储器交换数据,所以为提高整体的效率,现代计算机变为以存储器为核心,如图 1.2 所示。
由于运算器和控制器在逻辑关系和电路结构上联系十分紧密,通常将它们合起来统称为中央处理器(简称 CPU),把输入输出设备简称为 I/O 设备,这样可以认为现代计算机由主机和外部设备两大部分组成:CPU 与主存储器合称为主机,I/O 设备称为外部设备。ALU 和 CU 是 CPU 的核心部件。ALU 为算术逻辑运算单元,用来完成算术逻辑运算。CU 为控制单元,用来解释存储器中的指令,并发出各种操作命令来控制指令的执行。I/O 设备也受 CU 控制,用来完成相应的输入、输出操作。
9.计算机系统的输入输出接口是( )之间的交接界面。
A. CPU 与存储器
B. 主机与外围设备
C. 存储器与外围设备
D. CPU 与系统总线9.【参考答案】 B
【解析】 计算机系统输入输出接口(I/O 接口)是外围设备与主机之间的交接界面。7.计算机的算术逻辑单元、控制单元及主存储器合称为( )。
A. CPU
B. 主机
C. ALU
D. CU7.【参考答案】 B
【解析】 算术逻辑单元(ALU)和控制单元(CU)合称中央处理器(CPU),CPU 和主存合称为主机。如图 1.3 所示。
【提示】 注意区分内存和外存,虽然内存和外存都是存储器,但内存属于主机,外存属于外部设备。
1.1.3 计算机软件
1. 系统软件和应用软件
软件按其功能划分,可分为系统软件和应用软件两大类型。
10.计算机系统包括软件系统和硬件系统,其中软件又可以分为( )。
A. 高级语言程序和低级语言程序
B. 系统软件和应用软件
C. 操作系统和应用软件
D. 系统软件和高级语言程序10.【参考答案】 B
【解析】 软件按其功能划分,可分为系统软件和应用软件两大类型。系统软件:主要用来管理整个计算机系统,使系统资源得到合理调度,保障系统的高效运行。它介于计算机硬件与应用软件之间,为开发和运行应用软件提供各种服务和监控功能。系统软件通常包括操作系统、语言处理程序(如汇编程序、编译程序、解释程序等)、各种服务程序(如诊断程序、排错程序、练习程序等)和数据库管理系统等。
应用软件:指用户在各自的业务领域中开发和使用的解决各种实际问题的程序集合。因此,应用软件是面向应用领域、面向用户的软件。如办公自动化软件、动画制作软件、图形图像处理软件、网页制作软件、多媒体制作软件等。
11.下列选项中,( )属于应用软件。
A. 操作系统
B. 编译系统
C. 链接程序
D. 文本处理11.【参考答案】 D
【解析】 系统软件维持系统平台的基本运行,而应用软件则是满足用户特定需求。因此操作系统、编译系统、链接程序属于系统软件,而文本处理属于应用软件。2. 计算机软件和硬件的关系
没有安装任何软件的计算机通常称为裸机,裸机是无法工作的。没有硬件作为软件的运行载体,软件也是无法单独工作的。软件和硬件相辅相成,缺一不可。
对于某一个功能来说,它既可以由硬件来实现,也可以由软件来实现,称为软硬件在逻辑上是等效的。一般情况下,一个功能通过硬件实现效率较高,但硬件成本较高;相比之下通过软件实现效率较低,但成本也会相应降低。
12.以下说法中,正确的是( )。
A. 软硬件在逻辑上是等效的
B. 软件实现的功能一般比硬件实现具有更高的执行速度
C. 硬件可以脱离软件单独运行
D. 硬件实现的功能无法用软件取代12.【参考答案】 A
【解析】 硬件实现的功能一般比软件实现具有更高的执行速度,B 错误。软件和硬件相辅相成,缺一不可,C 错误。硬件实现的功能可以用软件取代,D 错误。1.1.4 计算机系统的层次结构
13.计算机系统从上到下的层次化构成为( )。
A. 机器语言机器 —— 操作系统虚拟机 —— 汇编语言虚拟机 —— 高级语言虚拟机
B. 高级语言虚拟机 —— 操作系统虚拟机 —— 汇编语言虚拟机 —— 机器语言机器
C. 高级语言虚拟机 —— 汇编语言虚拟机 —— 机器语言机器 —— 操作系统虚拟机
D. 高级语言虚拟机 —— 汇编语言虚拟机 —— 操作系统虚拟机 —— 机器语言机器13.【参考答案】 D
【解析】 一台由软、硬件组成的通用计算机系统可以被看成是按功能划分的多层机器级组成的层次结构。层次结构由高到低依次为高级语言虚拟机、汇编语言虚拟机、操作系统虚拟机和机器语言机器。一台由软、硬件组成的通用计算机系统可以划分出如图 1.4 所示的层次结构。该图把计算机系统分成应用程序、操作系统、硬件系统、数字设计和电路设计。
应用程序:面向最终用户,用于完成一些特定的任务,例如,通过社交软件进行聊天,使用多媒体播放软件看电影等。
API(Application Programming Interface):是应用程序的高级语言编程接口,介于操作系统和应用程序之间,在编写程序的源代码时使用,也被称为 “操作系统的指令系统”。常见的 API 包括 C 语言、Java 语言、JavaScript 语言接口等。使用一种 API 编写的应用程序经过重新编译后能在支持这种 API 的不同的计算机上运行。
操作系统:是配置在计算机的硬件之上的第一层软件,是对硬件系统的扩充,其主要作用是管理硬件设备,为语言处理系统提供环境等。
ISA(Instruction Set Architecture):是指令集体系结构,介于硬件系统和操作系统之间,是将计算机硬件和软件联系起来的界面,也被称为指令系统或指令集架构。常见的指令集架构有 x86、ARM 和 MIPS 等。ISA 规定了指令格式,指令的操作类型、操作数类型、寻址方式,通用寄存器的个数、位数和编号,控制寄存器的定义,地址空间的安排,I/O 空间的编址方式,中断结构,系统状态的定义和切换,输入 / 输出结构和数据传送方式,存储保护方式等。
ISA 界面的下层是计算机的硬件系统。硬件系统包括 CPU、GPU、主存和输入 / 输出等主要功能部件,这些功能部件要通过数字逻辑电路设计来实现。同一个功能部件可以用不同的逻辑实现方式,用不同的逻辑来实现得到的性能和成本也存在差异。
也有教材将计算机系统的层次结构按照图 1.5 的方式进行分级,由低到高依次为微指令系统层、机器语言层、操作系统层、汇编语言层和高级语言层。对于具体的计算机系统,其层次数可以有所不同。
第 1 级是微指令系统层:该层属于硬件层,这级的机器语言是微指令集,由机器硬件直接执行微指令(微指令会在第 5 章深入学习)。
14.直接执行微指令的是( )。
A. 翻译程序
B. 微指令程序
C. 系统软件
D. 硬件14.【参考答案】 D
【解析】 微指令系统层是一个实在的硬件层,这级的机器语言是微指令集,程序员用微指令编写的微程序一般是直接由硬件执行的。(微指令会在第 5 章深入学习)第 2 级是机器语言层:这级的机器语言是此计算机的指令集,程序员用机器指令编写的程序可以由微程序进行解释。
第 3 级是操作系统层:在操作系统层,有两种类型的指令:机器指令和广义指令。机器指令是计算机硬件直接支持的指令,它们是在硬件层级上执行的二进制指令。而广义指令是为了扩展机器功能而设置的指令,它们是由操作系统定义和解释的软件指令。由于操作系统层同时包含硬件指令和软件指令,因此也被称为混合层。
第 4 级是汇编语言层:这级的机器语言是汇编语言,可借助汇编程序完成汇编语言的翻译。
第 5 级是高级语言层:这级的机器语言就是各种高级语言,可借助编译程序完成高级语言的翻译。
总体而言,计算机系统分软件和硬件两部分,硬件的研究对象主要为微程序机器和传统机器,软件的研究对象主要为操作系统及以上的各级虚拟机器。软件和硬件的界面是指令集体系结构 (ISA)。下层是实现上层的基础,而上层实现对下层的功能拓展。对于虚拟机器的某一级观察者而言,他只需要通过该级的语言来了解和使用计算机,而无需关注下级是如何实现的。本门课程主要讨论传统机器与微程序机器的组成原理及设计思想。
15.计算机系统各层次之间的关系为( )。
A. 上下层之间毫无关系
B. 上层与下层相互依存、不可分割
C. 下层是实现上层的基础,而上层实现对下层的功能拓展
D. 上层是实现下层的基础,而下层实现对上层的功能拓展15.【参考答案】 C
【解析】 在计算机系统中,下层是实现上层的基础,而上层实现对下层的功能拓展,C 正确。下层可以离开上层单独存在,B 错误。提示:注意区分系统程序员和应用程序员。系统程序员是设计和开发系统软件的程序员。应用程序员是用高级编程语言编写应用软件的程序员。
1.1.5 计算机系统的工作原理
1. “存储程序” 工作方式
所谓 “存储程序” 工作方式,即将程序和数据以同等地位放入存储器中,CPU 根据指令周期的不同阶段来区分指令和数据。程序预先存入存储器中,计算机在工作中从程序首地址取出第一条指令并加以执行,以后就按照该程序的规定顺序执行其他指令,直至程序结束执行。“存储程序” 工作方式是计算机能自动控制处理的基础。
提示:本章考点 “程序和指令的执行过程” 会在第 5 章深入学习,在此不做展开。计算机完成一个任务的大致过程可以参考本章的章末总结的问题 3。
2. 高级语言程序与机器语言程序之间的转换
计算机的编程语言可以分为三大类:机器语言、汇编语言和高级语言。
机器语言:用二进制代码 “0”、“1” 来表示机器指令,能够被计算机直接识别和执行。
21.【2015】计算机硬件能够直接执行的是( )。
I. 机器语言程序
II. 汇编语言程序
III. 硬件描述语言程序
A. 仅 I
B. 仅 I、II
C. 仅 I、III
D. I、II 和 III21.【参考答案】 A
【解析】 硬件只能识别和执行二进制编码,即机器语言。硬件描述语言是指可以对电子系统硬件的行为尤其是时序行为进行描述的一种编程语言,并不是指硬件可以直接执行的语言。汇编语言利用助记符来增强机器语言的可读性和记忆性,需要经过汇编后才能执行。汇编语言:用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
18.下列说法中,错误的是( )。
A. 可用高级语言和低级语言编写出功能等价的程序
B. 低级语言的执行效率一般情况下高于高级语言
C. 机器语言源程序可以在机器上直接执行,而高级语言和汇编语言源程序不可以
D. 汇编语言与机器结构无关18.【参考答案】 D
【解析】 在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。高级语言:高度封装的编程语言,比如 Java、C、C++、Python 等。高级语言与计算机的硬件结构和指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。
提示:机器语言和汇编语言都为低级语言。
高级语言程序转换成机器语言程序主要有两种方法:解释型和编译型。
解释型:是边读取源代码边执行:高级语言→解释器→输出。如 Python 为解释型语言。
编译型:则是将源代码编译成目标代码后执行:高级语言→编译→目标代码→执行→输出。如 C/C++ 为编译型语言。
注意区分编译程序、汇编程序、解释程序和翻译程序:
编译程序:将高级语言一次性翻译为汇编语言或机器语言。
22.【2016】将高级语言源程序转换为机器级目标代码文件的程序是( )。
A. 汇编程序
B. 链接程序
C. 编译程序
D. 解释程序22.【参考答案】 C
【解析】 编译程序将高级语言一次性翻译为汇编语言或机器语言,形成目标代码文件,选项 C 正确;汇编程序将汇编语言翻译为机器语言;解释程序将高级语言翻译为机器语言,翻译一句执行一句;能把高级语言翻译成机器语言的程序称为翻译程序,故编译程序和解释程序都为翻译程序;链接程序的作用是将程序所有模块的目标代码链接到一起,以形成一个可执行文件。汇编程序:将汇编语言翻译为机器语言。
解释程序:将高级语言翻译为机器语言,翻译一句执行一句,解释程序最终不会生成目标程序。能把高级语言翻译成机器语言的程序称为翻译程序,故编译程序和解释程序都为翻译程序。
19.只有当程序要执行时,它才会去将源程序翻译成机器语言,而且翻译一句执行一句,此程序称为( )。
A. 翻译程序
B. 解释程序
C. 编译程序
D. 汇编程序19.【参考答案】 B
【解析】 编译程序将高级语言一次性翻译为汇编语言或机器语言;汇编程序将汇编语言翻译为机器语言;解释程序将高级语言翻译为机器语言,翻译一句执行一句,解释程序最终不会生成目标程序。能把高级语言翻译成机器语言的程序称为翻译程序,故编译程序和解释程序都称为翻译程序。提示:第 4 章会详细介绍知识点 “高级语言与机器级代码之间的对应”。
图1.6表示了这些程序和编程语言之间的关系。
1.1.6 习题精编
1.冯・诺依曼计算机的核心思想是( )。
A. 存储程序控制
B. 以二进制表示信息
C. 以运算器为核心
D. 数据流驱动方式1.【参考答案】 A
【解析】 冯・诺依曼计算机的核心思想为存储程序控制。冯・诺依曼计算机是指令流(控制流)驱动方式,而非数据流驱动方式,D 错误。2.以下有关冯・诺依曼计算机的叙述中,正确的是( )。
A. 程序和数据以同等地位放入存储器中,CPU 根据指令周期的不同阶段来区分指令和数据
B. 指令和数据可以从形式上区分
C. 指令以二进制形式存放,数据以十进制形式存放
D. 指令存放在控制器中,数据存放在存储器中2.【参考答案】 A
【解析】 计算机内部采用二进制 “0”、“1” 来表示指令和数据,两者形式上没有区别,B、C 错误。指令和数据存放在存储器中,D 错误。3.以下有关冯・诺依曼计算机的叙述中,错误的是( )。
A. 指令由操作码和地址码两部分组成
B. 指令和数据存放在存储器中,按地址访问
C. 指令按地址访问,所有数据在指令中直接给出
D. 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备 5 大部分组成3.【参考答案】 C
【解析】 数据不一定会在指令中直接给出,一般都要在间址周期取操作数(详见第 4 章数据寻址方式),C 错误。4.早期的冯・诺依曼计算机是以( )为核心的。
A. 运算器
B. 控制器
C. 存储器
D. 输入输出设备4.【参考答案】 A
【解析】 早期计算机以运算器为核心,如今计算机以存储器为核心。5.以下有关计算机各功能部件的叙述中,错误的是( )。
A. 输入输出设备的主要功能是完成用户与计算机之间的信息交互
B. 运算器的主要功能是完成算术运算
C. 控制器的主要功能是从内存存取指令和执行指令
D. 存储器的主要功能是存放程序和数据5.【参考答案】 B
【解析】 运算器不仅仅可以完成算术运算,也可以完成逻辑运算,B 错误。6.在主机中能对指令进行译码的器件是( )。
A. MAR
B. ALU
C. 控制器
D. MDR6.【参考答案】 C
【解析】 控制器一般由指令寄存器、指令译码器、时序电路和控制电路组成。它的基本功能是从内存存取指令和执行指令。7.计算机的算术逻辑单元、控制单元及主存储器合称为( )。
A. CPU
B. 主机
C. ALU
D. CU7.【参考答案】 B
【解析】 算术逻辑单元(ALU)和控制单元(CU)合称中央处理器(CPU),CPU 和主存合称为主机。8.完整的计算机系统应包括( )。
A. 计算机硬件与软件系统
B. CPU 和存储器
C. 控制单元和算术逻辑单元
D. 主机、鼠标、键盘和显示屏8.【参考答案】 A
【解析】 CPU 和存储器合称为主机,B 错误。CU 和 ALU 合称为 CPU,C 错误。外部设备不仅有鼠标、键盘和显示屏,D 错误。9.计算机系统的输入输出接口是( )之间的交接界面。
A. CPU 与存储器
B. 主机与外围设备
C. 存储器与外围设备
D. CPU 与系统总线9.【参考答案】 B
【解析】 计算机系统输入输出接口(I/O 接口)是外围设备与主机之间的交接界面。10.计算机系统包括软件系统和硬件系统,其中软件又可以分为( )。
A. 高级语言程序和低级语言程序
B. 系统软件和应用软件
C. 操作系统和应用软件
D. 系统软件和高级语言程序10.【参考答案】 B
【解析】 软件按其功能划分,可分为系统软件和应用软件两大类型。11.下列选项中,( )属于应用软件。
A. 操作系统
B. 编译系统
C. 链接程序
D. 文本处理11.【参考答案】 D
【解析】 系统软件维持系统平台的基本运行,而应用软件则是满足用户特定需求。因此操作系统、编译系统、链接程序属于系统软件,而文本处理属于应用软件。12.以下说法中,正确的是( )。
A. 软硬件在逻辑上是等效的
B. 软件实现的功能一般比硬件实现具有更高的执行速度
C. 硬件可以脱离软件单独运行
D. 硬件实现的功能无法用软件取代12.【参考答案】 A
【解析】 硬件实现的功能一般比软件实现具有更高的执行速度,B 错误。软件和硬件相辅相成,缺一不可,C 错误。硬件实现的功能可以用软件取代,D 错误。13.计算机系统从上到下的层次化构成为( )。
A. 机器语言机器 —— 操作系统虚拟机 —— 汇编语言虚拟机 —— 高级语言虚拟机
B. 高级语言虚拟机 —— 操作系统虚拟机 —— 汇编语言虚拟机 —— 机器语言机器
C. 高级语言虚拟机 —— 汇编语言虚拟机 —— 机器语言机器 —— 操作系统虚拟机
D. 高级语言虚拟机 —— 汇编语言虚拟机 —— 操作系统虚拟机 —— 机器语言机器13.【参考答案】 D
【解析】 一台由软、硬件组成的通用计算机系统可以被看成是按功能划分的多层机器级组成的层次结构。层次结构由高到低依次为高级语言虚拟机、汇编语言虚拟机、操作系统虚拟机和机器语言机器。14.直接执行微指令的是( )。
A. 翻译程序
B. 微指令程序
C. 系统软件
D. 硬件14.【参考答案】 D
【解析】 微指令系统层是一个实在的硬件层,这级的机器语言是微指令集,程序员用微指令编写的微程序一般是直接由硬件执行的。(微指令会在第 5 章深入学习)15.计算机系统各层次之间的关系为( )。
A. 上下层之间毫无关系
B. 上层与下层相互依存、不可分割
C. 下层是实现上层的基础,而上层实现对下层的功能拓展
D. 上层是实现下层的基础,而下层实现对上层的功能拓展15.【参考答案】 C
【解析】 在计算机系统中,下层是实现上层的基础,而上层实现对下层的功能拓展,C 正确。下层可以离开上层单独存在,B 错误。16.( )可以区分存储单元中存放的是指令还是数据。
A. 控制器
B. 运算器
C. 用户
D. 输入输出设备16.【参考答案】 A
【解析】 控制器根据指令周期的不同阶段来区分指令和数据。17.计算机区别于其他计算工具的最本质的特点是( )。
A. 自动连续地执行程序
B. 运算速度快
C. 运算精度高
D. 存储能力强17.【参考答案】 A
【解析】 冯・诺依曼计算机的核心思想为存储程序控制,存储程序控制保证了计算机能够自动连续地执行程序。18.下列说法中,错误的是( )。
A. 可用高级语言和低级语言编写出功能等价的程序
B. 低级语言的执行效率一般情况下高于高级语言
C. 机器语言源程序可以在机器上直接执行,而高级语言和汇编语言源程序不可以
D. 汇编语言与机器结构无关18.【参考答案】 D
【解析】 在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。19.只有当程序要执行时,它才会去将源程序翻译成机器语言,而且翻译一句执行一句,此程序称为( )。
A. 翻译程序
B. 解释程序
C. 编译程序
D. 汇编程序19.【参考答案】 B
【解析】 编译程序将高级语言一次性翻译为汇编语言或机器语言;汇编程序将汇编语言翻译为机器语言;解释程序将高级语言翻译为机器语言,翻译一句执行一句,解释程序最终不会生成目标程序。能把高级语言翻译成机器语言的程序称为翻译程序,故编译程序和解释程序都称为翻译程序。1.1.7 真题演练
20.【2009】冯・诺伊曼计算机中指令和数据均以二进制形式存放在存储器中,CPU 区分它们的依据是( )。
A. 指令操作码的译码结果
B. 指令和数据的寻址方式
C. 指令周期的不同阶段
D. 指令和数据所在的存储单元20.【参考答案】 C
【解析】 指令周期可分为取指周期、间址周期、执行周期和中断周期。一般 CPU 在取指周期从存储器中读指令,在执行周期从存储器中读数据。(指令执行过程详见第 5 章)21.【2015】计算机硬件能够直接执行的是( )。
I. 机器语言程序
II. 汇编语言程序
III. 硬件描述语言程序
A. 仅 I
B. 仅 I、II
C. 仅 I、III
D. I、II 和 III21.【参考答案】 A
【解析】 硬件只能识别和执行二进制编码,即机器语言。硬件描述语言是指可以对电子系统硬件的行为尤其是时序行为进行描述的一种编程语言,并不是指硬件可以直接执行的语言。汇编语言利用助记符来增强机器语言的可读性和记忆性,需要经过汇编后才能执行。22.【2016】将高级语言源程序转换为机器级目标代码文件的程序是( )。
A. 汇编程序
B. 链接程序
C. 编译程序
D. 解释程序22.【参考答案】 C
【解析】 编译程序将高级语言一次性翻译为汇编语言或机器语言,形成目标代码文件,选项 C 正确;汇编程序将汇编语言翻译为机器语言;解释程序将高级语言翻译为机器语言,翻译一句执行一句;能把高级语言翻译成机器语言的程序称为翻译程序,故编译程序和解释程序都为翻译程序;链接程序的作用是将程序所有模块的目标代码链接到一起,以形成一个可执行文件。23.【2019】下列关于冯・诺依曼计算机基本思想的叙述中,错误的是( )。
A. 程序的功能都通过中央处理器执行指令实现
B. 指令和数据都用二进制数表示,形式上无差别
C. 指令按地址访问,数据都在指令中直接给出
D. 程序执行前,指令和数据需预先存放在存储器中23.【参考答案】 C
【解析】 “指令按地址访问” 是正确的,“数据都在指令中直接给出” 是错误的。数据由指令的地址码指出,除了立即寻址,数据均存放在存储器内,C 错误。1.2 计算机性能指标
1.2.1 主要性能指标
1.吞吐量、响应时间
1.吞吐量:是指系统在单位时间内能够处理的请求或事务的数量,可用比特、字节、分组等单位测量。
2.响应时间:是指作业从提交开始直到完成所用的时间。响应时间通常包括 CPU 时间(CPU 执行指令所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/O 操作、操作系统开销等时间)。
2.CPU 时钟周期、主频、CPI、CPU 执行时间、MIPS
1.CPU 时钟周期(时钟周期):定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU 仅完成一个微操作。
6.计算机 A 的时钟频率为 800MHz,某程序在计算机 A 上运行需要 12 秒,在计算机 B 上运行需要 8s,但在计算机 B 上运行该程序所需的时钟周期数为计算机 A 上的 1.5 倍,那么计算机 B 的时钟频率为 ( )。
A. 1.8MHz
B. 800MHz
C. 1.2GHz
D. 1.8GHz6.【参考答案】 D
【解析】 该程序在计算机 A 上运行所需的时钟周期数为 12s×800MHz,所以该程序在计算机 B 上运行所需的时钟周期数为 1.5×12s×800MHz,所以计算机 B 的时钟频率为:1.5×12s×800MHz/8s = 1.8GHz。1.计算机中最小单位时间是 ( )。
A. 时钟周期
B. 指令周期
C. CPU 周期
D. 执行周期1.【参考答案】 A
【解析】 时钟周期是计算机中最基本的、最小的时间单位。(指令周期、CPU 周期、执行周期会在后续章节学习 )2.主频 (CPU 时钟频率):即机器内部主时钟的频率,表示在 CPU 内数字脉冲信号振荡的频率,是衡量计算机速度的一个重要参数。通常以 Hz 作为单位,Hz为每1s执行的频率,10Hz 表示 1 秒内执行的频次为 10。主频 = 1/CPU 时钟周期,如果主频为 5MHz,则 CPU 时钟周期为 0.2μs 。
5.以下 4 种措施中,无法改善计算机性能的是 ( )。
A. 降低 CPU 时钟频率
B. 使用更快的处理器来替换原来的慢速处理器
C. 增加同类处理器个数,使不同的处理器同时执行程序
D. 优化编译生成的代码,使得程序执行的总时钟周期数减少5.【参考答案】 A
【解析】 CPU 时钟频率(主频)越高,计算机性能相对越好,A 错误。4.下列关于 CPU 主频、CPI、MIPS、MFLOPS 的说法中,错误的是 ( )。
A. CPU 主频是指 CPU 系统执行指令的频率
B. CPI 是指执行一条指令所需要的时钟周期数
C. MIPS 是指每秒执行多少百万条指令
D. MFLOPS 是指每秒执行多少百万次浮点运算4.【参考答案】 A
【解析】 CPU 主频是指机器内部主时钟的频率,而非执行指令的频率,A 错误。3.CPI(Clock Cycle Per Instruction):执行一条指令所需要的时钟周期数。不同指令所需要的时钟周期可能不同,一个程序由若干条指令组成,因此对于一个程序或一台机器来说,其 CPI 是一个平均值,指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数。
3.CPU 的 CPI 与下列哪个因素无关 ( )。
A. 时钟周期
B. 系统结构
C. 指令集
D. 计算机组织3.【参考答案】 A
【解析】 CPI 是指每条指令所需要的时钟周期数,跟具体时钟周期的长短无关(时钟频率与时钟周期互为倒数,所以跟主频也无关)。4.CPU 执行时间:指 CPU 对某特定程序的执行时间。CPU 执行时间 = (CPU 时钟周期数 × 时钟周期 = (指令条数 ×CPI)× 时钟周期 = CPU 时钟周期数 / 主频 = 指令条数 ×CPI / 主频 。
22.【2012】假定基准程序 A 在某计算机上的运行时间为 100s,其中 90s 为 CPU 时间,其余为 IO 时间。若 CPU 速度提高 50%,I/O 速度不变,则运行基准程序 A 所耗费的时间是( )。
A. 55s
B. 60s
C. 65s
D. 70s22.【参考答案】 D
【解析】 CPU 提速 50% 后,CPU 时间为 90/1.5 = 60s,加上 I/O 时间 10s,共 70s。20.【2010】下列选项中,能缩短程序执行时间的措施是( )。
I. 提高 CPU 时钟频率
II. 优化数据通路结构
III. 对程序进行编译优化
A. 仅 I 和 II
B. 仅 I 和 III
C. 仅 II 和 III
D. I、II 和 III20.【参考答案】 D
【解析】 CPU 时钟频率(主频)越高,在程序的 CPI 一定的条件下,所消耗的时间越少,I 正确。优化数据通路,可提高数据在 CPU 内的传输效率(详见第 5 章),II 正确。对程序进行编译优化,可以简化复杂指令序列,从而缩短程序执行时间,III 正确。8.已知一台时钟频率为 4GHz 的计算机的 CPI 为 5,某程序 P 在该计算机上的指令条数为 2×10⁹条。若在该计算机上,程序 P 从开始启动到执行结束所经历的时间是 10s,则运行 P 所用 CPU 时间占整个 CPU 时间的百分比大约是 ( )。
A. 25%
B. 50%
C. 40%
D. 20%8.【参考答案】 A
【解析】 程序的执行时间 = (指令条数 ×CPI)/ 主频 = 2×10⁹×5/(4×10⁹) = 2.5s,所占百分比为 (2.5/10)×100% = 25%。7.计算机 A 的时钟周期为 2.4ns,计算机 B 的时钟周期为 4ns。某个程序在计算机 A 上运行时的 CPI 为 4,在计算机 B 上运行时的 CPI 为 2。则对于该程序来说,计算机 A 和计算机 B 之间的速度关系为 ( )。
A. 计算机 A 比计算机 B 快 1.2 倍
B. 计算机 B 比计算机 A 快 1.2 倍
C. 计算机 A 的速度是计算机 B 的 1.2 倍
D. 计算机 B 的速度是计算机 A 的 1.2 倍7.【参考答案】 D
【解析】 CPU 执行时间 = 指令条数 ×CPI× 时钟周期,假设该程序有 x 条指令,则计算机 A 的执行时间为 2.4ns×4x,计算机 B 的执行时间为 4ns×2x,计算机 A 执行时间是计算机 B 的 1.2 倍,故计算机 B 的速度是计算机 A 的 1.2 倍。B 选项的同义表述为计算机 B 的速度是计算机 A 的 2.2 倍,所以错误。5.MIPS(Million Instructions Per Second):即每秒执行多少百万条指令。如某机器每秒执行 6 百万条指令,则记作 6MIPS。MIPS = 指令条数 /(执行时间 ×10⁶) = 主频 /(CPI×10⁶),主频 = 1s/CPU 时钟周期。
10.假定编译器对高级语言的某条语句可以编译生成两种不同的指令序列,A、B 和 C 三类指令的 CPI 和两种不同序列中所含的三类指令的条数如下表所示,两个指令序列都在时钟周期为 2ns 的机器上运行,以下结论中正确的是 ( )。
A. 序列一的 MIPS 数比序列二多 50,序列一的执行速度比序列二快 10ns
B. 序列一的 MIPS 数比序列二多 50,序列二的执行速度比序列一快 10ns
C. 序列二的 MIPS 数比序列一多 50,序列一的执行速度比序列二快 10ns
D. 序列二的 MIPS 数比序列一多 50,序列二的执行速度比序列一快 10ns10.【参考答案】 D
【解析】 MIPS = 主频 /(CPI×10⁶),根据上一题结论,序列一的 CPI 为 2.5,序列二的 CPI 为 2,故序列一的 MIPS 数为 (1s/2ns)/(2.5×10⁶) = 200,序列二的 MIPS 数为 (1s/2ns)/(2×10⁶) = 250,所以序列二的 MIPS 数比序列一多 50。CPU 执行时间 = CPU 时钟周期数 × 时钟周期,根据上一题结论,序列一所需的时钟周期数为 15,序列二所需的时钟周期数为 10,故序列一的执行时间为 15×2ns = 30ns,序列二的执行时间为 10×2ns = 20ns,故序列二的执行速度比序列一快 10ns。2.下列有关计算机性能指标 MIPS 的描述中,错误的是 ( )。
A. MIPS 是指平均每秒执行的百万条指令数
B. MIPS 越大说明机器性能一定越好
C. 用 MIPS 对不同机器进行性能比较不太客观
D. MIPS 反映的是机器执行定点指令的速度2.【参考答案】 B
【解析】 衡量机器性能的指标有很多,不能以单独的某个指标来判断机器性能的好坏。类似的说法如 “主频越高说明机器性能一定越好” 也是错误的。3.衡量浮点数运算速度的指标
1.FLOPS (Floating - point Operations Per Second):每秒执行多少次浮点运算。
2.MFLOPS (Million FLOPS):每秒执行多少百万(10⁶ )次浮点运算。
21.【2011】下列选项中,描述浮点操作速度指标的是( )。
A. MIPS
B. CPI
C. IPC
D. MFLOPS21.【参考答案】 D
【解析】 MIPS 是每秒执行多少百万条指令。CPI 是平均每条指令的时钟周期数。IPC 是 CPI 的倒数,即每个时钟周期执行的指令数。MFLOPS 是每秒执行多少百万条浮点数运算,用来描述浮点数运算速度。3.GFLOPS (Giga FLOPS):每秒执行多少十亿(10⁹ )次浮点运算。
4.TFLOPS (Tera FLOPS):每秒执行多少万亿(10¹² )次浮点运算。
5.PFLOPS (Peta FLOPS):每秒执行多少千万亿(10¹⁵ )次浮点运算。
6.EFLOPS (Exa FLOPS):每秒执行多少百京(10¹⁸ )次浮点运算(1 京 = 1 亿亿 = 10¹⁶ )。
7.ZFLOPS (Zetta FLOPS):每秒执行多少十万京(10²¹ )次浮点运算。
提示:在描述存储容量、文件大小等时,K、M、G、T 通常用 2 的幂次表示,如 8KB = 2¹³B。在描述速率、频率等时,k、m、G、T 通常用 10 的幂次表示,如 8kb/s = 8×10³b/s。通常前者用大写的 K,后者用小写的 k,但其他前缀均为大写,表示的含义取决于所用的场景。
13.下列语句中,正确的是( )。
A. 1MB = 1000B
B. 1MB = 1000KB
C. 1MB = 1024×1024B
D. 1MB = 2⁶B13.【参考答案】 C
【解析】 1MB = 1024KB = 1024×1024B = 2²⁰B。1.2.2 基础拓展
1.字节、字、字长
1.字节(Byte ):用大写字母 B 表示,一个字节等于 8 个二进制位(bit)。
2.字(Word ):代表计算机处理指令或数据的二进制数位数,是计算机进行数据存储和数据处理的运算单位。字由若干个字节构成,不同档次的机器有不同的字长。对于 32 位计算机与 64 位计算机,字的大小往往不同。32 位计算机:1 字 = 32 位 = 4 字节,64 位计算机:1 字 = 64 位 = 8 字节。
3.字长:即字的位数。字长一般情况下指机器字长。
4.机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的位数和 ALU 运算数据的字长,它决定了计算机的运算精度。
26. 【2020】下列给出的部件中,其位数(宽度)一定与机器字长相同的是( )。
I. ALU
II. 指令寄存器
III. 通用寄存器
IV. 浮点寄存器
A. 仅 I、II
B. 仅 I、III
C. 仅 II、III
D. 仅 II、III、IV26.【参考答案】 B
【解析】 机器字长是指计算机能直接处理的二进制数据的位数,是 CPU 内部用于整数运算的数据通路的宽度。机器字长与通用寄存器位数 (宽度) 和 CPU 内部的运算器位数相等。而指令寄存器的位数与指令字长相同。14.计算机的字长是指( )。
A. 32 位长的数据
B. CPU 数据总线的宽度
C. 计算机内部一次可以处理的二进制数据的位数
D. CPU 地址总线的宽度14.【参考答案】 C
【解析】 字长的定义。5.指令字长:一个指令字中包含的二进制代码的位数。
6.存储字长:一个存储单元存储的二进制代码长度。
16.存储字长是指( )。
A. 存放在一个存储单元中的二进制代码组合
B. 存放在一个存储单元中的二进制代码位数
C. 存储单元的个数
D. 存储容量的字节个数16.【参考答案】 B
【解析】 存储字长是指存放在一个存储单元中的二进制代码位数。15.存储字是指( )。
A. 存放在一个存储单元中的二进制代码组合
B. 存放在一个存储单元中的二进制代码位数
C. 存储单元的个数
D. 存储容量的字节个数15.【参考答案】 A
【解析】 存储字是指存放在一个存储单元中的二进制代码组合。提示:指令字长一般取存储字长的整数倍,若指令字长等于存储字长的 2 倍,则需要 2 次访存来取出一条指令。存储单元:多个存储元的集合,为区别存储器中的存储单元,每个存储单元都有唯一的一个地址编码。
2. 相关专业名词·基准测试程序:用于测试和预测计算机系统的性能,揭示不同结构机器的长处和短处,为用户决定购买或使用哪种最合适他们的应用要求的机器提供决策。但真正做到完全公正并非易事,要涉及的因素很多,包括硬件、体系结构、编译优化、编程环境、测试条件、解题算法等。
·编译优化:就是针对具体处理器的各种特性对代码进行汇编调整,提升代码的执行效率。
·指令集体系结构(ISA ):定义了一台计算机可以执行的所有指令的集合,每条指令规定了计算机执行什么操作,所处理的操作数存放的地址空间以及操作数类型。每个 CPU 在设计时就规定了一系列与其他硬件电路相配合的指令系统。
·透明:意思是看不见。下层对上层透明,即上层无法看见下层的内部细节。
·系列机:指基本指令系统、基本体系结构相同的一系列不同型号的计算机。由于系列机在指令系统、数据格式、字符编码、中断系统、控制方式、输入 / 输出控制方式等方面保持统一,所以可以保证软件或硬件的兼容性。
·固件:是指那些存储在只读存储器(ROM )中的程序(如 BIOS ),一般担任着系统最基础最底层的工作。固件是软硬件结合的产物,性能优于纯软件,又比纯硬件具有灵活性。
·数据通路:是指指令在执行过程中数据所经过的部件以及部件之间的连接线路,主要组成有 ALU、寄存器、主存、总线等。
1.2.3 习题精编
1.计算机中最小单位时间是 ( )。
A. 时钟周期
B. 指令周期
C. CPU 周期
D. 执行周期1.【参考答案】 A
【解析】 时钟周期是计算机中最基本的、最小的时间单位。(指令周期、CPU 周期、执行周期会在后续章节学习 )2.下列有关计算机性能指标 MIPS 的描述中,错误的是 ( )。
A. MIPS 是指平均每秒执行的百万条指令数
B. MIPS 越大说明机器性能一定越好
C. 用 MIPS 对不同机器进行性能比较不太客观
D. MIPS 反映的是机器执行定点指令的速度2.【参考答案】 B
【解析】 衡量机器性能的指标有很多,不能以单独的某个指标来判断机器性能的好坏。类似的说法如 “主频越高说明机器性能一定越好” 也是错误的。3.CPU 的 CPI 与下列哪个因素无关 ( )。
A. 时钟周期
B. 系统结构
C. 指令集
D. 计算机组织3.【参考答案】 A
【解析】 CPI 是指每条指令所需要的时钟周期数,跟具体时钟周期的长短无关(时钟频率与时钟周期互为倒数,所以跟主频也无关)。4.下列关于 CPU 主频、CPI、MIPS、MFLOPS 的说法中,错误的是 ( )。
A. CPU 主频是指 CPU 系统执行指令的频率
B. CPI 是指执行一条指令所需要的时钟周期数
C. MIPS 是指每秒执行多少百万条指令
D. MFLOPS 是指每秒执行多少百万次浮点运算4.【参考答案】 A
【解析】 CPU 主频是指机器内部主时钟的频率,而非执行指令的频率,A 错误。5.以下 4 种措施中,无法改善计算机性能的是 ( )。
A. 降低 CPU 时钟频率
B. 使用更快的处理器来替换原来的慢速处理器
C. 增加同类处理器个数,使不同的处理器同时执行程序
D. 优化编译生成的代码,使得程序执行的总时钟周期数减少5.【参考答案】 A
【解析】 CPU 时钟频率(主频)越高,计算机性能相对越好,A 错误。6.计算机 A 的时钟频率为 800MHz,某程序在计算机 A 上运行需要 12 秒,在计算机 B 上运行需要 8s,但在计算机 B 上运行该程序所需的时钟周期数为计算机 A 上的 1.5 倍,那么计算机 B 的时钟频率为 ( )。
A. 1.8MHz
B. 800MHz
C. 1.2GHz
D. 1.8GHz6.【参考答案】 D
【解析】 该程序在计算机 A 上运行所需的时钟周期数为 12s×800MHz,所以该程序在计算机 B 上运行所需的时钟周期数为 1.5×12s×800MHz,所以计算机 B 的时钟频率为:1.5×12s×800MHz/8s = 1.8GHz。7.计算机 A 的时钟周期为 2.4ns,计算机 B 的时钟周期为 4ns。某个程序在计算机 A 上运行时的 CPI 为 4,在计算机 B 上运行时的 CPI 为 2。则对于该程序来说,计算机 A 和计算机 B 之间的速度关系为 ( )。
A. 计算机 A 比计算机 B 快 1.2 倍
B. 计算机 B 比计算机 A 快 1.2 倍
C. 计算机 A 的速度是计算机 B 的 1.2 倍
D. 计算机 B 的速度是计算机 A 的 1.2 倍7.【参考答案】 D
【解析】 CPU 执行时间 = 指令条数 ×CPI× 时钟周期,假设该程序有 x 条指令,则计算机 A 的执行时间为 2.4ns×4x,计算机 B 的执行时间为 4ns×2x,计算机 A 执行时间是计算机 B 的 1.2 倍,故计算机 B 的速度是计算机 A 的 1.2 倍。B 选项的同义表述为计算机 B 的速度是计算机 A 的 2.2 倍,所以错误。8.已知一台时钟频率为 4GHz 的计算机的 CPI 为 5,某程序 P 在该计算机上的指令条数为 2×10⁹条。若在该计算机上,程序 P 从开始启动到执行结束所经历的时间是 10s,则运行 P 所用 CPU 时间占整个 CPU 时间的百分比大约是 ( )。
A. 25%
B. 50%
C. 40%
D. 20%8.【参考答案】 A
【解析】 程序的执行时间 = (指令条数 ×CPI)/ 主频 = 2×10⁹×5/(4×10⁹) = 2.5s,所占百分比为 (2.5/10)×100% = 25%。9.假定编译器对高级语言的某条语句可以编译生成两种不同的指令序列,A、B 和 C 三类指令的 CPI 和两种不同序列中所含的三类指令的条数如下表所示,以下结论中正确的是 ( )。
A. 序列一的指令条数少于序列二的指令条数
B. 序列一的执行速度比序列二慢
C. 序列一的总时钟周期数比序列二少
D. 序列一的 CPI 比序列二的 CPI 小9.【参考答案】 B
【解析】 序列一的指令条数为 1 + 1 + 4 = 6,序列二的指令条数为 2 + 1 + 2 = 5,序列一的指令条数多于序列二的指令条数,A 错误。CPU 时钟周期数 = 指令条数 ×CPI,序列一所需的时钟周期数为 1×1 + 2×1 + 3×4 = 15,序列二所需的时钟周期数为 1×2 + 2×1 + 3×2 = 10,序列一所需时钟周期数更多,执行速度更慢,B 正确,C 错误。CPI = CPU 时钟周期数 / 指令条数,序列一的 CPI 为 15/6 = 2.5,序列二的 CPI 为 10/5 = 2,序列一的 CPI 比序列二的 CPI 大,D 错误。10.假定编译器对高级语言的某条语句可以编译生成两种不同的指令序列,A、B 和 C 三类指令的 CPI 和两种不同序列中所含的三类指令的条数如下表所示,两个指令序列都在时钟周期为 2ns 的机器上运行,以下结论中正确的是 ( )。
A. 序列一的 MIPS 数比序列二多 50,序列一的执行速度比序列二快 10ns
B. 序列一的 MIPS 数比序列二多 50,序列二的执行速度比序列一快 10ns
C. 序列二的 MIPS 数比序列一多 50,序列一的执行速度比序列二快 10ns
D. 序列二的 MIPS 数比序列一多 50,序列二的执行速度比序列一快 10ns10.【参考答案】 D
【解析】 MIPS = 主频 /(CPI×10⁶),根据上一题结论,序列一的 CPI 为 2.5,序列二的 CPI 为 2,故序列一的 MIPS 数为 (1s/2ns)/(2.5×10⁶) = 200,序列二的 MIPS 数为 (1s/2ns)/(2×10⁶) = 250,所以序列二的 MIPS 数比序列一多 50。CPU 执行时间 = CPU 时钟周期数 × 时钟周期,根据上一题结论,序列一所需的时钟周期数为 15,序列二所需的时钟周期数为 10,故序列一的执行时间为 15×2ns = 30ns,序列二的执行时间为 10×2ns = 20ns,故序列二的执行速度比序列一快 10ns。11.假定某程序 P 由一个 2000 条指令构成的循环组成,该循环共执行 10 次,在某系统 S 中执行程序 P 花了 50000 个时钟周期,则系统 S 在执行程序 P 时的 CPI 为( )。
A. 0.4
B. 2.5
C. 4
D. 2511.【参考答案】 B
【解析】 在 50000 个时钟周期内执行了 10×2000 = 20000 条指令,故 CPI = 50000/20000 = 2.5。12.假定执行指令 A 需要 20 个时钟周期,该指令在程序中的出现频度为 20%,其他所有指令的平均 CPI 为 5,则 CPU 执行指令 A 所用时间占整个 CPU 时间的百分比是多少?( )。
A. 20%
B. 50%
C. 80%
D. 25%12.【参考答案】 B
【解析】 假设该程序有 x 条指令,则指令 A 所需的时钟周期数为 20×0.2x = 4x,其他指令所需的时钟周期数为 5×0.8x = 4x,所以 CPU 执行指令 A 所用时间占整个 CPU 时间的百分比为 4x/(4x + 4x) = 50%。13.下列语句中,正确的是( )。
A. 1MB = 1000B
B. 1MB = 1000KB
C. 1MB = 1024×1024B
D. 1MB = 2⁶B13.【参考答案】 C
【解析】 1MB = 1024KB = 1024×1024B = 2²⁰B。14.计算机的字长是指( )。
A. 32 位长的数据
B. CPU 数据总线的宽度
C. 计算机内部一次可以处理的二进制数据的位数
D. CPU 地址总线的宽度14.【参考答案】 C
【解析】 字长的定义。15.存储字是指( )。
A. 存放在一个存储单元中的二进制代码组合
B. 存放在一个存储单元中的二进制代码位数
C. 存储单元的个数
D. 存储容量的字节个数15.【参考答案】 A
【解析】 存储字是指存放在一个存储单元中的二进制代码组合。16.存储字长是指( )。
A. 存放在一个存储单元中的二进制代码组合
B. 存放在一个存储单元中的二进制代码位数
C. 存储单元的个数
D. 存储容量的字节个数16.【参考答案】 B
【解析】 存储字长是指存放在一个存储单元中的二进制代码位数。17.假定 M1 和 M2 是以不同方式实现同一个指令集的两种机器,M1 的时钟频率为 500MHz,M2 的时钟频率为 400MHz。在该指令集中一共有 A、B 和 C 三类指令。有两种不同的编译器 C1 和 C2。假设对于同一个程序而言,两个编译器生成的程序代码中指令总数相等,但是指令的组合情况各不相同。各类指令在 M1 和 M2 上运行时所需的平均时钟周期数和在两类编译器生成的程序中所占的百分比如下表所示。
指令类型
M1 的 CPI
M2 的 CPI
C1 的程序
C2 的程序
A
1
3
20%
30%
B
2
2
30%
30%
C
3
1
50%
40%
请回答下列问题:
(1) 如果 M1 和 M2 都使用 C1 编译器,则 M2 的生产厂商可以声称其性能是 M1 的多少倍?
(2) 如果 M1 和 M2 都使用 C2 编译器,则 M1 的生产厂商可以声称其性能是 M2 的多少倍?17.【参考答案】
(1) 在 M1 和 M2 上都用 C1 编译器,则 M1 的 CPI 为 1×20% + 2×30% + 3×50% = 2.3,M2 的 CPI 为 3×20% + 2×30% + 1×50% = 1.7。M1 的时钟频率为 500MHz,M2 的时钟频率为 400MHz,所以 M1 上一条指令的平均执行时间为 2.3/500M = 4.6ns,M2 上一条指令的平均执行时间为 1.7/400M = 4.25ns。M2 和 M1 的性能之比为 4.6/4.25≈1.08,所以 M2 的生产厂商可以声称其性能是 M1 的 1.1 倍。
(2) 在 M1 和 M2 上都用 C2 编译器,则 M1 的 CPI 为 1×30% + 2×30% + 3×40% = 2.1,M2 的 CPI 为 3×30% + 2×30% + 1×40% = 1.9。M1 的时钟频率为 500MHz,M2 的时钟频率为 400MHz,所以 M1 上一条指令的平均执行时间为 2.1/500M = 4.2ns,M2 上一条指令的平均执行时间为 1.9/400M = 4.752ns。M1 和 M2 的性能之比为 4.75/4.2≈1.13,所以 M1 的生产厂商可以声称其性能是 M2 的 1.13 倍。18. 若机器 M1 和 M2 具有相同的指令集,其时钟频率分别为 1GHz 和 2GHz。在指令集中有 4 种不同类型的指令 A、B、C、D。下表给出了在 M1 和 M2 上每类指令的平均时钟周期数 CPI。
机器
A
B
C
D
M1
1
3
2
4
M2
2
2
4
4
请回答下列问题:
(1) M1 和 M2 的峰值 MIPS 各是多少?
(2) 假定某程序 P 的指令序列中,4 类指令具有完全相同的指令条数,则程序 P 在 M1 和 M2 上运行时,哪台机器更快?快多少?18.【参考答案】
(1) 计算峰值 MIPS 时应该选择 CPI 最少的指令,故在 M1 上可以选择一段全部由 A 类指令组成的程序,在 M2 上可以选择一段全部由 A 类和 B 类指令组成的程序。由于 MIPS = 主频 /(CPI×10⁶),所以 M1 的峰值 MIPS 为 1GHz/(1×10⁶) = 1000MIPS,M2 的峰值 MIPS 为 2GHz/(2×10⁶) = 1000MIPS。
(2) 对于程序 P,每类指令的条数均占 1/4,故 M1 的 CPI 为 (1 + 3 + 2 + 4)/4 = 2.5,M2 的 CPI 为 (2 + 2 + 4 + 4)/4 = 3。由于 CPU 执行时间 = (指令条数 ×CPI)/ 主频,假设程序 P 的指令条数为 N,则 P 在 M1 上的执行时间为 2.5N/1GHz = 2.5N(单位为 ns),则 P 在 M2 上的执行时间为 3N/2GHz = 1.5N(单位为 ns)。所以 M2 执行 P 的速度更快,每条指令平均快 1ns。从该题可以看出,虽然程序 P 在 M1 中每条指令执行所花的时钟周期数少,但是,因为 M2 的时钟频率更快,时钟周期更短,使得每条指令的平均执行时间更短。19. 假定某编译器对某段高级语言程序编译生成两种不同的指令序列 S1 和 S2,在时钟频率为 2GHz 的机器 M 上运行,目标指令序列中用到的指令类型有 A、B、C 和 D 四类。四类指令在 M 上的 CPI 分别为 1、1、2、3,两个指令序列 S1 和 S2 所用的各类指令条数如下表所示。
指令序列
A
B
C
D
S1
1
3
2
4
S2
2
2
4
4
请回答下列问题:
(1) S1 和 S2 各有多少条指令?
(2) S1 和 S2 所含的时钟周期数各为多少?
(3) S1 和 S2 的 CPI 各为多少?
(4) S1 和 S2 的执行时间各为多少?19.【参考答案】
(1) S1 的指令条数为 1 + 3 + 2 + 4 = 10。S2 的指令条数为 2 + 2 + 4 + 4 = 12。
(2) S1 的时钟周期数为 1×1 + 3×1 + 2×2 + 4×3 = 20。S2 的时钟周期数为 2×1 + 2×1 + 4×2 + 4×3 = 24。
(3) S1 的 CPI 为 (1×1 + 3×1 + 2×2 + 4×3)/10 = 2。S2 的 CPI 为 (2×1 + 2×1 + 4×2 + 4×3)/12 = 2。
(4) S1 的执行时间为 20/(2×10⁹) s = 10ns。S2 的执行时间为 24/(2×10⁹) s = 12ns。1.2.4 真题演练
20.【2010】下列选项中,能缩短程序执行时间的措施是( )。
I. 提高 CPU 时钟频率
II. 优化数据通路结构
III. 对程序进行编译优化
A. 仅 I 和 II
B. 仅 I 和 III
C. 仅 II 和 III
D. I、II 和 III20.【参考答案】 D
【解析】 CPU 时钟频率(主频)越高,在程序的 CPI 一定的条件下,所消耗的时间越少,I 正确。优化数据通路,可提高数据在 CPU 内的传输效率(详见第 5 章),II 正确。对程序进行编译优化,可以简化复杂指令序列,从而缩短程序执行时间,III 正确。21.【2011】下列选项中,描述浮点操作速度指标的是( )。
A. MIPS
B. CPI
C. IPC
D. MFLOPS21.【参考答案】 D
【解析】 MIPS 是每秒执行多少百万条指令。CPI 是平均每条指令的时钟周期数。IPC 是 CPI 的倒数,即每个时钟周期执行的指令数。MFLOPS 是每秒执行多少百万条浮点数运算,用来描述浮点数运算速度。22.【2012】假定基准程序 A 在某计算机上的运行时间为 100s,其中 90s 为 CPU 时间,其余为 IO 时间。若 CPU 速度提高 50%,I/O 速度不变,则运行基准程序 A 所耗费的时间是( )。
A. 55s
B. 60s
C. 65s
D. 70s22.【参考答案】 D
【解析】 CPU 提速 50% 后,CPU 时间为 90/1.5 = 60s,加上 I/O 时间 10s,共 70s。23.【2013】某计算机主频为 1.2GHz,其指令分为 4 类,它们在基准程序中所占比例及 CPI 如下表所示。该机的 MIPS 数是( )。
指令类型
所占比例
CPI
A
50%
2
B
20%
3
C
10%
4
D
20%
5
A. 100
B. 200
C. 400
D. 60023.【参考答案】 C
【解析】 由题目所知计算机主频为 1.2GHz,即 1200MHz,又因为基准程序的 CPI 为 2×0.5 + 3×0.2 + 4×0.1 + 5×0.2 = 3,故该机器的 MIPS = 主频 / CPI = 1200/3 = 400。24. 【2014】程序 P 在机器 M 上的执行时间是 20 秒,编译优化后,P 执行的指令数减少到原来的 70%,而 CPI 增加到原来的 1.2 倍,则 P 在 M 上的执行时间是( )。
A. 8.4s
B. 11.7s
C. 14s
D. 16.8s24.【参考答案】 D
【解析】 不妨设原来指令条数为 x,那么每条指令的平均执行时间就为 20/x 秒。由题目可知,经过编译优化后的指令条数减少到原来的 70%,即优化后的指令条数为 0.7x。又因为 CPI 增加到原来的 1.2 倍,即每条指令的平均执行时间为 1.2×20/x,指令条数 × 每条指令的平均执行时间 = 0.7x×1.2×20/x = 16.8s,即 P 在 M 上的执行时间为 16.8s。25. 【2017】假定计算机 M1 和 M2 具有相同的指令集体系结构 (ISA),主频分别为 1.5GHz 和 1.2GHz。在 M1 和 M2 上运行某基准程序 P,若平均 CPI 分别为 2 和 1,则程序 P 在 M1 和 M2 上运行时间的比值是( )。
A. 0.4
B. 0.625
C. 1.6
D. 2.525.【参考答案】 C
【解析】 程序 P 在 M1 和 M2 上运行时间的比值是 (2/1.5)/(1/1.2) = 1.6。26. 【2020】下列给出的部件中,其位数(宽度)一定与机器字长相同的是( )。
I. ALU
II. 指令寄存器
III. 通用寄存器
IV. 浮点寄存器
A. 仅 I、II
B. 仅 I、III
C. 仅 II、III
D. 仅 II、III、IV26.【参考答案】 B
【解析】 机器字长是指计算机能直接处理的二进制数据的位数,是 CPU 内部用于整数运算的数据通路的宽度。机器字长与通用寄存器位数 (宽度) 和 CPU 内部的运算器位数相等。而指令寄存器的位数与指令字长相同。27. 【2021】2017 年公布的全球超级计算机 TOP 500 排名中,我国 “神威・太湖之光” 超级计算机蝉联第一,其浮点运算速度为 93.0146 PFLOPS,说明该计算机每秒钟内完成的浮点操作次数约为( )。
A. 9.3×10¹³ 次
B. 9.3×10¹⁵次
C. 9.3 千万亿次
D. 9.3 亿亿次27.【参考答案】 D
【解析】 PFLOPS 为每秒执行千万亿 (10¹⁵) 次浮点运算的次数。因此得出 93.0146 PFLOPS 每秒 93×10¹⁵ = 9.3×10¹⁶次浮点运算,也就是每秒 9.3 亿亿次浮点运算。故本题选 D。1.3 章末总结
学习完本章,初步进入了令人兴奋的计算机系统世界,这是一个新思想层出不穷、非常有趣的领域。首先从计算机系统的组成结构出发,了解到计算机由硬件和软件组成,其中软件又分为系统软件和应用软件。在此书中,主要介绍硬件,但也要意识到 “软硬件在逻辑上是等效的”。知晓了冯・诺依曼计算机的主要特点,明白了冯・诺依曼计算机是由运算器、存储器、控制器、输入设备和输出设备这五大功能部件组成。当然,本章只需掌握五大功能部件的概念及功能即可,因为其工作原理会在后续章节深入学习。其中运算器会在第 2 章学习、存储器会在第 3 章学习、控制器会在第 5 章学习、输入输出设备会在第 6 章学习。
想要计算机高效工作,对计算机系统的层次结构进行划分是必不可少的。因此需要清楚地知道从底层硬件到上层软件,需要划分多少个层次。编写一段程序,也要知道这段程序是如何变成机器可以执行的代码的。事实上硬件和软件设计者都采用分层的方法构建计算机系统,每个下层都对其上层隐藏本层的细节。
买来一台计算机,又想知道这台计算机性能怎么样,此时各个性能指标派上了用场。当然,不能仅凭单个指标来断言计算机性能是好是坏。如果经常用计算机来进行科学计算,此时衡量浮点数运算速度的指标(FLOPS、MFLOPS 等)就比较重要。或许有些指标在生活中不常用到,但从考试的角度来说,计算机的性能指标却是本章重点,需要掌握基本概念并能熟练计算。本章开头提出的问题的参考答案如下:
1.冯・诺依曼计算机的主要特点有哪些?
1.采用 “存储程序” 工作方式。
2.计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备 5 大部件组成。
3.计算机内部采用二进制 “0”、“1” 来表示指令和数据,两者形式上没有区别。
4.指令和数据存放在存储器中,按地址访问。
5.指令由操作码和地址码组成,操作码用来表示操作的类型,地址码用来表示操作数在存储器中的位置。
2.计算机硬件的基本组成以及它们的功能是什么?
1.运算器用来进行各种算术逻辑运算。
2.控制器用来执行指令,送出操作控制信号。
3.存储器用来存放指令和数据。
4.输入和输出设备用来实现计算机和用户之间的信息交换。
3.计算机完成一个任务的大致过程是什么?
1.使用编程语言编写源程序。
2.用语言处理程序将源程序翻译成机器代码。
3.将包含指令和数据的机器代码装入内存,然后从第一条指令开始执行。
4.指令执行过程:取指令、指令译码、取操作数、运算、送结果、PC 指向下一条指令。(详见第 5 章)
5.重复第四步,不断执行指令,直至所有指令执行完。
4.如何衡量计算机的性能?
衡量计算机性能的基本指标有吞吐量、响应时间、CPU 时钟周期、主频、CPI、MIPS、MFLOPS 等。各指标之间的关系如下:1.时钟周期 = 1 / 主频
2.CPU 时钟周期数 = 指令条数 ×CPI
3.CPU 执行时间 = CPU 时钟周期数 × 时钟周期 = (指令条数 ×CPI)× 时钟周期 = CPU 时钟周期数 / 主频 = (指令条数 ×CPI)/ 主频
4.MIPS = 指令条数 /(执行时间 ×10⁶) = 主频 /(CPI×10⁶)
一般采用一组基准测试程序来对计算机的性能进行评测。对于评测程序中频繁出现的语句,可以通过编译器优化使评测程序的运行效率大幅提高。
计算机组成原理第1章 概述(竟成)
于 2025-05-21 11:47:18 首次发布