第一章 计算机系统基础
数值转换
数的转换
数制及其特征
数制 基本数码 基数 位权 形式表示符 十进制 0,1,2,3…9 r=10 10n D 二进制 0,1 r=2 2n B 八进制 0,1,2,3,4…7 r=8 8n O 十六进制 0-9,A,B,C,D,E,F r=16 16n H R进制->十进制
- 使用位权展开法
- 将R进制的每一位数值用Rk形式表示
- R为底数/基数
- k为指数
十进制->R进制
- 使用短除法
二进制<–>八进制
二进制<–>十六进制
数据的存储单位
- 在计算机中,数据的最小存储单位为BIT,1比特为1个二进制位。字节(Byte),1个字节为8个二进制位
- 二进制有两个数:0,1
- 位(Bit)
- 字节(Byte)
- 1B=8bit
- 1KB=1024B
- 1MB=1024KB
- 1GB=1024MB
- 除字节Byte外,还有千字节(KB),兆字节(MB),吉字节(GB),太字节(TB)
二进制的运算
- 二进制的算术运算:加、减、乘、除
- 二进制的逻辑运算:与、或、非、异或
数据的表示
数的表示
机器数和真值:两者之间的区别是真值的符号在机器数中用二进制符号位表示
码制
数值+1 数值-1 1+(-1) 整数数值范围 原码 0000 0001 1000 0001 1000 0010 -(2n-1-1)~2n-1-1 反码 0000 0001 1111 1110 1111 1111 -(2n-1-1)~2n-1-1 补码 0000 00001 1111 1111 0000 0000 -2n-1~2n-1-1 移码 1000 0001 0111 1111 1000 0000 -2n-1~2n-1-1 - 原码:第一位为符号位,其余组成真值
- 反码:正数与原码相同;负数除第一位外其余数值位按位取反
- 补码:正数与原码相同;负数在反码基础上加一(常用于加减法运算,部分计算机数的表示、存储)
- 移码:在补码基础上数值不变,符号位取反(常用于浮点数的阶码)
定点数和浮点数
- 定点数:小数点的位置固定不变的数,小数点不需要占用一位二进制
- 定点整数:小数点固定在最右边
- 定点小数:小数点固定在某一位
- 浮点数:N=Re*M,其中M称为尾数,e是指数(阶码,用移码表示),R为基数(阶码的底)
- 阶符
- 阶码:决定数值表示的范围
- 数符
- 尾数:决定数值表示的精度
- 流程:对阶->尾数计算->结果格式化
计算机的基本组成
计算机的结构
- 运算器
- 算术逻辑单元ALU:数据的算术运算和逻辑运算
- 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用来暂时保存数据
- 数据缓冲寄存器DR:写内存时,暂存指令或数据
- 状态条件寄存器PSW:存状态标志与控制标志(争议:也有将其归为控制的)
- 控制器
- 程序计数器PC:存储下一条要执行指令的地址(地址不同于指令组成中的地址码)
- 指令寄存器IR:存储即将要执行的指令
- 指令译码器ID:对指令进行分析解释
- 时序部件:提供时序控制信号指令中的操作码字段
计算机基本概念
- CPU的性能指标:主频、字长、CPU缓存、核心数量
- 总线的分类:数据总线、控制总线、地址总线
- 总线的性能指标:带宽、位宽、工作频率
- BIOS/CMOS
- 系统性能评测方法:时钟频率、指令执行、等效指令速度法、数据处理速率(PDR)、核心程序法、基准测试程序
总线系统
- 一条总线同一时刻仅允许一个设备发送,但允许多个设备接收
- 总线的分类
- 数据总线:在CPU与RAM之间来回传送需要处理或是需要存储的数据
- 地址总线:用来指定在RAM之中存储的数据的地址
- 控制总线:将微处理器控制单元的信号传送到周边设备
- 总线的性能指标:带宽、位宽、工作频率(带宽=位宽*工作频率)
指令
- 一条指令就是机器语言的一个语句,是一组有意义的二进制代码
- 组成
- 操作码字段OP:指出了计算机要执行什么性质的操作
- 地址码字段A:包含各操作数的地址及操作结果的存放地址等
寻址方式
- 立即寻址方式:操作数直接在指令中,速度快,灵活性差
- 直接寻址方式:指令中存放的是操作数的地址
- 间接寻址方式:指令中存放了一个地址,这个地址对应的内容是操作数的地址
- 寄存器寻址方式:寄存器存放操作数
- 寄存器间接寻址方式:寄存器内存放的是操作数的地址
流水线
- 流水线:多条指令重叠进行操作的一种准并行处理实现技术
- 流水线周期:执行时间最长的一段
- 流水线计算公式
- 1条指令执行时间+(指令条数-1)*流线线周期
- 理论公式:(t1+t2+…+tk)+(n-1)*Δt
- 实践公式:k * Δt + (n-1) * Δt
- 1条指令执行时间+(指令条数-1)*流线线周期
- 流水线的吞吐率(TP)计算的最基本的公式为:TP=n/Tk(Tk表示总共花费时间)
- 流水线的最大吞吐率:流水线周期的倒数
多级存储器结构
金字塔形层次结构
- 存储器被组织成金字塔形的层次结构,自上而下组成6个层次结构,依次变得更慢、访问频率更低、容量更大、每字节的造价更便宜
- S0:寄存器。CPU寄存器保存来自cache的字
- S1:芯片内的高速缓存(cache)。芯片内的cache保存取自芯片外cache的cache行
- S2:芯片外的高速缓存(SRAM,DRAM,DDRAM)。芯片外的cache保存取自主存储器上的cache行
- S3:主存储器(Flash,PROM,EPROM,E2PROM)。主存储器保存取自外部存储器上的文件
- S4:外部存储器(磁盘,光盘,CF卡,SD卡)外部存储器保存远程二级存储器上的文件
- S5:远程二级存储器(分布式文件系统,Web服务器)
Cache
功能:提高CPU数据输入输出的速率,突破所谓的“冯诺依曼瓶颈”
速度:在计算机的存储系统体系中,Cache是访问速度较快的层次
原理:使用Cache改善系统性能的依据是程序的局部性原理
组成:Cache由两部分组成:控制部分和Cache存储器部分
平均系统周期时间(以读操作为例:使用“Cache+主存储器”)t3=hxt1+(1-h)xt2
- h代表对Cache的访问命中率
- t1表示Cache的周期时间
- t2表示主存储器周期时间
- t3表示系统的平均周期
- (1-h)又称为失效率(未命中率)
地址映像
- 通常由SRAM(Static Random Access Memory,静态存储器)组成,其访问速度远高于主存,接近CPU
- 其功能是提高CPU数据输入输出的速率。其理论依据是程序的局部性原理。实现基础是将主存和Cache划分成大小相同的块/页
- 装入缓存时将主存块与Cache块的映射关系存入相联存储表(硬件实现)中
- CPU通过主存地址访问时先访问Cache(命中可提升速度,所以其关键性能指标是命中率),依据主存地址关联相联存储表转换为Cache地址。如果在Cache没有,才需要访问主存(Cache页置换,置换算法会影响命中率)
直接映像和变换
- 主存储器中一块只能映像到cache的一个特定块中
- 主存和缓存分为相同大小的数据块
- 主存空间按缓存容量分为区,每一区的块数与缓存的总块数相等
- 主存中某区的一块存入缓存时只能存入缓存中块号相同的位置
- 特点:
- 地址变换电路简单,访问速度快
- 空间利用率低,冲突概率高
- 对页面置换算法依赖度高,且Cache空间利用率较低,命中率较低
全相联地址映像和变换
- 主存中任意一块可以映像到Cache中的任意一块的位置上
- 主存和缓存分成相同大小的数据块
- 主存的某一数据块可以装入缓存的任意一块空间中
- 特点:
- 空间利用率高
- 冲突概率低
- 实现复杂,速度慢,适合小容量cache
组相联地址映像和变换
- 主存和cache按同样大小分块
- cache分为若干组,如两块一组,主存按cache组数分区
- 每个组采用直接映射方式
- 组内的块则采用全相连映像方式
- 特点:
- 是以上两种方式的折衷
- 实现难度和造价要比直接映像方式高
I/O控制方式
- 直接程序控制:无条件传送方式、程序查询方式
- 中断方式
- 直接存储器存取方式(DMA):在传送数据块的过程中不需要CPU干涉
- 输入输出处理机(IOP)
可靠性和校验码
可靠性
- 串联系统R=R1xR2x…xRn,R为可靠度,R1~Rn每个串联部分可靠度
- 并联系统R=1-(1-R1)x(1-R2)x…x(1-Rn),(1-R)又称为失效率
- 混合系统为串联和并联的叠加
校验码
码距:一个编码系统的码距就是整个编码系统中任意(所有)两个码字(合法编码)的最小距离
- 举例:要对A,B两个字母进行编码
- 若用1位长度的二进制编码,若A=1,B=0。这样A,B之间的最小码距为1
- 若用1位长度的二进制编码,若A=11,B=00。这样A,B之间的最小码距为2
- 若用1位长度的二进制编码,若A=111,B=000。这样A,B之间的最小码距为3
- 举例:要对A,B两个字母进行编码
奇偶校验码:
- 通过在编码中增加一位校验位来使编码中的1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2
- 仅可检错,可检测1(奇数)位错
CRC(循环冗余码):
利用生成多项式为K个数据位产生r个校验位来进行编码,其编码长度为k+r
三者中唯一用到模2运算
仅可检错,可检测多位错
海明码:
- 在数据位之间插入K个校验位,通过扩大码距来实现检查和纠错
- 设数据位是n位,校验位是k位,则n和k必须满足 2k-1>=n+k
- 可检错,且可纠1位错