计算机系统概述:硬件组成、软件层次、工作原理与性能指标梳理。

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部分)

  1. 冯诺依曼计算机工作方式的基本特点是(C. 按地址访问指令并自动按序执行程序)
  2. 关于冯诺依曼计算机结构的叙述错误的是(D. 指令按地址访问,所有数据在指令中直接给出)
  3. 存放当前执行指令的寄存器是(B. IR)
  4. 存放当前欲执行指令地址的寄存器是(A. PC)
  5. 存储字长是指(B. 存放在一个存储单元中的二进制代码位数)
  6. MAR和MDR的位数通常分别等于(A. 地址码长度、存储字长)
  7. 在CPU的寄存器中,对用户完全透明的是(B. 指令寄存器)
  8. 计算机硬件能够直接执行的是(A. 仅I 机器语言程序)
  9. 将高级语言源程序转换为机器级目标代码文件的程序是(C. 编译程序)
  10. 关于冯诺依曼计算机基本思想的叙述错误的是(C. 指令按地址访问,数据都在指令中直接给出)
  11. 其位数(宽度)一定与机器字长相同的是(B. 仅 I、III ALU和通用寄存器)

1.2 计算机的性能指标

指标 定义
吞吐量 单位时间内处理请求的数量,主要取决于主存存取周期。
响应时间 从发送请求到获得响应结果的等待时间,包括CPU时间和等待时间。
时钟周期 CPU主脉冲信号的宽度,CPU工作的最小时间单位。
主频 时钟周期的倒数,单位Hz。主频 = 1 / 时钟周期。
CPI 执行一条指令所需的平均时钟周期数。
CPU执行时间 运行一个程序所花费的时间。
MIPS 每秒执行多少百万条指令。
FLOPS 每秒执行浮点运算次数。
基准程序 用于计算机性能评测的一组典型程序,能反映实际负载性能。

习题

  1. 计算机操作的最小单位时间是(时钟周期)
  2. 机器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)
  3. 能缩短程序执行时间的措施是(提高主频、优化数据通路、编译优化均可缩短)
  4. 描述浮点数操作速度指标的是(MFLOPS)
  5. CPU速度提高50%,I/O不变,原CPU时间90s,I/O时间10s,新CPU时间=90/1.5=60s,总时间=60+10=70s(70s)
  6. 主频1.2GHz,平均CPI=50%×2+20%×3+10%×4+20%×5=3,MIPS=1200/3=400(400)
  7. 原执行时间20s,优化后指令数×0.7,CPI×1.2,新时间=20×0.7×1.2=16.8s(16.8s)
  8. M1主频1.5GHz,CPI=2;M2主频1.2GHz,CPI=1。时间比=(2/1.5):(1/1.2)=1.333:0.833=1.6(1.6)