计算机系统概述

🎯 核心目标:理解计算机系统的层次结构、发展脉络与基本组成,建立"从晶体管到应用程序"的全局视野。


一、什么是计算机组成原理?

计算机组成原理是研究计算机硬件系统如何构成、如何工作、如何相互协作的学科。它回答的核心问题是:

  • 计算机由哪些部件组成?
  • 各部件之间如何连接?
  • 数据如何在各部件间流动?
  • 指令如何被CPU执行?

💡 一句话概括:如果说操作系统是计算机的"管家",计算机组成原理就是研究"房子"是如何建造的。


二、计算机系统层次结构

从底层到高层,计算机系统可分为六层(或更细分的七层):

┌─────────────────────────────┐
│  第6层:应用层               │  ← 浏览器、微信、游戏(程序员使用)
├─────────────────────────────┤
│  第5层:高级语言层           │  ← C/C++、Java、Python
├─────────────────────────────┤
│  第4层:汇编语言层           │  ← MOV, ADD, JMP(机器助记符)
├─────────────────────────────┤
│  第3层:操作系统层           │  ← 进程管理、内存管理、文件系统
├─────────────────────────────┤
│  第2层:机器语言层(ISA)    │  ← 二进制指令,0101...(硬件接口)
├─────────────────────────────┤
│  第1层:微程序层 / 数字逻辑层 │  ← 门电路、触发器、ALU(硬件实现)
├─────────────────────────────┤
│  第0层:物理层               │  ← 晶体管、导线、电子运动
└─────────────────────────────┘

关键理解

  • 硬件与软件的接口:第2层(ISA,指令集架构)是软硬件的分界线。操作系统运行在第2层之上,编译器生成第2层的指令。
  • 透明性:下层对上层是"透明的"(即不可见)。写Python时,你不需要知道晶体管怎么工作;但编译器必须知道指令集。
  • 虚拟机器:每一层都可以看作下一层的一个"虚拟机器",提供了更抽象的编程接口。

三、计算机的五大基本组成部分

冯·诺依曼体系结构(von Neumann Architecture)是现代计算机的基础。所有计算机都遵循以下五大组成部分:

          ┌──────────────┐
          │  输入设备     │  ← 键盘、鼠标、硬盘、摄像头
          └──────┬───────┘
                 │
                 ▼
┌──────────────┬──────────────┬──────────────┐
│  存储器      │  运算器      │  控制器      │  ← 合称:CPU(中央处理器)
│  (Memory)    │  (ALU)       │  (CU)        │
│              │              │              │
│  存放指令    │  算术逻辑运算 │  指挥协调    │
│  和数据      │  加减乘除等  │  各部件工作  │
└──────┬───────┴──────────────┴──────┬───────┘
       │                             │
       ▼                             ▼
  ┌──────────────┐           ┌──────────────┐
  │  数据总线    │◄──────────►│  地址/控制总线│
  └──────────────┘           └──────────────┘
                 │
                 ▼
          ┌──────────────┐
          │  输出设备     │  ← 显示器、打印机、音箱
          └──────────────┘

1. 运算器(ALU - Arithmetic Logic Unit)

  • 执行算术运算(加减乘除)和逻辑运算(与或非异或)
  • 核心部件:加法器、移位器、寄存器组
  • 标志位:零标志(ZF)、进位标志(CF)、溢出标志(OF)等

2. 控制器(CU - Control Unit)

  • 计算机的"指挥中心",负责取指令、分析指令、执行指令
  • 核心部件:程序计数器(PC)、指令寄存器(IR)、指令译码器、时序电路
  • 控制方式:硬布线控制、微程序控制

3. 存储器(Memory)

  • 存放程序(指令序列)和数据
  • 按层次分类:寄存器 → Cache → 主存 → 磁盘 → 磁带/光盘
  • 按存取方式:随机存取(RAM)、只读(ROM)、顺序存取

4. 输入设备(Input Devices)

  • 将外部信息转换为计算机能识别的二进制信号
  • 包括:键盘、鼠标、扫描仪、磁盘、摄像头、麦克风等

5. 输出设备(Output Devices)

  • 将计算机处理结果转换为人类可读的形式
  • 包括:显示器、打印机、音箱、磁盘、绘图仪等

四、冯·诺依曼体系结构的核心思想

1945年,冯·诺依曼提出了存储程序的概念,这被认为是计算机发展史上的里程碑。

核心思想(三大要点)

要点 含义 意义
存储程序 程序和数据以同等地位存放在存储器中 计算机无需重新接线就能执行不同程序
二进制表示 指令和数据都用二进制编码 统一了表示方式,简化硬件设计
五大部件 运算器、控制器、存储器、输入、输出 明确了计算机的基本架构

