软考|架构|基础知识| 计算机组成与结构
计算机组成与结构
1.2 机器数与真值
各种数值在计算机中表示的形式称为机器数,其特点是使用二进制计数制,数的符号用 0 和 1 表示,小数点则隐含,不占位置。
机器数有无符号数和带符号数之分。无符号数表示正数,没有符号位。带符号数最高位为符号位,正数符号位为 0,负数符号位为 1。定点表示法分为纯小数和纯整数两种,其中小数点不占存储位,而是按照以下约定:
-
纯小数:约定小数点的位置在机器数的最高数值位之前。 -
纯整数:约定小数点的位置在机器数的最低数值位之后。
真值:机器数对应的实际数值。
带符号数有下列编码方式:
-
原码:一个数的正常二进制表示,最高位表示符号,数值 0 的原码有两种形式:+0(00000000)、-0(10000000)。 -
反码:正数的反码即原码;负数的反码是在原码的基础上,除符号位外,其他各位按位取反。 -
补码:正数的补码即原码;负数的补码是在原码的基础上,除符号位外,其他各位按位取反,而后末位 + 1,若有进位则产生进位。因此数值 0 的补码只有一种形式:+0=-0=00000000。 -
移码:用作浮点运算的阶码,无论正数负数,都是将该原码的补码的首位(符号位)取反得到移码。
符号表示:要注意的是,原码最高位是代表正负号,且不参与计数;而其他编码最高位虽然也是代表正负号,但参与计数。
机器字长为 n 时各种码制表示的带符号数的取值范围:
|
|
|
|
|---|---|---|
|
|
−(2n−1−1)+(2n−1−1) | −(1−2−(n−1))+(1−2−(n−1)) |
|
|
−(2n−1−1)+(2n−1−1) | −(1−2−(n−1))+(1−2−(n−1)) |
|
|
−2n−1+(2n−1−1) | −1+(1−2−(n−1)) |
|
|
−2n−1+(2n−1−1) | −1+(1−2−(n−1)) |
1.3 浮点数
浮点数表示方法为N=F×2E,其中 E 称为阶码,F 称为尾数;类似于十进制的科学计数法,如85.125=0.85125×102,二进制如101.011=0.101011×23。
在浮点数的表示中,阶码为带符号的纯整数,尾数为带符号的纯小数,要注意符号占最高位(正数 0 负数 1),其表示格式如下:
|
|
|
|---|
很明显,与科学计数法类似,一个浮点数的表示方法不是唯一的,浮点数所能表示的数值范围由阶码确定,所表示的数值精度由尾数确定。
尾数的表示采用规格化方法,也即带符号尾数的补码必须为 1.0xxxx(负数)或者 0.1xxxx(正数),其中 x 可为 0 或 1。
浮点数的运算步骤:
-
对阶:使两个数的阶码相同,小阶向大阶看齐,小阶码增加几位,尾数就右移几位。 -
尾数计算:相加,若是减运算,则加负数。 -
结果规格化:即尾数表示规格化,带符号尾数转换为 1.0xxxx 或 0.1xxxx。
1.4 算术运算与逻辑运算
数与数之间的算术运算包括加、减、乘、除等基本算术运算,对于二进制数,还应该掌握基本逻辑运算:
-
逻辑与(&&):0 和 1 相与,只要有一个为 0 结果就为 0,两个都为 1 才为 1。 -
逻辑或(||):0 和 1 相或,只要有一个为 1 结果就为 1,两个都为 0 才为 0。 -
异或:同 0 非 1,即参加运算的二进制数同为 0 或者同为 1 结果为 0,一个为 0 另一个为 1 结果为 1。 -
逻辑非(!):0 的非是 1,1 的非是 0。 -
逻辑左移(<<):二进制数整体左移 n 位,高位若溢出则舍去,低位补 0。 -
逻辑右移(>>):二进制数整体右移 n 位,低位溢出则舍去,高位补 0。 -
算术左移 / 算术右移:乘以 2 或者除以 2 的算术运算,涉及加减乘除的都是算术运算,与逻辑运算区分。
短路计算方式:指通过逻辑运算符(&&、||)左边表达式的值就能推算出整个表达式的值,不再继续执行逻辑运算符右边的表达式。
若计算机存储数据采用的是双符号位(00 表示正号、11 表示负号),两个符号相同的数相加时,如果运算结果的两个符号位经异或运算得 1,则可断定这两个数相加的结果产生了溢出。
从计算的角度理解,正数和负数相加其结果肯定不会溢出,如果有溢出,必然同为正数或者同为负数,结果才会更大,有可能溢出,因此,正常两个同符号数相加时,不考虑溢出,其符号位必然还是 00 或者 11,如果有溢出,那么数据位必然最高位进位 1,符号位就需要加 1,符号位就变为 01 或者 10,因此当符号位为 01 或者 10 时数据溢出,观察这两种溢出情况的两个符号位都是一个为 0,一个为 1,其异或运算必然为 1,没有其他可能,而逻辑或运算有可能两个都为 1 也能得出 1。
2 校验码
码距:就单个编码 A:00 而言,其码距为 1,因为其只需要改变一位就变成另一个编码。在两个编码中,从 A 码到 B 码转换所需要改变的位数称为码距,如 A:00 要转换为 B:11,码距为 2。一般来说,码距越大,越利于纠错和检错。
2.1 奇偶校验
在编码中增加 1 位校验位来使编码中 1 的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变为 2。奇校验可以检测编码中奇数个数据位出错,即当合法编码中的奇数位发生了错误时,即编码中的 1 变成 0 或者 0 变成 1,则该编码中 1 的个数的奇偶性就发生了变化,从而检查出错误。但无法纠错。
2.2 CRC 校验
CRC 只能检错,不能纠错,其原理是找出一个能整除多项式的编码,因此首先要将原始报文除以多项式,将所得的余数作为校验位加在原始报文之后,作为发送数据发给接收方。
使用 CRC 编码,需要先约定一个生成多项式G(x)。生成多项式的最高位和最低位必须是 1。假设原始信息有 m 位,则对应多项式M(x)。生成校验码思想就是在原始信息位后追加若干校验位,使得追加的信息能被G(x)整除。接收方接收到带校验位的信息,然后用G(x)整除。余数为 0,则没有错误;反之则发生错误。
例:假设原始信息串为 10110,CRC 的生成多项式为G(x)=x4+x+1,求 CRC 校验码。
-
在原始信息位后面添 0,假设生成多项式的阶为 r,则在原始信息位后添加 r 个 0,本题中,G (x) 阶为 4,则在原始信息串后加 4 个 0,得到的新串为 101100000,作为被除数。 -
由多项式得到除数,多项式中 x 的幂指数存在的位置为 1,不存在的位置为 0。本题中,x 的幂指数为 0,1,4 的变量都存在,而幂指数为 2,3 的不存在,因此得到串 10011。 -
生成 CRC 校验码,将前两步得出的被除数和除数进行模 2 除法运算(即不进位也不借位的除法运算)。得到余数 1111。注意:余数不足 r,则余数左边用若干个 0 补齐。如求得余数为 11,r=4,则补两个 0 得到 0011。 -
生成最终发送信息串,将余数添加到原始信息后。上例中,原始信息为 10110,添加余数 1111 后,结果为 101101111。发送方将此数据发送给接收方。 -
接收方进行校验。接收方的 CRC 校验过程与生成过程类似,接收方接收了带校验和的帧后,用多项式 G (x) 来除。余数为 0,则表示信息无错;否则要求发送方进行重传。
注意:收发信息双方需使用相同的生成多项式。
2.3 海明校验码
本质也是使用奇偶校验方式检验,通过下面例题详解海明校验码:
例:求信息 1011 的海明码。
-
校验位的位数和具体的数据位的位数之间的关系所有位都编号,从最低位编号,从 1 开始递增,校验位处于 2 的n(n=0,1,2⋯)次方中,即处于第 1,2,4,8,16,32,...... 位上,其余位才能填充真正的数据位,若信息数据为 1011,则可知,第 1,2,4 位为校验位,第 3,5,6,7 位为数据位,用来从低位开始存放 1011,得出信息位和校验位分布如下:| 位数 | 7 | 6 | 5 | 4 | 3 | 2 | 1 || --- | --- | --- | --- | --- | --- | --- | --- || 信息位 | I4 | I3 | I2 | - | I1 | - | - || 校验位 | - | - | - | r2 | - | r1 | r0 |
实际考试时可以依据公式n+k≤2k−1快速得出答案(n 是已知的数据位个数,k 是未知的校验位个数,依次取k=1代入计算,得出满足上式的最小的 k 的值)。
-
计算校验码将所有信息位的编号都拆分成二进制表示:7=22+21+20,6=22+21,5=22+20,3=21+20;
r2=I4⊕I3⊕I2
r1=I4⊕I3⊕I1
r0=I4⊕I2⊕I1
上图中,7=4+2+1,表示 7 由第 4 位校验位(r2)和 2 位校验位(r1)和第 1 位校验位(r0)共同校验,同理,第 6 位数据位6=4+2,第 5 位数据位5=4+1,第 3 位数据位3=2+1,前面知道,这些 2 的 n 次方都是校验位,可知,第 4 位校验位校验第 7、6、5 三位数据位,因此,第 4 位校验位 r2 等于这三位数据位的值异或,第 2 位和第 1 位校验位计算原理同上,最终得到如下:
|
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
计算出三个校验位后,可知最终要发送的海明校验码为 1010101。
-
检错和纠错原理接收方收到海明码之后,会将每一位校验位与其校验的位数分别异或,即做如下三组运算:r2⊕I4⊕I3⊕I2
r1⊕I4⊕I3⊕I1
r0⊕I4⊕I2⊕I1
如果是偶校验,那么运算得到的结果应该全为 0,如果是奇校验,应该全为 1,才是正确,假设是偶校验,且接收到的数据为 1011101(第四位出错),此时,运算的结果为:r2⊕I4⊕I3⊕I2=1⊕1⊕0⊕1=1
r1⊕I4⊕I3⊕I1=1⊕1⊕0⊕1=1
r0⊕I4⊕I2⊕I1=1⊕1⊕1⊕1=0
这里不全为 0,表明传输过程有误,并且按照 r2r1r0 排列为二进制 100,这里指出的就是错误的位数,表示第 4 位出错,找到了出错位,纠错方法就是将该位逆转。
3 计算机硬件基本系统
计算机的硬件基本系统由五大部分组成:运算器、控制器、存储器、输入设备(如鼠标键盘)、输出设备(如显示器)。
其中,运算器和控制器合并称为中央处理单元,即 CPU;存储器分为内部存储器(即内存,容量小,速度快,临时存放数据)和外部存储器(即硬盘、光盘等,容量大,速度慢,长期保存数据);输入设备和输出设备合并称为外设。
鼠标键盘等输入设备都是通过中断的原理来实现控制,点击后触发中断,首先进入中断处理程序。
主机:CPU(运算器、控制器)+ 主存储器。
CPU:由运算器、控制器、寄存器组和内部总线组成。实现程序控制、操作控制、时间控制、数据处理功能。
运算器:由算术逻辑单元 ALU(实现对数据的算术和逻辑运算)、累加寄存器 AC(运算结果或源操作数的存放区)、数据缓冲寄存器 DR(暂时存放内存的指令或数据)、和状态条件寄存器 PSW(保存指令运行结果的条件码内容,如溢出标志等)组成。执行所有的算术运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如与、或、非、比较等。
控制器:由指令寄存器 IR(暂存 CPU 执行指令)、程序计数器 PC(存放指令执行地址)、地址寄存器 AR(保存当前 CPU 所访问的内存地址)、指令译码器 ID(分析指令操作码)等组成。控制整个 CPU 的工作,最为重要。
CPU 依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令 CPU 分别去取指令或者数据。
计算机指令的组成
一条指令由操作码和操作数两部分组成,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。
在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。
计算机指令执行过程
可分为取指令 -- 分析指令 -- 执行指令三个步骤,首先将程序计数器 PC 中的指令地址取出,送入地址总线,CPU 依据指令地址去内存中取出指令内容存入指令寄存器 IR;而后由指令译码器进行分析,分析指令操作码;最后执行指令,取出指令执行所需的源操作数。
指令寻址方式
-
顺序寻址方式:由于指令地址在主存中顺序排列,当执行一段程序时,通常是一条指令接着一条指令地顺序执行。从存储器取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,再执行第二条指令;....,以此类推。这种程序顺序执行的过程称为指令的顺序寻址方式。 -
跳跃寻址方式:所谓指令的跳跃寻址,是指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,指令计数器的内容也必须相应改变。 -
立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身。 -
直接寻址方式:在指令的地址字段中直接指出操作数在主存中的地址。 -
间接寻址方式:与直接寻址方式相比,间接寻址中指令地址码字段所指向的存储单元中存储的不是操作数本身,而是操作数的地址。 -
寄存器寻址方式:指令中的地址码是寄存器的编号,而不是操作数地址或操作数本身。寄存器的寻址方式也可以分为直接寻址和间接寻址,两者的区别在于:前者的指令地址码给出寄存器编号,寄存器的内容就是操作数本身;而后者的指令地址码给出寄存器编号,寄存器的内容是操作数的地址,根据该地址访问主存后才能得到真正的操作数。 -
基址寻址方式:将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,其优点是可以扩大寻址能力。 -
变址寻址方式:变址寻址方式计算有效地址的方法与基址寻址方式很相似,它是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。 -
相对寻址方式:相对于当前的指令地址而言的寻址方式。相对寻址是把程序计数器 PC 的内容加上指令中的形式地址而形成操作数的有效地址,而程序计数器的内容就是当前指令的地址,所以相对寻址是相对于当前的指令地址而言的。
4 计算机系统分类
按处理机的数量进行分类:
-
单处理系统(一个处理单元和其他设备集成) -
并行处理系统(两个以上的处理机互联) -
分布式处理系统(物理上远距离且松耦合的多计算机系统)
Flynn 分类法
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
由上表可知,分类有两个因素,即指令流和数据流,指令流由控制部分处理,每一个控制部分处理一条指令流,多指令流就有多个控制部分;数据流由处理器来处理,每一个处理器处理一条数据流,多数据流就有多个处理器;至于主存模块,是用来存储的,存储指令流或者数据流,因此,无论是多指令流还是多数据流,都需要多个主存模块来存储,对于主存模块,指令和数据都一样。
依据计算机特性,是由指令来控制数据的传输,因此,一条指令可以控制一条或多条数据流,但一条数据流不能被多条指令控制,否则会出错,就如同上级命令太多还互相冲突,不知道该执行哪个,因此多指令单数据 MISD 不可能。
5 CISC 与 RISC
CISC 是复杂指令系统,兼容性强,指令繁多、长度可变,由微程序实现;RISC 是精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器、硬布线逻辑控制)。
二者各方面区分如下表:
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
6 流水线技术
6.1 流水线概念与类型
将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段。
RISC 中的流水线技术:
-
超流水线(在每个机器周期内能完成一个甚至两个浮点操作,以时间换空间) -
超标量(内装多条流水线同时执行多个处理,以空间换时间) -
超长指令字 VLIW(同时执行多条指令,发挥软件作用)
6.2 流水线相关计算
-
流水线周期:指令分成不同执行段,其执行时最长的段为流水线周期。 -
单缓冲区和双缓冲区:此类题型不给出具体流水线执行阶段,需要考生自己区分出流水线阶段,一般来说,能够同时执行的阶段就是流水线的独立执行阶段;只能独立执行的阶段应该合并为流水线中的一个独立执行阶段。
例如有三个阶段即读入缓冲区 + 送入用户区 + 数据处理,在单缓冲区中,缓冲区和用户区都只有一个,一个盘块必须执行完前两个阶段,下一个盘块才能开始,因此前两个阶段应该合并,整个流水线为送入用户区 + 数据处理;而在双缓冲区中,盘块可以交替读入缓冲区,但用户区只有一个,因为缓冲区阶段可以同时进行,流水线前两个阶段不能合并,就是读入缓冲区 + 送入用户区 + 数据处理三段。
划分出真正的流水线阶段后,套用流水线时间计算公式可以轻易得出答案。
-
流水线吞吐率计算:吞吐率即单位时间内执行的指令条数。公式:指令条数 / 流水线执行时间。 -
流水线的加速比计算:加速比即使用流水线后的效率提升度,即比不使用流水线快了多少倍,越高表明流水线效率越高,公式:不使用流水线执行时间 / 使用流水线执行时间。
7 存储器系统
7.1 存储器分级与分类
计算机存储体系:快→CPU 寄存器→Cache(按内容存取)→内存(主存)→慢→外存(辅存:硬盘、光盘、U 盘等)
计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。
存储器的分类:
-
按存储器所处的位置:内存、外存。 -
按存储器构成材料:磁存储器(磁带)、半导体存储器、光存储器(光盘)。 -
按存储器的工作方式:可读可写存储器(RAM)、只读存储器(ROM 只能读,PROM 可写入一次,EPROM 和 EEPROM 既可以读也可以写,只是修改方式不同)。 -
按存储器访问方式:按地址访问、按内容访问(相联存储器)。 -
按寻址方式:随机存储器(访问任意存储单元所用时间相同)、顺序存储器(只能按顺序访问,如磁带)、直接存储器(二者结合,如磁盘,对于磁道的寻址是随机的,在一个磁道内则是顺序的)。
7.2 局部性原理
总的来说,在 CPU 运行时,所访问的数据会趋向于一个较小的局部空间地址内。(例如循环操作,循环体被反复执行)
-
时间局部性原理:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项。 -
空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问。
7.3 Cache
高速缓存 Cache 用来存储当前最活跃的程序和数据,直接与 CPU 交互,位于 CPU 和主存之间,是透明的。
Cache 由控制部分和存储器组成,存储器存储数据,控制部分判断 CPU 要访问的数据是否在 Cache 中,在则命中,不在则依据一定的算法从主存中替换。
地址映射方法
在 CPU 工作时,送出的是主存单元的地址,而应从 Cache 存储器中读 / 写信息。这就需要将主存地址转换为 Cache 存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射,分为下列三种方法:
-
直接映像:将 Cache 存储器等分成块,主存也等分成块并编号。主存中的块与 Cache 中的块的对应关系是固定的,也即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费。 -
全相联映像:同样都等分成块并编号。主存中任意一块都与 Cache 中任意一块对应。因此可以随意调入 Cache 任意位置,但地址变换复杂,速度较慢。因为主存可以随意调入 Cache 任意块,只有当 Cache 满了才会发生块冲突,是最不容易发生块冲突的映像方式。 -
组相联映像:前面两种方式的结合,将 Cache 存储器先分块再分组,主存也同样先分块再分组,组间采用直接映像,即主存中组号与 Cache 中组号相同的组才能命中,但是组内全相联映像,也即组号相同的两个组内的块可以任意调换。
命中率及平均时间
Cache 存储器的大小一般为 K 或者 M 单位,很小,但是最快,仅次于 CPU 中的寄存器,而寄存器一般不算作存储器,CPU 与内存之间的数据交互,内存会先将数据拷贝到 Cache 里,这样,根据局部性原理,若 Cache 中的数据被循环执行,则不用每次都去内存中读取数据,会加快 CPU 工作效率。
因此,Cache 有一个命中率的概念,即当 CPU 所访问的数据在 Cache 中时,命中,直接从 Cache 中读取数据,设读取一次 Cache 时间为 1ns,若 CPU 访问的数据不在 Cache 中,则需要从内存中读取,设读取一次内存的时间为 1000ns,若在 CPU 多次读取数据过程中,有 90% 命中 Cache,则 CPU 读取一次的平均时间为(90%×1 +10%×1000)ns。
7.4 虚拟存储器
虚拟存储器技术是将很大的数据分成许多较小的块,全部存储在外存中。运行时,将用到的数据调入主存中,马上要用到的数据置于缓存中,这样,一边运行一边进行所需数据块的调入 / 调出。对于应用程序员来说,就好像有一个比实际主存空间大得多的虚拟主存空间,基本层级为:主存 -- 缓存 -- 外存。与 CPU-- 高速缓存 Cache-- 主存的原理类似。但虚拟存储器中程序员无需考虑地址映像关系,由系统自动完成,因此对于程序来说是透明的。
其管理方式分为页式、段式、段页式。
7.5 磁盘存储
磁盘结构和参数
磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存放在一个个扇区中。
磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区,才能读取到对应的数据,因此,会产生寻道时间和等待时间。公式为:
存取时间 = 寻道时间 + 等待时间(平均定位时间 + 转动延迟)
注意:寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。
磁盘调度算法
之前已经说过,磁盘数据的读取时间分为寻道时间 + 旋转时间,也即先找到对应的磁道,而后再旋转到对应的扇区才能读取数据,其中寻道时间耗时最长,需要重点调度,有如下调度算法:
-
先来先服务(FCFS):根据进程请求访问磁盘的先后顺序进行调度。 -
最短寻道时间优先(SSTF):请求访问的磁道与当前磁道最近的进程优先调度,使得每次的寻道时间最短。会产生 “饥饿” 现象,即远处进程可能永远无法访问。 -
扫描算法(SCAN):又称 “电梯算法”,磁头在磁盘上双向移动,其会选择离磁头当前所在磁道最近的请求访问的磁道,并且与磁头移动方向一致,磁头永远都是从里向外或者从外向里一直移动完才掉头,与电梯类似。 -
单向扫描调度算法(CSCAN):与 SCAN 不同的是,其只做单向移动,即只能从里向外或者从外向里。
8 内存与接口地址编址及数据传输方式
内存与接口地址编址方法
-
内存与接口地址独立编址方法在内存与接口地址独立编址方法下,内存地址和接口地址是完全独立的两个地址空间,它们是完全独立的并且是相互隔离的。访问数据时所使用的指令也完全不同,用于接口的指令只用于接口的读 / 写,其余的指令全都是用于内存的。因此,在编程序或读程序时很易使用和辨认。这种编址方法的缺点是用于接口的指令太少、功能太弱。
-
内存与接口地址统一编址方法在这种编址方法中,内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接口共用地址空间。在这些地址空间里划分出一部分地址分配给接口使用,其余地址归内存单元使用。这种编址方法的优点是原则上用于内存的指令全都可以用于接口,这就大大地增强了对接口的操作功能,而且在指令上也不再区分内存或接口指令。该编址方法的缺点就在于整个地址空间被分成两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。
数据传输方式
-
程序控制(查询)方式:CPU 主动查询外设是否完成数据传输,效率极低。 -
程序中断方式:外设完成数据传输后,向 CPU 发送中断,等待 CPU 处理数据,效率相对较高。中断响应时间指的是从发出中断请求到开始进入中断处理程序;中断处理时间指的是从中断处理开始到中断处理结束。中断向量提供中断服务程序的入口地址。多级中断嵌套,使用堆栈来保护断点和现场。 -
DMA 方式(直接主存存取):CPU 只需完成必要的初始化等操作,数据传输的整个过程都由 DMA 控制器来完成,在主存和外设之间建立直接的数据通路,效率很高。在一个总线周期结束后,CPU 会响应 DMA 请求开始读取数据;CPU 响应程序中断方式请求是在一条指令执行结束时;区分指令执行结束和总线周期结束。 -
通道:也是一种处理机,内部具有独立的处理系统,使数据的传输独立于 CPU。分为字节多路通道的传送方式(每一次传送一个通道的一个字节,多路通道循环)和选择通道的传送方式(选择一个通道,先传送完这个通道的所有字节,再开始下一个通道传送)。
中断相关
中断:指 CPU 在正常运行程序时,由于程序的预先安排或内外部事件,引起 CPU 中断正在运行的程序,转到发生中断事件程序中。
中断源:引起程序中断的事件称为中断源。
中断向量:中断源的识别标志,中断服务程序的入口地址。
中断向量表:按照中断类型号从小到大的顺序存储对应的中断向量,总共存储 256 个中断向量。
中断流程图:中断请求→中断响应→关中断→保存断点→识别中断源→保存现场→开中断→中断服务程序→关中断→恢复现场→开中断→中断返回
中断响应:CPU 在执行当前指令的最后一个时钟周期去查询有无中断请求信号,有则响应。
关中断:在保护现场和恢复现场过程中都要先关闭中断,避免堆栈错误。
保护断点:是保存程序当前执行的位置。
保护现场:是保存程序当前断点执行所需的寄存器及相关数据。
中断服务程序:识别中断源,获取到中断向量,就能进入中断服务程序,开始处理中断。
中断返回:返回中断前的断点,继续执行原来的程序。
中断响应时间指的是从发出中断请求到开始进入中断处理程序;中断处理时间指的是从中断处理开始到中断处理结束。中断向量提供中断服务程序的入口地址。多级中断嵌套,使用堆栈来保护断点和现场。
9 总线系统
从广义上讲,任何连接两个以上电子元器件的导线都可以称为总线,通常分为以下三类:
-
内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线。 -
系统总线:是板级总线,用于计算机内各部分之间的连接,具体分为数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传送控制命令)。代表的有 ISA 总线、EISA 总线、PCI 总线。 -
外部总线:设备一级的总线,微机和外部设备的总线。代表的有 RS232(串行总线)、SCSI(并行总线)、USB(通用串行总线,即插即用,支持热插拔)。
并行总线适合近距离高速数据传输,串行总线适合长距离数据传输,专用总线在设计上可以与连接设备实现最佳匹配。
总线计算:总线的时钟周期 = 时钟频率的倒数;总线的宽度 × 传输速率 = 单位时间内传输的数据总量 / 单位时间大小。
10 可靠性指标与系统可靠性
可靠性指标
平均无故障时间 MTTF=1 / 失效率。
平均故障修复时间 MTTR=1 / 修复率。
平均故障间隔时间 MTBF=MTTF+MTTR。
系统可用性 = MTTF/(MTBF)×100%。
串并联系统可靠性
无论什么系统,都是由多个设备组成的,协同工作,而这多个设备的组合方式可以是串联、并联,也可以是混合模式,假设每个设备的可靠性为 R1,R2……Rn,则不同的系统的可靠性公式如下:
-
串联系统:所有设备都可靠,整个系统才可靠,整个系统可靠性R=R1×R2×……×Rn。 -
并联系统:所有设备都不可靠,整个系统才崩溃,整个系统可靠性R=1−(1−R1)×(1−R2)×……×(1−Rn)。 -
N 模冗余系统:N 模冗余系统由 N 个(N=2n+1)相同的子系统和一个表决器组成,表决器把 N 个子系统的输出进行表决,若有 n+1 个或 n+1 个以上子系统能正常工作,系统就能正常工作,输出正确的结果。
系统配置与性能评价
1 性能指标
性能指标,是软、硬件的性能指标的集成。在硬件中,包括计算机、各种通信交换设备、各类网络设备等;在软件中,包括:操作系统、协议以及应用程序等。
-
计算机:对计算机评价的主要性能指标有;时钟频率(主频);运算速度;运算精度;内存的存储容量;存储器的存取期;数据处理速率 PDR(processing data rate);吞吐率;各种响应时间;各种利用率;RASIS 特性(即:可靠性 Reliability、可用性 Availability、可维护性 Serviceability、完整性和安全性 Integrity and Security);平均故障响应时间;兼容性;可扩充性;性能价格比。 -
路由器:对路由器评价的主要性能指标有:设备吞吐量、端口吞吐量、全双工线速转发能力、背靠背帧数、路由表能力、背板能力、丢包率、时延、时延抖动、VPN 支持能力、内部时钟精度、队列管理机制、端口硬件队列数、分类业务带宽保证、RSVP、IP DiffServ、CAR 支持、冗余、热插拔组件、路由器冗余协议、网管、基于 Web 的管理、网管类型、带外网管支持、网管粒度、计费能力 / 协议、分组语音支持方式、协议支持、语音压缩能力、端口密度、信令支持。 -
交换机:对交换机评价的主要性能指标有:交换机类型、配置、支持的网络类型、最大 ATM 端口数、最大 SONET 端口数、最大 FDDI 端口数、背板吞吐量、缓冲区大小、最大 MAC 地址表大小、最大电源数、支持协议和标准、路由信息协议 RIP、RIP2、开放式最短路径优先第 2 版、边界网关协议 BGP、无类域间路由 CIDR、互联网成组管理协议 IGMP、距离矢量多播路由协议 DVMRP、开放式最短路径优先多播路由协议 MOSPF、协议无关的多播协议 PIM、资源预留协议 RSVP、802.1p 优先级标记,多队列、路由、支持第 3 层交换、支持多层(4 到 7 层交换、支持多协议路由、支持路由缓存、可支持最大路由表数、VLAN、最大 VLAN 数量、网管、支持网管类型、支持端口镜像、QoS、支持基于策略的第 2 层交换、每端口最大优先级队列数、支持基于策略的第 3 层交换、支持基于策略的应用级 QoS、支持最小 / 最大带宽分配、冗余、热交换组件(管理卡,交换结构,接口模块,电源,冷却系统、支持端口链路聚集协议、负载均衡。 -
网络:评价网络的性能指标有:设备级性能指标;网络级性能指标;应用级性能指标;用户级性能指标;吞吐量。 -
操作系统:评价操作系统的性能指标有:系统的可靠性、系统的吞吐率(量)、系统响应时间、系统资源利用率、可移植性。 -
数据库管理系统:衡量数据库管理系统的主要性能指标包括数据库本身和管理系统两部分,有:数据库的大小、数据库中表的数量、单个表的大小、表中允许的记录(行)数量、单个记录(行)的大小、表上所允许的索引数量、数据库所允许的索引数量、最大并发事务处理能力、负载均衡能力、最大连接数等等。 -
WEB 服务器:评价 Web 服务器的主要性能指标有:最大并发连接数、响应延迟、吞吐量。
2 性能评测的常用方法
-
时钟频率:一般来讲,主频越高,速度越快。 -
指令执行速度:计量单位 KIPS、MIPS。 -
等效指令速度法:统计各类指令在程序中所占比例,并进行折算,是一种固定比例法。 -
数据处理速率(Processing Data Rate,PDR)法:采用计算 PDR 值的方法来衡量机器性能,PDR 值越大,机器性能越好。PDR 与每条指令和每个操作数的平均位数以及每条指令的平均运算速度有关。
基准程序法(Benchmark)
把应用程序中用得最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序(benchmark)。是目前被用户一致承认的测试性能的较好方法,有多种多样的基准程序,包括:
-
整数测试程序:同一厂家的机器,采用相同的体系结构,用相同的基准程序测试,得到的 MIPS 值越大,一般说明机器速度越快。 -
浮点测试程序:指标 MFLOPS(理论峰值浮点速度)。 -
SPEC 基准程序(SPEC Benchmark):重点面向处理器性能的基准程序集,将被测计算机的执行时间标准化,即将被测计算机的执行时间除以一个参考处理器的执行时间。 -
TPC 基准程序:用于评测计算机在事务处理、数据库处理、企业管理与决策支持系统等方面的性能。
大多数情况下,为测试新系统的性能,用户必须依靠评价程序来评价机器的性能。下面列出了 4 种评价程序,它们评测的准确程度依次递减:真实的程序、核心程序、小型基准程序、合成基准程序。
3 阿姆达尔(Amdahl)定律
阿姆达尔(Amdahl)定律主要用于系统性能改进的计算中。阿姆达尔定律是指计算机系统中对某一部件采用某种更快的执行方式所获得的系统性能改变程度,取决于这种方式被使用的频率,或所占总执行时间的比例。
阿姆达尔定律定义了采用特定部件所取得的加速比。假定我们使用某种增强部件,计算机的性能就会得到提高,那么加速比就是下式所定义的比率:
加速比 = 不使用增强部件时完成整个任务的时间 / 使用增强部件时完成整个任务的时间
总加速比 = 原来的执行时间 / 新的执行时间 = 1/[(1 - 增强比例)+ 增强比例 / 增强加速比]
操作系统知识
1 操作系统定义与作用
操作系统定义:能有效地组织和管理系统中的各种软 / 硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。
操作系统有两个重要的作用:第一,通过资源管理提高计算机系统的效率;第二,改善人机界面向用户提供友好的工作环境。
2 操作系统的特征
操作系统的 4 个特征是并发性、共享性、虚拟性和不确定性。
3 操作系统的功能
-
进程管理:实质上是对处理机的执行 “时间” 进行管理,采用多道程序等技术将 CPU 的时间合理地分配给每个任务,主要包括进程控制、进程同步、进程通信和进程调度。 -
文件管理:主要包括文件存储空间管理、目录管理、文件的读 / 写管理和存取控制。 -
存储管理:存储管理是对主存储器 “空间” 进行管理,主要包括存储分配与回收、存储保护、地址映射(变换)和主存扩充。 -
设备管理:实质是对硬件设备的管理,包括对输入 / 输出设备的分配、启动、完成和回收。 -
作业管理:包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。
4 操作系统的分类
-
批处理操作系统:单道批处理和多道批处理(主机与外设可并行)。 -
分时操作系统:一个计算机系统与多个终端设备连接。分时操作系统是将 CPU 的工作时间划分成许多很短的时间片,轮流为各个终端的用户服务。 -
实时操作系统:实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。实时系统对交互能力要求不高,但要求可靠性有保障。为了提高系统的响应时间,对随机发生的外部事件应及时做出响应并对其进行处理。


评论