前言
鄙人已通过软考中级,在备考期间一边做笔记一边备考,想着考过了,笔记或许对大家备考有些许的帮助,因此有了这篇针对知识点、考点、分值(对照考点对应的习题)的详细笔记,以及个人的考试技巧,笔记将会分为上午题、下午题两大部分进行编写!每周2–3章更给大家,尽可能在软考之前更新完成,有需要的同学可以在线阅读,共同进步~
祝大家取得好成绩!
第1章 计算机系统知识(5-6分)
1.1 计算机系统基础知识
1.1.1 计算机系统硬件基本组成
计算机系统是由硬件和软件组成的,它们协同工作来运行程序。计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部件组成。CPU是硬件系统的核心。
1.1.2 中央处理单元
中央处理单元(CPU)是计算机系统的核心部件,它复制获取程序指令、对指令进行译码并加以执行。
-
CPU功能
- 程序控制。CPU通过执行指令来控制程序的执行顺序,这是 CPU 的重要功能。
- 操作控制。一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。
- 时间控制(以上三个属于控制器)。CPU 对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。
- 数据处理(属于运算器)。数据处理。CPU 通过对数据进行算术运算及逻辑运算等方式进行加工处理,数据加工处理的结果被人们所利用。所以,对数据的加工处理也是 CPU 最根本的任务。
此外,CPU 还需要对系统内部和外部的中断(异常)做出响应,进行相应的处理。
例题: 计算机执行指令的过程中,需要由 (1) 产生每条指令的操作信号并将信号送往相应的部件进行处理,以完成指定的操作。(2019年上半年)
(1) A. CPU的控制器 B. CPU的运算器 C. DMA控制器 D. Cache控制器
答案:A -
CPU的组成
CPU 主要由运算器、控制器、寄存器组和内部总线等部件组成,如图1-1所示。
1) 运算器
运算器由算术逻辑单元(Arithmetic and Logic Unit, ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器等组成,它是数据加工处理部件,用于完成计算机的各种算术和逻辑运算。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器有如下两个主要功能。(1)执行所有的算术运算,例如加、减、乘、除等基本运算及附加运算。
(2)执行所有的逻辑运算并进行逻辑测试,例如与、或、非、零值测试或两个值的比较等。下面简要介绍运算器中各组成部件的功能。
(1) 算术逻辑单元(ALU)。ALU 是运算器的重要组成部件,负责处理数据,实现对数据的算术运算和逻辑运算。
(2)累加寄存器(AC)。AC 通常简称为累加器,它是一个通用寄存器,其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为 ALU 提供一个工作区。例如,在执行一个减法运算前,先将被减数取出暂存在 AC 中,再从内存储器中取出减数,然后同 AC 的内容相减,将所得的结果送回 AC中。运算的结果是放在累加器中的,运算器中至少要有一个累加寄存器。
例题:在CPU中,常用来为ALU执行算术逻辑运算提供数据并暂存运算结果的寄存器是(1)。(2014年上半年)
(1) A、程序计数器 B、状态寄存器 C、通用寄存器 D、累加寄存器
答案:D
CPU执行算术运算或者逻辑运算时,常将源操作数和结果暂存在(1)中。(2017年上半年)
(1)A、程序计数器(PC) B、累加寄存器(AC) C、指令寄存器(IR) D、地址寄存器(AR)
答案:B
(3)数据缓冲寄存器(DR)。
在对内存储器进行读/写操作时,用DR暂时存放由内存储器读/写的一条指令或一个数据字,将不同时间段内读/写的数据隔离开来。DR的主要作用为:作为CPU和内存、外部设备之间数据传送的中转站;作为CPU和内存、外围设备之间在操作速度上的缓冲;在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。
(4)状态条件寄存器(PSW)。
2)控制器
运算器只能完成运算,而控制器用于控制整个 CPU 的工作,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。 控制器一般包括指令控制逻辑、时序控制逻辑、总线控制還辑和中断控制逻辑等几个部分。
指令控制逻辑要完成取指令、分析指令和执行指令的操作,其过程分为取指令、指令译码、按指令操作码执行、形成下一条指令地址等步骤。
例题:在CPU中,(1)不仅要保证指令的正确执行,还要能够处理异常事件。(2012年下半年)
(1)A、运算器 B、控制器 C、寄存器组 D、内部总线
答案:B
(1)指令寄存器(IR)。保存当前cpu执行的指令,对用户是完全透明的。当 CPU 执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入IR 暂存,指令译码器根据IR 的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。
(2) 程序计数器(PC)。
- 具有寄存信息和计数两种功能
- 修改的过程通常只是简单地对PC加1
- 跟踪地址指令的寄存器
- 要将
程序计数器
的内容送到地址总线上 - 程序员可访问
PC 具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分两种情况,一是顺序执行,二是转移执行。在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的内容即是程序第一条指令的地址。执行指令时,CPU 自动修改PC 的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移的地址得到。即跟踪地址指令的寄存器。为从内存读取指令操作码,首先要将程序计数器
的内容送到地址总线上。
(3) 地址奇存器(AR)。AR 保存当前 CPU 所访问的内存单元的地址。由于内存和 CPU存在着操作速度上的差异,所以需要使用 AR 保持地址信息,直到内存的读/写操作完成为止。
(4)指令译码器(ID)。指令包含操作码和地址码两部分,为了能执行任何给定的指令,必须对操作码进行分析,以便识别所完成的操作。指令译码器就是对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,完成所需的功能。
时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。总线逻辑是为多个功能部件服务的信息通路的控制电路。中断控制逻辑用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给 CPU 处理。
计算机指令一般包括操作码和地址码两部分,为分析执行一条指令,其(5)。(2010年上半年)
(5) A、操作码应存入指令寄存器(IR),地址码应存入程序计数器(PC)
B、操作码应存入程序计数器(PC),地址码应存入指令寄存器(IR)
C、操作码和地址码都应存入指令寄存器(IR)
D、操作码和地址码都应存入程序计数器(PC)
答案:C
3) 寄存器组
寄存器组可分为专用寄存器和通用寄存器。运算器和控制器中的寄存器是专用寄存器,其作用是固定的。通用寄存器用途广泛并可由程序员规定其用途,其数目因处理器不同有所差异。
1.1.2.1 习题总结
-
以下关于CPU的叙述中,错误的是(1)。(2009年下半年)
A、CPU产生每条指令的操作信号并将操作信号送往相应的部件进行控制
B、程序计数器PC除了存放指令地址,也可以临时存储算术/逻辑运算结果
C、CPU中的控制器决定计算机运行过程的自动化
D、指令译码器是CPU控制器中的部件
答案:B;不可以存储算术,ACD书里原内容
-
在CPU的寄存器中,(5)对用户是完全透明的。(2011年下半年)
A、程序计数器 B、指令寄存器 C、状态寄存器 D、通用寄存器
答案:B
在汇编语言层序中,程序员可以直接访问通用寄存器以存取数据,可以访问状态寄存器以获取有关数据处理结果的相关信息,可以通过相对程序计数器进行寻址,但是不能访问指令寄存器。
-
CPU中译码器的主要作用是进行(6)。(2011年下半年)
A、地址译码 B、指令译码 C、数据译码 D、选择多路数据至ALU
答案:B
-
在CPU中,(1)不仅要保证指令的正确执行,还要能够处理异常事件。(2012年下半年)
A、运算器 B、控制器 C、寄存器 D、内部总线
答案:B;书本内容:它不仅要保证程序的正确性,而且要能够处理异常事件。
-
计算机执行指令的过程中,需要由(1)产生每条指令的操作信号并将信号送往相应的部件进行处理,以完成指定的操作。(2019年上半年)
A、CPU的控制器 B、CPU的运算器 C、DMA控制器 D、Cache控制器
答案:A;
操作控制。一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。
-
为实现程序指令的顺序执行,CPU(1)中的值将自动加1.(2010年上半年)。
A、指令寄存器(IR) B、程序计数器(PC) C、地址寄存器(AR) D、指令译码器(ID)
答案:B
-
在CPU中用于跟踪指令地址的寄存器是(1)。(2011年上半年)
A、地址寄存器(AR) B、数据寄存器(DR) C、程序计数器(PC) D、指令寄存器(IR)
答案:C
程序计数器的功能是用于存放下一条指令所在单元的地址。
AR是保存当前CPU所访问的内存单元的地址 -
计算机在一个指令周期的过程中,为从内存读取指令操作码,首先要将(2)的内容送到地址总线上。(2016年下半年)
A、指令寄存器(IR) B、通用寄存器(GR) C、程序计数器(PC) D、状态寄存器(PSW)
答案:C
-
CPU在执行指令的过程中,会自动修改(1)的内容,以便使其保持的总是将要执行的下一条指令的地址。
A、指令寄存器 B、程序计数器 C、地址寄存器 D、指令译码器
答案:B
-
计算器中提供指令地址的程序计数器PC在(2)中。(2020年下半年)
A、控制器 B、运算器 C、存储器 D、I/O设备
答案:A
-
在CPU中,用(1)给出将要执行的下一条指令在内存中的地址。(2021年上半年)
A、程序计数器 B、指令寄存器 C、主存地址寄存器 D、状态条件寄存器
答案:A
1.1.3 进制转换
1.1.3.1二进制
- 进制
计算机的工作是基于二进制原理的,在计算机内,不管是什么样的数据,都采用二进制编码形式表示和处理。 - 二进制转十进制
N= n n − 1 + n n − 2 + . . . ( n ) 0 n^{n-1}+n^{n-2}+...(n)^0 nn−1+nn−2+...(n)0 - 十进制转二进制
整数:采用“除2取余”发,即逐次除以2,直至商为0,得到的余数倒排,即为二进制整数部分各位的数码
小数:采用“乘2取整”法,可能会出现循环,无法精准转换
eg:117.3125转换二进制
先转换117->得到117D=1110101B
对于小数部分0.3125 →
①0.3125 * 2 = 0.625 --> 0
②0.625 * 2 = 0.25 --> 1
③0.25 * 2 = 0.5 --> 0
④0.5 * 2 = 1 -->1
得到0101B
1.1.3.2 进制转换总结
-
十进制整数转二进制(整数)
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
-
十进制小数转二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。
-
案例1:如 0.625=(0.101)B
-
0.625*2=1.25 ……取出整数部分1
0.25*2=0.5 ……取出整数部分0
0.5*2=1 ……取出整数部分1
-
例如将0.125转换为二进制:
-
0.125 * 2 = 0.25 ------0 0.25 * 2 = 0.5 ------0 0.5 * 2 = 1.0 ------1 当小数部分为0就可以停止乘2了,然后正序排序就构成了二进制的小数部分:0.001
-
如果小数的整数部分有大于0的整数时,将整数部分和小数部分先单独转为二进制,再合在一起就可以了,例如:
-
假设要将8.125 转换为二进制 现将8转为二进制:得到1000 再将0.125转为二进制:得到0.001 合并后为1000.001
-
-
二进制转十进制
二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右。
-
十进制转八进制
案例1**:**八进制数56转换为十进制数
( 56 ) 8 = 5 ∗ 8 1 + 6 ∗ 8 0 = 46 (56)_8 = 5*8^1+6*8^0=46 (56)8=5∗81+6∗80=46
案例2: 十进制数转换为八进制数
得出结果为:余数取反法,即结果为117
-
二进制转八进制
二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位,分好组以后,将三位二进制按权相加,得到的数就是一位八进制数,然后按顺序排列,小数点的位置不变,最后得到的就是一个八进制数。
在向左(或向右)取三位时,取到最高位(最低位)如果无法凑足三位,就可以在小数点的最左边(或最右边)补0,帮助进行换算
-
十六进制转十进制
将十六进制数(0.D4)16转换成十进制数。
-
十进制转十六进制
采用"除16取余,逆序排列"法
-
二进制转十六进制
如果把四位二进制数看作一个整体,那么刚好与十六进制的一个数对应。因此,如果从二进制数的最低位起向高位每四位一组(不足四位时补0),再把每组对应为十六进制数码,就可以将二进制数转化成十六进制数了
案例1:(10111101010)= 0101 1110 1010 =5EA
反过来,若将十六进制的每个数码写成四位的二进制数(不足四位时补0),就将十六进制数转化成二进制数
案例2:(1A2B)=0001 1010 0010 1011
1.1.4 计算机系统中存储器知识
-
容量计算概述
- 按位计算(b,bit):存储容量 = 存储单元个数 * 存储字长
- 按字节计算(B,Byte):存储容量 = 存储单元个数 * 存储字长 / 8
- 单位转换:1 字节 = 8 位,即 1 Byte = 8 bit
-
容量计算
-
存储单元个数 = 末地址 - 首地址 + 1
根据公式 存储单元个数 = 末地址 - 首地址 + 1 可知
存储空间 = C B F F F H − A 4000 H + 1 = 28000 H = 0010 1000 0000 0000 0000 B = 160 KB
注: 1 KB = 210 B -
存储容量
计算方式 计算公式 单位 按 位 计算 存储容量 = 存储单元个数 × 存储字长 比特、bit、b 按 字节 计算 存储容量 = 存储单元个数 × 存储字长/8 字节、Byte、B
-
-
所需芯片数
-
所需芯片数 = 存储空间 / 存储容量
例题:内存按字节编址,地址从A4000H到CBFFFH,共有 (160 K) 个字节。若用存储容量为 32K×8bit 的存储芯片构成该内存,至少需要 ( ? ) 片。
根据公式 所需芯片数 = 存储空间 / 存储容量 可知
所需芯片数 = 160 K ∗ 8 b i t 32 K ∗ 8 b i t = 5 \frac{160K * 8 bit}{32K * 8 bit} = 5 32K∗8bit160K∗8bit=5
-
1.1.4.1 习题总结
-
内存按字节编址从B3000H到DABFFH的区域其存储容量为(5)(2015年下半年)
A、123KB B、159KB C、163KB D、194KB
答案呢:B
-
内存按字节编址。若用存储容量为32K×8bit的存储器芯片构成地址从A0000H到DFFFFH的内存,则至少需要(3)芯片。(2017年下半年)
A、4 B、8 C、16 D、32
答案:B
存储单元个数 = 末地址 - 首地址 + 1,DFFFFH-A0000H+1=40000H,40000H=4×164/210=256K×8bit(1B=8b)
所需芯片数 = 存储空间 / 存储容量,芯片数= 256 K ∗ 8 b i t 32 K ∗ 8 b i t = 8 \frac{256K * 8 bit}{32K * 8 bit} = 8 32K∗8bit256K∗8bit=8
-
设用2K×4位的存储器芯片组成16K×8位的存储器(地址单元为0000H~3FFFH,每个芯片的地址空间连续),则地址单元0B1FH所在芯片的最小地址编号为(4)(2010年下半年)
A、0000H B、0800H C、2000H D、2800H
答案:B
芯片数= 16 K ∗ 8 b i t 2 K ∗ 4 b i t = 16 \frac{16K * 8 bit}{2K * 4bit} = 16 2K∗4bit16K∗8bit=16片。3FFFH-0000H+1=4000H,4000H=4×164b/210=1024kb
1.1.5 数据表示
只记重点:对阶,小阶向大阶对齐,浮点数(尾数)向右移
各种数值在计算机中表示的形式称为机器数,其特点是采用二进制计数制,数的符号用0和1 表示,小数点则隐含,表示不占位置。机器数对应的实际数值称为数的真值。
机器数有无符号数和带符号数之分。无符号数表示正数,在机器数中没有符号位。对于无符号数,若约定小数点的位置在机器数的最低位之后,则是纯整数:若约定小数点的位置在机器数的最高位之前,则是纯小数。对于带符号数,机器数的最高位是表示正、负的符号位,其余位则表示数值。
为了便于运算,带符号的机器数可采用原码、反码和补码等不同的编码方法,机器数的这些编码方法称为码制。
【了解】
1)原码、反码、补码和移码
(1)原码表示法。数值X的原码记为[X]原,如果机器字长为n(即采用m个二进制表数据),则原码的定义如下:
若X是纯整数,则
[ X ] 原 = { X , 0 ≤ X ≤ 2 n − 1 − 1 2 n − 1 + ∣ X ∣ , − ( 2 n − 1 − 1 ) ≤ X ≤ 0 (1) [X]_原=\begin{cases} X,\quad 0\leq X \leq 2^{n-1}-1\\ 2^{n-1}+|X|, -(2^{n-1}-1)\leq X \leq 0 \end{cases} \tag{1} [X]原={X,0≤X≤2n−1−12n−1+∣X∣,−(2n−1−1)≤X≤0(1)
若X是纯小数,则
[
X
]
原
=
{
X
,
0
≤
X
≤
1
2
0
+
∣
X
∣
,
−
1
<
X
≤
0
(1)
[X]_原=\begin{cases} X,\quad 0\leq X \leq 1\\ 2^0+|X|,\quad -1<X≤0\end{cases}\tag{1}
[X]原={X,0≤X≤120+∣X∣,−1<X≤0(1)
[+1]原=0 0000001 [-1]原=1 0000001
[+0,5]原=0 ◇1000000 [-0.5]原=1 ◇1000000 (其中,◇是小数点的位置)
在原码表示法中,最高位是符号位,0 表示正号,1表示负号,其余的》-1 位表示数值的绝对值。数值0的原码表示有两种形式:[+0]原=0 0000000, [-0]原=1 0000000。
(2)反码表示法。数值X的反码记作[X]反,如果机器字长为n,则反码的定义如下:
若X是纯整数,则
[
X
]
反
=
{
X
,
0
≤
X
≤
2
n
−
1
−
1
2
n
−
1
+
X
,
−
(
2
n
−
1
−
1
)
≤
X
≤
0
(1)
[X]_反=\begin{cases} X,\quad 0\leq X \leq 2^{n-1}-1\\ 2^{n-1}+X, -(2^{n-1}-1)\leq X \leq 0 \end{cases} \tag{1}
[X]反={X,0≤X≤2n−1−12n−1+X,−(2n−1−1)≤X≤0(1)
若X是纯小数,则
[
X
]
反
=
{
X
,
0
≤
X
<
1
2
−
2
−
(
n
−
1
)
+
X
,
−
1
<
X
≤
0
(1)
[X]_反=\begin{cases} X,\quad 0\leq X < 1\\ 2-2^{-(n-1)}+X,\quad -1<X≤0\end{cases}\tag{1}
[X]反={X,0≤X<12−2−(n−1)+X,−1<X≤0(1)
2)浮点数。当机器字长为n时,定点数的补码和移码可表示 2n 个数,而其原码和反码只能表示2n-1 个数(0 的表示占用了两个编码),因此,定点数所能表示的数值范围比较小,在运算中很容易因结果超出范围而溢出。浮点数是小数点位置不固定的数,它能表示更大范围的数。
在十进制中,一个数可以写成多种表示形式。例如,83.125 可写成 103× 0.083125 或10 4 × 0.0083125 等。同样,一个二进制数也可以写成多种表示形式。例如,二进制数1011.10101可以写成 24×0.101110101、25×0.0101110101或 25X0.00101110101 等。由此可知,一个二进制数 N可以表示为更一般的形式N=2E×F,其中上称为阶码,F称为尾数。用阶码和尾数表示的数称为浮点数,这种表示数的方法称为浮点表示法。
在浮点表示法中,阶码为带符号的纯整数,尾数为带符号的纯小数。浮点数的表示格式如下:
阶符 | 阶码 | 数符 | 尾数 |
---|
浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度由尾数决定。
如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1位数符)用M位的补码表示,则这种浮点数所能表示的数值范围如下。
最大的正数 = + ( 1 − 2 − M + 1 ) × 2 ( 2 R − 1 − 1 ) 最大的正数=+(1-2^{-{M+1}}) × 2 ^{ (2^{R-1}-1)} 最大的正数=+(1−2−M+1)×2(2R−1−1)
最小的负数 = − 1 × 2 ( 2 R − 1 − 1 ) 最小的负数=-1× 2 ^{ (2^{R-1}-1)} 最小的负数=−1×2(2R−1−1)
1.1.5 补充知识原码、反码、补码
-
原码:最高位表示数的符号,其他表示数值,0为正,1为负
+7(原) = 00000111B -7(原) = 10000111B
-
反码
正数的反码和原码相同
负数的反码是由其原码的符号位不变,其余位按位取反+7(反) = 0000111B -7(反) = 11111000B
-
补码
正数的补码和原码相同
负数的补码是由其原码的符号位不变,其余位按位取反,再在最低位加1+7(补) = 000 0111B -7(补) = 11111001
1.1.5.1 原反补码习题
-
计算机中常采用原码、反码、补码和移码表示数据,其中,±0编码相同的是(5)。(2019年上半年)
A、原码和补码 B、反码和补码 C、补码和移码 D、原码和移码
答案:C
-
若计算机采用8为整数补码表示数据,则运算(2)将产生溢出。(2010年下半年)
A、-127+1 B、-127-1 C、127+1 D、127-1
答案:C
这里考察补码的范围:-2n-1~2n-1-1
则本题的范围是:-27~27 -1=-128~127
1.1.6 补充寻址
立即寻址。操作数就包含在指令中。
直接寻址。操作数存放在内存单元中,指令中直接给出操作数所在存储单元的地址。
寄存器寻址。操作数存放在某一寄存器中,指令中给出存放操作数的寄存器名。
寄存器间接寻址。操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中。
间接寻址。指令中给出操作数地址的地址。
相对寻址。指令地址码给出的是一个偏移量(可正可负),操作数地址等于本条指令的地址加上该偏移量。
变址寻址。操作数地址等于变址寄存器的内容加偏移量。
寻址方式获取的操作数的速度:立即寻址》》寄存器寻址》》直接寻址》》寄存器间接寻址》》间接寻址》》相对寻址==变址寻址
1.1.6.1 寻址习题
-
若CPU要执行的指令为:MOV R1,#45(即将数值45传送到寄存器R1中),则该指令中采用的寻址方式为(4)。(2014年上半年)
A、直接寻址和立即寻址 B、寄存器寻址和立即寻址 C、相对寻址和直接寻址 D、寄存器间接寻址和直接寻址
答案:B
-
在机器指令的地址字段中,直接指出操作数本身的寻址方式称为(4)。(2015年下半年)
A、隐含寻址 B、寄存器寻址 C、立即寻址 D、直接寻址答案:C
1.1.7 校验码
1.1.7.1 奇偶校验码
奇偶校验(Parity Codes)是一种简单有效的校验方法。这种方法通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。对于奇校验,它可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况,即当合法编码中的奇数位发生了错误时,即编码中的1变成0或0变成1,则该编码中1的个数的奇偶性就发生了变化,从而可以发现错误。只能检错,不能纠错
常用的奇偶校验码有3种:水平奇偶校验码、垂直奇偶校验码和水平垂直校验码。
1.1.7.2 海明码
海明码(Hamming Code)是由贝尔实验室的 Richard Hamming 设计的,是一种利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的特定位置上插入k个校验位,通过扩大码距来实现检错和纠错。
设数据位是n位,校验位是k位,则n和k必须满足以下关系:
2
k
−
1
≥
n
+
k
2^k-1≥n+k
2k−1≥n+k
例题:已知数据信息为16位,最少应附加(4)位校验位,以实现海明码纠错。(2016年上半年)
A、3 B、4 C、5 D、6
答案:C
2k-1≥16+k,得到k=5
1.1.7.3 循环冗余校验码
可以检错但不能纠错
采用模二除法运算。
循环冗余校验码(Cyclic Redundancy Check,CRC) 广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。
CRC 的代码格式为:
由此可知,循环冗余校验码是由两部分组成的,左边为信息码(数据),右边为校验码。若信息码占k位,则校验码就占n-k位。其中,n为 CRC 码的字长,所以又称为(n,k)码。校验码是由信息码产生的,校验码位数越多,该代码的校验能力就越强。在求 CRC 编码时,采用的是模2运算。模2加减运算的规则是按位运算,不发生借位和进位。
1.1.7.4 校验码习题
-
以下关于海明码的叙述中,正确的是(5)。(2017年下半年)
A、海明码利用奇偶性进行检错和纠错
B、海明码的码距为1
C、海明码可以检错但不能纠错
D、海明码中数据位的长度与校验位的长度必须相同
答案:A
-
以下关于采用一位奇校验方法的叙述中,正确都是(5)。
A、若所有奇数位出错,则可以检测出该错误但无法纠正错误。
B、若所有偶数位出错,则可以检测出该错误并加以纠错。
C、若有奇数个数据位出错,则可以检测出该错误但无法纠正错误
D、若有偶数个数据位出错,则可以检测出该错误并加以纠正
答案:C
1.2 计算机体系结构
1.2.1 计算机体系结构的发展
-
计算机系统结构概述
计算机体系结构、计算机组织和计算机实现三者的关系如下。
(1)计算机体系结构(Computer Architeeture)是指计算机的概念性结构和功能属性。
(2) 计算机组织(Computer Organization) 是指计算机体系结构的選辑实现,包括机器内的数据流和控制流的组成以及逻辑设计等(常称为计算机组成原理)。
(3) 计算机实现(Computer Implementation) 是指计算机组织的物理实现。 -
计算机系统结构分类
-
指令系统
一个处理器支持的指令和指令的字节级编码称为其指令集体系结构(Instruction Set Architecture, ISA),不同的处理器族支持不同的指令集体系结构,因此,一个程序被编译在一种机器上运行,往往不能在另一种机器上运行。
-
指令集体系结构分类
-
CISC和RISC
CISC和RISC是指令集发展的两种途径。
-
CISC (Complex Instruetion Set Computer,复杂指令集计算机)的基本思想是进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬化,导致机器的指令系统越来越庞大、复杂。事实上,目前使用的绝大多数计算机都属于 CISC类型。
CISC的主要弊端如下:
- 指令集过分庞杂。
- 微程序技术是 CISC 的重要支柱,每条复杂指令都要通过执行一段解释性微程序才能完成,这就需要多个 CPU 周期,从而降低了机器的处理速度。
- 由于指令系统过分庞大,使高级语言编译程序选择目标指令的范围很大,并使编译程序本身元长、复杂,从而难以优化编译使之生成真正高效的目标代码。
- CISC 强调完善的中断控制,势必导致动作繁多、设计复杂、研制周期长。
- CISC 给芯片设计带来很多困难,使芯片种类增多,出错几率增大,成本提高而成品率降低。
-
RISC (Redhuced Instnuction Set Computer,精简指令集计算机)的基本思想是通过减少指令总数和简化指令功能降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译提高指令的执行速度,采用硬布线控制逻辑优化编译程序。RISC 在20 世纪70 年代末开始兴起,导致机器的指令系统进一步精炼而简单。
RISC的关键技术如下。
- 重叠寄存器窗口技术。在伯克利的 RISC 项目中首先采用了重叠奇存器窗口(Overlapping Register Windows)技术。其基本思想是在处理机中设置一个数量比较大的寄存器堆,并把它划分成很多个窗口。每个过程使用其中相邻的3 个窗口和一个公共的窗口,而在这些窗口中有一个窗口是与前一个过程共用,还有一个窗口是与下一个过程共用的。与前一过程共用的窗口可以用来存放前一过程传送给本过程的参数,同时也存放本过程传送给前一过程的计算结果。同样,与下一过程共用窗口可以用来存放本过程传送给下一过程的参数和存放下一过程传送给本过程的计算结果。
- 优化编译技术。RISC 使用了大量的寄存器,如何合理地分配寄存器、提高寄存器的使用效率及减少访存次数等,都应通过编译技术的优化来实现。
- 超流水及超标量技术。为了进一步提高流水线速度而采用的技术。
- 硬布线逻辑与微程序相结合在微程序技术中。
-
CISC和RISC区别总结【记表格即可】
RISC
精简指令集计算机CISC
复杂指令集计算机指令种类 少、精简 多、丰富 指令复杂度 低(简单) 高(复杂) 指令长度 固定 变化 寻址方式 少 复杂多样 实现(译码)方式 硬布线控制逻辑
(组合逻辑控制器)微程序控制技术 通用寄存器数量 多、大量 一般 流水线技术 支持 支持 -
习题
1、 以下关于RISC(精简指令系统计算机)技术的叙述中,错误的是(6)。(2019年上半年)
A、指令长度固定、指令种类尽量少
B、指令功能强大、寻址方式复杂多样
C、增加寄存器数目以减少访问次数
D、用硬布线电路实现指令解码,快速完成指令译码
答案:B
-
-
-
指令的流水处理
-
指令控制方式。指令控制方式有顺序方式、重叠方式和流水方式3种。
-
顺序方式。顺序方式是指各条机器指令之间顺序串行地执行,执行完一条指令后才取下一条指令,而且每条机器指令内部的各个微操作也是顺序串行地执行。这种方式的优点是控制简单。缺点是速度慢,机器各部件的利用率低。
-
重叠方式。重叠方式是指在解释第K条指令的操作完成之前就可以开始解释第K+1 条指令,如图1-2 所示。通常采用的是一次重叠,即在任何时候,指令分析部件和指令执行部件都只有相邻两条指令在重叠解释。这种方式的优点是速度有所提高,控制也不太复杂。缺点是会出现冲突、转移和相关等问题,在设计时必须想办法解决。
-
流水方式。流水方式是模仿工业生产过程的流水线(如汽车裝配线)而提出的一种指令控制方式。流水(Pipelining)技术是把并行性或并发性联入到计算机系统里的一种形式,它把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效地并发工作,如图1-3 所示。
在概念上,“流水”可以看成是“重叠”的延伸。差别仅在于“一次重叠”是把一条指令解释分解为两个子过程,而“流水”则是分解为更多的子过程。
-
-
流水线的种类
- 从流水的级别上,可分为部件级、处理机级以及系统级的流水。
- 从流水的功能上,可分为单功能流水线和多功能流水线。
- 从流水的连接上,可分为静态流水线和动态流水线。
- 从流水是否有反馈回路,可分为线性流水线和非线性流水线。
- 从流水的流动顺序上,可分为同步流水线和异步流水线。
- 从流水线的数据表示上,可分为标量流水线和向量流水线。
-
流水的相关处理
-
吞吐率和流水建立时间
吞吐率是指单位时间内流水线处理机流出的结果数。对指令而言,就是单位时间内执行的指令数。如果流水线的子过程所用时间不一样,则吞吐率p应为最长子过程的倒数,即
p = 1 / m a x { △ t 1 , △ t 2 , . . . , △ t m } p=1/max\{△t_1,△t_2,...,△t_m\} p=1/max{△t1,△t2,...,△tm}
流水线开始工作,需经过一定时间才能达到最大吞吐率,这就是建立时间。若m个子过程所用时间一样,均为△t0,则建立时间T0=m△t0
连续输入n条指令时的吞吐率为:n/执行指令的时间总和+(n-1)×最长时间段
-
-
阵列处理机、并行处理机和多处理机
……
1.2.1.1 流水线补充知识【重点】
一、流水线周期和执行时间的计算
首先是 流水线周期
,指的是流水线执行过程中最长的一段。
比如一条指令取值
3
纳秒,分析4
纳秒,执行1
纳秒,那么这条指令的流水线周期为4
纳秒。
流水线执行时间有两个计算公式,分别是理论公式
和实践公式
。
首先可以确定流水线周期为 4 纳秒。
理论公式的计算方法为:指令全部的执行时间 + (n - 1)x 流水线周期△t。
指令全部的执行时间=第1条指令的执行时间
流水线周期=最长的时间
也就是 (3 + 4 + 1) + (100 - 1) * 4,算出来答案为 404。
实践公式的计算方法为:(K + N - 1) x 流水线周期,其中 k 指的是工序数,题目中工序为取址、分析、执行,工序数为 3。
那么答案就是:(3 + 100 - 1)* 4 ,算出来答案为 408。
在软考中优先使用理论公式,若没有理论公式答案的选项,则使用实践公式替代。
二、流水线吞吐率计算
流水线 吞吐率
,指的是单位时间内,流水线所完成的指令数量。
也就是说,吞吐率 = 指令条数 / 流水线执行时间。
另外对于流水线的最前、最后资源浪费情况,只要流水线足够长,就可以忽略,所以还有一个 最大吞吐率
的概念。
最大吞吐率 = 1 / 流水线周期△t。
还是以之前样例作为演示,如下图所示。
如果有
100
条执行需要执行,每条指令取值3
纳秒,分析4
纳秒,执行1
纳秒,那么流水线吞吐率为多少?
流水线吞吐率 = 100 / 404
最大流水线吞吐率 = 1 / 4。
不同的流水线会给生产带来不同的加速比例,所以有一个 流水线加速比
的概念,计算公式如下:
流水线加速比 = 不使用流水线执行时间 / 使用流水线执行时间
还是之前的这个例子,有 100
条执行需要执行,每条指令取值 3
纳秒,分析 4
纳秒,执行 1
纳秒。
如果不使用流水线,所用时间为单条指令周期(3 + 4 + 1) x 指令条数(100) = 800。
使用流水线答案是 404
,在前面已做计算。
所以流水线加速比为 800 / 404
。
1.2.1.2 习题
-
以下关于指令流水线性能度的叙述中,错误的是(6)(2015年上半年)
A、最大吞吐率取决于流水线中最慢一段所需的时间
B、如果流水线出现断流,加速比会明显下降
C、要使加速和效率最大化应该对流水线各级采用相同的运行时间
D、流水先采用异步控制会明显提供其性能答案:D
-
某四级指令流水线分别完成取指、取数、运算、保存结果四步操作。若完成上述操作的时间依次为8ns、9ns、4ns、8ns,则该流水线的操作周期应至少为(2)ns。(2017年下半年)。
A、4 B、8 C、9 D、33答案:C,操作周期就是最长的操作时间
-
流水线的吞吐率是指单位时间流水线处理任务数,如果各段流水的操作时间不同,则流水线的吞吐率是(6)的倒数。(2018年上半年)
A、最短流水段操作时间 B、各段流水的操作时间总和
C、最长流水段操作时间 D、流水段数乘以最长流水段操作时间答案:C
-
以下关于流水线方式执行指令的叙述中,不正确的是(6)。(2018年下半年)
A、流水线方式可提高单条指令的执行速度
B、流水线方式下可同时执行多条指令
C、流水线方式提高了各部件的利用率
D、流水线方式提高了系统的吞吐率答案:A;提高了整体的效率,执行速度和效率,不单单是执行速度
-
一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间t取指=3△t、分析时间t分析=2△t、执行时间t执行=4△t的情况下,若按串行方式执行,则10条指令全部执行完需要(5)△t。若按照流水方式执行,则执行完10条指令需要(6)△t。(2012年上半年)
A、40 B、70 C、90 D、100
A、20 B、30 C、40 D、45答案:C ,解析:总和的时间×指令数:(3+2+4)△t × 10=90△t
D,解析:流水线执行时间:指令全部的执行时间 + (n - 1)x 流水线周期:(3+2+4)+9×4=45 -
执行指令时,将每一个指令都分解为取指、分析和执行三步,已知取指时间t取指=5△t,分析时间t分析=2△t,执行时间t执行=3△t,如果按照[执行]k,[分析]k+1,[执行]k+2重叠的流水线方式执行指令,从头到尾执行完500条指令需(6)△t。(2019年下半年)
A、2500 B、2505 C、2510 D、2515答案:B;流水线执行时间:指令全部的执行时间 + (n - 1)x 流水线周期:(5+3+2)+499×5=2505
1.2.2 存储系统
-
存储器的层次结构
计算机系统中可能包括各种存储器,如 CPU 内部的通用寄存器组、CPU 内的 Cache(高速绶存)、CPU 外部的 Cache、主板上的主存储器、主板外的联机(在线)磁盘存储器以及脱机(离线)的磁带存储器和光盘存储器等。不同特点的存储器通过适当的硬件、软件有机地组合在一起形成计算机的存储体系结构,如图1-6 所示。其中,Cache 和主存之间的交互功能全部由硬件实现,而主存与辅存之间的交互功能可由硬件和软件结合起来实现。
- Cache(SRAM 静态随机存储器)
- 主存储器 (DRAM 动态随机存储器)
-
存储器的分类
-
按存储器所在的位置分类
按存储器所在的位置可分为内存和外存。- 内存。也称为
主存
,设在主机内或主机板上,用来存放机器当前运行所需要的程序和数据,以便向 CPU 提供信息。相对于外存,其特点是容量小、速度快。 - 外存。也称为
辅存
,如磁盘、磁带和光盘等,用来存放当前不参加运行的大量信息,而在需要时调入内存。
- 内存。也称为
-
按存储器的构成材料分类
按构成存储器的材料可分为磁存储器、半导体存储器和光存储器。
- 磁存储器。磁存储器是用磁性介质做成的,如磁芯、磁泡、磁膜、磁鼓、磁带及磁盘等。
- 半导体存储器。根据所用元件又可分为双极型和 MOS 型:根据数据是否需要刷新又可分为静态(Static Memory)和动态(Dynamic Memory)两类。
- 光存储器。利用光学方法读/写数据的存储器,如光盘 (Optical Disk)
-
按存储器的工作方式分类
按存储器的工作方式可分为读/写存储器和只读存储器。- 读/写存储器(Random Access Memory, RAM)。它指既能读取数据也能存入数据的存储器。
- 只读存储器。工作过程中仅能读取的存储器,根据数据的写入方式,这种存储器又可细分为 ROM、PROM、 EPROM 和 EEPROM 等类型。
- 固定只读存储器(Read Only Memory, ROM)。这种存储器是在厂家生产时就写好数据的,其内容只能读出,不能改变。一般用于存放系统程序
BIOS
和用于微程序控制。 - 可编程的只读存储器(Programmable Read Only Memory,PROM)。其中的内容可以由用户一次性地写入,写入后不能再修改。
- 可擦除可编程的只读存储器(Erasable Programmable Read Only Memory, EPROM).其中的内容既可以读出,也可以由用户写入,写入后还可以修改。改写的方法是写入之前先用紫外线照射 15~20 分钟以擦去所有信息,然后再用特殊的电子设备写入信息。
- 电擦除可编程的只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)。与EPROM 相似,EEPROM 中的内容既可以读出,也可以进行改写。只不过这种存储器是用电擦除的方法进行数据的改写。
- 闪速存储器(Flash Memory)。简称闪存,闪存的特性介于 EPROM 和 EEPROM之间,类似于 EEPROM,也可使用电信号进行信息的擦除操作。整块闪存可以在数秒内删除,速度远快于 EPROM。
- 固定只读存储器(Read Only Memory, ROM)。这种存储器是在厂家生产时就写好数据的,其内容只能读出,不能改变。一般用于存放系统程序
-
按访问方式分类
按访问方式可分为按地址访问的存储器和按内容访问的存储器
-
按寻址方式分类
按寻址方式可分为随机存储器、顺序存储器和直接存储器。
- 随机存储器(Random Access Memory, RAM)。这种存储器可对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间是相同的。
- 顺序存储器(Sequentially Addressed Memory,SAM)。访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器。
- 直接存储器(Direct Addressed Memory, DAM)。介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。
-
-
相联存储器
相联存储器是一种按
内容
访问的存储器。其工作原理就是把数据或数据的某一部分作为关键字,按顺序写入信息,读出时并行地将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字,特别适合于信息的检索和更新。 -
高速缓存
高速缓存用来存放当前最活跃的程序和数据,其特点是:位于 CPU 与主存之间:容量一般在几干字节到几兆字节之间:速度一般比主存快 5~10 倍,由快速半导体存储器构成;其内容是主存局部域的副本,对程序员来说是透明的。-
高速缓存的组成
高速缓存(Cache)、主存(Main Memory)与CPU的关系如图1-8所示。
Cache 存储器部分用来存放主存的部分拷贝(副本)信息。控制部分的功能是判断 CPU 要访问的信息是否在 Cache 存储器中,若在即为命中,若不在则没有命中。命中时直接对 Cache存储器寻址:未命中时,要按照替换原则决定主存的一块信息放到 Cache 存储器的哪一块里。
现代 CPU 中 Cache 分为了多个层级,如图1-9所示。
-
高速缓存中的地址映像方法
在 CPU 工作时,送出的是主存单元的地址,而应从 Cache 存储器中读/写信息。这就需要将主存地址转换成 Cache 存储器的地址,这种地址的转换称为地址映像。Cache 的地址映像有如下3种方法。-
直接映像。直接映像是指主存的块与Cache块的对应关系是固定的,如图1-10所示。
在这种映像方式下,由于主存中的块只能存放在 Cache 存储器的相同块号中,因此,只要主存地址中的主存区号与 Cache 中记录的主存区号相同,则表明访问 Cache 命中。一旦命中,由主存地址中的区内块号立即可得到要访问的 Cache 存储器中的块,而块内地址就是主存地址中给出的低位地址。
直接映像方式的优点是地址变换很简单,缺点是灵活性差。例如,不同区号中块号相同的块无法同时调入 Cache 存储器,即使 Cache 存储器中有空着的块也不能利用。
-
全相联映像。全相联映像如图1-11所示。同样,主存与 Cache 存储器均分成大小相同的块。这种映像方式允许主存的任一块可以调入 Cache 存储器的任何一个块的空间中。
例如,主存为64MB,Cache 为 32KB,块的大小为4KB(块内地址需要12位),因此主存分为 16384 块,块号从0~16383,表示块号需要14 位,Cache 分为8块,块号为0~7,表示块号需3 位。存放主存块号的相联存储器需要有 Cache 块个数相同数目的单元(该例中为8),相联存储器中每个单元记录所存储的主存块的块号,该例中相联存储器每个单元应为 14 位,共8个单元。
在地址变换时,利用主存地址高位表示的主存块号与 Cache 中相联存储器所有单元中记录的主存块号进行比较,若相同即为命中。这时相联存储器单元的编号就对应要访问 Cache 的块号,从而在相应的 Cache 块中根据块内地址(上例中块内地址是12位,Cache 与主存的块内地址是相同的)访问到相应的存储单元。
全相联映像的主要
优点
是主存的块调入 Cache 的位置不受限制,十分灵活。其主要缺点
是无法从主存块号中直接获得 Cache 的块号,变换比较复杂,速度比较慢。 -
组相联映像。这种方式是前面两种方式的折中。具体方法是将 Cache 中的块再分成组。例如,假定 Cache 有16 块,再将每两块分为1组,则 Cache 就分为8组。主存同样分区,每区16 块,再将每两块分为1组,则每区就分为8组。
组相联映像就是規定组采用直接映像方式而块采用全相联映像方式。也就是说,主存任何区的0组只能存到 Cache 的0组中,1组只能存到 Cache 的1组中,依此类推。组内的块则采用全相联映像方式,即一组内的块可以任意存放。也就是说,主存一组中的任一块可以存入Cache 相应组的任一块中。
在这种方式下,通过直接映像方式来决定组号,在一组内再用全相联映像方式来决定 Cache中的块号。由主存地址高位决定的主存区号与 Cache 中区号比较可决定是否命中。主存后面的地址即为组号。
-
-
替换算法:……
-
Cache的性能分析
Cache 的性能是计算机系统性能的重要方面。命中率是 Cache 的一个重要指标,但不是最主要的指标。Cache 设计的目标是在成本允许的条件下达到较高的命中率,使存储系统具有最短的平均访问时间。
……
在指令流水线中,Cache 访问作为流水线中的一个操作阶段,Cache 失效将影响指令的流水。因此,降低 Cache 的失效率是提高 Cache 性能的一项重要措施。当 Cache 容量比较小时,容量因素在Cache 失效中占有比较大的比例。降低 Cache 失效率的方法主要有选择恰当的块容量、提高 Cache 的容量和提高 Cache 的相联度等。
Cache 的命中率与 Cache 容量的关系如图 1-12 所示。Cache 容量越大,则命中率越高,随着 Cache 容量的增加,其失效率接近 0%(命中率遂渐接近 100%)。但是,增加 Cache 容量意味者增加 Cache 的成本和增加 Cache 的命中时间。
-
-
虚拟存储器
在概念上,可以将主存存储器看作一个由若干个字节构成的存储空间,每个字节(称为一个存储单元)有一个地址编号,主存单元的该地址称为物理地址(Physical Address)。当需要访问主存中的数据时,由 CPU给出要访问数据所在的存储单元地址,然后由主存的读写控制部件定位对应的存储单元
,对其进行读(或写)操作来完成访问操作。 -
外存储器
外存储器用来存放暂时不用的程序和数据,并且以文件的形式存储。CPU 不能直接访问外存中的程序和数据,只有将其以文件为单位调入主存才可访问。外存储器主要由磁表面存储器(如磁盘、磁带)、光盘存储器及固态硬盘(采用 Flash 芯片或 DRAM 作为存储介质的存储器)构成。- 磁表面存储器
- 光盘存储器
- 固态硬盘。固态硬盘的存储介质分为两种,一种是采用闪存(FLASH芯片)作为存储介质,另外一种是采用DRAM作为存储介质。
-
磁盘阵列技术
-
存储域网络
1.2.2.1 存储器习题
-
(3)是指按内容访问的存储器。(2009年上半年)
A、虚拟存储器 B、相联存储器 C、高速缓存(Cache) D、随机访问存储器
答案:B
相联存储器是一种按内容访问的存储器 -
(4)不属于按寻址方式划分的一类存储器。(2012年下半年)
A、随机存储器 B、顺序存储器 C、相关联存储器 D、直接存储器答案:C
-
常用的虚拟存储器由(1)两级存储器组成。(2013年上半年)
A、主存-辅存 B、主存-网盘 C、Cache-主存 D、Cache-硬盘答案:A
-
计算机系统的主要是由(4)构成的。
A、DRAM B、SRAM C、Cache D、EEPROM答案:A
DRAM动态随机存储器;SRAM静态随机存储器;Cache高速缓冲器;EEPROM电擦出可编程的只读存储器 -
CPU访问存储器时,被访问数据一般聚集在一个较小的连续存储区域中,若一个存储单元已被访问,则其邻近的存储单元有可能还要被访问,该特性被称为(3)。(2019年上半年)
A、数据局部性 B、指令局部性 C、空间局部性 D、时间局部性答案:C
-
以下关于闪存(Flash Memory)的叙述中,错误的是(4)(2021年上半年)
A、掉电后信息不会丢失,属于非易失性存储器
B、以块为单位进行删除操作
C、采用随机访问方式,常用来代替主存
D、在嵌入式系统中可以用Flash来代替ROM存储器
1.2.2.2 Cache习题
-
以下关于Cache的叙述中,正确的是(6)。(2009年下半年)
A、在容最确定的情况下,替換算法的时间复杂度是影响 Cache 命中率的关键因素
B. Cache 的设计思想是在合理成本下提高命中率
C. Cache 的设计目标是容量尽可能与主存容量相等
D. CPU 中的 Cache 容星应大于 CPU 之外的 Cache 容量答案:B
-
Cache 的地址映像方式中,发生块冲突次数最小的是(3)。(2015年上半年)
A. 全相联映像 B.组相联映像 C. 直接映像 D.无法确定答案:A,冲突少顺序:全相联–》组相联–》直接映像
-
主存与 Cache 的地址映射方式中,(2〉方式可以实现主存任意一块装入 Cache 中
任意位置,只有装满才需要替换。(2016年上半年)
A. 全相联 B. 直接映射 C.組相联 D. 串并联答案: A
-
以下关于 Cache(高速级冲存储器)的叙述中,不正确的是(6)。(2017 年上半
年)
A. Cache 的设置扩大了主存的容量
B. Cache 的内容是主存部分内容的拷贝
C.Cache 的命中率并不随其容量增大线性地提高
D. Cache 位于主存与 CPU 之间答案:A
-
在CPU 內外常需设置多级高速级存(Cache),主要目的是(1)。(2019年下半
年)
A. 扩大主存的存储容量
B. 提高 CPU 访问主存数据或指令的效率
C. 扩大存储系统的存量
D. 提高 CPU 访问内外存储器的速度答案:B
-
在程序的执行过程中,Cache 与主存的地址映像由(3)。(2011,12,13,17,20年下半年)
A. 专门的硬件白动完成
B. 程序员进行调度
C. 操作系统进行管理
D. 程序员和操作系统共同协调完成答案:A;Cache 和主存之间的交互功能全部由硬件实现,而主存与辅存之间的交互功能可由硬件和软件结合起来实现。
1.2.3 输入/输出技术
输入输出(I/O)控制方式
【重点】
1. 程序查询方式:
① CPU和I/O(外设)只能串行工作
CPU需要一直轮询检查,长期处于忙等状态。CPU利用率低。
② 一次只能读/写一个字
③ 由CPU将数据放入内存
2. 中断驱动方式:
① I/O设备通过中断信号主动向CPU报告I/O操作已完成
② CPU和I/O(外设)可并行工作
③ CPU利用率得到提升
④ 一次只能读/写一个字
⑤ 由CPU将数据放入内存
3 . 直接存储器方式(DMA)
① CPU和I/O(外设)可并行工作
② 仅在传送数据块的开始和结束时才需要CPU的干预
③ 由外设直接将数据放入内存
④ 一次性读写的单位为“块”而不是字
1.2.3.1 微型计算机中最常用的内存与接口的编址方法(了解)
- 内存与接口地址独立的编址方法
内存地址与接口地址完全独立且相互隔离,在使用中内存用于存放程序和数据,而接口就用于寻址外设。在编程序和读程序时很容易使用和辦认。缺点就是用于接口的指令太少,功能太弱。 - 内存与接口地址统一编址的方法
内存地址与接口地址统一在一个公共的地址空间,在这些地址空间里拿一些地址分配给接口使用而剩下的就可以归内存使用。优点是原则上用于内存的指令全部都可以用于接口:缺点就在于整个地址空间被分成两部分,一部分分配给接口使用,另一部分分配给内存使用,这经常会导致内存地址不连续。再就是用于内存的指令和用于接口的指令是完全一样的,这在读程序时就要根据参数定义表仔细加以辨认。
1.2.3.2 直接程序控制
直接程序控制方式是指在完成数据的输入/输出中,整个输入/输出过程是在 CPU 执行程序的控制下完成的。这种方式还可以分为以下两种。
- 无条件传送方式:无条件地与 CPU 交换數据,
- 程序查询方式:先通过 CPU 查询外设状态,准备好之后再与 CPU 交换数据。程序查询方式有两大缺点,①降低了 CPU 的效率;②对外部的实发事件无法做出实时响应,其优点在于这种思想很易理解,同时实现这种工作方式也很容易。
1.2.3.3 中断方式
【重点】
1. 中断向量:提供中断服务程序的入口地址
2. 中断响应时间:发出中断请求开始,到进入中断服务程序
3. 保存现场,返回来执行源程序
中断方式利用中断机制,使I/O
系统在与外设交换数据时,CPU 无须等待,也不必查询I/O
状态,即可以抽身出来处理其他任务,因此提高了系统效率。
- 中断处理方法。中断处理方法有中断信号线法、中断软件查询法、菊花链法、总线仲裁法及中断向量表法。
- 多中断信号线法。每个中断源都有属于自己的一根中断请求信号线向 CPU 提出中断请求。
- 中断软件查询法。当 CPU 检测到一个中断请求信号以后,即转入到中断服务程序去轮询每个中断源以确定是谁发出了中断请求信号。对各个设备的响应优先级由软件设定。
- 菊花链法。软件查询的缺陷在于花费的时间太多。菊花链法实际上是一种硬件查询法。……
- 总线仲裁法。一个
I/O
设备在发出中断请求之前,必须先获得总线控制权,所以可由总线仲裁机制来裁定谁可以发出中断请求信号。当 CPU 发出中断响应信号后,该设备即把自己的ID发往数据线由CPU读取。 - 中断向量表法。中断向量表用来保存各个中断源的中断服务程序的入口地址。……
- 中断优先级控制。在进行优先级控制时要解决以下两种情况。
- 当不同优先级的多个中断源同时提出中断请求时,CPU 应优先响应优先级最高的中断源。
- 当CPU 正在为某一个中断源服务时,若有更高优先级的中断源提出中断请求,CPU应能暂时中断正在执行的中断服务程序而转去执行优先级更高的中断源服务,服务结束后再回到原先被中断的优先级较低的中断服务程序继续执行。
- 为了便于实现多级中断嵌套,使用
堆栈
来保护断点和现场最有效。
1.2.3.4 直接存储器存取方式(DMA)
直接存储器存取(Direct Memory Access,DMA)方式是在存储器与I/O
设备间直接传送数据,即在内存与 I/O
设备之间传送一个数据块的过程中,不需要 CPU 的任何干涉,只需要CPU在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时的处理,实际操作由DMA硬件直接执行完成,CPU在此传送过程中可做别的事情。
- CPU是在一个总线周期结束时响应DMA请求的。
在此再强调说明,在DMA传送过程中无须CPU的干预,整个系统总线完全交给了DMAC,由它控制系统总线完成数据传送。在DMA传送数据时要占用系统总线,根据占用总线方法的不同,DMA可以分为中央处理器停止法、总线周期分时法和总线周期挪用法等。无论采用哪种方法,在DMA传送数据期间,CPU不能使用总线。
1.2.3.5 输入/输出处理机
输入/输出处理机(IOP)是一个专用处理机,用于完成主机的输入/输出操作。IOP 根据主机的 I/O 命令,完成对外设数据的输入/输出。它的数据传送方式有三种:字节多路方式、选择传送方式和数组多路方式。
1.2.3.1 中断习题
-
中断向量可提供(2)。(2013年上半年)
A. I/O 设备的端口地址 B.所传送数据的起始地址
C. 中断服务程序的入口地址 D. 主程序的断点地址答案:C
-
为了便于实现多级中断嵌套,使用(3)来保护新点和现场最有效。(2013年上半年)
A. ROM B. 中断向量表 C.通用寄存器 D. 堆栈答案:D
-
计算机中 CPU 的中断响应时间指的是(4)的时间。(2015年上半年)
A. 从发出中断请求到中断处理结束
B. 从中断处理开始到中新处理结束
C.CPU 分析判断中断请求
D.从发出中断请求到开始进入中断处理程序答案:D
-
计算机运行过程中,进到突发事件,要求 CPU 暂时停止正在运行的程序,转去为突
发事件服务,服务完毕,再自动返回原程序继续执行,这个过程称为(2),共处理过
程中保存现场的目的是(3)。(2018 年上半年)
A. 阻塞 B. 中断 C.动态绑定 D.静态绑定
A. 防止去失数据 B. 防止对其他部件造成影响
C. 返回去继续执行原程序 D. 为中断处理程序提供数据
答案:B;C
1.2.3.2输入与输出习题
总结:
1、程序查询方式
①CPU和1/0(外设)只能串行工作CPU需要一直轮询检查,长期处于忙等状态。CPU利用率低
②一次只能读/写一个字
③由CPU将数放入内存2、中断驱动方式
①1/0设备通过中断信号主动向CPU报告1/0操作己完成
②CPU和1/0(外设)可并行工作
③CPU利用率得到提升
④一次只能读/写一个字
⑤由CPU将数据放入内存3、直接存储器存取方式(DMA)
①CPU和工/0(外设)可并行工作
②仅在传送数据块的开始和结束时才需要CPU的干预
③由外设直接将数据放入内存
④一次读写的单位为“块”而不是字
-
以下关于让堂机系统中断概念的叙述中,正确的是(3)。(2010年上半年)
A. 由I/O 设备提出的中断请求和电源掉电都是可屏蔽中断
B.由I/O设备提出的中断请求和电源掉电都是不可屏黻中断
C.由I/O设备提出的中断请求是可屏蔽中断,电源掉电是不可屏蔽中断
D. 由I/O设备提出的中断请求是不可屏藏中断,电源掉电是可屏廠中断答案:C
-
计算机运行过程中,CPU 需要与外设进行数据交换。采用(6)控制技术时,CPU与外设可并行工作。(2017年下半年)
A. 程序查询方式和中新方式
B. 中新方式和 DMA 方式
C. 程序查询方式和 DMA方式
D. 程序查询方式、中断方式和 DMA 方式答案:B
-
异常是指令执行过程中在处理器内部发生的特殊事件,中断是来自处理器外部的请求中件。以下关于中断和异常的叙述中,正确的是(6)(2021年上半年)
A. “DMA 传送结束”、“除运算时除数为0” 都为中断
B. “DMA 传送结束”为中断、“除运算时除数为0” 为异常
C. “DMA 传送结束”为异常、“除运算时除数为口”为中断
D. “DMA 传送结束”、“除运算时除数为0” 都为异常答案:B
-
以下关于中断方式与 DMA 方式的叙述中,正确的是(3)。(2021 年下半年)
A. 中断方式与 DMA 方式都可实现外设与 CPU 之间的并行工作
B.程序中新方式和 DMA 方式在数据传输过程中都不需要 CPU 的干预
C.采用 DMA 方式传输数据的速度比程序中断方式的速度馒
D.程序中断方式和 DMA 方式都不需要 CPU 保护现场答案:A
-
在输入输业控制方法中:采用(1)可以使得设务与主存间的數锅块传送无需 CPU干预。(2010 年下半年)
A. 程序控制输入输出
B. 中断
C. DMA
D. 总线控制答案:C
-
在I/O 设备与主机间进行数据传输时,CPU 只需在开始和结束时作少量处理,而无需干预数据传送过程的是(5)方式。(2012年下半年)
A. 中断
B. 程序查询
C. 无条件传送
D.直接存储器存取答案:D直接存储器存取(DMA)
-
DMA 工作方式下,在(4)之间建立了直接的数据通路。(2013年上半年)
A. CPU 与外设
B. CPU与主存
C. 主存与外设
D. 外设与外设答案:C
-
计算机系统中常用的输入/输出控制方式有无条件传送、中断、程序查询和 DMA 方式等。当采用(3)方式时,不需要 CPU 执行程序指令来传送数据。(2017年上半年)
A. 中断
B. 程序杏询
C.无条件传送
D. DMA答案:D
-
DMA 控制方式是在(2)之间宜接建立数据通路进行数据的交换处理。(2019 年上
半年)
A. CPU 与主存
B. CPU 与外设
C. 主存与外设
D. 外设与外设答案:C
-
采用 DMA 方式传送数据时,每传送一个数据都需要占用一个_(3)_。 (2021 年上半年) (了解即可)
A. 指令周期 B.总线周期 C. 存储周期 D. 机器周期答案:C
1.2.4 总线结构
1.2.4.1 总线的定义与分类
广义地讲,任何连接两个以上电子元器件的导线都可以称为总线,通常分为以下三类。
(1)内部总线。用于芯片一级的互连,分为芯片内总线和元件级总线。芯片内总线用于集成电路芯片内部各部分的连接,元件级总线用于一块电路板内各元器件的连接。
(2) 系统总线。用于插件板一级的互连,用于构成计算机各组成部分(CPU、内存和接口等)的连接。
(3) 外部总线。又称通信总线,用于设备一级的互连,计算机可通过该总线和其他设备进行信息与数据交换。
微机中的总线分为数据总线、地址总线和控制总线3类。不同型号的 CPU 芯片,其数据总线、地址总线和控制总线的条数可能不同。
1.2.4.2 常见总线
系统总线是微处理器芯片对外引线信号的延伸或映射,是微处理器与外存储器及 I/O 接口传输信,息的通路。系统总线
有时也称内总线
,目前比较流行的内总线如下(前3个)。
(1) ISA
(Industry Standard Architecture)总线:它是工业标准总线,向上兼容更早的 PC总线,在PC总线62个插座信号的基础上,再扩充另一个具有36个信号的插座构成ISA总线。它主要包括24条地址线、16条数据线等。
(2) EISA
(Extended Industry Standard Architecture)总线:它是在ISA 总线的基础上发展起来的 32 位总线。该总线定义32位地址线、32位数据线,以及其他控制信号线、电源线等共196个连接点。EISA 总线的传输速率达33MB/s。该总线利用总线插座与 ISA 总线相兼容。
(3) PCI
(Peripheral Component Interconnection)总线:这是当前最流行的总线之一,是由Intel 公司推出的一种局部总线。PCI总线是目前微型机上广泛采用的内总线,采用并行传输方式。PCI总线有适于32位机的124个信号的标准和适于64位机的188个信号的标准。PCI总线的传输速率至少为133Mb/s,64位PCI总线的传输速率为266Mb/s。PCI总线
的工作与CPU
的工作是相互独立的,也就是说,PCI总线时钟与处理器时钟是独立的、非同步的。PCI总线上的设备是即插即用的。接在PCI总线上的设备均可以提出总线请求,通过PCI管理器中的仲裁机构允许该设备成为主控设备,主控设备与从属设备间可以进行点对点的数据传输。PCI总线能够对所传输的地址和数据信号进行奇偶校验检测。
(4)PCIExpress总线
。PCIExpress简称为PCI-E,采用点对点串行连接,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率。相对于传统PCI总线在单一时间周期内只能实现单向传输,PCIExpress的双单工连接能提供更高的传输速率和质量。
(5)前端总线。微机系统中,前端总线(Front Side Bus,FSB)是将CPU连接到北桥芯片的总线。选购主板和CPU时,要注意两者的搭配问题,一般来说,如果CPU不超频,那么前端总线是由CPU决定的,如果主板不支持CPU所需要的前端总线,系统就无法工作。也就是说,需要主板和CPU都支持某个前端总线,系统才能工作。通常情况下,一个CPU默认的前端总线是唯一的。北桥芯片负责联系内存、显卡等数据吞吐量最大的部件,并与南桥芯片连接。CPU通过前端总线(FSB)连接到北桥芯片,进而通过北桥芯片与内存、显卡交换数据。FSE是CPU和外界交换数据的最主要通道,因此FSB的数据传输能力对计算机整体性能作用很大,如果没足够快的FSB,再强的CPU也不能明显提高计算机整体速度。
(6)RS-232C。RS-232C是一条串行外总线,其主要特点是所需传输线比较少,最少只需
三条线(一条发、一条收、一条地线)即可实现全双工通信。传送距离远,用电平传送为15m,电流环传送可达千米。有多种可供选择的传送速率。采用非归零码负逻辑工作,电平≤-3V为
逻辑1,而电平≥+3V为逻辑0,具有较好的抗干扰性。
(7)SCSI总线
。不属于系统总线小型计算机系统接口(SCSI)是一条并行外总线,广泛用于连接软硬磁盘、光盘、扫描仪等。该接口总线早期是8位的,后来发展到16位。传输速率由SCSI-1的5Mb/到16位的Ultra2 SCSI的80Mb/s。今天的传输速率已高达320Mb/s。该总线上最多可接63种外设,传输距离可达20m(差分传送)。
(8)SATA。SATA是SerialATA的缩写,即串行ATA。它主要用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输之用。SATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动校正,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。
(9)USB。通用串行总线(USB)当前风头正劲,近几年得到十分广泛的应用。USB由4条信号线组成,其中两条用于传送数据,另外两条传送+5V容量为500mA的电源。可以经过集线器(Hub)进行树状连接,最多可达5层。该总线上可接127个设备。USB1.0有两种传送速率:低速为1.5Mb/s,高速为12Mb/s。USB 2.0的传送速率为480Mb/s。USB总线最大的优点还在于它支持即插即用,并支持热插拔。
(10)IEEE-1394。IEEE-1394是高速串行外总线,近几年得到广泛应用。IEEE-1394也支持外设热插拔,可为外设提供电源,省去了外设自带的电源,能连接多个不同设备,支持同步和异步数据传输。IEEE-1394由6条信号线组成,其中两条用于传送数据,两条传送控制信号,另外两条传送8~40V容量为1500mA的电源,IEEE-1394总线理论上可接63个设备。IEEE-1394的传送速率从400Mb/s、800Mb/s、1600Mb/s直到3.2Gb/s。
(11)IEEE-488总线。IEEE-488是并行总线接口标准。微计算机、数字电压表、数码显示器等设备及其他仪器仪表均可用IEEE-488总线连接装配,它按照位并行、字节串行双向异步方式传输信号,连接方式为总线方式,仪器设备不需中介单元直接并联于总线上。总线上最多可连接15台设备。最大传输距离为20m,信号传输速度一般为500Kb/s,最大传输速度为1Mb/s。
1.2.4.3 外部总线
外部总线简称为外总线,其标准有七八十种之多,常见的外总线标准有如下几种。
(1) RS-232-C:一种串行外总线,主要特点是所需传输线比较少,最少只需3条线即可实现全双工通信;传输距离远,用电平传送为 15m,用电流环传送为 1km:有多种可供选择的传输速率,具有较好的抗干扰性。
(2) SCSI(Small Computer Standard Interface)总线:一种并行外总线,广泛用于连接硬盘、光盘等。该接口早期是8位的,后来发展成16位。sCSl-3 定义了怎样在8 位 SCSI 总线上每秒传输 20MB 数据和在16位 Wide scsl 总线上每秒传输 40MB 数据。该总线上最多可接63 种外设,传输距离可达 20m。
(3) USB(Universal Serial Bus)总线:USB 是1995年由微软、康柏、IBM 等公司联合制定的一种新的 PC 串行通信协议。USB由4条信号线组成,可以经过集线器进行树状连接,最多可达5层。该总线上可接 127 个设备,其最大的优点在于支持即插即用技术并支持热插拔。
(4) IEEE-1394: 一种串行外总线,由6条信号线组成, 可接 63 个设备,传输速率从400MB/S、 800MB/S、1600MB/s 直到3.2GB/s,最大优点在于支持即插即用并支持热插拔。
1.2.4.4 总线习题
-
处理机主要由处理器、存储器和总线组成,总线包括(4)。(2009 年上半年)
A. 数据总线、地址总线、控制总线
B. 并行总线、串行总线、逻辑总线
C. 单工总线、双工总线、外部总线
D.逻辑总线、物理总线、内部总线答案:A;微机中的总线分为数据总线、地址总线和控制总线3类。不同型号的 CPU 芯片,其数据总线、地址总线和控制总线的条数可能不同。
-
若内行容量为 4GB,字长为32,则(3),(2010年下半年)
A. 地址总线和数据总线的宽度都为32
B. 地址总线的宽度为30,数据总线的宽度为32
C. 地址总线的宽度为30,数据总线的宽度为8
D. 地址总线的宽度为32,数据总线的宽度为8试题(3)分析
本题考查计算机系统的总线基础知识。内存容最为 4GB,即内存单元的地址宽度为32 位。字长为32位即要求数据总线的宽度为32位,因此地址总线和数据总线的宽度都为 32。
参考答案 A -
在计算机系统中采用总线结构,便于实现系统的积木化构造,同时可以(3)。(2011 年上半年)
A. 提高数据传输速度
B. 提高数据传输量
C. 减少信息传输线的数量
D.减少指令系统的复杂性试题(3)分析
本题考查计算机系统的基础知识。
总线是连接计算机有关部件的一组信号线,是计算机中用来传送信息代码的公共通道。采用总线结构主要有以下优点:简化系统结构,便于系统设计制造;大大减少了连线数目,便于布线,减小体积,提高系统的可業性:便于接口设计,所有与总线连接的设备均采用类似的接口:便于系统的打充、更新与灵活配置,易于实现系统的模块化:便于设备的软件设计,所有接口的软件就是对不同的口地址进行操作:便于放障诊断和维修,同时也降低了成本。
参考答案: C -
总线复用方式可以(4)。(2011年下半年)
A. 提高总线的传输带宽
B. 增加总线的功能
C. 减少总线中信号线的数量
D.提高 CPU 利用率试题(4)分析
本题考查总线基础知识。
总线是一组能为多个部件分时共享的信息传送线,用来连接多个部件并为之提供信.息交换通路,通过总线复用方式可以减少总线中信号线的数量,以较少的信号线传输更多的信息。
参考答案 C -
总线宽度为 32bit,时钟频率为 200MHz,若总线上每5个时钟周期传送一个 32bit的字,则该总线的带宽为(5)MB/s.(2015 年上半年)
A. 40
B. 80
C. 160
D. 200本題考查计算机系统的基础知识。
总线宽度是指总线的线数,即数据信号的并行传输能力,也体现总线占用的物理空间和成本:总线的带宽是指总线的最大数据传输率,即每秒传输的数据总量。总线宽度与时钟颊率共同决定了总线的带宽。32bit/8=4 Byte, 200MHz / 5 ×4 Byte = 160 MB/s
参考答案(5) C -
以下关于总线的叙述中,不正确的是(6)。(2016年上半年)
A.并行总线适合近距离高速数据传输
B. 串行总线适合长距离数据传输
C.单总线结构在一个总线上适应不同种类的设备,设计简单且性能很高
D.专用总线在设计上可以与连接设备实现最佳匹配试题(6)分析
本题考查计算机系统基础知识。
串行总线将数据一位一位传输,数据线只需要一根(如果支持双向需要2根),并行总线是将数据的多位同时传输(4位,8位,甚至64位,128 位),显然,并行总线的传输速度快,在长距离情况下成本高,串行传输的速度慢,但是远距离传输时成本低。
单总线结构在一个总线上适应不同种类的设备,通用性强,但是无法达到高的性能
要求,而专用总线则可以与连接设备实现最佳匹配。
参考答案:C -
以下关于 PCI 总线和 SCSI 总线的叙述中,正确的是(2)。(2021年下半年)
A. PCI 总线是串行外总线,SCSI 总线是并行内总线
B. PCI 总线是串行内总线,SCSl 总线是申行外总线
C. PCI 总线是并行内总线,SCSl 总线是串行内总线
D. PCI 总线是并行内总线,SCSl 总线是并行外总线答案:D
1.3 安全性、可靠性与系统性能评测基础知识
1.3.1.1 计算机安全概述
计算机安全是指计算机资源安全,是要保证这些计算机资源不受自然和人为的有害因素的威胁和危害。计算机资源由系统资源和信息资源两大部分组成。系统资源包括硬件、软件、配套设备设施、有关文件资料,还可以包括有关的服务系统和业务工作人员。信息资源包括计算机系统中存储、处理和传输的大量各种各样的信息。
-
信息安全的基本素质
信息安全的5个基本要素如下。
(1)机密性。确保信息不暴露给未授权的实体或进程。
(2)完整性。只有得到允许才能修改数据,并能够判别出数据是否已被纂改。
(3)可用性。得到投权的实体在需要时可访问数据。
(4)可控性。可以控制授权范围内的信息流向及行为方式。
(5)可审查性。对出现的安全问题提供调查的依据和手段。 -
计算机的安全等级
计算机系统中的三类安全性是指技术安全性、管理安全性及政策法律安全性。一些重要的安全评估准则有以下几个。-
美国国防部(DOD)和国家标准局(现更名为 NIST)的可信计算机系统评估淮则。
-
欧洲共同体的信息技术安全评估准则(ITSEC)。
-
ISO/EC 国际标准。
-
美国联邦标准。
其中美国国防部和国家标准局的可信计算机系统评测标准将系统划分为4组7个等级,如表1-2所示。
-
-
安全威胁
安全威胁是指某个人、物、事件对某一资源的机密性、完整性、可用性或合法性所造成的危害。某种攻击就是威胁的具体实现。安全威胁分为两类,即故意(如黑客滲透)或偶然(如信息发往错误的地址)。典型的安全威胁举例如表1-3所示。
-
影响数据安全的因素
影响数据安全的因素包括内部因素和外部因素。
(1)内部因素。可采用多种技术对数据加密:制定数据安全规划:建立安全存储体系:建立事故应急计划和容灾措施:重视安全管理,制定数据安全管理规范。
(2) 外部因素。可将数据分成不同的密级,规定外部使用人员的权限。设置身份认证、密码、指纹、声纹、笔记等多种认证:设置防火墙,为计算机建立一道屏障,防止外部入侵破坏数据:建立入侵检测、审计和追踪,对计算机进行防卫。同时,也包括计算机物理环境的保障、防辐射、防水、防火等外部防灾措施。
1.3.2 加密技术和认证技术
-
加密技术
-
加密技术概述
加密技术是最常用的安全保密手段,数据加密技术的关键在于加密/解密算法和密钥管理。加密技术包括两个元素,即算法和密钥。数据加密的基本过程就是对原来为明文的文件或数据按菜种加密算法进行处理,使其成为不可读的一段代码,通常称为“密文”。“密文”只能在输入相应的密钥之后才能显示出原来的内容,通过这样的途径达到保护数据不被窃取。
数据加密和解密是一对逆过程。数据加密是用加密算法K1和加密密钥人,将明文P变换成密文C,记为C = E_{k1}(P)
数据解密是数据加密的逆过程,是用解密算法D 和解密密钥K2将密文C变换成明文P, 记为
P=D_{K2}(C)
数据加密技术可分成3 类,即对称加密、非对称加密和不可逆加密。
(1) 对称加密(私钥)(共享密钥加密算法) 技术。对称加密的体制模型如图1-8 所示。
常用的对称加密算法有以下几个。- 数据加密标准(Digital Encryption Standard, DES)算法。主要采用替换和移位的方法加密。DES算法运算速度快,密钥生产容易,适合于在当前大多数计算机上用软件方法实现,同时也适合在专用芯片上实现。
- 三重DES(3DES 或称 TDES)。
- RC-5(Rivest Cipher 5)。
- 国际数据加密算法(International Data Encryption Algorithm, IDEA)。IDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。
- 高级加密标准(Advanced Encryption Standard,AES)算法。基于排列和置换运算。AES是突发迭代的、对称密钥分组的密码。
(2)非对称加密(公钥) 技术。与对称加密算法不同,非对称加密算法需要两个密钥,即公开密钥(即公钥)和私有密钥(即私钥)。这里的“公钥”是指可以对外公布的,“私钥”只能由持有人知道。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密:如果用私有密钥对数据进行加密,则只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法称为非对称加密算法。
非对称加密有两个不同的体制,如图1-9 所示。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其他方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方:甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。
非对称加密算法的保密性能好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,不适合对文件加密,而只适用于对少量数据进行加密。
属于非对称密钥(公钥)算法:RSA、ECC、DSA
-
密钥管理
密钥管理主要是指密钥对的安全管理,包括密钥产生、密钥备份和恢复、密钥更新以及多密钥管理。
-
-
认证技术
CA:权威机构
数字证书:用户向CA机构申请数字证书,将个人信息和公钥发给CA机构,CA机构颁给用户数字证书,数字证书用CA的私钥进行签名(加密),用CA的公钥进行验证(解密)数字证书,得到用户的公钥。-
哈希函数与信息摘要
Hash(哈希)函数(又称散列函数)提供了这样一种计算过程:输入一个长度不固定的字符串,返回一串定长度的字符串(又称 Hash 值)。单向 Hash 函数用于产生信息摘要。信息摘要简要地描述了一份较长的信息或文件,它可以被看作一份长文件的“数字指纹”。信息摘要用于创建数字签名。 -
数字签名
数字签名是通过一个单向散列函数对要传送的报文进行处理得到的,用以认证报文来源并核实报文是否发生变化的一个字母数字串。数字签名可以解决否认、伪造、篡改及冒充等问题,应用范围十分广泛,如加密信件、商务信函、订货购买系统、远程金融交易、自动模式处理等。
数字签名和数字加密的过程虽然都使用公开密钥体系,但实现的过程正好相反,使用的密钥对也不同。数字签名使用的是发送方
的密钥对,发送方用自己的私有密钥进行加密,接收方
用发送方的公开密钥进行解密,这是一个一对多的关系,任何拥有发送方公开密钥的人都可以验证数字签名的正确性。
数字加密则使用的是接收方的密钥对,这是多对一的关系,任何知道接收方
公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方
私有密钥的人才能对信息解密。另外,数字签名只采用了非对称密钥加密算法,它能保证发送信息的完整性、身份认证和不可否认性,而数字加密则采用了对称密钥加密算法和非对称密钥加密算法相结合的方法,它能保证发送信息的保密性。数字签名:发送方私钥加密,接收方公钥解密,一对多
数字加密:接收方公钥加密,唯一接收方私钥解密,多对一 -
SSL协议
SSL(Secure Sockets Layer) 是网景(Netscape)公司提出的基于 Web 应用的安全协议,又叫安全套接层协议。
SSL 协议主要提供三方面的服务:用户和服务器的合法性认证:加密数据以隐藏被传送的数据:保护数据的完整性,目的是在两个通信应用程序之间提供私密性和可靠性。对于电子商务应用来说,使用 SSL 可保证信息的真实性、完整性和保密性。 -
数字时间戳技术
数字时间戳技术是**数字签名(相当于非对称密钥,公钥)**技术的一种变种。数字时间戳服务(Digital Time-stamp Service, DTS)是网上电子商务提供的安全服务项目之一,能提供电子文件的日期和时间信息的安全保护。时间戳(Time-stamp)是一个经加密后形成的凭证文档,它包括以下3个部分。
- 需加时间戳的文件的摘要。
- DTS收到文件的日期和时间
- DTS 的数字签名。
一般来说,时间戳产生的过程为:用户首先将需要时间戳的文件用 Hash 编码加密形成摘要,然后将该摘要发送到 DTS,DTS 在加入收到文件摘要的日期和时间信息后再对该文件加密(数字签名),然后送回用户。
-
总结:
对称密钥算法(私钥、私有密钥算法):
1. DES
2. 3DES
3. RC-5
4. IDEA
5. AES
6. RC4
非对称密钥(公钥、公开密钥加密)算法:
1. RSA
2. ECC
3. DSA
Hash函数、MD5摘要算法、SHA-1安全散列算法
验证对方的身份,防止假冒【数字签名、数字证书】
防止数据被窃听 【加密】
防止发送方否认发送过数据 【数据签名】
防止发送的报文被篡改 【摘要】
1.3.2.1 加密技术与认证技术习题
-
在安全通信中,S将所发送的信息使用(8)进行数字签名,T收到该消息后可利用(9)验证该消息的真实性。(2018年上半年)
A、S的公钥 B、S的私钥 C、T的公钥 D、T的私钥
A、S的公钥 B、S的私钥 C、T的公钥 D、T的私钥答案:B;A
用发送方的私钥进行签名,发送方的公钥进行验证 -
用户A从CA获取用户B的数字证书,并利用(7)验证数字证书的真实性。(2011年上半年)
A、B的公钥 B、B的公钥 C、CA的公钥 D、CA的私钥答案:C
-
用户 B收到用户A 带数字签名的消息 M,为了验证M的真实性,首先需要从 CA 获取用户A的数字证书,并利用(8)验证该证书的真伪,然后利用(9)验证M的真实性。(2012年下半年)
A. CA的公钥 B. B的私钥 C.CA的公钥 D. B的公钥
A. CA的公钥 B. B的私钥 C.A的公钥 D. B的公钥答案:A;C
解析:数字证书是一个经证书认证中心(CA)教字签名的包含公开密钥拥有者信息以及公开密钥的文件。要验证证书的真伪,可利用 CA的公钥验证CA的数字签名。数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。
-
用户 A 和B要进行安全通信,通信过程确认双方身份和消息不可否认。A和B通信时可使用(9)来对用户的身份进行认证:使用(10)确保消息不可否认。(2019年上半年)
(9)A. 数字证书 B. 消息加密 C.用户私钥 D.数字签名
(10)A.数字证书 B. 消息加密 C.用户私钥 D. 数字签名答案:A;D
-
某电子商务网站向 CA 申请了数字证书,用户可以通过使用(10)验证(11)的真伪来确定该网站的合法性。(2019年下半年)
(10) A. CA 的公钥 B. CA 的签名 C.网站的公钥 D. 网站的私钥
(11)A. CA的公钥 B. CA的签名 C. 网站的公钥 D. 网站的私钥答案:A;B
1.3.2.2 加密算法习题
-
利用报文摘要算法生成报文摘要的目的是(7)。(2013 年上半年)
A. 验证通信对方的身份,防止假冒
B. 对传输数据进行加密,防止数据被窃听
C.防止发送方否认发送过数据
D.防止发送的报文被篡改答案:D
-
以下加密算法中适合对大量的明文消息进行加密传输的是(8)(2017年上半年)
A. RSA
B. SHA-1
C. MD5
D. RC5答案:D;需要大量的明文是用对称加密算法。RSA是非对称算法,RC5是对称
-
DES 是(7)算法。(2018年下半年)
A.公开密钥加密 B. 共享密钥加密 C. 数字签名 D.认证答案:B
-
MD5 是(9)算法,对任意长度的输入计算得到的结果长度为(10)位。(2018年下半年)
(9)A.路由选择 B. 摘要 C.共享密钥 D.公开密钥
(10)A. 56 B. 128 C. 140 D. 160答案:C;B
MD5(MD 表示信息摘要)是由 Ron Rivest 设计的专门用于加密处理的并被广泛使用的 Hash 函数。MDS 以512 位分组来处理输入的信息,且每一分组又被划分为16个32 位子分组,经过了一系列的处理后,算法的输出由四个 32 位分组组成,将这四个32位分组级联后将生成一个128 位散列值。 -
下列算法中,不属于公开密钥加密算法的是(8)。(2019 年下半年)
A. ECC B. DSA C. RSA D. DES答案:D,对称加密=私钥;非对称加密=公钥
-
以下关于认证和加密的叙述中,错误的是(7)。(2020年下半年)
A. 加密用以确保数据的保密性
B.认证用以确保报文发送者和接收者的真实性
C.认证和加密都可以阻止对手进行被动攻击
D. 身份认证的目的在于识别用户的合法性,阻止非法用户访问系统答案:C;认证是用来处理主动攻击(主动攻击课分为篡改、伪造消息数据和终端拒绝服务),加密是用来处理被动攻击(例如窃听、流量攻击、破解弱加密的数据流等攻击方式)。
-
下列算法中属于非对称加密算法的是(9)。(2021年上半年)
A. DES B. RSA C. AES D. MD5答案:B
-
AES 是一种(8)算法。(2021年下半年)
A.公钥加密 B. 流密码 C. 分组加密 D. 消息摘要答案:C
AES 是一个迭代的、对称密钥分组的密码,它可以使用 128、192 和256位密钥,并且用128 位(16字节)分组加密和解密数据。
1.3.3 计算机可靠性
-
计算机可靠性概述
计算机系统的可靠性是指从它开始运行(-0)到某个时刻:这段时间内能正常运行的概
率,用R(t)表示。
失效率是指单位时间内失效的元件数与元件总数的比例,用λ表示。当λ为常数时,可靠性与失效率的关系为R(t) =e^{-λt}
。
两次故障之间系统能正常工作的时间的平均值称为平均无故障时间(MTBF),即MTBF=1/λ。
通常用平均修复时间(MTRF)来表示计算机的可维修性,即计算机的维修效率,指从故
障发生到机器修复平均所需要的时间。计算机的可用性是指计算机的使用效率,它以系统
在执行任务的任意时刻能正常工作的概率A来表示,即
A=\frac{MTBF}{MTBF + MTRF}
计算机的 RAS 技术是指用可掌性R、可用性A 和可维修性S这三个指标衡量一个计算
机系统。但在实际应用中,引起计算机故障的原因除了元器件以外,还与组裝工艺、逻辑
设计等因素有关。 -
计算机可靠性模型
常见的计算机系统可靠性数学模型如下:
(1)串联系统:可靠性R=R_1 R_2 ...R_n
,失效率λ=λ_1+λ_2+...+λ_n
。
(2)并联系统:可靠性R=1-(1-R_1)(1- R_2)...(1-R_n)
,失效率
(3)N模冗余系统:提高计算机的可掌性一般采取两项措施:一是提高元器件的质量,改进加工工艺与工艺结构,完善电路设计:二是发展容错技术。
1.3.3.1 习题
-
某计算机系统由下图所示部件构成,假定每个部件的千小时可靠度为R,则该系统的千小时可靠度为(6)。(2011年上半年试题 6)
A. R+2R/4 B.
R+R^2/4
C.R(1-(1-R)^2)
D.R{(1-{(1-R)}^2)}^2
答案:两个并联部件的可靠度=1-(1-R)(1-R)
总可靠度=(1-(1-R)(1-R))×R×(1-(1-R)(1-R))=R(1-(1-R)^2)^2
答案:D
1.3.1.4 计算机系统的性能评价
-
性能评测常用方法
(1)时钟频率。计算机的时钟频率在一定程度上反映了机器速度。一般来讲,主频越快速度越快。
(2)指令执行速度。速度是计算机的主要性能指标之一,在计算机发展初期,曾用加法指令的运算速度来衡量计算机的速度。
(3)等效指令速度法。统计各类指令在程序中所占的比例,并进行折算。设某类指令i在程序中所占比例为wi,执行时间为ti,则等效指令时间为式中n为指令的种类数。
(4)数据处理速率(PDR)法。采用计算 PDR 值的方法来衡量机器性能,PDR 值越大,机器性能越好,PDR 与每条指令和每个操作数的平均位数以及每条指令的平均运算速度有关。
(5)核心程序法。把应用程序中用得最频繁的那部分核心程序作为评价计算机性能的标淮程序,在不同的机器上运行,测得其执行时间,作为各类机器性能评价的依据。 -
基准测试程序
基准测试程序法是目前一致承认的测试性能的较好方法,有多种多样的基准程序,如主要测试整数性能的基准程序,测试浮点性能的基准程序等。常见的基准测试程序有以下4种。- 整数测试程序。
- 浮点测试程序。
- SPEC 基准测试程序
- TPC 基准程序。
1.4 杂题
-
编写汇编语言程序时,下列寄存器中程序员可访问的是(5)。 (2010年下半年)
A. 程序计数器 (PC)
B.指令寄存器(R)
C.存储器数据寄存器(MDR)
D. 存储器地址寄存器 (MAR)试题(5)分析
本题考查 CPU 中相关寄存器的基础知识。
指令寄存器(IR)用于暂存从内存取出的、正在运行的指令,这是由系统使用的寄存器,程序员不能访问。
存储器数据寄存器(MDR)和存储器地址寄存器(MAR)用于对内存单元访问时的数据和地址暂存,也是由系统使用的,程序员不能访问。
程序计数器(PC)用于存储指令的地址,CPU 根据该寄存器的内容从内存读取待执行的指令,程序员可以访问该寄存器。
参考答案(5)A -
指令寄存器的位数取决于(2)。(2013 年下半年)
A.存储器的容量
B. 指令字长
C.数据总线的宽度
D. 地址总线的宽度本题考查计算机系统基础知识。
指令寄存器是 CPU 中的关键寄存器,其内容为正在执行的指令,显然其位数取决于指令字长。
参考答案 B -
若计算机存储数据采用的是双符号位(00 表示正号、11 表示负号),两个符号相同
的数相加时,如果运算结果的两个符号位经(3)运算得1,则可断定这两个数相加的结
果产生了溢出。(2013 年下半年)
A. 逻辑与
B. 逻辑或
C. 逻辑同或
D. 逻辑异或本题考查计算机系统基础知识。
当表示数据时并规定了位数后,其能表示的数值范围就确定了,在两个数进行相加运算的结果超出了该范围后,就发生了溢出。在二进制情况下,溢出时符号位将变反,即两个正数相加,结果的符号位是负数,或者两个负数相加,结果的符号位是正数。采用两个符号位时,溢出发生后两个符号位就不一致了,这两位进行异或的结果一定为1。
参考答案 D -
计算机采用分级存储体系的主要目的是为了解决(2)问题。(2014年下半年)
A.主存容量不足
B.存储器读写可靠性
c.外设访问效率
D.存储容量、成本和速度之间的矛盾本题考查计算机系统基础知识。
计算机系统中,高速缓存一般用 SRAM,内存一般用 DRAM,外存一般采用磁存储器。SRAM 的集成度低、速度快、成本高。DRAM 的集成度高,但是需要动态刷新。磁存储器速度慢、容量大、价格便宜。因此,不同的存储设备组成分级存储体系,来解决速度、存储容量和成本之间的矛盾。
参考答案(2) D -
计算机中 CPU 对其访问速度最快的是(2)。(2015年上半年)
A.内存
B. Cache
C. 通用寄存器
D. 硬盘答案:C
-
安全需求可划分为物理线路安全、网络安全、系统安全和应用安全。下面的安全需求中属于系统安全的是(8),属于应用安全的是(9)。(2015年上半年)
A. 机房安全
B. 入侵检测
C. 漏洞补丁管理
D.数据库安全
(9)
A. 机房安全
B. 入侵检测
C. 漏洞补丁管理
D.数据库安全答案:C;D
-
(7)不属于主动攻击。(2015年下半年)
A. 流量分析
B.重放
C. IP 地址欺骗
D.拒绝服务A
-
下列攻击行为中,属于典型被动攻击的是(9)。(2017年下半年)
A. 拒绝服务攻击
B. 会话拦截
C. 系统干涉
D. 修改数据命令答案:B
-
VLIW 是(1)的简称。(2016 年上半年)
A. 复杂指令系统计算机
B. 超大规模集成电路
C. 单指令流多数据流
D. 超长指令字答案:D;
-
移位指令中的(4)指令的操作结果相当于对操作数进行乘2操作。(2016 年上半年)
A. 算术左移
B. 逻辑右移
C. 算术右移
D. 带进位循环左移答案:A;左加右减,左乘右除
-
在程序运行过程中,CPU 需要将指令从内存中取出并加以分析和执行。CPU 依据(1)来区分在内存中以二进制编码形式存放的指令和数据。(2016年下半年)
A. 指令周期的不同阶段
B. 指令和数据的寻址方式
C. 指令操作码的译码结果
D.指令和数据所在的存储单元指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成,是从取指令、分析指令到执行完所需的全部时间。CPU 执行指令的过程中,根据时序部件发出的时钟信号按部就班进行操作。在取指令阶段读取到的是指令,在分析指令和执行指令时,需要操作数时再去读操作数。
参考答案(1)A -
在网络设计和实施过程中要采取多种安全措施,其中(9)是针对系统安全需求的措施。(2016 年下半年)
A.设备防雷击
B.入侵检测
C.漏洞发现与补丁管理
D.流量控制答案:C
-
某计算机系统的 CPU 主频为2.8GHz。某应用程序包括3类指令,各类指令的 CPI(执行每条指令所需要的时钟周期数)及指令比例如下表所示。执行该应用程序时的平均CPI为(4):运算速度用 MIPS 表示,约为(5)。(2020 年下半年)
指令A 指令B 指令C 比例 35% 45% 20% CPI 4 2 6 A、25 B、3 C、3.5 D、4
A、700 B、800 C、930 D、1100答案:C;平均 CPI=(0.35×4)+(0.45×2)+(0.20×6)=1.4+0.9+1.2=3.5
B; 计算 MIPS(Million Instructions Per Second),
计算公式如下: M I P S = C P U 主频 平均 C P I ✖ ® 1 0 6 MIPS=\frac{CPU 主频}{平均 CPI✖️10^6} MIPS=平均CPI✖R◯106CPU主频
将已知值代入公式: M I P S = 2.8 ✖ ® 1 0 9 3.5 ✖ ® 1 0 6 = 800 MIPS=\frac{2.8✖️10^9}{3.5✖️10^6}=800 MIPS=3.5✖R◯1062.8✖R◯109=800
感谢您在万众文章中阅读了鄙人的笔记,谢谢
这份笔记由我在备考软件设计师中级考试的过程中编写,包含了我对知识点的理解与总结。如果您觉得这份笔记对您有帮助,并希望分享给更多的人,我十分乐意。但请在转载时务必注明出处,以尊重作者的劳动成果,感谢您的理解与支持
。
- 每篇一句:“不要让未来的你,讨厌现在的自己,努力变成自己喜欢的那个自己”
- 如果觉得对您有用,请点个赞或者收藏鼓励我持续更新吧!
- 恭喜您,已挑战成功第一关,请前往第二关进行挑战吧【点击即可跳转 第二关】