0 、计算机系统概述
一、计算机系统🧀
一个完整的计算机系统由硬件和软件共同组成:
- 硬件:看得见、摸得着的物理设备,是计算机工作的物质基础。
- 软件:程序、数据和相关文档的集合,决定计算机完成什么任务。
只有硬件而没有软件的计算机称为裸机,通常无法直接为用户完成实际工作。
1、硬件的五大组成部分🧀
冯·诺依曼结构把计算机硬件划分为五部分:
| 部件 | 主要作用 |
|---|---|
| 运算器 | 完成算术运算和逻辑运算,核心部件是算术逻辑单元 ALU |
| 控制器 | 取出并分析指令,产生控制信号,协调其他部件工作 |
| 存储器 | 保存程序和数据,通常分为主存与辅存 |
| 输入设备 | 把程序和数据送入计算机 |
| 输出设备 | 把处理结果转换为用户能够接收的形式 |
运算器和控制器合称 CPU。在常见的功能划分中,CPU 与主存构成主机,辅存及输入、输出设备属于外部设备。不同教材对“主机”的边界可能略有差异,做题时以题目定义为准。
冯·诺依曼结构的核心
- 程序和数据都以二进制形式存放在存储器中。
- 指令由操作码和地址码组成。
- 程序按照地址顺序执行,遇到转移指令时改变执行顺序。
- 早期结构常以运算器为中心;现代计算机通常以存储器为中心,各部件通过总线交换信息。
2、存储程序思想🧀
程序在执行前先装入主存,CPU 从 PC 指向的位置逐条取出指令并执行。程序和普通数据都以二进制编码保存,因此同一段存储内容究竟被解释为指令还是数据,取决于 CPU 当前的执行过程和控制信号,而不是其比特形式本身。
二、计算机的发展🧀
| 阶段 | 主要器件 | 典型特点 |
|---|---|---|
| 第一代 | 电子管 | 体积大、功耗高、可靠性低,主要使用机器语言 |
| 第二代 | 晶体管 | 体积和功耗下降,汇编语言及高级语言开始普及 |
| 第三代 | 集成电路 | 可靠性提高,操作系统逐渐成熟 |
| 第四代 | 大规模、超大规模集成电路 | 微处理器出现,个人计算机和网络快速发展 |
程序设计语言大致经历了以下演进:
越靠近硬件的语言越容易直接控制机器,越靠近应用的语言抽象程度越高、开发效率越高。
三、软件与计算机层次🧀
1、系统软件与应用软件🧀
| 类型 | 作用 | 示例 |
|---|---|---|
| 系统软件 | 管理硬件资源并为其他软件提供运行环境 | 操作系统、编译器、数据库管理系统、驱动程序 |
| 应用软件 | 面向用户的具体任务 | 浏览器、办公软件、图像处理软件 |
2、程序的翻译过程🧀
以 C 程序为例,从源代码到可执行文件通常经过:
各阶段的输入、输出和 C 预处理器已经在“C 语言与内存”中展开,这里不再重复。
3、计算机系统的层次🧀
| 层次 | 主要内容 | 直接使用者 |
|---|---|---|
| 微程序机器层 | 用微指令实现控制器功能;硬布线控制器没有这一层 | 硬件设计者 |
| 传统机器层 | 指令系统体系结构 ISA | 汇编器、编译器 |
| 操作系统层 | 进程、虚拟内存、文件和系统调用 | 系统程序 |
| 汇编语言层 | 用助记符表示机器指令 | 汇编程序员 |
| 高级语言层 | 提供更高层的数据结构和控制结构 | 应用程序员 |
上层通过下层提供的接口工作,逐层隐藏实现细节。
4、软硬件等价性🧀
从功能上看,许多任务既可以由软件完成,也可以由专用硬件完成:
- 硬件实现通常速度快,但成本高、修改困难。
- 软件实现通常灵活、开发成本低,但执行速度可能较慢。
所谓软硬件等价性强调的是功能可以相互转化,并不表示二者在速度、成本和可靠性上完全相同。
四、计算机性能指标🧀
1、基本指标🧀
| 指标 | 含义 |
|---|---|
| 机器字长 | CPU 一次能够处理的二进制数据位数,通常与通用寄存器和 ALU 的宽度有关 |
| 主存容量 | 主存能够保存的数据总量 |
| 吞吐量 | 单位时间内完成的任务数量 |
| 响应时间 | 从任务提交到任务完成所经历的时间 |
| 时钟频率 \(f\) | 每秒产生的时钟周期数 |
| 时钟周期 \(T\) | 一个时钟周期的时间,\(T=1/f\) |
吞吐量高不一定意味着单个任务的响应时间短,比较系统性能时必须先确定所关心的指标。
2、CPU 执行时间🧀
设程序包含的指令数为 \(IC\),平均每条指令需要的时钟周期数为 \(CPI\),则:
若程序包含多类指令,第 \(i\) 类指令的比例为 \(p_i\)、周期数为 \(CPI_i\),则平均 CPI 为:
平均 IPC 表示每个时钟周期完成的指令数:
3、MIPS 与 FLOPS🧀
MIPS 表示每秒执行多少百万条指令。不同指令集的一条指令完成的工作量不同,因此不能只用 MIPS 跨机器比较真实性能。
FLOPS 表示每秒完成的浮点运算次数,MFLOPS、GFLOPS 和 TFLOPS 分别对应 \(10^6\)、\(10^9\) 和 \(10^{12}\) 次浮点运算。
不同指令序列的比较
A、B、C 三类指令的 CPI 分别为 1、2、3。
- S1 的指令数为 2、1、2,总时钟周期数为 \(2\times1+1\times2+2\times3=10\)。
- S2 的指令数为 4、1、1,总时钟周期数为 \(4\times1+1\times2+1\times3=9\)。
在主频相同的前提下,S2 的执行时间更短,速度约为 S1 的 \(10/9\) 倍。
计算 MIPS
某程序中 A、B、C、D 四类指令的比例分别为 60%、18%、12%、10%,对应 CPI 分别为 1、2、4、8,CPU 主频为 \(400\,\text{MHz}\)。