1.计算机组成与体系结构
1.1 数据的表示
2^12 | 2^11 | 2^10 | 2^9 | 2^8 | 2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 | 2^-1 | 2^-2 | 2^-3 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
4096 | 2048 | 1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 0.5 | 0.25 | 0.125 |
-
进制转换
R进制转十进制:按权展开法。将R进制数的每一位数值用R^k表示,即幂的底数是R,指数为k。例:10100.01 = 1 x 2^4 + 1 x 2^2 + 1 x 2^-2
十进制转R进制:短除法,倒序取余数
二进制转八进制:3位一组,每组转换成对应的八进制
八进制转二进制:每位八进制拆分成对应的3位二进制
二进制转十六进制:4位一组,每组转换成对应的十六进制
十六进制转二进制:每位十六进制拆分成对应的4位二进制
-
原码
-
符号位“0/1”对应“正/负“,用数值部分表示真值的绝对值
-
若机器字长n+1位,数值部分(尾数)占n位,最高位为符号位
-
原码整数的表示范围:-(2^n - 1) ≤ x ≤ 2^n - 1,关于原点对称
-
真值0两种形式:[+0] = 00000000;[-0] = 10000000
-
-
反码
-
若符号位为0,反码同原码。若符号位为1,则数值位全部取反
-
反码整数的表示范围:-(2^n - 1) ≤ x ≤ 2^n - 1,关于原点对称
-
真值0两种形式:[+0] = 00000000;[-0] = 11111111
-
-
补码
-
若符号位为0,补码同原码。若符号位为1,反码末位+1(要考虑进位)
例 x = -19D:[X]原 = 1001 0011;[X]反 = 1110 1100;[X]补 = 1110 1101
-
若机器字长n+1位,补码整数的表示范围:-2^n ≤ x ≤ 2^n - 1 (比原/反码多表示一个 -2^n)
-
若机器字长为n位,可表示( 2^n)个不同的有符号定点小数,正负数均为2^(n-1)个
-
真值0一种形式:[+0] = [-0] = 0000 0000
-
优点:补码表示数据可将符号位和其他位统一处理,减法可按加法处理,简化运算部件的设计
-
-
移码
-
补码基础上将符号位取反,移码只能用于表示整数
-
若机器字长n+1位,移码整数的表示范围:-2^n ≤ x ≤ 2^n - 1(同补码)
-
真值0一种形式:[+0] = [-0] = 1000 0000
-
-
浮点的运算
-
浮点数是小数点位置不固定的数,能表示更大范围,表示格式由阶符、阶码、数符、尾数组成
-
阶码:带符号的纯整数,用移码表示,决定浮点数所能表示的数值范围
-
尾数:带符号的纯小数,用补码表示,决定浮点数所能表示的数值精度
-
浮点数通常表示成:N = 尾数 * 基数 ^ 阶码
-
运算过程:① 0操作数检查 ② 对阶(小阶尾数右移向大阶看齐)③ 尾数计算 ④ 结果格式化
-
-
不同码制表示范围(若机器字长n+1位)
-
定点整数:原码/反码:-(2^n - 1) ≤ x ≤ 2^n - 1;补码/移码:-2^n ≤ x ≤ 2^n - 1
-
定点小数:原码/反码:-(1 - 2^-n) ≤ x ≤ 1 - 2^-n;补码/移码:-1 ≤ x ≤ 1 - 2^-n
-
1.2 计算机结构
-
五大部件
输入设备:将信息转换为机器能识别的形式
输出设备:将结果转换为人们熟知的形式
主存储器:存放数据和程序
运算器:算术、逻辑运算
控制器:指挥各部件,使程序得以运行
-
硬件
主机:CPU(运算器、控制器)、主存
I/O设备:辅存、输入设备、输出设备
-
主存储器/主存
-
组成:存储体、MAR(地址寄存器)、MDR(数据寄存器)
MAR、MDR用于对内存单元访问时的地址、数据暂存,由系统使用,程序员不能访问
-
存储元:存储二进制的电子元件,每个存储元可存 1bit
-
存储字:存储单元中二进制代码的组合
-
存储字长:存储单元中二进制代码的位数
-
存储单元:每个存储单元存放一串二进制代码
按字编址:存储体的存储单元是字存储单元,最小寻址单位是一个字
按字节编址:存储体的存储单元是字节存储单元,最小寻址单位是一个字节
-
计算:根据存储器要求的容量和选定的存储芯片容量,芯片总片数 = 总容量 / 每片芯片容量
例:若内存地址区间为4000H~43FFH,每个存储单元可存储16位二进制数,该内存区域用4片存储器芯片构成,则构成该内存所用的存储器芯片的容量是多少?
-
-
CPU
-
理解
内部结构异常复杂,强调通用性,需处理各种数据类型,进行逻辑判断、大量的分支跳转和中断处理;
利用较高主频和高速缓存提升执行指令的速度,但通用函数库是高级编程语言的一部分,与CPU无关;
CPU依据指令和数据的寻址方式区分在内存中以二进制编码形式存放的指令和数据
-
运算器:用于实现算术运算(加减乘除)、逻辑运算(与或非)
ALU:算术逻辑单元,通过内部复杂电路实现算数运算、逻辑运算
ACC:累加寄存器,为ALU提供一个暂存数据(操作数或运算结果)的工作区
PSW:状态条件寄存器,保存指令运行标志、状态标志、控制标志(也可归为控制器)
DR:数据缓存寄存器,写内存时暂存指令或数据
MQ:乘商寄存器,用于乘除运算时存放操作数或运算结果
X:通用操作数寄存器,用于存放操作数
-
控制器
CU:控制单元,分析指令,给出控制信号
PC:程序计数器,存放下一条指令地址,有自动加1功能,程序员可访问;CPU根据该寄存器内容从内存读取待执行指令
IR:指令寄存器,暂存从内存取出的、即将执行的、正在运行的指令,位数取决于指令字长
AR:地址寄存器,保存当前CPU所访问的内存单元地址
ID:指令译码器,对指令中操作码字段进行分析解释
时序部件:提供时序控制信号
-
-
GPU
-
面对的是类型高度统一、相互无依赖的大规模数据和不需要被打断的纯净计算环境
-
是一种单指令多数据流(SIMD)架构,比CPU包含更多的计算单元、更简单的控制单元
-
-
优化系统性能
-
数据库系统:CPU/内存使用状况、优化数据库设计、优化数据库管理、查询语句性能、进程/线程状态、硬盘剩余空间、日志文件大小等
-
应用系统:应用系统的可用性、响应时间、并发用户数、特定应用的系统资源占用等
-
-
特性
-
电气特性:规定传输二进制位时,线路上信号的电压高低、阻抗匹配、传输速率和距离限制等
-
功能特性:指明某条线路上出现的某一电平表示的意义,以及接口部件的信号线用途
-
1.3 指令系统
-
指令
一条指令是机器语言的一个语句,是一组有意义的二进制代码,其结构包括操作码字段(OP)、地址码字段(A)
-
周期的对比
指令周期:取出并执行一条指令的时间
总线周期:一个访问存储器或I/O端口操作所用的时间
时钟周期:震荡周期,是处理操作的最基本单位
机器周期:常把一条指令的执行过程划分为若干阶段(如取指令、存储器读、存储器写),把每一阶段完成一项工作(基本操作)所需的时间称为机器周期
关系:一个指令周期由若干总线周期组成,一个总线周期由若干时钟周期组成,一个总线周期包含一个(只有取址周期)或多个机器周期
-
寻址方式:
指令寻址:下一条欲执行指令的指令地址
数据寻址:确定本条指令的地址码指明的真实地址
-
立即寻址:指令中存放操作数,速度快,灵活性差
-
寄存器寻址:寄存器存放操作数
-
直接寻址:指令中存放操作数地址,指令所要的操作数存放在内存
-
间接寻址:指令中存放一个地址,这个地址对应内容是操作数的地址
-
寄存器间接寻址:寄存器存放操作数的地址,操作数在存储器中,操作数的有效地址用SI、DI、BX、BP四个寄存器之一来指定
-
寄存器相对寻址:操作数在存储器中,其有效地址是一个基址寄存器 BX、BP 或变址寄存器 SI、DI 的内容和指令中的8位/16位偏移量之和
-
基址加变址寻址:操作数在存储器中,其有效地址是一个基址寄存器 BX、BP 和一个变址寄存器 SI、DI 的内容之和
-
相对基址加变址寻址:操作数在存储器中,其有效地址是一个基址寄存器 BX、BP 的值、一个变址寄存器SI、DI 的值和指令中的8位/16位偏移量之和
-
-
CISC和RISC
CISC(复杂) RISC(精简 ) 指令系统 复杂,庞大 简单,精简 指令数目 数量多,一般大于200条 数量少,一般小于100条 指令字长 变长 定长 可访存指令 不加限制 操作寄存器,只有Load/Store指令操作内存 指令执行时间 差别大 大部分为单周期指令 指令使用频度 差别大 使用频率接近 通用寄存器数量 较少 多 实现方式 微程序控制技术(微码) 增加通用寄存器;硬布线逻辑控制为主,适合采用流水线;大多数为组合逻辑控制 指令流水线 可以通过一定方式实现 必须实现 寻址方式 支持多种 支持方式少 其他 研制周期长 优化编译,有效支持高级语言
1.4 Flynn分类法
-
概念
双核:在一个 CPU 中集成两个运算核心以提高运算能力
指令流:机器执行指令序列
数据流:指令流调用的数据序列
多倍性:在系统结构的流程瓶颈上,同时执行的指令或数据可能的最大个数
-
计算机系统开发并行性的方法
-
资源重复、时间重叠、资源共享
-
判断:计算机有一个控制单元,是单指令流;多个处理和存储部件,是多数据流。单指令流多数据流计算机将大量重复设置的处理单元按一定方式互连成阵列,在单一控制部件控制下对各自所分配的不同数据并行执行同一指令规定的操作,是操作并行的SIMD计算机,采用了资源重复的方法开发并行性
-
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
单指令流 单数据流 SISD | 控制部分:1个;处理器:1个;主存模块:1个 | 单处理器系统 | |
单指令流 多数据流 SIMD | 控制部分:1个;处理器:多个;主存模块:多个 | 各处理器以异步形式执行同一条指令 | 并行处理机;阵列处理机;超级向量处理机 |
多指令流 单数据流 MISD | 控制部分:多个;处理器:1个;主存模块:多个 | 被证明不可能 | 目前没有,有文献称流水线计算机为此类 |
多指令流 多数据流 MIMD | 控制部分:多个;处理器:多个;主存模块:多个 | 能够实现作业、任务、指令等;各级全面并行 | 多处理机系统、多计算机 |
1.5 流水线技术
-
流水线
-
定义:程序执行时,多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理针对不同指令而言,它们可同时为多条指令的不同部分进行工作,以提高各部件利用率和指令的平均执行速度
-
流水线周期:执行时间最长的一段
-
流水线计算公式:1条指令执行时间 + (指令条数 - 1)* 流水线周期
① 理论公式:(t1+ t2 + .. + tk) + (n - 1) * Δt ;② 实践公式:k * Δt + (n - 1) * Δt
例:一条指令的执行过程可分解为取指、分析和执行,t取指 = 3Δt、t分析 = 2Δt、t执行 = 4Δt,若按串行方式执行,则10条指令全部执行完需要 90Δt;若按流水线方式执行,流水线周期为 4Δt,则10条指令全部执行完需要 45Δt
-
-
流水线吞吐率 TP
-
定义:单位时间内流水线所完成的任务量或输出的结果量
-
计算公式:TP = 指令条数 / 流水线执行时间
-
建立时间:流水线开始工作后须经过一定时间才能达到最大吞吐率。若m个子过程所用时间一样,均为to,则建立时间 To = m x to
-
流水线最大吞吐率:TP = 1 / Δt
-
-
流水线加速比
-
定义:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比
-
计算公式:S = 不使用流水线执行时间 / 使用流水线执行时间
-
-
流水线的效率
指流水线设备利用率,在时空图上定义为n个任务占用的时空区与k个流水段总的时空区之比
1.6 存储系统
-
层次结构
-
速度由快到慢、容量由小到大、价格由高到低依次为
CPU =>
寄存器 =>
高速缓冲存储器/Cache:按内容存取 =>
内存/主存:随机存储器RAM、只读存储器ROM =>
辅存/磁盘 =>
外存/磁带、光盘、U盘
-
Cache一主存:解决了主存与CPU速度不匹配的问题,硬件自动完成
-
主存一辅存:实现虚拟存储系统,解决了主存容量不够的问题,硬件 + 操作系统完成
-
-
存储器的分类
-
按位置分类
内存/主存:存储当前运行所需要的程序和数据,速度快,容量小
外存/辅存:存储当前不参与运行的数据,速度慢,容量大
-
按材料分类
磁存储器:用磁性介质做成,如磁芯、磁泡、磁盘、磁带等
半导体存储器:根据所用元件又可分为双极型、MOS型;根据是否需要刷新分为静态、动态
光存储器:由光学、电学、机械部件等组成,如光盘存储器
-
按访问方式
按寻址访问:随机存储器、顺序存储器、直接存储器
① 随机存储器 RAM:可对任何存储单元存入/读取数据,访问任何一个存储单元所需的时间是相同的
② 顺序存储器 SAM :访问数据所需要的时间与数据所在的存储位置相关,如磁带
③ 直接存储器 DAM:介于随机存取和顺序存取之间的寻址方式。如磁盘,它对磁道的寻址是随机的,而在一个磁道内是顺序寻址
按内容访问:相联存储器
相联存储器:把数据/部分数据作为关键字,将该关键字与存储器中的每一单元对比,找出存储器中所有与关键字相同的数据字
-
按工作方式
读/写存储器 :随机存储器RAM ,既能读取数据也能存入数据
① 动态 DRAM:作为主存及图形系统的帧缓冲区,将每个位存储为对一个电容的充电,由于电容非常小,在10 ~ 100 ms 时间内会失去电荷,所以需要周期性刷新充电以保持信息
② 静态 SRAM:作为Cache,将每个位存储在一个双稳态的存储器单元中;比DRAM速度快,价格贵
只读存储器(ROM):ROM、PROM、EPROM、EEPROM
① 固定只读存储器 ROM :厂家生产时就写好数据,只能读出内容,不能改变,一般用于存放系统程序BIOS、微程序控制
② 可编程只读存储器 PROM:可由用户一次性地写入内容,写入后不能修改
③ 可擦除可编程只读存储器 EPROM:其内容可读出、由用户写入、可改写,采用紫外线照射擦除
④ 电擦除可编程只读存储器 EEPROM:其内容可读出、由用户写入、可改写,采用电擦除
⑤ 闪速存储器/闪存 Flash Memory:掉电后信息不丢失;以块为单位进行删除操作,特性介于EPROM和EEPROM,可使用电信号进行信息擦除;采用随机访问方式速度快,可在数秒内删除,远快于EPROM;全面代替了 EPROM 在嵌入式系统中的地位,用作存储Boot loader、操作系统、程序代码或直接当硬盘/U盘使用
-
-
虚拟存储
-
虚拟内存是计算机系统内存管理的一种技术,可容纳超过主存容量的多个作业同时运行在一个地址空间。它使得应用程序认为它拥有连续的可用内存(一个连续完整的地址空间),而实际上它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换
-
虚拟存储器是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所用
-
虚拟存储器指的是主存-外存层次。它以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间。此时程序的逻辑地址称为虚拟地址/虚地址,程序的逻辑地址空间称为虚拟地址空间。物理地址/实地址由CPU地址引脚送出,它是用于访问主存的地址。设CPU地址总线的宽度为m位,那么物理地址空间的大小用2m来表示
-
局部性原理
① 虚拟存储基础是程序的局部性理论。程序执行时,往往会不均匀地访问内存,即有些存储区被频繁访问,有些则少有问津。程序的局部性表现在时间局部性和空间局部性
② 时间局部性:最近被访问的存储单元可能马上又被访问。例如:程序中的循环体,一些计数变量,累加变量,堆栈等
③ 空间局部性:刚被访问的存储单元,其相邻或附近单元也可能马上被访问。例如:数组的顺序处理、顺序执行的指令代码
-
-
Cache——高速缓存
-
工作集理论:指进程运行时被频繁访问的页面集合。在进程运行时,如果能保证它的工作集页面都在主存内,就会大大减少进程的缺页次数,使进程高效运行;否则将会因某些工作页面不在内存而出现频繁的页面调入/调出现象,造成系统性能急剧下降,严重时会出现“抖动”现象
-
依据:基于局部性原理,把CPU目前访问的地址“周围”的部分数据放到Cache中,以提高访问效率。使用Cache改善系统性能的依据是程序的局部性原理
-
理解
① Cache是一种高速存储器,对程序员是透明的,用于 CPU 和主存间的缓冲存储,提高CPU数据输入输出的速率,突破冯·诺依曼瓶颈,即CPU与存储系统间数据传送带宽限制
② CPU和Cache间通常一次传送一个字块,字块的长度是一个主存周期内能调出的信息的长度
③ 若访问Cache不命中,则用从主存中取到的字节代替Cache中较少访问过的字节,即同时送CPU和Cache,下次就可从Cache中读出需要的信息
④ 当Cache已存满数据后,新数据必须淘汰Cache中的某些旧数据。常用淘汰算法有随机淘汰法、先进先出法、近期最少使用淘汰法 LRU,需要保证缓存在Cache中的数据与主存中的内容一致
-
命中率:命中率必须很高,一般要达到90%~95%以上,才能使访存的速度跟得上CPU的速度;若H为 Cache 的命中率,Tc为Cache的存取时间,Tm为主存的访问时间,以读操作为例,使用“Cache + 主存”的等效访问时间为Ta
则:Ta = H x Tc + (1 - H) x Tm,(1- H) 称为失效率/未命中率
-
使用 Cache 比不使用 Cache 的 CPU 访问存储器的速度提高的倍数:r = Tm / Ta
-
-
Cache——地址映像
-
地址映像:把主存地址映射为Cache里面的地址,将主存与Cache的存储空间划分为若干大小相同的页/块
例,某机主存容量为1GB,划分为2048页,每页512KB;Cache容量为8MB,划分为16页,每页512KB
-
直接映像:主存的块与Cache中块的对应关系固定。优点:地址变换简单,硬件电路较简单;缺点:灵活性差,冲突率高
-
全相联映像:允许主存的任一块可以调入Cache的任一块的空间。优点:主存的块调入Cache的位置不受限制,十分灵活,冲突率低。缺点:无法从主存块号中直接获得Cache的块号,速度慢,变换复杂,电路难于设计和实现,只适用于小容量的Cache
-
组相联映像:折中为将Cache先分组再分块,组间采用直接映像方式,而组内的块采用全相联映像方式
-
-
Cache——替换算法
选择替换算法的目标是使Cache获得最高的命中率
-
随机替换 RAND:用随机数发生器产生一个要替换的块号,将该块替换出去
-
先进先出 FIFO:将最先进入的Cache信息块替换出去
-
近期最少使用 LRU:将近期最少使用的Cache中的信息块替换出去。较先进先出算法要好,但也不能保证过去不常用的将来也不常用
-
优化替换 OPT:先执行一次程序,统计Cache的替换情况。在第二次执行该程序时便可以用最有效的方式来替换,达到最优目的
-
-
硬盘/磁盘
-
计算
存取时间 = 寻道时间 + 等待时间(平均定位时间 + 转动延迟)
寻道时间:磁头移动到磁道所需的时间
等待时间:为等待读写的扇区转到磁头下方所用的时间
-
磁盘调度管理
访问不同柱面信息时,先移臂调度,后旋转调度;访问同一磁道信息时,只进行旋转调度
访问不同磁道不同编号的扇区,旋转调度总是让首先到达读写磁头位置下的扇区先进行传送操作
调度算法:先来先服务 FCFS、最短寻道时间优先 SSTF、扫描算法 SCAN、循环扫描 CSCAN
-
基本概念
操作系统对保存有大量有用数据的硬盘进行磁盘清理、碎片整理,不会清除有用数据
① 磁盘清理:将删除计算机上所有不需要的文件,这些文件由用户或系统进行确认
② 磁盘碎片整理:通过系统软件或磁盘碎片整理软件对电脑磁盘在长期使用过程中产生的碎片和凌乱文件重新整理,释放出更多的磁盘空间,可提高电脑的整体性能和运行速度
③ 磁盘格式化:把一张空白的盘划分成一个个小区域并编号,供计算机储存和读取数据。格式化是一种纯物理操作,是在磁盘的所有数据区上写零的操作过程,同时对硬盘介质做一致性检测,标记出不可读和坏的扇区。由于大部分硬盘在出厂时已格式化过,所以只有在硬盘介质产生错误时才需进行格式化
④ 磁盘分区:将磁盘划分成一块块的存储区域。在传统磁盘管理中,将一个硬盘分为主分区、扩展分区。主分区:能够安装操作系统、进行计算机启动的分区,可直接格式化,然后安装系统,直接存放文件
⑤ 磁盘碎片:磁盘里的文件按存储时间先后排列,理论上文件间紧凑排列而无空隙。但用户常会修改文件,且新增加的内容并不是直接加到原文件位置,而是放在磁盘存储空间的最未尾,系统会在这两段之间加上联系标识。当修改多个文件后,磁盘里就会有很多不连续的文件。一旦文件被删除,占用的不连续空间就会空着,并不会被自动填满,而且新保存的文件也不会放在这些地方,这些空着的磁盘空间称作“磁盘碎片”。硬盘的每个分区里都会有碎片,碎片太多,其他的不连续文件相应也多,系统在执行文件操作时就会因反复寻找联系标识,工作效率大大降低,直接的反映就是感觉慢
-
1.7 总线系统
-
外部总线:接口和外设、DMA控制器和中断控制器进行连接
-
片内总线:是CPU芯片内部寄存器与寄存器/ALU/运算器部件间的公共连接线
-
系统总线
-
又称内总线/板级总线,在微机系统中用来连接各功能部件而构成一个完整的微机系统
-
计算机系统内各功能部件、主存、外设(CPU、主存、I/O接口)间相互连接的总线。 按系统总线传输信息内容分类:
① 数据总线 Data Bus:在CPU与RAM之间来回传送需要处理或需要储存的数据
② 地址总线 Address Bus:指定在RAM之中储存的数据的地址,地址总线的宽度就是处理机寻址范围,若地址总线为n位,则可寻址空间为2的n次方字节
③ 控制总线 Control Bus:将微处理器控制单元的信号传送到周边设备,常见为 USB Bus 和1394 Bus
-
应用:若内存容量为4GB,即内存单元的地址宽度为32位。字长为32位即要求数据总线的宽度为32位,因此地址总线和数据总线的宽度都为32
-
-
总线复用
-
一条总线同一时刻仅允许一个设备发送,但允许多个设备接收
-
总线复用是一条总线实现多种功能,常见方式有总线分时复用:在不同时段利用总线上同一信号线传送不同信号,减少总线数量,提高总线利用率。如地址总线、数据总线共用一组信号线
-
-
总线标准
-
PCl 总线:
① 是当前最流行的总线之一,由Intel公司推出的一种局部总线。定义了32位数据总线,且可扩展为64位
② 外围设备互联,是计算机硬件之间的高速并行内总线标准,高带宽、低延迟、多点连接。常用于连接如网卡、声卡、显卡、硬盘CD-ROM等设备,适用于在计算机组装和升级过程中对接口的选择
③ PCI总线主板插槽体积比原ISA总线插槽还小,支持突发读写操作,最大传输速率可达132MB/S,可同时支持多组外围设备。PCI局部总线不能兼容现有的ISA、EISA、MCA总线,但它不受制于处理器,是基于奔腾等新一代微处理器而发展的总线
-
SCSl 总线:
① 小型计算机系统接口,是一种并行外总线标准,拥有更长传输距离、支持热插拔、同时连接多个设备、提供更多控制信号。用于连接计算机系统外部设备,如硬盘驱动器、光驱、磁带机、打印机等
② 一种用于计算机和智能设备间(硬盘、软驱、光驱、打印机、扫描仪)系统级接口的独立处理器标准
-
EISA总线:在ISA总线基础上使用双层插座,在原ISA总线的98条信号线上又增加了98条信号线,即在两条ISA信号线之间添加一条EISA信号线,EISA总线完全兼容ISA总线信号
-
ISA总线:也叫AT总线,IBM公司1984年为推出PC/AT机而建立的系统总线标准,是对XT总线的扩展,以适应8/16位数据总线要求
-
1.8 可靠性
-
计算机系统的可靠性
从它开始运行(t=0)到某个时刻t这段时间内能正常运行的概率,用R(t)表示
串联部件的可靠度 = 各部件的可靠度的乘积
并联部件的可靠度 = 1 - 部件失效率的乘积
1.9 输入输出技术
-
I/O设备管理软件
-
流程
I/O请求:用户进程 => 设备无关程序 => 设备驱动程序 => 中断处理程序 => 硬件
I/O应答:用户进程 <= 设备无关程序 <= 设备驱动程序 <= 中断处理程序 <= 硬件
硬件:完成具体I/O操作
中断处理程序:I/O完成后唤醒设备驱动程序
设备驱动程序:设置寄存器,检查设备状态
设备无关程序:设备名解析、阻塞进程、分配缓冲区
用户级I/O层:发出I/O调用
-
理解
① I/O系统具体分层时细节处理依赖于系统,没有严格划分,只要有利于设备独立这一目标,可以为了提高效率而设计不同层次结构
② 对于一个完全无软件的计算机系统/裸机,它向用户提供的是实际硬件接口/物理接口,用户必须对物理接口的实现细节有充分了解,并利用机器指令进行编程,该物理机器必定难以使用
③ 为方便用户使用I/O设备,人们在裸机上增设一层I/O设备管理软件,即I/O软件,由它实现对I/O设备操作细节,并向上提供一组I/O操作命令,用户可利用它来进行数据输入输出,而无须关心I/O如何实现
④ 此时用户所看到的机器将是一台比裸机功能更强、使用更方便的机器。在裸机上铺设的I/O软件隐藏了I/O操作实现的细节,向上提供了一组抽象的I/O设备,方便用户使用I/O设备
-
举例-读硬盘文件
① 当用户程序试图读一个硬盘文件时,需通过操作系统实现这一操作。与设备无关软件检査高速缓存中有无要读的数据块。若没有,则调用设备驱动程序,向I/O硬件发出一个请求
② 然后,用户进程阻塞并等待磁盘操作的完成。当磁盘操作完成时,硬件产生一个中断,转入中断处理程序。中断处理程序检查中断的原因,认识到这时磁盘读取操作已经完成,于是唤醒用户进程取回从磁盘读取的信息,从而结束此次I/O请求。用户进程在得到了所需的硬盘文件内容之后继续运行
-
1.10 校验码
-
码距
-
任何一种编码都由许多码字构成,一个编码系统中任意两个合法编码(码字)之间最少变化的二进制位数称为数据校验码的码距,而整个编码系统中任意两个码字的最小距离就是该编码系统的码距
-
一个编码系统的码距是整个编码系统中任意(所有)两个码字的最小距离。用4位二进制表示16种状态,则有16个不同的码字,如0000与0001码距为1
-
-
码距与检错、纠错:
-
在一个码组内为了检测e个误码,要求最小码距d应该满足:d > = e + 1
-
在一个码组内为了纠正t个误码,要求最小码距d应该满足:d > = 2t + 1
-
一个系统能检查和纠正一个差错,码间最小距离必须至少是3
-
-
校验码——奇偶校验
-
编码方法:由若干位有效信息,再加上一个二进制位(校验位)组成校验码
-
奇校验:整个校验码(有效信息位和校验位)中“1”的个数为奇数
-
偶校验:整个校验码(有效信息位和校验位)中“1”的个数为偶数
-
特点:奇偶校验,可检查1位的错误,不可纠错
-
-
校验码——循环校验码CRC
-
编码方法:在k位信息码之后拼接r位校验码。应用CRC码的关键是如何从k位信息位简便地得到r位校验位(编码),以及如何从k + r位信息码判断是否出错。一般情况下,r位生成多项式产生的CRC码可检测出所有的双错、奇数位错和突发长度小于等于r的突发错
-
编码规律:
① 把待编码的N位有效信息表示为多项式M(X)
② 把M(X)左移K位,得到M(X) x X^k,这样空出了k位,以便拼装k位余数(即校验位)
③ 选取一个k+1位的产生多项式G(X),对M(X )x X^k做模2除(异或)
④ 把左移k位以后的有效信息与余数R(X)做模2加减,拼接为CRC码,此时的CRC码共有N+k位
⑤ 把接收到的CRC码用约定的生成多项式G(X)去除,如果正确,则余数为0;如果某一位出错,则余数不为0。不同的位数出错其余数不同,余数和出错位序号之间有惟一的对应关系
-
特点:CRC校验,可检错,不可纠错;检错能力极强且开销小,易于用编码器及检测电路实现
-
-
校验码——海明校验码
-
理解:可纠正一位差错的编码,利用奇偶性检错和纠错。给传输的数据增加r个校验位,从而增加两个合法消息(合法码字)的不同位的个数(海明距离)。设传输信息有m位,经海明编码的码字有m + r位
-
编码方法:在数据位之间插入k个校验码,通过扩大码距实现检错和纠错 设数据位是n位,校验位是k位,则n和k必须满足:2^k ≥ n+ k +1
-
原理:在有效信息位中加入几个校验位形成海明码,使码距比较均匀地拉大,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错误,还能指出错误的位置,为自动纠错提供了依据
-
特点:海明校验,可检错,也可纠错
-