冯·诺依曼机的特点

  1. 程序和数据共享同一存储空间:从同一地址空间中取指令和取数据
  2. 按地址访问:每个存储单元有唯一地址,通过地址访问内容
  3. 指令驱动:程序由指令序列组成,计算机按顺序执行(除非跳转)
  4. 以运算器为中心:早期设计以运算器为核心,数据都需经过运算器

🚧 现代改进:现代计算机以存储器为中心,I/O设备直接与主存交换数据(DMA),不再经过CPU,大大提高了效率。


五、计算机性能指标

1. 机器字长

  • CPU一次能处理的数据位数(如32位、64位)
  • 字长越长,精度越高,寻址空间越大
  • 目前主流:64位

2. 主频(时钟频率)

  • CPU内部时钟脉冲的频率,单位Hz
  • 主频 = 1 / 时钟周期
  • 例如:3.0 GHz = 每秒30亿个时钟周期
  • 注意:主频高≠性能一定好,还取决于CPI、IPC等因素

3. CPI(Cycles Per Instruction)

  • 执行一条指令所需的平均时钟周期数
  • CPI越小,CPU效率越高
  • 与指令集设计、流水线深度、Cache命中率等密切相关

4. MIPS(Million Instructions Per Second)

  • 每秒执行百万条指令数
  • MIPS = 主频 / (CPI × 10⁶)
  • 局限:不同指令集之间不可直接比较

5. 吞吐量(Throughput)

  • 系统在单位时间内处理请求的数量
  • 高并发系统关注的核心指标

6. 响应时间(Response Time)

  • 从提交请求到获得响应的时间
  • 交互式系统关注的核心指标

7. 存储容量与带宽

  • 主存容量:可寻址的内存空间大小
  • 存储带宽:单位时间内从存储器读出/写入的最大信息量
  • 单位:B/s, KB/s, MB/s, GB/s

六、计算机发展简史

第一代:电子管计算机(1946-1958)

  • 代表:ENIAC(1946年,第一台通用电子计算机)
  • 特点:体积庞大、耗电、易发热、故障率高
  • 使用机器语言编程

第二代:晶体管计算机(1958-1964)

  • 晶体管取代电子管,体积缩小、功耗降低
  • 出现汇编语言和高级语言(FORTRAN、COBOL)
  • 出现操作系统雏形

第三代:集成电路计算机(1964-1971)

  • 集成电路(IC)诞生,一个芯片集成多个晶体管
  • 出现IBM System/360系列,开创了兼容机时代
  • 分时操作系统出现

第四代:大规模/超大规模集成电路(1971-至今)

  • 微处理器诞生:Intel 4004(1971)→ Intel 8086 → 现代CPU
  • 摩尔定律:集成电路上可容纳的晶体管数量约每18个月翻一番
  • 个人计算机(PC)普及,互联网兴起,多核处理器出现

当前趋势

  • 多核/众核处理器
  • 专用加速器(GPU、TPU、NPU)
  • 量子计算
  • 类脑计算

七、常见概念辨析

概念 含义 类比
计算机组成 计算机硬件系统的具体实现(怎么做) 汽车引擎如何点火、如何传动
计算机体系结构 程序员可见的硬件属性(做什么) 汽车有多少个挡位、方向盘怎么转
计算机实现 具体的电路、工艺、材料 用什么金属、什么芯片工艺
ISA 指令集架构,软硬件接口 汽车的驾驶接口(油门、刹车、方向盘)
微架构 实现ISA的具体硬件设计 引擎内部的点火顺序、气缸排列

八、学习路线图

计算机系统概述(你在这里)
    │
    ▼
数据表示与运算(进制、编码、运算器)
    │
    ▼
存储器层次结构(Cache、主存、磁盘)
    │
    ▼
指令系统(指令格式、寻址方式、指令集)
    │
    ▼
中央处理器(数据通路、控制单元、流水线)
    │
    ▼
总线系统(总线类型、仲裁、通信)
    │
    ▼
输入输出系统(I/O方式、中断、DMA)

九、重点回顾

重点 一句话总结
冯·诺依曼结构 存储程序 + 二进制 + 五大部件
五大部件 运算器、控制器、存储器、输入、输出
存储程序 程序和数据放在同一存储器中,按地址访问
性能指标 主频、CPI、MIPS、吞吐量、响应时间
层次结构 硬件→ISA→OS→汇编→高级语言→应用

📌 下章预告:我们将深入计算机中最基础也最重要的部分——数据表示与运算。你会了解计算机如何用0和1表示一切信息,包括负数、小数、文字,甚至声音和图像!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