首页 / 第1章 计算机系统概述

计算机系统概述

计算机发展历程、系统层次结构、性能指标

1. 计算机发展历程

计算机从诞生到现在经历了多个发展阶段,元器件的变革是推动计算机发展的主要动力。

1.1 四代计算机

1946 ~ 1957
第一代:电子管计算机
电子管作为逻辑元件,机器语言/汇编语言,体积大、功耗高、速度慢(几千次/秒)。代表:ENIAC、IBM 701
1958 ~ 1964
第二代:晶体管计算机
晶体管作为逻辑元件,出现高级语言(FORTRAN、COBOL),体积缩小、速度提高(几十万次/秒)。代表:IBM 7094
1965 ~ 1971
第三代:中小规模集成电路
集成电路(SSI/MSI),操作系统成熟,半导体存储器出现,速度达几十万到几百万次/秒。代表:IBM 360
1972 ~ 至今
第四代:大规模/超大规模集成电路
LSI/VLSI/ULSI,微处理器出现(Intel 4004, 1971),个人计算机普及,性能飞速提升。代表:Intel x86, ARM
💡
摩尔定律 当价格不变时,集成电路上可容纳的元器件数目约每隔18~24个月翻一倍,性能也提升一倍。由Intel创始人戈登·摩尔提出。

2. 计算机系统层次结构

计算机系统由硬件系统和软件系统组成,二者缺一不可。从功能上可以划分为多个层次。

2.1 计算机系统的多层级结构

第5级:高级语言机器
C/C++/Java等,由编译程序翻译
软件
第4级:汇编语言机器
汇编语言,由汇编程序翻译
软件
第3级:操作系统机器
操作系统,提供系统调用
软件
第2级:机器语言机器
指令系统,由微程序/硬布线解释
硬件/软件
第1级:微指令系统
微指令/硬布线逻辑,直接硬件执行
硬件

2.2 硬件与软件的关系

  • 逻辑等效性:某些功能既可用硬件实现,也可用软件实现,在功能上是等效的
  • 硬件是基础:软件功能的实现依赖硬件提供的支持
  • 软件是灵魂:没有软件的计算机是裸机,无法工作
  • 软硬件协同发展:硬件发展推动软件升级,软件需求促进硬件进步

2.3 软件分类

⚙️ 系统软件

用来管理整个计算机系统,提供服务的软件。
包括:操作系统、语言处理程序、数据库管理系统、网络软件、服务程序等

📱 应用软件

用户为解决特定问题而编写的程序。
包括:办公软件、游戏软件、浏览器、科学计算程序等

3. 冯·诺依曼结构

冯·诺依曼于1945年提出存储程序的概念,奠定了现代计算机的基本结构。

3.1 冯·诺依曼计算机的特点

  1. 计算机由运算器、存储器、控制器、输入设备、输出设备五大部件组成
  2. 指令和数据以同等地位存放于存储器中,可按地址寻访
  3. 指令和数据均用二进制表示
  4. 指令由操作码和地址码组成,操作码表示操作性质,地址码表示操作数地址
  5. 指令在存储器中按顺序存放,一般自动顺序取出执行
  6. 机器以运算器为中心,输入输出设备与存储器间的数据传送都要通过运算器

3.2 五大基本部件

🧮
运算器
完成算术和逻辑运算,ALU为核心
💾
存储器
存放数据和程序,按地址访问
🎮
控制器
指挥协调各部件工作,发出控制信号
⌨️
输入设备
将信息输入计算机,如键盘、鼠标
🖥️
输出设备
输出处理结果,如显示器、打印机
📌
核心思想:存储程序 将事先编好的程序和原始数据送入主存中,然后启动计算机工作。计算机在不需操作人员干预的情况下,自动逐条取出指令并执行。这是冯·诺依曼结构的精髓。

4. 计算机工作过程

计算机的工作过程就是不断取指令、分析指令、执行指令的循环过程。

4.1 求解问题的步骤

  1. 建立数学模型,将实际问题转化为数学问题
  2. 确定计算方法,选择合适的算法
  3. 编制程序,将算法转化为计算机可执行的指令序列
  4. 将程序和数据送入存储器
  5. 启动计算机,自动执行程序
  6. 输出计算结果

4.2 指令执行过程

一条指令的执行通常包含以下阶段:

指令执行周期示意
就绪
指令周期:CPU从主存取出一条指令并执行这条指令的时间。一般由取指周期、间址周期、执行周期、中断周期组成。

5. 计算机性能指标

衡量计算机性能的指标有很多,需要综合考虑,单一指标不能完全反映计算机性能。

⏱️ 吞吐量 & 响应时间
吞吐量:单位时间内完成的工作量
响应时间:从提交到获得结果的时间
吞吐量关注系统整体处理能力,响应时间关注单个任务的完成速度。两者都很重要。
🔄 主频 & 时钟周期
时钟周期 T = 1 / f
主频 f = 1 / T
时钟周期是CPU操作的最小时间单位。主频越高,时钟周期越短,CPU速度越快。单位:Hz、MHz、GHz。
📊 CPI (每条指令周期数)
CPI = 总时钟周期数 / 指令总数
平均CPI = Σ(CPIi × ICi) / 总指令数
CPI表示执行每条指令所需的时钟周期数。CPI越小,指令执行速度越快。与指令系统、流水线等有关。
⏳ CPU执行时间
CPU时间 = 指令数 × CPI × 时钟周期
= 指令数 × CPI / 主频
CPU真正用于执行程序的时间。受三个因素影响:指令数、CPI、时钟频率。这是最核心的性能公式!
🚀 MIPS (百万指令/秒)
MIPS = 指令数 / (执行时间 × 10⁶)
= 主频 / (CPI × 10⁶)
每秒执行多少百万条整数指令。注意:MIPS高不代表性能一定好,因为指令功能强弱不同。
🔢 FLOPS (浮点运算次数/秒)
MFLOPS / GFLOPS / TFLOPS / PFLOPS
浮点操作次数 / (执行时间 × 10⁶)
每秒执行多少次浮点运算,常用于衡量科学计算性能。比MIPS更适合衡量高性能计算机。
⚠️
常见误区 主频越高 ≠ 性能越好!不同架构的CPU不能简单用主频比较(如AMD和Intel)。还要考虑CPI、指令功能、Cache大小、多核等因素。性能是综合指标,不是单一频率决定的。

5.1 核心公式推导

已知条件:
  • 主频 f → 时钟周期 T = 1/f
  • 某程序有 IC 条指令
  • 平均每条指令需要 CPI 个时钟周期

推导:
  总时钟周期数 = IC × CPI
  CPU执行时间 = 总周期数 × T = IC × CPI / f
  MIPS = IC / (时间 × 10⁶) = f / (CPI × 10⁶)