计算机系统概述:硬件组成、软件层次、工作原理与性能指标梳理。
1.1 计算机系统的基本组成
- 计算机系统由硬件和软件两部分组成。
- 软件与硬件在逻辑上的等价性:对于某一功能,既能由硬件实现,又能由软件实现。
1.1.1 计算机系统的硬件
1. 冯·诺依曼计算机
- 采用“存储程序”工作方式。
- 五大基本部件:运算器、控制器、存储器、输入设备、输出设备。
- 存储器存放数据和指令,形式上无区别,但计算机能区分。
- 计算机内部以二进制表示指令和数据;每条指令由操作码和地址码组成;程序由一串指令构成。
2. 计算机的功能部件
a. 运算器
- 功能:执行部件,进行算术运算和逻辑运算。
- 核心:算术逻辑单元(ALU)。
- 寄存器:
- 通用寄存器:暂存操作数和中间结果。
- 必备寄存器:累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)。
- 其他:变址寄存器(IX)、基址寄存器(BR)等。
- 程序状态寄存器(PSW):存放ALU运算标志信息(溢出、进位/借位、负结果等)或处理机状态信息。
b. 存储器
- 分类:
- 内存:主存储器(主存)、高速缓存(Cache)。(CPU可直接访问)
- 外存:辅助存储器(磁盘、SSD)、海量后备存储器。(需调入主存才能被CPU访问)
- 存储单元:
- 存储元:存储一位二进制代码(0/1)。
- 存储单元:若干存储元组成,可存储一串二进制代码(存储字)。
- 存储字长:存储单元中二进制代码的位数。
- 重要寄存器(现代计算机中集成在CPU内):
- MAR(存储器地址寄存器):存放要访问的主存地址,位数决定最大寻址空间。
- MDR(存储器数据寄存器):暂存从主存读出或要写入主存的数据,位数等于存储字长。
- 工作过程:
- 读操作:CPU将地址写入MAR → 主存取出数据放入MDR → CPU从MDR取数据。
- 写操作:CPU将地址写入MAR,数据写入MDR → 主存将MDR数据写入对应地址。
c. 控制器
- 功能:对指令译码,生成控制信号,控制数据通路操作。
- 组成:
- 程序计数器(PC):存放当前欲执行指令的地址,具有自动加“1”功能,与MAR相连。
- 指令寄存器(IR):存放当前指令。操作码OP(IR)送CU分析;地址码Ad(IR)送MAR取操作数,与MAR、MDR相连。
- 控制单元(CU):分析指令并发出微操作命令序列。
d. 外部设备
- 常由机械部分(设备本身)和电子部分(I/O控制器/适配器)组成,通过I/O控制器连接到主机。
1.1.2 计算机系统的软件
1. 计算机系统的层次结构
- 多级层次结构:
- 硬件:传统机器M1、微程序机器M0。
- 软件:操作系统级以上的各级虚拟机。
- 指令集体系结构(ISA):软件与硬件之间的接口,定义软件能感知到的部分(软件可见部分)。包括数据类型、指令格式、寻址方式、寄存器定义、中断结构等。
- 本课程重点:传统机器M1和微程序机器M0的组成原理及设计思想。
2. 不同抽象层次的语言和程序
- 编程语言:
- 高级语言:机器无关,如C、Java。
- 低级语言(机器级语言):与底层结构密切相关,包括机器语言和汇编语言。
- 机器语言:二进制编码的机器指令,可读性差。
- 汇编语言:用英文符号表示机器指令,便于编写和阅读。
- 翻译程序:
- 汇编程序(Assembler):汇编语言 → 机器语言。
- 编译程序(Compiler):高级语言 → 汇编语言/机器语言。
- 解释程序(Interpreter):逐条翻译并执行高级语言源程序。
1.1.3 计算机系统的工作原理
1. “存储程序”工作方式
- 核心:程序和数据预先存入主存,启动后自动逐条取指并执行,无需人工干预。
- 指令执行过程:取指令 → 译码 → 计算下条指令地址 → 取操作数并执行 → 结果送回存储器。
- PC的作用:存放当前指令地址,顺序执行时PC自动加“1”(指令长度),转移指令时PC改为目标地址,保证指令的连续执行。
2. 高级语言程序和机器语言程序之间的转换
以hello.c为例:
- 预处理:处理
#include等命令,生成.i文件。 - 编译:生成汇编语言程序,
.s文件。 - 汇编:生成可重定位目标文件(二进制),
.o文件。 - 链接:合并多个目标文件和库函数,生成可执行文件。
习题(1.1部分)
- 冯诺依曼计算机工作方式的基本特点是(C. 按地址访问指令并自动按序执行程序)
- 关于冯诺依曼计算机结构的叙述错误的是(D. 指令按地址访问,所有数据在指令中直接给出)
- 存放当前执行指令的寄存器是(B. IR)
- 存放当前欲执行指令地址的寄存器是(A. PC)
- 存储字长是指(B. 存放在一个存储单元中的二进制代码位数)
- MAR和MDR的位数通常分别等于(A. 地址码长度、存储字长)
- 在CPU的寄存器中,对用户完全透明的是(B. 指令寄存器)
- 计算机硬件能够直接执行的是(A. 仅I 机器语言程序)
- 将高级语言源程序转换为机器级目标代码文件的程序是(C. 编译程序)
- 关于冯诺依曼计算机基本思想的叙述错误的是(C. 指令按地址访问,数据都在指令中直接给出)
- 其位数(宽度)一定与机器字长相同的是(B. 仅 I、III ALU和通用寄存器)
1.2 计算机的性能指标
| 指标 | 定义 |
|---|---|
| 吞吐量 | 单位时间内处理请求的数量,主要取决于主存存取周期。 |
| 响应时间 | 从发送请求到获得响应结果的等待时间,包括CPU时间和等待时间。 |
| 时钟周期 | CPU主脉冲信号的宽度,CPU工作的最小时间单位。 |
| 主频 | 时钟周期的倒数,单位Hz。主频 = 1 / 时钟周期。 |
| CPI | 执行一条指令所需的平均时钟周期数。 |
| CPU执行时间 | 运行一个程序所花费的时间。 |
| MIPS | 每秒执行多少百万条指令。 |
| FLOPS | 每秒执行浮点运算次数。 |
| 基准程序 | 用于计算机性能评测的一组典型程序,能反映实际负载性能。 |
习题
- 计算机操作的最小单位时间是(时钟周期)
- 机器A(1.2ns, CPI=2)和B(2ns, CPI=1)执行同一程序,速度关系为(机器B比机器A快1.2倍)
(执行时间:A: 2×1.2=2.4ns/指令,B: 1×2=2ns/指令,B/A=1.2) - 能缩短程序执行时间的措施是(提高主频、优化数据通路、编译优化均可缩短)
- 描述浮点数操作速度指标的是(MFLOPS)
- CPU速度提高50%,I/O不变,原CPU时间90s,I/O时间10s,新CPU时间=90/1.5=60s,总时间=60+10=70s(70s)
- 主频1.2GHz,平均CPI=50%×2+20%×3+10%×4+20%×5=3,MIPS=1200/3=400(400)
- 原执行时间20s,优化后指令数×0.7,CPI×1.2,新时间=20×0.7×1.2=16.8s(16.8s)
- M1主频1.5GHz,CPI=2;M2主频1.2GHz,CPI=1。时间比=(2/1.5):(1/1.2)=1.333:0.833=1.6(1.6)