第一章 计算机系统基础

数值转换

数的转换

  • 数制及其特征

    数制 基本数码 基数 位权 形式表示符
    十进制 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为基数(阶码的底)
    • 阶符
    • 阶码:决定数值表示的范围
    • 数符
    • 尾数:决定数值表示的精度
    • 流程:对阶->尾数计算->结果格式化

计算机的基本组成

计算机的结构

  • image-20240812173410572
  • 运算器
    • 算术逻辑单元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
  • 流水线的吞吐率(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
  • 奇偶校验码:

    • 通过在编码中增加一位校验位来使编码中的1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2
    • 仅可检错,可检测1(奇数)位错
  • CRC(循环冗余码):

    • 利用生成多项式为K个数据位产生r个校验位来进行编码,其编码长度为k+r

    • 三者中唯一用到模2运算

    • 仅可检错,可检测多位错

  • 海明码:

    • 在数据位之间插入K个校验位,通过扩大码距来实现检查和纠错
    • 设数据位是n位,校验位是k位,则n和k必须满足 2k-1>=n+k
    • 可检错,且可纠1位错