跳转至

计算机系统基础导读

本专题记录计算机系统的学习笔记,主要参考袁春风老师的计算机系统基础 1

内容主要按照以下三个部分展开:

  • 数据的表示和处理:主要介绍各类数据在计算机中的表示与运算;
  • 程序的转换和表示:主要介绍高级语言中的过程调用和控制语句所对应的汇编指令序列,以及各类数据结构元素的访问所对应的汇编指令;
  • 程序的链接:主要介绍如何将多个模块链接起来生成一个可执行的目标文件。

计算机的工作原理

曾经,冯·诺依曼认为计算机应该由五个部分组成,相互协作完成任务。如下图所示:

曾经的计算机结构模型(冯·诺依曼模型)

即:

  1. 存储器。存储数据和指令;
  2. 运算器。可以进行四则运算和逻辑运算;
  3. 控制器。自动取指令来执行;
  4. 输入设备。用户输入;
  5. 输出设备。系统输出。

现在,计算机结构模型是这样的:

现代计算机结构模型

其中:

  • CPU:即中央处理器;
  • PC:即程序计数器;
  • MAR:即存储器地址寄存器;
  • ALU:即算数逻辑部件;
  • IR:即指令寄存器;
  • MDR:即存储器数据寄存器;
  • GPRs:即通用寄存器组(由若干通用寄存器组成,早期就是累加器)。

计算机的层次结构

计算机的层次结构如下图所示:

计算机的层次结构

计算机的性能评价

计算机系统由硬件和软件两部分构成,其中硬件性能在整体性能中起决定性作用。衡量计算机硬件性能的主要指标有两种:

  • 吞吐率 (Throughput):系统在单位时间内完成的工作量;
  • 响应时间 (Response Time):系统完成一个作业从提交到完成所需的时间。

吞吐率与响应时间的应用场景

以文件备份为例:

  • 少量大文件:更关注吞吐率,吞吐率高意味着处理大文件的效率高;
  • 大量小文件:更关注响应时间,响应时间短意味着能更快完成每个小任务。

因此,吞吐率和响应时间适用于不同的应用场景:

  • 多媒体处理(如视频压缩、图像渲染):需要高吞吐率;
  • 银行、证券交易等在线业务:需要低响应时间;
  • 用户交互类系统(如 ATM、文件服务器、Web 服务):则需要二者兼优。

程序执行时间与性能衡量

在不考虑应用背景的情况下,计算机性能通常也可以通过「程序的执行时间」来衡量。下图展示了程序的执行时间组成(用户实际感受到的部分):

程序的执行时间(用户感受到的)

其中,我们主要关注用户 CPU 时间。其计算依赖三个关键量:

  1. 时钟周期 (Clock Cycle):一个时钟脉冲信号持续的时间,用于控制各硬件模块的工作节奏;
  2. 时钟频率 (Clock Rate):单位时间内的时钟周期数,即时钟周期的倒数;
  3. CPI (Cycles Per Instruction):每条指令平均需要的时钟周期数。

  4. 对单条指令:CPI 表示执行该指令所需的时钟周期数;

  5. 对整个程序或机器:CPI 表示所有指令平均执行所需的时钟周期数。

由此可得用户 CPU 时间的计算公式:

\[ \text{用户 CPU 时间} = \text{程序总时钟周期数} \times \text{时钟周期} = \frac{\text{程序总时钟周期数}}{\text{时钟频率}} \]

由公式可见:用户 CPU 时间与计算机性能成反比。此外,时钟周期、时钟频率与 CPI 三者相互制约,无法单独提升某一个指标而不影响整体性能。

Amdahl 定律

Amdahl 定律用于描述系统局部改进对整体性能的影响。如果系统中某部分被加速,其带来的总体性能提升取决于该部分「在原系统中所占时间比例」及「改进倍数」。其公式如下:

\[ \text{改进后的执行时间} = \frac{\text{改进部分原本占用的时间}}{\text{改进倍数}} + \text{剩余部分占用的时间} \]

由此可得整体性能提升倍数:

\[ \text{整体改进倍数} = \left(\frac{\text{改进部分时间比例}}{\text{改进倍数}} + \text{剩余部分时间比例}\right)^{-1} \]

Amdahl 定律揭示:即使对某部分性能大幅提升,若该部分占总体时间比例较小,整体性能改善仍有限。因此,优化系统性能时应优先改进占用时间较多的关键部分。


  1. 袁春风. 计算机系统基础[M]. 北京:机械工业出版社,2018. ISBN 978-7-111-60489-1.