第一章 计算机系统基本概念
第一章
计算机系统简介
计算机由软件和硬件组成
软件:具有特定功能的程序
- 系统软件
- 操作系统
- 语言处理程序
- 服务性程序
- 数据库管理系统
- ...
- 应用软件:满足各种需求的程序
硬件:计算机的实体
计算机系统层次结构
语言 | 操控的对象 | 执行 |
---|---|---|
高级语言 | 虚拟机器 | 用编译程序翻译成汇编语言 |
汇编语言 | 虚拟机器 | 用汇编程序翻译成机器语言 |
操作系统 | 虚拟机器 | 用机器语言解释操作系统 |
指令 | 实际机器 | 用微指令解释机器指令 |
微指令 | 微程序机器 | 由硬件直接执行机器指令 |
解决计算机系统复杂性的方法:
- 抽象:用高级模型代替低级实体
- 层次化:将系统分为多个子模块
- 模块化:有明确定义的功能和接口
- 规则性:模块更容易被重用
计算机的基本组成
冯诺依曼结构:控制器,处理器,存储器,输入设备,输出设备
冯诺依曼结构的特点:
- 计算机由五大部件组成
- 指令和数据以同等地位存储在存储器中,按地址访问
- 指令和数据用二进制表示
- 指令由操作码和地址码构成
- 以运算器为中心
冯诺依曼结构示意图:(实线代表数据通路,虚线代表控制指令)
冯诺依曼结构的局限:
- 以运算器为中心,运算器成为制约计算机速度的瓶颈
- 缺少层次化的特征
改进:以存储器为中心,层次化设计
现代计算机示意图:

硬件层次化结构:
- 主机
- CPU
- 运算器(ALU)
- 控制器(CU)
- 主存
- CPU
- I/O 设备
- 辅存
- 输入设备
- 输出设备
存储器的基本组成
- 存储体
- MAR
- MDR
存储体 \(\rightarrow\) 存储单元(存放一串二进制代码)\(\rightarrow\) 存储元件(存放一位二进制)
存储字:存储单元中二进制代码的组合
存储字长:存储字的长度
MAR:存储器地址寄存器,反映存储单元的个数
MDR:存储器数据寄存器,反映存储字长
存储器空间计算:\(2^n\times l\),n 是 MAR 位数,l 是存储字长
运算器的基本结构
-
运算器的核心部件:ALU
-
输入寄存器:ACC,X
-
输出寄存器:ACC,MQ(如果需要额外的位)
注意:不同类型的计算机结构不同
运算器操作过程
ACC | MQ | X | |
---|---|---|---|
加法 | 被加数和 | 加数 | |
减法 | 被减数差 | 减数 | |
乘法(移位加法) | 乘积高位 | 乘数/乘积低位 | 被乘数 |
除法(移位减法) | 被除数/余数 | 商 | 除数 |
乘法操作过程(默认被乘数在 ACC ):
- 指令 乘 M
- 把 M 中的内容送到 MQ 寄存器
- 把 ACC 内容送到 X
- ACC 清零
- 累加,高位送入 ACC,低位送入 MQ
操作是有先后的,由控制器控制
由于 MQ 只在乘法和除法中使用,所以又叫乘商寄存器
控制器的基本结构
控制器的功能:解释指令,保证指令按序执行
- PC(程序计数器):保存当前将要执行指令的地址,具有计数功能,\(PC+1 \rightarrow PC\)
- IR(指令寄存器):存放当前将要执行的指令
CU(控制单元):控制各个部件执行按顺序指令
运算器,控制器和存储器一起就构成了主机
主机完成一条指令的过程(以取数指令为例)
- 取指令:PC 把指令的地址送给 MAR,MAR 控制存储体将指令取出送给 MDR,MDR 送给 IR
- 分析指令:将 IR 中指令操作码送给 CU,CU 分析指令
- 执行指令:将 IR 中的地址码取出送给 MAR,MAR 控制存储体将对应地址数据取出送给 MDR,MDR 将数据送入 ACC
计算机硬件的主要技术指标
机器字长:CPU 一次能够处理数据的位数,与 CPU 中的寄存器位数有关
运算速度
- 主频
- 核数,每个核支持的线程数
- 吉普森法:每条指令的时间乘以频率的平均值 \(T_M=\sum\limits_{i=1}^{n}{f_it_i}\)
- 静态平均:从指令表计算
- 动态平均:根据程序执行过程计算
- CPI 执行一条指令所需时钟周期数
- MIPS 每秒执行百万条指令
- FLOPS 每秒浮点运算次数
存储容量
- 主存容量
- 存储单元个数 x 存储字长
- 字节数
- 辅存容量
- 字节数