软考系统架构师备战笔记 - 1. 计算机硬件

214 阅读7分钟

1. 计算机硬件组成

计算机基本硬件系统由 运算器控制器存储器输入设备输出设备 5 大部件组成

  • 运算器和控制器等部件被集成在一起统称 cpu
    • cpu 组成:运算器、控制器、寄存器组和内部总线等部件
  • 存储器分为内部存储器和外部存储器
    • 内部存储器:速度快,容量小。一般用于临时存放程序、数据等
    • 外部存储器:速度慢,容量大。可以长期保存程序和数据
  • 输入设备和输出设备统称为外设
    • 输入设备:输入原始数据及各种命令
    • 输出设备:用于输出计算机运行的结果

2. 校验码

2.1. 奇偶校验码

在编码中增加 1 位校验位来使编码中 1 的个数为奇数(奇校验)或偶数(偶校验)

  • 奇校验:编码中,含有奇数个 1,发送给接收方,接收方收到后,会计算收到的编码有多少个 1,如果是奇数个,则无误,是偶数个,则有误
  • 偶校验同理,只是编码中有偶数个 1,由上述,奇偶校验只能验 1 位错,并且无法纠错

2.2. CRC(循环冗余校验法)

使用 CRC 编码,需要先约定一个生成多项式 G(x),生成多项式的最高位和最低位必须是 1

生成校验码思路:在原始信息位后追加若干校验位,使得追加的信息能被 G(x)整除。接收方接收到带校验位的信息,然后用 G(x) 整除。余数为 0,则没有错误,反之则认为发生错误

解题步骤(假设原始信息为 10110,多项式为 G(x) = x^4 + x + 1 ):

  1. 通过多项式 G(x) 计算出除数。x 的幂指数存在的位置为 1,不存在的位置为 0。 例如 G(x) = x^4 + x + 1,存在 x^4,x^1,x^0,总共有 5 位,第 0 位,第 1 位和第 4 位为 1,其余位置为 0。最后结果为:10011
  2. 在原始信息位后添 0,多项式的最高阶为 4,则添加 4 个 0。结果为:10110 0000
  3. 第二步生成的串和第一步生成的除数进行模 2 除法运算(不进位也不借位的除法运算),即 10110 0000 / 10011

  1. 得到最后的校验码结果为 原始信息 + 除法结果 = 10110 1111。(ps:如果余数位数不足,则在余数左边用 0 补齐。如果求得余数为 11,位数为4,则补两个 0 得到 0011)

3. 指令系统

CISC 是复杂指令系统,兼容性强,指令繁多,长度可变,由微程序实现

RISC 是精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器、硬布线逻辑控制)

指令系统类型指令寻址方式实现方式其它
CISC(复杂)数量多,使用频率差别大,可变长格式支持多种微程序控制技术研制周期长
RISC(精简)数量少,使用频率接近,定长格式,大部分为单周期指令支持方式少增加了通用寄存器,硬布线逻辑控制为主,适合采用流水线优化编译,有效支持高级语言

3.1. RISC 流水线时间计算

3.1.1. 流水线周期

指令分为不同执行段,其中执行时间最长的段为流水线周期

3.1.2. 流水线执行时间

1 条指令总执行时间 + (总指令条数 - 1) * 流水线周期

3.1.3. 流水线吞吐率计算

吞吐率即单位时间内执行的指令条数

公式:指令条数 / 流水线执行时间

3.1.4. 加速比计算

加速比即使用流水线后的效率提升度,即比不使用流水线快了多少倍,越高表明流水线效率越高

公式:不使用流水线执行时间 / 使用流水线执行时间

4. 存储系统

计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题

速度由快到慢如下:

CPU 内部通用寄存器 > Cache > 主存储器 > 联机硬盘存储器 > 脱机光盘、硬盘存储器

  • 高度缓存 cache 用来存储当前最活跃的程序和数据,直接与 CPU 交互,位于 CPU 和主存之间,容量小,速度快,对于程序员来说是透明的
  • cache 由控制部分和存储器组成,存储器存储数据,控制部分判断 CPU 要访问的数据是否在 cache 中,在则命中,不在则依据一定的算法从主存中替换

4.1. 地址映射

在 cpu 工作时,送出的是主存单元的地址,而应从 cache 存储器中读/写信息。这就需要将主存地址转换为 cache 存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射。分为以下三种方法:

  1. 直接映像:将 cache 存储器等分成块,主存也等分成块并编号。主存中的块与 cache 中的块的对应关系是固定的,二者块号相同才能命中。地址变换简单但不灵活,容易资源浪费
  2. 全相联映像:同样都等分成块并编号。主存中任意一块都与 cache 中任意一块对应。因此可以随意调入 cache 任意位置,但地址变换复杂,速度较慢。因为主存可以随意调入 cache 任意块,只有当 cache 满了才会发生块冲突,是最不容易发生块冲突的映像方式
  3. 组组相连映像:前面两种方式的结合,将 cache 存储器和主存先分块再分组,组件采用直接映像,即主存中组号与 cache 中组号相同的组才能命中,但是组内全相联映像,也即组号相同的两个组内的所有块可以任意调换

4.2. 磁盘调度算法

  1. 先来先服务 FCFS:根据进程请求访问磁盘的先后顺序进行调度
  2. 最短寻道时间优先 SSTF:请求访问的磁道与当前磁道最近的进程优先调度,使得每次的寻道时间最短。会产生饥饿现象,即远处进程可能永远无法访问
  3. 扫描算法 SCAN:又称电梯算法,磁头在磁盘上双向移动,其会选择离磁头当前所在磁道最近的请求访问的磁道,并且与磁头移动方向一致,磁头永远都是从里向外或者从外向里一直移动完才掉头,与电梯类似
  4. 单向扫描调度算法 CSCAN:与 SCAN 不同的是,其只做单向移动,即只能从里向外或者从外向里

5. 输入输出技术

计算机和外设间的数据交互方式:

  1. 程序控制(查询)方式:cpu 主动查询外设是否完成数据传输,效率极低
  2. 程序中断方式:外设完成数据传输后,向 CPU 发送中断,等待 CPU 处理数据,效率相对较高
  3. DMA 方式(直接主存存取) :CPU 只需完成必要的初始化等操作,数据传输的过程都由 DMA 控制器来完成,在主存和外设之间建立直接的数据通路,效率很高

在一个总线周期结束后,cpu 会响应 DMA 请求开始读取数据;CPU 响应程序中断方式请求是在一条指令执行结束时

6. 总线

  • 内部总线:内部芯片级别的总线,芯片与处理之间通信的总线
  • 系统总线:板级总线,用于计算机各部分之间的连接。具体分为数据总线(并行数据传输位数),地址总线(系统可管理的内存空间的大小),控制总线(传送控制命令)。
  • 外部总线:设备一级的总线,微机和外部设备的总线。代表有:RS232(串行总线),SCSI(并行总线),USB(通用串行总线,即插即用,支持热插拔)

并行总线是和近距离高速数据传输,串行总线适合长距离数据传输,专用总线在设计上可以与连接设备实现最佳匹配

总线计算:总线的时钟周期 = 时钟频率的倒数;总线的宽度(传输速率)= 单位时间内传输的数据总量 / 单位时间大小