文章目录
- 一、 计算机系统基础知识
- 2. 中央处理单元
- 3. 数据表示
- 4. 校验码
- 二、 计算机体系结构
- 2. 存储系统
- 3. 输入/输出技术
- 4. 总线结构
- 三、 安全性、可靠性与系统性能测评基础知识
- 2. 加密技术和认证技术
- 3. 计算机可靠性
- 4. 计算机系统的性能评价
一、 计算机系统基础知识
1. 计算机系统硬件基本组成
计算机系统是由硬件和软件组成的,它们协同工作来运行程序。计算机的基本硬件系统由:运算器、控制器、存储器、输入设备和输出设备
五大部件组成。
运算器、控制器等部件被集成在一起统称为中央处理单元(Central Processing
Unit,CPU)。CPU是硬件系统的核心
,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。
存储器是计算机系统中的记忆设备,分为内部存储器【速度高、容量小,一般用于临时存放程序、数据及中间结果】和外部存储器【容量大、速度慢,可以长期保存程序和数据】。
输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。
2. 中央处理单元
(1) CPU的功能
- 操作控制
- 时间控制
- 程序控制:CPU的重要功能。
- 数据处理:CPU最根本的任务。
- 对系统内部和外部的中断(异常)做出响应,进行相应的处理。
(2) CPU的组成
① 运算器
是数据加工处理部件,用于完成计算机的各种算术和逻辑运算。运算器接受控制器的命令而进行动作,是执行部件。运算器主要功能:执行所有的算术运算;执行所有的逻辑运算并进行逻辑测试;
- 算术逻辑单元(ALU):
运算器的重要组成部件
,负责处理数据,实现对数据的算术运算和逻辑运算
。 - 累加寄存器(AC):通常简称为累加器,是一个通用寄存器,
运算结果或源操作数的存放区
,运算器中至少要有一个累加寄存器,是运算器的主要部分
。 - 数据缓冲寄存器(DR):作为CPU和内存、外部设备之间数据传送的中转站;作为CPU和内存、外围设备之间在操作速度上的缓冲;
暂时存放内容的指令或数据
。在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。 - 状态条件寄存器(PSW):
保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容
,主要分为状态标志和控制标志。通常,一个算术操作产生一个运算结果,而一个逻辑操作产生一个判决。
② 控制器
用于控制整个CPU的工作,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。
1)指令控制逻辑
:要完成取指令、分析指令和执行指令的操作,其过程分为取指令、指令译码、按指令操作码执行、形成下一条指令地址等步骤。
- 指令寄存器(IR):
暂存CPU执行指令
。 - 程序计数器(PC):又称为指令计数器,有寄存信息和计数两种功能,
存放下一条指令执行地址
。 - 地址寄存器(AR):
保存当前CPU所访问的内存单元的地址
。 - 指令译码器(ID):
对指令【包含操作码和地址码两部分】中的操作码字段进行分析解释
,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,完成所需的功能。
2)时序控制逻辑
:为每条指令按时间顺序提供应有的控制信号。总线逻辑是为多个功能部件服务的信息通路的控制电路。
3)中断控制逻辑:用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。
③ 寄存器组
- 专用寄存器:运算器和控制器中的寄存器是专用寄存器,其作用是固定的。
- 通用寄存器。通用寄存器用途广泛并可由程序员规定其用途,其数目因处理器不同有所差异。
(3) 多核CPU
核心又称为内核,是CPU最重要的组成部分
。CPU所有的计算、接收/存储命令、处理数据都由核心执行,各种CPU核心都具有固定的逻辑结构。
多核:即在一个单芯片上面集成两个甚至更多个处理器内核。多核CPU系统最大的优点(也是开发的最主要目的)是可满足用户同时进行多任务处理的要求。
3. 数据表示
各种数值在计算机中表示的形式称为机器数,其特点是采用二进制计数制,数的符号用
0 0 和
1 1 表示,小数点则隐含,表示不占位置。
机器数对应的实际数值称为数的真值,有无符号数和带符号数之分。无符号数表示正数,在机器数中没有符号位。对于无符号数,若约定小数点的位置在机器数的最低位之后,则是纯整数;若约定小数点的位置在机器数的最高位之前,则是纯小数。对于带符号数,机器数的最高位是表示正、负的符号位,其余位则表示数值。
(1) 原码、反码、补码和移码
① 原码
数值
X X
的原码记为:
[ X ] 原 [X]_原
特点:在原码表示中,最高位是符号位,
0 0
表示正号,
1 1 表示负号,其余的
n − 1 n-1 位表示数值的
绝对值。数值
0 0
有两种表示法:
[ + 0 ] 原 = 00000000 , [ − 0 ] 原 = 10000000 [+0]_原 =
00000000,[-0]_原 = 10000000
如果机器字长为
n n (即采用
n n 个二进制位表示数据),则原码的定义如下:
若机器字长 n = 8 n = 8
② 反码
数值
X X
的反码记为:
[ X ] 反 [X]_反
特点:在反码表示中,最高位是符号位,
0 0
表示正号,
1 1
表示负号,正数的反码与原码相同,负数的反码则是其绝对值按位求反
。数值
0 0
的反码表示有两种形式:
[ + 0 ] 反 = 00000000 , [ − 0 ] 反 = 11111111 [+0]_反 =
00000000,[-0]_反 = 11111111
如果机器字长为
n n (即采用
n n 个二进制位表示数据),则反码的定义如下:
若机器字长 n = 8 n = 8
③ 补码
数值
X X
的补码记为:
[ X ] 补 [X]_补
特点:在补码表示中,最高位为符号位,
0 0
表示正号,
1 1
表示负号,正数的补码与其原码和反码相同,负数的补码则等于其反码的末位加 1
。在补码表示中,
0 0
有唯一的编码:
[ + 0 ] 补 = 00000000 , [ − 0 ] 补 = 00000000
[+0]_补=00000000,[-0]_补=00000000
如果机器字长为
n n (即采用
n n 个二进制位表示数据),则反码的定义如下:
若机器字长 n = 8 n = 8
④ 移码
数值
X X
的补码记为:
[ X ] 补 [X]_补
特点:移码表示中,移码表示法是在数
X X
上增加一个偏移量来定义的,常用于表示浮点数中的阶码。如果机器字长为
n n ,规定偏移量为
2 n − 1 2^{n-1} ,则移码的定义如下:
移码 = 真值 + 偏移量 移码 = 真值 + 偏移量
比如 8 位表示的: [ + 127 ] 移 = 127 + 偏移量 = 127 + 128 = 255 = 11111111 [+127]_移 = 127 + 偏移量 = 127 + 128 = 255 = 11111111
若机器字长 n = 8 n = 8
注:实际上,在偏移为 2 n − 1 2^{n-1} 的情况下,只要将补码的符号位取反便可获得相应的移码表示。
⑤ 原码、反码、补码、移码关系图
⑥ 溢出丢弃进位法则
在用有符号整型表示二进制数时,当后面的非符号位发生溢出时,符号位不变,直接丢弃溢出的进位。
- 原码:最高位表示符号位,后 7 7 位发生了溢出,进位丢弃,符号位不变。
- 反码:除符号位外,其余各位对原码取反。
- 补码:在反码的末位加1,如果后 7 7 位再次发生溢出,进位丢弃,符号位不变。
(2) 进制的转换
① R进制转十进制【按权展开法】
将每一位数字用 R k R^k 表示然后相加, k k 与该位与小数点的距离有关,小数点左边第一位为 R 0 R^{0} ,往左递增;右边第一位为 R − 1 R^{-1} ,往右递减。
⼆进制转十进制: ( 10100.01 ) 2 = 1 × 2 4 + 1 × 2 2 + 1 × 2 − 2 = 16 + 4 + 0.25 = ( 20.25 ) 10 (10100.01)2 = 1 × 2^4 + 1 × 2^2 + 1 × 2^{-2} = 16 + 4 + 0.25 = (20.25)
十六进制转十进制: ( 2 A F 6 ) 2 = 2 × 1 6 3 + A × 1 6 2 + F × 1 6 1 + 5 × 1 6 0 = 8192 + 8192 + 240 + 6 = ( 10998 ) 10 (2AF6)2 = 2 × 16^3 + A × 16^2 + F × 16^1 + 5 × 16^0 = 8192 + 8192 + 240 + 6 = (10998)
注:十六进制:逢16进1,但我们只有0~9这十个数字,所以我们用A、B、C、D、E,F这六个字母来分别表示10、11、12、13、14、15,字母不区分大小写。
② 十进制转R进制【短除法】
整数位:使用短除法,即将十进制数除以R再取余,直至余数为零,然后将余数由下往上按顺序排列。
小数位:乘以R,每乘一次就取它的整数位(
整数位为零时就取零),直至小数位为零,然后将取得的整数位由上往下排列即可。
十进制转二进制: 100.62 5 ( D ) = 1100100.10 1 ( B ) 100.625_(D)= 1100100.101_(B)
注:二进制是简写:B;八进制简写:O;十进制简写:D;十六进制简写:H。
③ ⼆进制转八进制与十六进制
⼆进制转八进制:3个二进制位对应一个八进制位
( 10100110.01101 ) 2 = ( 246.32 ) 8 (10100110.01101)_2 = (246.32)_8
注:如果整数部分位数不足,在最前面补0;如果小数部分位数不足,在最后面补0。
⼆进制转十六进制:4个二进制位对应一个十六进制位
( 10100110.01101 ) 2 = ( A 6.68 ) 16 (10100110.01101)2 = (A6.68)
注:如果整数部分位数不足,在最前面补0;如果小数部分位数不足,在最后面补0。
(3) 定点数和浮点数
① 定点数
小数点的位置固定不变的数。小数点的位置通常有两种约定方式:定点整数(纯整数,小数点在最低有效数值位之后)和定点小数(纯小数,小数点在最高有效数值之前)。
② 浮点数
浮点数即科学计数法,当机器字长为
n n 时,定点数的补码和移码可表示
2 n 2^n 个数,而其原码和反码只能表示
2 n − 1 2^{n-1} 个数(
0 0
的表示占用了两个编码),因此,定点数所能表示的数值范围比较小,在运算中很容易因结果超出范围而溢出。浮点数是小数点位置不固定的数,它能表示更大范围的数。
在浮点表示法中,阶码为带符号的纯整数,尾数为带符号的纯小数。浮点数的表示格式如下:
一个数的浮点表示不是唯一的。当小数点的位置改变时,阶码也随着相应改变,因此可以用多个浮点形式表示同一个数。浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。为了充分利用尾数来表示更多的有效数字,通常采用规格化浮点数。
③ 工业标准IEEE754
根据 I E E E 754 IEEE754 标准,被编码的值分为三种不同的情况:规格化的值、非规格化的值和特殊值,规格化的值为最普遍的情形。
- 规格化的值:当阶码部分的二进制值不全为 0 0 也不全为 1 1 时。
- 非规格化的值:当阶码部分的二进制值全为 0 0 时。
- 特殊值:当阶码部分的二进制值全为 1 1 时。
④ 浮点数的运算
- 浮点数加减法:
A. 零操作数的判断:一个操作数为零,也不必计算,节省时间。
B. 对阶:使两个数的阶码相同。
求阶差:通过对两个阶码进行减法运算实现,这不仅能知道阶码的大小,还能求出两个阶码的具体差值。
阶码的调整与尾数的移位:若 m > n m > n ,则将浮点数 y y 的尾数右移 m − n m - n 位;若 m < n m < n ,则将浮点数 x x 的尾数右移 n − m n - m 位。
C. 求尾数和(差):按照定点数的加减运算法则执行尾数加减操作,对于阶码小的那个浮点数,应该使用对阶后的尾数参加运算。
D. 结果规格化并判溢出:若运算结果所得的尾数不是规格化的数,则需要进行规格化处理。为了运算处理方便,可让尾数的符号位扩展为两位,当尾数溢出时【运算结果不是 11.0 X X … X 11.0XX…X 或 00.1 X X … X 00.1XX…X 的形式】,需要调整阶码,进行相应的规格化处理。
当尾数双符号位为: 01 01 或 10 10 时,需要向右规格化,且只需将尾数右移一位,同时将结果的阶码值加 1 1 。
当尾数运算结果为: 11.1 X X … X 11.1XX…X 或 00.0 X X … X 00.0XX…X 时需要左移规格化,而且左移次数不固定,与运算结果的形式有关。左规的方法是尾数连同符号位一起左移位,结果的阶码减 1 1 ,直到尾数部分出现 11.0 11.0 或 00.1 00.1 的形式为止。
E. 舍入处理:在对结果右规时,尾数的最低位将因移出而丢掉。另外,在对阶过程中也会将尾数右移使最低位丢掉,这就需要进行舍入处理,以求得最小的运算误差。
末位恒置1法:只要因移位而丢失的位中有一位是 1 1 ,就把运算结果的最低位置 1 1 ,而不管最低位原来是 0 0 还是 1 1 。
0舍1入法:当丢失位数的最高位是 1 1 时将尾数的末尾加 1 1 。
F. 溢出判别:以阶码为准,若阶码溢出,则运算结果溢出;若阶码下溢(小于最小值),则结果为 0 0 ;否则结果正确,无溢出。当阶码的符号位为 01 01 和 10 10 时表示运算结果溢出。
设:两浮点数 x = 2 001 × ( 0.1101 ), y = 2 011 × ( − 0.1010 ) x = 2^{001} × (0.1101),y = 2^{011} × (-0.1010) ,在浮点数的表示格式中阶码占 3 位,尾数占 4 位(都不包括符号位)。阶码和尾数均采用含双符号位的补码表示,运算结果的尾数取单字长(含符号位共5位),舍入规则使用“0舍1⼊”法,用浮点运算方法计算: x + y x + y 和 x − y x - y
[ x ] 浮 = 00001 , 00.1101 [x]_浮 = 00001,00.1101 [ y ] 浮 = 00011 , 11.0110 [y]_浮 = 00011,11.0110
① 零操作数的判断:无 0 0
② 对阶操作: E x = 00001 E_x = 00001 E y = 00011 E_y = 00011
阶码不同,对阶, x x 阶码为 1 1 , y y 的阶码为 3 3 , x x 向 y y 看齐, x x 的尾数右移 2 2 位, [ x ] 浮 = 00011 , 00.0011 ( 01 ) [x]_浮 = 00011,00.0011(01)
③ 求尾数和(差): [ x + y ] 浮 = 00011 , 11.1001 ( 01 ) [x + y]_浮 = 00011,11.1001(01) [ x − y ] 浮 = 00011 , 00.1101 ( 01 ) [x - y]_浮 = 00011,00.1101(01)
④ 结果规格化并判溢出 + 舍入处理:
和的尾数左移 1 1 位,阶码减 1 1 ,采⽤“0舍1入”法进行舍入处理后,得: [ x + y ] 浮 = 00010 , 11.0011 [x + y]_浮=00010,11.0011
差已为规格化浮点数,采⽤“0舍1⼊”法进行舍入处理后,得: [ x − y ] 浮 = 00011 , 00.1101 [x - y]_浮 = 00011,00.1101
⑥ 溢出判别:和、差的阶码的双符号位均相同,故和、差均没有溢出。
所以: x + y = 2 010 × ( − 0.1101 ) x + y = 2^{010} × (-0.1101) x − y = 2 011 × ( 0.1101 ) x - y = 2^{011} × (0.1101)
- 浮点数乘法:其积的阶码等于两乘数的阶码相加,积的尾数等于两乘数的尾数相乘。
设:两浮点数 x = 2 001 × ( 0.1101 ), y = 2 010 × ( 0.1011 ) x = 2^{001} × (0.1101),y = 2^{010} × (0.1011) ,求 x × y x × y
① 零操作数的判断:无 0 0
② 阶码加/减操作: x × y = 2 ( 001 + 010 ) × ( 0.1101 × 0.1011 ) = 2 011 × 00.1000111 x × y = 2^{(001 + 010)} × (0.1101 × 0.1011) = 2^{011} × 00.1000111
③ 舍入处理: x × y = 2 011 × 00.1000 x × y = 2^{011} × 00.1000
④ 溢出判别:无溢出
所以: x × y = 2 011 × 00.1000 x × y = 2^{011} × 00.1000
- 浮点数除法:其商的阶码等于被除数的阶码减去除数的阶码,商的尾数等于被除数的尾数除以除数的尾数。
设:两浮点数 x = 2 100 × ( 0.1011 ), y = 2 010 × ( 0.1101 ) x = 2^{100} × (0.1011),y = 2^{010} × (0.1101) ,求 x ÷ y x ÷ y
① 零操作数的判断:无 0 0
② 阶码加/减操作: x ÷ y = 2 ( 100 − 010 ) × ( 0.1011 ÷ 0.1101 ) = 2 010 × 00.1101 x ÷ y = 2^{(100 - 010)} × (0.1011 ÷ 0.1101) = 2^{010} × 00.1101
③ 舍入处理:无
④ 溢出判别:无溢出
所以: x ÷ y = = 2 010 × 00.1101 x ÷ y = = 2^{010} × 00.1101
4. 校验码
计算机系统运行时,为了确保数据在传送过程中正确无误,一是提高硬件电路的可靠性,二是提高代码的校验能力,包括查错和纠错。通常使用校验码的方法来检测传送的数据是否出错。其基本思想是把数据可能出现的编码分为两类:合法编码和错误编码。
码距:指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。
(1) 奇偶校验码(Parity Codes)
一种简单有效的校验方法。通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2,只有在错误码元个数为奇数时校验才有效,且不能纠错
。
常用的奇偶校验码有3种:水平奇偶校验码、垂直奇偶校验码和水平垂直校验码。
- 奇校验:若数据位的和为偶数,校验位为 0 0 ;若数据位的和为奇数,校验位为 1 1 。(位数 = 编码中 1 1 出现的次数)
- 偶校验:若数据位的和为偶数,校验位为 1 1 ;若数据位的和为奇数,校验位为 0 0 。(位数 = 编码中 1 1 出现的次数)
(2) 海明码(Hamming Code)
一种利用奇偶性来检错和纠错的校验方法,可以检测2位错误,纠正1位错误
。海明码的构成方法是在数据位之间的特定位置上插入
k k
个校验位,通过扩大码距来实现检错和纠错。设数据位是
n n 位,校验位是
k k 位,则
n n 和
k k
必须满足:
2 k ≥ n + k + 1 2^k≥ n + k + 1
海明码的编码规则:设
k k 个校验位为
P k , P k − 1 , … , P 1 P_k,P_{k-1},…,P_1
,
n n 个数据位为
D n − 1 , D n − 2 , … , D 1 , D 0 D_{n-1},D_{n-2},…,D_1,D_0
,对应的海明码为
H n + k , H n + k − 1 , … , H 1 H_{n+k},H_{n+k-1},…,H_1
,那么:
- P i P_i 在海明码的第 2 i − 1 2^{i-1} 的位置,即 H j = P i H_j = P_i ,且 j = 2 i − 1 j=2^{i-1} ,数据位则依序从低到高占据海明码中剩下的位置。
- 海明码中的任何一位都是由若干个校验位来校验的。对应关系:被校验的海明位的下标等于所有参与校验该位的校验位的下标之和,而校验位由自身校验。
对于 8 8 位的数据位,进行海明校验需要 4 4 个校验位 ( 2 3 − 1 = 7 , 2 4 − 1 = 15 > 8 + 4 ) (2^3 - 1 = 7,2^4-1=15>8+4) 。令数据位为: D 7 , D 6 , D 5 , D 4 , D 3 , D 2 , D 1 , D 0 D_7,D_6,D_5,D_4,D_3,D_2,D_1,D_0 ,校验位为 P 4 , P 3 , P 2 , P 1 P_4,P_3,P_2,P_1 ,形成的海明码为 H 1 2 , H 1 1 , . . . , H 3 , H 2 , H 1 H_12,H_11,...,H_3,H_2,H_1 ,则编码过程如下:
- 确定
D D 与
P P 在海明码中的位置
- 确定校验关系
若采用奇校验,则将各校验位的偶校验值取反即可。 - 检测错误
若采用偶校验,则 G 4 G 3 G 2 G 1 G_4 G_3 G_2 G_1 全为 0 0 时表示接收到的数据无错误(奇校验应全为 1 1 )。当 G 4 G 3 G 2 G 1 G_4 G_3 G_2 G_1 不全为 0 0 时说明发生了差错,而且 G 4 G 3 G 2 G 1 G_4 G_3 G_2 G_1 的十进制值指出了发生错误的位置,例如: G 4 G 3 G 2 G 1 = 1010 G_4 G_3 G_2 G_1 = 1010 ,说明 H 10 ( D 5 ) H_{10}(D_5) 出错了,将其取反即可纠正错误。
设:数据为 01101001 01101001 ,试采用 4 4 个校验位求其偶校验方式的海明码。
D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 = 01101001 D_7 D_6 D_5 D_4 D_3 D_2 D_1 D_0 = 01101001
P 1 = D 0 ⊕ D 1 ⊕ D 3 ⊕ D 4 ⊕ D 6 = 1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 1 = 1 P_1 = D_0 ⊕ D_1 ⊕ D_3 ⊕ D_4 ⊕ D_6 =1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 1 = 1
P 2 = D 0 ⊕ D 2 ⊕ D 3 ⊕ D 5 ⊕ D 6 = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 1 = 0 P_2 = D_0 ⊕ D_2 ⊕ D_3 ⊕ D_5 ⊕ D_6 =1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 1 = 0
P 3 = D 1 ⊕ D 2 ⊕ D 3 ⊕ D 7 = 0 ⊕ 0 ⊕ 1 ⊕ 0 = 1 P_3 = D_1 ⊕ D_2 ⊕ D_3 ⊕ D_7 = 0 ⊕ 0 ⊕ 1 ⊕ 0 = 1
P 4 = D 4 ⊕ D 5 ⊕ D 6 ⊕ D 7 = 0 ⊕ 1 ⊕ 1 ⊕ 0 = 0 P_4 = D_4 ⊕ D_5 ⊕ D_6 ⊕ D_7 = 0 ⊕ 1 ⊕ 1 ⊕ 0 = 0
所以求得的海明码为: 011001001101 011001001101
(3) 循环冗余校验码(Cyclic Redundancy Check,CRC)
广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为
k k 个数据位产生
r r 个校验位来进行编码,其编码长度为
k + r k+r 。CRC的代码格式为:
CRC是由两部分组成,左边为信息位(数据),右边为检验码。若信息码占
k k 位,则检验码占
n − k n-k
为,检验码是由信息码产生的,检验码的位数越多,该代码的检验能力就越强。在求CRC编码时,采用的是模
2 2
运算(按位异或运算,不发生借位和进位)。CRC只能检错,不能纠错
。
设原始报文为: 101001 101001 ,生成的多项式为: G ( x ) = x 3 + x 2 + 1 G(x)= x^3 + x^2 + 1 ,求对其进行CRC编码后的结果
① 原始报文补零(生成的多项式最高次幂): M ( x ) = 101001000 M(x)= 101001000 【补三个0】
②生成多项式: G ( x ) = x 3 + x 2 + 1 = 1101 G(x)= x^3 + x^2 + 1 = 1101
③模 2 2 运算:
最后要发送的信息是(原始报文【 M ( x )】 M(x)】 + 余数): C R C = 101001001 CRC = 101001001设接受到的信息为: 101101001 101101001 ,生成的多项式为: G ( x ) = x 3 + x 2 + 1 G(x)= x^3 + x^2 + 1 ,判断传输是否错误
①模 2 2 运算,若余数为 0 0 ,则没有误码
二、 计算机体系结构
1. 计算机系统结构的发展
(1)计算机系统结构概述
- 计算机体系结构(Computer Architecture):指计算机的概念性结构和功能属性。
- 计算机组织(Computer Organization):指计算机体系结构的逻辑实现,包括机器内的数据流和控制流的组成以及逻辑设计等(常称为计算机组成原理)。
- 计算机实现(Computer Implementation):指计算机组织的物理实现。
(2) 计算机体系结构分类
① 从宏观上按住立即的数量分类
- 单处理系统(Uni-processing System)
- 并行处理与多处理系统(Parallel Processing and Multiprocessing System)
- 分布式处理系统(Distributed Processing System)
② 从微观上按并行程度分类
- Flynn分类法:按指令流和数据流的多少进行分类。
是一种计算机体系结构的分类法
两个指标 :指令流和数据流,分别都分成两种类型 :单和多,组成了四种体系结构。
- 冯泽云分类法:按并行度对各种计算机系统进行结构分类。
- Handler分类法:基于硬件并行程度计算并行度的方法。
- Kuck分类法:用指令流和执行流(Execution Stream)及其多重性来描述计算机系统控制结构的特征。
(3)指令系统
一个处理器支持的指令和指令的字节级编码称为其指令集体系结构(Instruction
Set
Architecture,ISA)。
① 指令集体系结构的分类
从体系结构的观点对指令集进行分类:操作数在CPU中的存储方式【操作数从主存中取出后保存在什么地方】;显式操作数的数量【即在典型的指令中有多少个显式命名的操作数】;操作数的位置【任一个ALU指令的操作数能否放在主存中,如何定位】;指令的操作【在指令集中提供哪些操作】;操作数的类型与大小。
- 按暂存机制分类(根据在CPU内部存储操作数的区别):栈(Stack))、累加器(Accumulator)和寄存器组(a set of Registers)
② CISC 和 RISC
CISC和RISC是指令集发展的两种途径。
- CISC(Complex Instruction Set Computer,复杂指令集计算机):兼容性强,指令繁多,长度可变,由微程序实现,研制周期长。
- RISC(Reduced Instruction Set
Compute,精简指令集计算机):指令少,使用频率接近,主要依靠硬件实现(通用寄存器,硬布线逻辑控制),优化编译,有效支持高级语言。
③ 指令的流水处理
指令控制方式:
- 顺序方式:指各条机器指令之间顺序串行地执行
优点:控制简单。
缺点:速度慢,机器各部件的利用率低。
- 重叠方式:指在解释第 K K 条指令的操作完成之前就可以开始解释第 K + 1 K+1 条指令.
优点:速度有所提高,控制也不太复杂。
缺点:会出现冲突、转移和相关等问题,在设计时必须想办法解决。
- 流水方式:把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效地并发工作。
流水线的分类:
- 从流水的级别上:部件级、处理机级以及系统级的流水。
- 从流水的功能上:单功能流水线和多功能流水线。
- 从流水的连接上:静态流水线和动态流水线。
- 从流水是否有反馈回路:线性流水线和非线性流水线。
- 从流水的流动顺序上:同步流水线和异步流水线。
- 从流水线的数据表示上:标量流水线和向量流水线。
流水的相关处理:
- 流水线的概念:指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,他们可以同时为多条指令的不同部分进行工作,以提高各部分的利用率和指令的平均执行速度。
- 指令执行的流程:取指——分析——执行,注:指令执行步骤可能多于三步。
- 流水线周期:为执行时间最长的一段。
- 流水线执行时间:
理论公式: 一条指令的总执行时间 + (总指令条数 − 1 ) × 流水线周期 一条指令的总执行时间 +(总指令条数 - 1)× 流水线周期
实践公式: (一个完整指令的步骤数 + 指令条数 − 1 ) × 流水线周期 (一个完整指令的步骤数 + 指令条数 - 1)× 流水线周期
吞吐率和流水建立时间:
- 流水线的吞吐率(Though Put rate,TP):指在单位时间内流水线所完成的任务数量或输出的结果数量。计算流水线吞吐率的最基本的公式: T P = 指令条数 流水线执行时间 TP = \frac{指令条数}{流水线执行时间}
- 流水线最大吞吐率: T P m a x = n lim n → ∞ (一个完整指令的步骤数 + 指令条数 − 1 ) × 流水线周期 = 1 流水线周期 TP_{max} = \frac{n}{ \lim_{n\to \infty}(一个完整指令的步骤数 + 指令条数 - 1)× 流水线周期} = \frac{1}{ 流水线周期}
- 流水线加速比:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。计算流水线加速比的基本公式: S = 不使用流水线执行时间 使用流水线执行时间 S = \frac{不使用流水线执行时间}{使用流水线执行时间}
- 流水线的效率:指流水线的设备利用率。在时空图上,流水线的效率定义为 n n 个任务占用的时空区与 k k 个流水段总的时空区之比。计算流水线效率的公式: E = n 个任务占用的时空区 k 个流水段的总的时空区 = T 0 k T k E = \frac{n个任务占用的时空区}{k个流水段的总的时空区} = \frac{T_0}{kT_k}
(4)阵列处理机、并行处理机和多处理机
并行性包括同时性和并发性。其中,同时性是指两个或两个以上的事件在同一时刻发生,并发性是指两个或两个以上的事件在同一时间间隔内连续发生。
- 阵列处理机:一种单指令流多数据流计算机,通过资源重复实现并行性。
- 并行处理机:SIMD和MIMD是典型的并行计算机。
- 多处理机:由多台处理机组成的系统,每台处理机有属于自己的控制部件,可以执行独立的程序,共享一个主存储器和所有的外部设备。是多指令流多数据流计算机。
- 其他计算机:集群一般是指连接在一起的两个或多个计算机(结点)。
2. 存储系统
(1)存储器的层次结构
计算机系统中可能包括各种存储器,其中,Cache和主存之间的交互功能全部由硬件实现,而主存与辅存之间的交互功能可由硬件和软件结合起来实现。
(2)存储器的分类
① 按存储器所处的位置分类
- 内存:也称为主存,设在主机内或主机板上,用来存放机器当前运行所需要的程序和数据,以便向CPU提供信息。相对于外存,其特点是
容量小、速度快
。
- 外存:也称为辅存,用来存放当前不参加运行的大量信息,而在需要时调入内存。
② 存储器的构成材料分类
- 磁存储器:用磁性介质做成的,如磁芯、磁泡、磁膜、磁鼓、磁带及磁盘等。
- 半导体存储器:
- 光存储器:利用光学方法读/写数据的存储器,如光盘(Optical Disk)。
③ 按存储器的工作方式分类
- 读/写存储器(Random Access Memory,RAM):可对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间是相同的。
- 只读存储器:工作过程中仅能读取的存储器
④ 按访问方式分类
- 按地址访问
- 按内容访问
⑤ 按寻址方式分类
- 随机存储器(Random Access Memory,RAM):可对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间是相同的。
- 顺序存储器(Sequentially Addressed Memory,SAM):访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器。
- 直接存储器(Direct Addressed Memory,DAM):介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。
(3)主存编址
把许多块芯片组成相应的存储器。
- 按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字。
- 按字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节。
根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数,公式: 总片数 = 总容量 / 每片的容量 总片数 = 总容量 / 每片的容量
若内存地址区间为 4000 H 43 F F H 4000H~ 43FFH ,每个存储单元可存储 16 16 位二进制数,该内存区域用 4 4 片存储器芯片构成,则构成该内存所用的存储器芯片的容量是多少?
总容量: 43 F F H − 4000 H + 1 = 4400 H − 4000 H = 2 10 × 16 b i t 43FFH - 4000H + 1 = 4400H - 4000H = 2^{10} × 16 bit
每片容量: 2 10 × 16 b i t 4 = 256 × 16 b i t \frac{2^{10} × 16 bit}{4} = 256 × 16 bit
注: 1 B y t e = 8 b i t 1 Byte = 8 bit 1 K B = 1024 B 1 KB = 1024 B地址编号从 80000 H 80000H 到 B F F F F H BFFFFH ,求按字节编址的内存容量为多少KB?若用 16 K × 4 b i t 16K × 4bit 的存储器芯片构成该内存,共需几片?
- B F F F F H − 80000 H + 1 = 40000 H BFFFFH - 80000H + 1 = 40000H
40000 H = 4 × 1 6 4 = 2 32 B = 256 K B 40000H = 4 × 16^4 = 2^{32}B = 256KB- 16 K × 4 b i t = 8 K 16K × 4bit = 8K
256 K 8 K = 32 片 \frac{256K}{8K} = 32 片
① 寻址方式
- 立即寻址:操作数就包含在指令中。
- 直接寻址:操作数存放在内存单元中,指令中直接给出操作数所在的存储单元的地址。
- 寄存器寻址:操作数存放在某一寄存器中,指令中给出存放操作数的寄存器名。
- 寄存器间接寻址:操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中。
- 间接寻址:指令中给出操作数地址的地址。
寻址速度由快倒慢依次为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,间接寻址
。
(4)相联存储器
一种按内容访问的存储器。
工作原理:把数据或数据的某一部分作为关键字,按顺序写入信息,读出时并行地将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字,特别适合于信息的检索和更新。
(5)高速缓存(Cache)
用来存放当前最活跃的程序和数据,特点:位于CPU与主存之间
;容量一般在几千字节到几兆字节之间;速度一般比主存快5~10倍,由快速半导体存储器构成;在整个存储体系中,除了寄存器,Cache速度是最快的
。
① 高速缓存的组成和功能
- 组成:
存储器部分:存放主存的部分拷贝(副本)信息。
控制部分:判断CPU要访问的信息是否在Cache存储器中,在 = 命中,不在 = 没有命中。 - 功能:提高CPU输入输出的速率,突破冯诺·依曼瓶颈,即CPU与存储器系统间数据传送带宽限制,在程序执行过程中,Cache与主存的地址映射是由硬件自动完成的。
② 高速缓存中的地址映像方法
在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换成Cache存储器的地址,这种地址的转换称为地址映像。
- 直接映像:指主存的块与Cache块的对应关系是固定的,主存中的块只能存放在Cache存储器的相同块号中。
主存地址中的主存区号与Cache中记录的主存区号相同
,则表明访问Cache命中。
优点:地址变换很简单。
缺点:灵活性差。
- 全相联映像:主存与Cache存储器均分成大小相同的块。这允许主存的任一块可以调入Cache存储器的任何一个块的空间中。利用
主存地址高位表示的主存块号与Cache中相联存储器所有单元中记录的主存块号进行比较
,若相同即为命中。
优点:主存的块调入Cache的位置不受限制,十分灵活。
缺点:无法从主存块号中直接获得Cache的块号,变换比较复杂,速度比较慢。
- 组相联映像:前面两种方式的折中。将Cache中的块再分成组,规定组采用直接映像方式而块采用全相联映像方式。通过直接映像方式来决定组号,在一组内再用全相联映像方式来决定Cache中的块号。由主存地址高位决定的主存区号与Cache中区号比较可决定是否命中。主存后面的地址即为组号。
注:这三种映射方式都是计算机硬件自动完成的。
③ 替换算法
目标:使Cache获得尽可能高的命中率。
- 随机替换算法:用随机数发生器产生一个要替换的块号,将该块替换出去。
- 先进先出算法:将最先进入Cache的信息块替换出去。
- 近期最少使用算法:将近期最少使用的Cache中的信息块替换出去。
- 优化替换算法:必须先执行一次程序,统计Cache的替换情况。第二次执行该程序时便可以用最有效的方式来替换。
④ Cache的性能分析
Cache的性能是计算机系统性能的重要方面
。命中率是Cache的一个重要指标,但不是最主要的指标。
设
H c H_c
为Cache的命中率,
t c t_c
为Cache的存取时间,
t m t_m
为主存的访问时间,假设Cache访问和主存访问是同时启动的,其中,
t c t_c
为Cache命中时的访问时间,
( t m − t c ) (t_m - t_c)
为失效访问时间,
( 1 − H c ) (1 - H_c)
为失效率。则Cache存储器的等效加权平均访问时间
t a t_a
为:
t a = H c × t c + ( 1 − H c ) × t m = t c + ( 1 − H c )( t m − t c
) t_a = H_c × t_c + (1 - H_c)× t_m = t_c + (1- H_c)(t_m -
t_c)
如果在Cache不命中时才启动主存,则:
t a = t c + ( 1 − H c ) × t m t_a = t_c +(1 - H_c) × t_m
Cache容量越大,则命中率越高,随着Cache容量的增加,其失效率接近0%(命中率逐渐接近100%)但增加Cache容量意味着增加Cache的成本和增加Cache的命中时间。
⑤ 多级Cache
一级(L1Cache)、二级(L2 Cache)、三级(L3 Cache)…
CPU访存时首先查找L1 Cache,如果不命中,则访问L2
Cache,直到所有级别的Cache都不命中,才访问主存。
通常要求L1 Cache的速度足够快,以赶上CPU的主频。L2
Cache则具有较高的容量,以使高速缓存具有足够高的命中率。
(6) 虚拟存储器(Virtual Memory)
使用虚拟地址(VirtualAddress,由CPU生成)的概念来访问主存,使用专门MMU(Memory Management Unit)将虚拟地址转换为物理地址后访问主存。
(7)外存储器
用来存放暂时不用的程序和数据,并且以文件的形式存储。CPU不能直接访问外存中的程序和数据,只有将其以文件为单位调入主存才可访问。
① 磁表面存储器
磁盘:在磁表面存储器中的存取速度较快,且具有较大的存储容量,是目前广泛使用的外存储器。
硬盘:最常见的外存储器。
磁道:为了正确地存储信息,将盘片划成许多同心圆。从外到里编号,最外一圈为
0 0 道,往内道号依次增加。
道密度:沿径向的单位距离的磁道数,单位为:tpi(每英寸磁道数)。
位密度:磁道上单位距离可记录的位数,单位为bpi(每英寸位数)。
最大位密度:最内圈的位密度。
将一个磁道沿圆周等分为若干段,每段称为一个扇段或扇区,每个扇区内可存放一个固定长度的数据块。每条磁道都记录同样多的信息
,里圈磁道的位密度要比外圈磁道的位密度高
。
硬盘的寻址信息:由硬盘驱动号、圆柱面号、磁头号(记录面号)、数据块号(或扇区号)以及交换量组成。
磁盘容量指标:
- 非格式化容量:指一个磁盘所能存储的总位数,计算公式: 非格式化容量 = 面数 × ( 磁道数 / 面 ) × 内圆周长 × 最大位密度 非格式化容量=面数×(磁道数/面)×内圆周长×最大位密度
- 格式化容量:指各扇区中数据区容量的总和,计算公式: 格式化容量 = 面数 × ( 磁道数 / 面 ) × ( 扇区数 / 道 ) × ( 字节数 / 扇区 ) 格式化容量=面数×(磁道数/面)×(扇区数/道)×(字节数/扇区)
② 光盘存储器
一种采用聚焦激光束在盘式介质上非接触地记录高密度信息的新型存储装置。由光学、电学和机械部件等组成。
特点:记录密度高、存储容量大、采用非接触式读/写信息(光头距离光盘通常为2mm)、信息可长期保存(其寿命达10年以上)、采用多通道记录时数据传送率可超过200Mb/s、制造成本低、对机械结构的精度要求不高、存取时间较长。
- 只读型光盘(CD-ROM)
- 只写一次型光盘(WORM)
- 可擦除型光盘
③ 固态硬盘
固态硬盘的存储介质:采用闪存(FLASH芯片)作为存储介质;采用DRAM作为存储介质。
优点:具有传统机械硬盘不具备的读写快速、质量轻、能耗低以及体积小等
缺点:价格仍较为昂贵,容量较低,一旦硬件损坏,数据较难恢复。
(8)磁盘阵列技术
由多台磁盘存储器组成的一个快速、大容量、高可靠的外存子系统。现在常见的磁盘阵列称为廉价冗余磁盘阵列*Redundant Array of Independent Disk,RAID)。
(9)存储域网络(Storage Area Network,SAN)
把一个或多个服务器与多个存储设备连接起来,每个存储设备可以是RAID、磁带备份系统、磁带库和CD-ROM库等。
优点:解决了服务器对存储容量的要求、多个服务器之间共享文件系统和辅助存储空间、避免数据和程序代码的重复存储、提高辅助存储器的利用率、降低了大容量存储系统的管理成本、提高了管理效率
3. 输入/输出技术
(1)微型计算机中最常用的内存与接口的编址方式
- 内存与接口地址独立编址方法:内存地址和接口地址是完全独立的两个地址空间,它们是完全独立的并且是相互隔离的。访问数据时所使用的指令也完全不同,用于接口的指令只用于接口的读/写,其余的指令全都是用于内存的。
优点:在编程序或读程序时很易使用和辨认。
缺点:用于接口的指令太少、功能太弱。
- 内存与接口地址统一编址方法:内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接口共用地址空间。在这些地址空间里划分出一部分地址分配给接口使用,其余地址归内存单元使用,不能互用。
优点:原则上用于内存的指令全都可以用于接口,这就大大地增强了对接口的操作功能,而且在指令上也不再区分内存或接口指令。
缺点:整个地址空间被分成两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。
(2)直接程序控制
指外设数据的输入/输出过程是在CPU执行程序的控制下完成的。
- 无条件传送:外设总是准备好的,它可以无条件地随时接收CPU发来的输出数据,也能够无条件地随时向CPU提供需要输入的数据。
- 程序查询方式:利用查询方式进行输入/输出,就是通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。根据这种状态,CPU有针对性地为外设的输入/输出服务。
缺点:降低了CPU的效率、对外部的突发事件无法做出实时响应。
(3)中断方式
利用中断方式完成数据的输入/输出过程为:当I/O系统与外设交换数据时,CPU无须等待也不必去查询I/O的状态,而可以抽身出来处理其他任务。当I/O系统准备好以后,则发出中断请求信号通知CPU,CPU接到中断请求信号后,保存正在执行程序的现场,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被打断的程序继续执行。与程序控制方式相比,中断方式因为CPU无须等待而提高了效率
。
中断处理时间:指从中断处理程序开始到中断处理结束,中断向量提供中断处理程序的入口地址。多级中断嵌套,使用堆栈来保护断点和现场。
① 中断处理方法
- 中断信号线法(Multiple InterruptLines):每个中断源都有属于自己的一根中断请求信号线向CPU提出中断请求。
- 中断软件查询法(Software Poll):对各个设备的响应优先级由软件设定。
- 菊花链法(Daisy Chain):一种硬件查询法。
- 总线仲裁法:一个I/O设备在发出中断请求之前,必须先获得总线控制权,所以可由总线仲裁机制来裁定谁可以发出中断请求信号。
- 中断向量表法:中断向量表用来保存各个中断源的中断服务程序的入口地址,中断源的优先级由中断控制器(INTC)来控制。
② 中断优先级控制
- 当不同优先级的多个中断源同时提出中断请求时,CPU应优先响应优先级最高的中断源。
- 中断嵌套:
一个中断服务程序中嵌套着另一个中断服务程序
。当CPU正在对某一个中断源服务时,又有比它优先级更高的中断源提出中断请求,CPU应能暂时中断正在执行的中断服务程序而转去对优先级更高的中断源服务,服务结束后再回到原先被中断的优先级较低的中断服务程序继续执行。
(4)直接存储器存取方式取(Direct Memory Access,DMA)
CPU只需完成必要的初始化等操作(向DMA控制器下达指令),数据传输的整个过程由DMA控制器来完成
,数据传送完毕再把信息反馈给CPU。在主存和外设之间建立直接的数据通路,效率很高。适用于硬盘等高速设备。
不是DMA一请求CPU就响应,而是CPU在完成当前的总线周期后立即对此请求作出响应,因为DMA控制器在需要的时候会代替CPU作为总线主设备,在不受CPU干预的情况下,控制I/O设备与系统主存之间的直接数据传输。在DMA传送数据期间,CPU不能使用总线
。
(5)输入/输出处理机(IOP)
通道,又称输入输出处理器(Input/Output
Processor,IOP):一个具有特殊功能的处理器,分担了CPU的一部分功能,可以实现对外围设备的统一管理,完成外围设备与主存之间的数据传送。大大提高了CPU的工作效率,这种效率的提高是以增加更多的硬件为代价的。
外围处理机(Peripheral Processor
Unit,PPU):专用处理机,通道方式的进一步发展。根据主机的I/O命令,完成对外设数据的输入输出。
4. 总线结构
指计算机设备和设备之间传输信息的公共数据通道。总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多种设备连接到总线上。
(1)总线的分类
① 内部总线
微机内部各个外围的芯片与处理器之间的总线。是芯片的级别。
② 系统总线
微机中各个插电版和系统版之间的总线。属于插件版 这一层级。
- 数据总线(Data Bus,DB):用来传送数据信息,是双向的。
- 地址总线(Address Bus,AB):用于传送CPU发出的地址信息,是单向的。
- 控制总线(Control Bus,CB):用来传送控制信号、时序信号和状态信息等。CB中的每一条线的信息传送方向是单方向且确定的,但CB作为一个整体则是双向的。所以,在各种结构框图中,凡涉及到控制总线CB,均是以双向线表示。
③ 外部总线
微机和外部设备的总线。
(2)常见总线
- ISA总线:工业标准总线,只能支持 16 16 位的I/O设备,也称为AT标准。
- EISA总线。EISA是在ISA总线的基础上发展起来的32位总线。
- PCI总线:是目前微型机上广泛采用的内总线,采用并行传输方式。
- PCI Express总线:简称为PCI-E,采用点对点串行连接,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率。
- 前端总线(Front Side Bus,FSB):将CPU连接到北桥芯片的总线。选购主板和CPU时,要注意两者的搭配问题,一般来说,如果CPU不超频,那么前
- RS-232C:一条串行外总线,其主要特点是所需传输线比较少,最少只需三条线(一条发、一条收、一条地线)即可实现全双工通信。
- SCSI总线:一条并行外总线,广泛用于连接软硬磁盘、光盘、扫描仪等。
- SATA(SerialATA):即串行ATA。它主要用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输之用。
- USB:由 4 4 条信号线组成,其中两条用于传送数据,另外两条传送 + 5 V +5V 容量为 500 m A 500mA 的电源。最大的优点还在于它支持即插即用,并支持热插拔
- IEEE-1394:高速串行外总线,近几年得到广泛应用。
- IEEE-488总线:并行总线接口标准。
三、 安全性、可靠性与系统性能测评基础知识
1. 计算机安全概述
(1)计算机的安全等级
计算机系统中的三类安全性是指技术安全性、管理安全性和政策法律安全性。
(2)安全威胁
指某个人、物、事件对某一资源的机密性、完整性、可用性或合法性所造成的危害。安全威胁分为两类:故意(如黑客渗透)和偶然(如信息发往错误的地址)。
(3)影响数据安全的因素
- 内部因素:可采用多种技术对数据加密;制定数据安全规划;建立安全存储体系,包括容量、容错数据保护和数据备份等;建立事故应急计划和容灾措施;重视安全管理,制定数据安全管理规范。
- 外部因素:可将数据分成不同的密级,规定外部使用人员的权限;设置身份认证、密码、设置口令、设置指纹和声纹笔迹等多种认证;设置防火墙,为计算机建立一道屏障,防止外部入侵破坏数据;建立入侵检测、审计和追踪,对计算机进行防卫。同时,也包括计算机物理环境的保障、防辐射、防水和防火等外部防灾措施。
2. 加密技术和认证技术
(1)加密技术
最常用的安全保密手段,数据加密技术的关键在于加密/解密算法和密钥管理。数据加密和数据解密是一对逆过程。
在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络信息的通信安全。密钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。
① 对称加密技术(私人密钥加密)
对称加密采用了对称密码编码技术,其特点是文件加密和解密使用相同的密钥
。
- 数据加密标准(Digital Encryption
Standard,DES)算法:采用
替换和移位
的方法加密。用 56 56 位密钥对 64 64 位二进制数据块进行加密。运算速度快,密钥生产容易
。 - 三重DES(3DES,或称TDEA):在DES的基础上采用三重DES,用两个 56 56 位的密钥 K 1 K_1 和 K 2 K_2 。
加密 【 K 1 加密 − > K 2 解密 − > K 1 加密】 【K_1加密 -> K_2解密 -> K_1加密】 ,加密 【 K 1 解密 − > K 2 加密 − > K 1 解密】 【K_1解密 -> K_2加密 -> K_1解密】
- RC-5(Rivest Cipher 5)
- 国际数据加密算法(International Data Encryption Adleman,IDEA):IDEA的密钥为128位,64位数据块,比DES加密性好,对计算机功能要求相对低。
- 高级加密标准(Advanced Encryption Standard,AES):基于排列和置换运算。
② 非对称加密技术(公开密钥加密)
又称公开秘钥加密技术,非对称加密技术的保密性好
,它消除了最终用户交换秘钥的需要,但加密解密花费的时间长,速度慢
,不适合对文件加密,而只适合对少量数据进行加密。非对称加密算法需要两个密钥:公开密钥(Publickey)和私有密钥(Privatekey)
- RSA: 512 512 位或 1024 1024 位秘钥,计算量极大,难破解。
- Elgamal:其基础是Diffie-HEllman秘钥交换算法。
- ECC:椭圆曲线算法。
- 其他非对称算法:背包算法,Rabin,D-H。
③ 密钥管理
密钥是有生命周期的,它包括密钥和证书的有效时间,以及已撤销密钥和证书的维护时间等。密钥既然要求保密,这就涉及密钥的管理问题,管理不好,密钥同样可能被无意识地泄露,并不是有了密钥就可以高枕无忧,任何保密也只是相对的,是有时效的。密钥管理主要是指密钥对的安全管理,包括:密钥产生、密钥备份、密钥备份和恢复、密钥更新等。
(2)认证技术
主要解决网络通信过程中通信双方的身份认可。认证的过程涉及加密和密钥交换。通常,加密可使用对称加密、不对称加密及两种加密方法的混合方法。认证方一般有账户名/口令认证、使用摘要算法认证和基于PKI的认证。
- PKI:一种遵循既定标准的密钥管理平台,能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系。PKI的基础技术包括:加密、数字签名、数据完整性机制、数字信封和双重数字签名等。完整的PKI系统必须具有:权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(Application Programming Interface,API)等基本构成部分。
- Hash函数与信息摘要(Message Digest)
- 数字签名
- SSL协议
- 数字时间戳技术
3. 计算机可靠性
(1)计算机可靠性概述
计算机系统的硬件故障通常是由元器件的失效引起的。
计算机系统的可靠性是指从它开始运行
( t = 0 ) (t = 0) 到某时刻
t t 这段时间内能正常运行的概率,用
R ( t ) R(t)
表示。所谓失效率,是指单位时间内失效的元件数与元件总数的比例,用
λ λ 表示,当
λ λ
为常数时,可靠性与失效率的关系为:
R ( t ) = e ⁻ λ t R(t)= e^{⁻λt}
(2)计算机可靠性模型
- 串联系统:当且仅当所有的子系统都能正常工作时系统才能正常工作。
可靠性: R = R 1 × R 2 × . . . × R N R = R_1 × R_2 × ... × R_N
失效率: λ = λ 1 + λ 2 + . . . + λ N λ = λ_1 + λ_2 + ... + λ_N
- 并联系统:只要有一个子系统正常工作,系统就能正常工作
可靠性: R = 1 − ( 1 − R 1 )( 1 − R 2 ) . . . ( 1 − R N ) R = 1 - (1 - R_1)(1 - R_2)...(1 - R_N)
失效率:
- N模冗余系统:在 N ( N = 2 n + 1 ) N(N = 2n + 1) 个子系统中,只要有 n + 1 n + 1 个或 n + 1 n + 1 个以上的子系统能正常工作,系统就能正常工作
可靠性:
提高计算机的可靠性措施:提高元器件质量,改进加工工艺与工艺结构,完善电路设计;发展容错技术,使得在计算机硬件有故障的情况下,计算机仍能继续运行,得出正确的结果。
4. 计算机系统的性能评价
(1)性能评测的常用方法
- 时钟频率:一般来讲,主频越高,速度越快。
- 指令执行速度:速度是计算机的主要性能指标之一。
- 等效指令速度法:统计各类指令在程序中所占的比例,并进行折算。
- 数据处理速率法(Processing Data Rate,PDR):PDR值越大,机器性能越好。
- 核心程序法:由于程序短,所以访问存储器的局部性特征很明显,以至于Cache的命中率比一般程序高。
(2)基准测试程序(Benchmark)
- 整数测试程序(Dhrystone):一个综合性的基准测试程序,结果由每秒多少个Dhrystones来表示机器的性能,这个数值越大,性能越好。
- 浮点测试程序:在科学计算和工程应用领域内,浮点计算工作量占很大比例,因此机器的浮点性能对系统的应用有很大的影响。
- 理论峰值浮点速度:多个CPU机器的峰值速度是单个CPU的峰值速度与CPU个数的乘积。
- Linpack基准测试程序:称为基本线性代数子程序包,此程序完成的主要操作是浮点加法和浮点乘法
- Whetstone基准测试程序:主要由执行浮点运算、整数算术运算、功能调用、数组变址、条件转移和超越函数的程序组成。测试结果用Kwips表示, 1 1 Kwips表示机器每秒钟能执行 1000 1000 条Whetstone指令。
- SPEC基准程序(System Performance Evaluation Cooperation,SPEC Benchmark):强调开发能反映真实应用的基准测试程序集,并已推广至测试高性能计算机系统、网络服务器上商业应用服务器等。
- TPC基准程序(Transaction Processing Council,事务处理委员会):用于评测计算机在事务处理、数据库处理、企业管理与决策支持系统等方面的性能。