1.2 计算机系统层次结构
1.2.1 计算机系统的组成
- 硬件系统和软件系统共同构成了一个计算机系统。
- 硬件是指有形的物理设备。
- 软件是指在硬件上运行的程序和相关的数据及文档(软件=程序+数据+文档)。
1.2.2 计算机硬件
1. 冯 · 诺依曼机基本思想
特点
- 采用“存储程序”的工作方式
- 计算机硬件系统由运算器、存储器、控制器、输入设备、输出设备 5大部件组成
- 指令和数据以同等地位存储在存储器中,形式上没有区别,计算机能区分
- 指令和数据均用二进制表示
- 指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址
“存储程序”的基本思想
- 将事先编制好的程序和原始数据送入主存储器后才能执行,一旦程序被启动执行,就无须操作人员的干预,计算机会自动逐条执行指令。
2. 计算机的功能部件
- 输入设备
- 输出设备
存储器
主存储器(主存或内存):CPU能直接访问的存储器
- 存储器地址寄存器(MAR):存放访存地址(位数=存储单元的个数)
- 存储器数据寄存器(MDR):用于暂存要从存储器中读或写的信息(位数=存储字长)
- 辅助存储器(外存):帮助主存记忆更多的信息
- 存储元件:每个元件存储一位二进制代码
- 存储单元:包含若干个存储元件
- 存储字:存储单元存储的一串二进制代码
- 存储字长:该存储字的二进制代码的位数
运算器
- 算术逻辑单元(ALU):运算器的核心。
- 累加器(ACC):用于存放操作数,或计算结果
- 乘商寄存器(MQ):在乘除计算时,用于存放操作数,或运算结果
- 操作数寄存器(X):通用的操作数寄存器,用于存放操作数
加 | 减 | 乘 | 除 | |
---|---|---|---|---|
ACC | 被加数、和 | 被减数、差 | 乘积高位 | 被除数、余数 |
MQ | 乘数、乘积低位 | 商 | ||
X | 加数 | 减数 | 被乘数 | 除数 |
控制器
- 程序计数器(PC):存放下一条执行指令的地址,具有自动加 1 的功能
- 指令寄存器(IR):存放当前指令
- 控制单元(CU):分析指令,给出信号
CPU = 运算器 + 控制器
特别注意:MAR 和 MDR 虽然是存储器的一部分,但在现代计算机中是存在于 CPU 中的
特别注意:MAR 和 MDR 虽然是存储器的一部分,但在现代计算机中是存在于 CPU 中的
3.计算机结构
- 早期冯诺依曼机
以 运算器 为中心 - 现代计算机结构
以 存储器 为中心
1.2.3 计算机软件
1. 系统软件和应用软件
系统软件
- 一组保证计算机系统高效、正确运行的基础软件
- 主要有操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务性程序等
应用软件
- 指用户为解决某个应用领域中的各类问题而编制的程序
- 如各种科学计算类程序、工程设计类程序、数据统计与处理程序等
2. 三个级别的语言
机器语言(低级语言)
- 二进制代码语言,是计算机唯一可以直接识别和执行的语言
- 汇编语言(低级语言)
- 高级语言
汇编程序(汇编器)
- 将汇编语言翻译成机器语言
解释程序(解释器)
- 将原程序中的语句按执行顺序逐条翻译成机器指令并立即执行(一句一句翻)
编译程序(编译器)
- 将高级语言程序翻译成汇编语言或机器语言程序(一次性翻完)
3. 软件和硬件的逻辑功能等价性
对于同一个功能,既可以由硬件实现(性能高成本高),也可以由软件实现(性能低成本低)
1.2.4 计算机系统的层次结构

1.2.5 计算机系统的工作原理
1. 从原程序到可执行文件

2. 指令执行过程的描述

1.3 计算机的性能指标
1.3.1 计算机的主要性能指标
1. 机器字长
指计算机进行一次整数运算所能处理的二进制数据的位数,通常和 CPU 的寄存器、ALU有关
2. 数据通路带宽
指数据总线一次所能并行传送信息的位数。
3. 主存容量
$2^{MAR的位数}\times MDR的位数 (bit)$
= $2^{MAR的位数}\times MDR的位数 /8 (Byte)$
4. 运算速度
CPU的性能取决于三要素:主频、CPI、指令条数
- 吞吐量
系统在单位时间内处理请求的数量 - 响应时间
从用户向计算机发送一个请求,到系统对该请求作出响应并获得所需结果的等待时间 - CPU 时间周期
$CPU 时间周期=\frac{1}{主频}$ 单位:微秒 - 主频
$主频=\frac{1}{CPU时间周期}$ 单位:hz - CPI
执行一条指令所需的时间周期。 - 平均 CPI
对于程序或机器指令集中的所有指令执行所需的平均时钟周期 - IPS
每秒执行多少指令。
$IPS=\frac{主频}{平均CPI}=\frac{1}{时间周期\times 平均CPI}$ - CPU 执行时间
$CPU执行时间$
$=CPU时间周期数 \times时间周期$
$=指令条数\times CPI \times 时间周期$
$=\frac{指令条数 \times CPI}{主频}$
$=\frac{CPU时间周期数}{主频}$ - MIPS
每秒执行多少百万条指令 FLOPS
每秒执行多少次浮点运算- MFLOPS:百万($10^6$)
- GFLOPS:十亿($10^9$)
- TFLOPS:万亿($10^{12}$)
- PFLOPS:千万亿($10^{15}$)
- EFLOPS:百京($10^{18}$)
- ZFLOPS:十万京($10^{21}$)
1.3.2 几个专业术语
- 系列机
- 兼容
- 固件