计算机系统基础
计算机系统
实际机器
- 硬联逻辑级:这是计算机的内核,由门、触发器等逻辑电路组成。
- 微程序级:这一级的机器语言是微指令集,程序员用微指令编写的微程序一般直接由硬件执行。
- 传统机器级:这一级的机器语言是该机的指令集,程序员用机器指令编写的程序可以由微程序进行解释。
虚拟机器
- 操作系统级:从操作系统的基本功能来看,一方面它要直接管理传统机器中的硬件资源,另一方面它又是传统机器的延伸。
- 汇编语言级:这一级的机器语言是汇编语言,完成汇编语言翻译的程序称为汇编程序。
- 高级语言级:这一级的机器语言就是各种高级语言,通常用编译程序来完成高级语言翻译的工作。
- 应用语言级:这一级是为了使计算机满足某种用途而专门设计的。因此,这一级的机器语言就是各种面向问题的应用语言。
存储系统
层次化存储结构
- CPU寄存器:最快,但容量小,成本高
- Cache:按内容存取
- 内存(主存):一般由DRAM构成
- 外存(辅存):硬盘、光盘、U盘等
局部性原理:
-
时间局部性:指程序中的某条指令一旦执行,不久以后该指令可能再次执行,典型原因是由于程序中存在着大量的循环操作。
-
空间局部性:指一旦程序访问了某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内访问的地址可能集中在一定的范围内,其典型情况是程序顺序执行。
-
工作集理论:工作集是进程运行时被频繁访问的页面集合
高速缓存
- 提高CPU数据输入输出的速率,突破冯诺依曼瓶颈,即CPU与存储系统间数据传送带宽限制
- 在计算机的存储系统体系中,高速缓存是访问速度最快的层次(若有寄存器,则寄存器最快)
- 高速缓存对程序员来说是透明的
- 使用高速缓存改善系统性能的依据是程序的局部性原理
映像方式
- 直接相联映像:硬件电路较简单,但冲突率很高。
- 全相连映像:电路难以设计和实现,只适用于小容量的Cache,冲突率较低
- 组相联映像:直接相联与全相连的折中
同步方式
- 写直达:同时写Cache与内存
- 写回:只写Cache,淘汰页面时,写回内存
- 标记法:只写入内存,并将标志位清零,若用到此数据,需要再次调取
页面淘汰算法
- 随机算法(RAND)
- 先进先出算法(FIFO)
- 近期最少使用算法(LRU)
- 最不经常使用算法(LFU)
磁盘管理
读取磁盘数据的时间应包括以下三个部分:
- 找磁道的时间。
- 找块(扇区)的时间,即旋转延迟时间。
- 传输时间。
移臂调度算法
- 先来先服务(FCFS)
- 最短寻道时间优先(SSTF)
- 扫描算法(SCAN)
- 循环扫描算法(CSCAN)
磁盘优化分布
略
磁盘单缓冲区与双缓冲区读取
略
Flynn分类法
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
单指令流单数据流SISD | 单控制部分、单处理器、单主存模块 | 单处理器系统 | |
单指令流多数据流SIMD | 单控制部分、多处理器、多主存模块 | 各处理器以异步的形式执行同一条指令 | 并行处理机、阵列处理机、超级向量处理机(GPU) |
多指令流单数据流MISD | 多控制部分、单处理器、多主存模块 | 被证明不可能,至少是不实际 | 目前没有,有文献称流水线计算机为此类 |
多指令流多数据流MIMD | 多控制部分、多处理器、多主存模块 | 能够实现作业、任务、指令等各级全面并行 | 多核处理器(SMP、BMP、MP)多处理机系统(MPP)多计算机 |
指令集
复杂指令集(CISC)
-
指令:数量多,使用频率差别大,可变长格式
-
寻址方式:支持多种
-
实现方式:微程序控制技术(微码)
-
其他:研制周期长
精简指令集(RISC)
- 指令:数量少,使用评率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存
- 寻址方式:支持方式少
- 实现方式:增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线
- 其他:优化编译,有效支持高级语言
流水线
流水线执行时间计算
理论公式:$ T_{\text{pipeline}} = (t_1 + t_2 + \dots + t_k) + (n - 1) \times t_{\text{max}} $
实践公式:$ T_{\text{pipeline}} = t_{\text{max}} \times (k + n - 1) $
流水线吞吐率计算
流水线吞吐率是指单位时间内完成的任务数量。
- 吞吐率可以通过以下公式计算:
$ \text{吞吐率} = \frac{\text{完成的任务数量}}{\text{单位时间}} $
- 最大吞吐率可以通过以下公式估算:
$ \text{最大吞吐率} = \frac{1}{\text{最慢阶段的执行时间}} $
流水线加速比计算
流水线加速比用于衡量使用流水线相对于没有流水线时的执行速度提升倍数。
流水线加速比的计算公式如下:
$ \text{流水线加速比} = \frac{\text{串行执行任务所需时间}}{\text{流水线执行任务所需时间}} $
性能指标
- 字长和数据通路宽度
- 主存容量和存取速度
- 运算速度
- 主频=外频*备频
- 主频与CPU时钟周期
- CPI与IPC
- MIPS与MFLOPS
- 吞吐量和吞吐率
- 响应时间(RT)与完成时间(TAT)
- 兼容性
可靠性或可用性
- 能够正常工作的时间长度(如:平均无故障时间)
- 一段时间内能够正常工作的时间所占百分比
处理能力或效率
- 吞吐率(如系统在单位时间内能处理正常作业的格式)
- 响应时间(从系统得到输入到系统给出输出之间的时间)
- 资源利用率,即在给定的时间区间中,各种部件(包括硬件设备和软件系统)被使用的时间与整个时间之比。
性能评价方法
- 时钟频率法:以时钟频率高低衡量速度
- 指令执行速度法:表示机器运算速度的单位是MIPS
- 等效指令速度法【吉普森混合法】:通过各类指令在程序中所占比例进行计算得到的。【考虑指令比例不同的问题】
- 数据处理速率法:PDR值的方法来衡量机器性能,PDR值越大,机器性能越好。【考虑CPU+存储】
- 综合理论性能法:CTP的估算方法是首先算出处理部件每个计算单元的有效计算率,再按不同字长加以调整,得出该计算单元的理论性能,所有组成该处理部件的计算单元的理论性能之和即为CTP。
- 基准程序法:把应用中用得最多、最频繁的那部分核心程序作为评估计算机系统性能的标准程序,称为基准测试程序(benchmark)。基准程序法是目前一致承认的测试系统性能的较好方法。【测试精确度排名】真实的程序 > 核心程序 > 小型基准程序 > 合成基准程序
可靠性
可靠性指标
-
平均无故障时间(Mean Time To Failure)
-
平均故障修复时间(Mean Time To Repair)
-
平均故障间隔时间(Mean Time Between Failures)
可靠性:$ \frac{MTTF}{1 + MTTF} $
可用性:$ \frac{MTBF}{1+MTBF} $
可维护性:$\frac{1}{1+MTTR} $
可靠性计算模型
串联:$ R = R_1 \times R_2 \times \ldots \times R_n $
并联:$ R = 1 - (1 - R_1) \times (1 - R_2) \times \ldots \times (1 - R_n) $