Files
obsidian/计算机组成原理/学习笔记/01_计算机系统概论_补充版.md

25 KiB
Raw Blame History

第1章 计算机系统概论

📖 本章介绍计算机系统的基本概念和组成,是整个课程的基础。 🎯 重点理解计算机层次结构和冯·诺依曼体系 ⚠️ 本章以基本概念为主复习重点见课后习题1.5、1.6、1.7、1.11


📋 本章目录


1.1 计算机系统简介

1.1.1 计算机的软硬件概念

计算机系统由 硬件软件 两大部分组成。

graph TB
    subgraph 计算机系统
        subgraph 硬件
            A[主机] --> A1[CPU]
            A --> A2[主存储器]
            A1 --> A11[运算器]
            A1 --> A12[控制器]
            B[外部设备] --> B1[输入设备]
            B --> B2[输出设备]
        end
        subgraph 软件
            C[系统软件] --> C1[操作系统]
            C --> C2[语言处理程序]
            C --> C3[数据库管理系统]
            D[应用软件] --> D1[科学计算程序]
            D --> D2[数据处理程序]
        end
    end

硬件Hardware

[!info] 定义 计算机的实体部分,由看得见摸得着的各种电子元器件组成。

  • 主机CPU + 主存储器
  • 外部设备:输入设备 + 输出设备

理解硬件最好的方式是类比人体CPU就像大脑负责思考和处理信息内存相当于短期记忆临时存放正在处理的信息硬盘是长期记忆永久保存数据键盘鼠标像眼睛和耳朵接收外界输入显示器则是嘴巴和手把处理结果输出给我们。

软件Software

[!info] 定义 人们事先编制的具有各类特殊功能的程序,存放在存储器中。

系统软件

  • 操作系统Windows、Linux等
  • 语言处理程序(编译程序、汇编程序)
  • 数据库管理系统
  • 服务程序(诊断、调试程序)

应用软件

  • 科学计算程序
  • 数据处理程序
  • 过程控制程序
  • 事务管理程序

软件可以类比为人的思想和知识:操作系统就像基本生活技能(吃饭、走路),编译程序像翻译官,把高级语言翻译成机器能懂的语言,应用软件则是各种专业知识和技能。

[!tip] 关键理解 计算机性能 = 硬件功能 + 软件功能。软硬件相互依存,缺一不可。

举个实际的例子:一台高性能电脑如果没有安装任何软件,什么都做不了;反过来,再厉害的软件在配置太低的硬件上也跑不起来。所以硬件和软件必须配合才能发挥作用。


1.1.2 计算机系统的层次结构

计算机系统具有多级层次结构,从低到高依次为:

graph TB
    subgraph "五级层次结构"
        M4["虚拟机器 M4<br/>(高级语言机器)"] --> |"用编译程序翻译"| M3
        M3["虚拟机器 M3<br/>(汇编语言机器)"] --> |"用汇编程序翻译"| M2
        M2["虚拟机器 M2<br/>(操作系统机器)"] --> |"用机器语言解释"| M1
        M1["传统机器 M1<br/>(机器语言机器)"] --> |"用微程序解释"| M0
        M0["微程序机器 M0<br/>(微指令系统)"] --> |"由硬件直接执行"| HW["硬件电路"]
    end

    style M4 fill:#e1f5fe
    style M3 fill:#b3e5fc
    style M2 fill:#81d4fa
    style M1 fill:#4fc3f7
    style M0 fill:#29b6f6
    style HW fill:#0288d1

[!important] 这是考试高频考点 五级层次结构是填空题和简答题的常客,期中/期末都曾出现。记住顺序:微程序级 → 机器指令级 → 操作系统级 → 系统软件级 → 应用软件级。

各层次说明

层次 名称 说明 语言
M4 高级语言机器 用户编程层面 高级语言C、Java等
M3 汇编语言机器 汇编语言层面 汇编语言
M2 操作系统机器 操作系统层面 机器语言
M1 传统机器 硬件指令层面 机器语言
M0 微程序机器 微指令层面 微指令

这个层次结构可以想象成一栋大楼顶层M4是普通用户工作的地方他们用C、Java等高级语言编程就像说普通话一样自然往下一层M3是专业程序员用汇编语言更接近机器但人还能听懂再往下M2是系统管理员管理整栋大楼的资源底层M1是硬件工程师直接操作机器指令最底层M0是硬件电路执行最基础的微指令就像大楼的地基。

当我们用C语言写 int a = 5 + 3;这个简单的加法在不同层次的表现是不同的M4层看到的是 5 + 3M3层编译器把它翻译成汇编指令M2层操作系统负责分配资源M1层变成二进制机器指令M0层则是微指令控制ALU执行加法。

[!note] 重要概念

  • 虚拟机:不是实际存在的机器,而是通过软件实现的功能层次
  • 实际机器物理存在的硬件机器M0和M1
  • 软硬件交界:随着技术发展,部分软件功能由硬件实现(固件)

翻译程序的两种方式

graph LR
    subgraph "编译程序"
        A1[源程序] --> B1[一次性全部翻译] --> C1[目标程序] --> D1[执行]
    end

    subgraph "解释程序"
        A2[源程序] --> B2[翻译一条] --> C2[执行一条] --> D2[下一条]
        D2 --> B2
    end
  • 编译程序一次性全部翻译然后执行如C、Pascal
  • 解释程序边翻译边执行如BASIC

这两种方式的区别可以用看英文小说来理解:编译程序就像请翻译把整本小说翻译成中文,然后你读中文版,优点是读得快,缺点是翻译时间长;解释程序就像翻译坐在旁边,你读一句英文他翻译一句中文给你听,优点是马上能开始读,缺点是读得慢。

实际应用中C语言用编译方式先把 .c 文件编译成 .exe 文件再运行Python用解释方式边翻译边执行不需要生成单独的可执行文件。

[!tip] 考试注意 编译vs解释是常见的对比题。考试中经常会给出具体语言如C、Python让你判断属于哪种方式并说明各自的优缺点。简单记忆编译快但调试慢解释慢但调试快。


1.1.3 计算机组成和计算机体系结构

这两个概念容易混淆,需要明确区分:

概念 定义 关注点 示例
计算机体系结构 程序员所见到的计算机属性 指令集、数据类型、寻址技术 是否有乘法指令
计算机组成 体系结构的实现方式 硬件细节、电路实现 乘法指令用专用电路还是加法器实现

区分这两个概念可以类比买汽车:体系结构就像汽车的"功能规格"(几个座位、最高时速、有没有天窗),组成则是"具体实现"发动机是V6还是V8、变速箱是手动还是自动

IBM System/370系列就是很好的例子所有机型的体系结构相同指令集一样但组成不同不同型号性能、价格差异很大这样用户的软件投资就能得到保护。

[!example] 举例说明 就像iPhone和Android手机体系结构不同指令集、系统调用完全不同但组成可以相同可能都用ARM处理器所以iOS应用不能直接在Android上运行。


1.2 计算机的基本组成

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

[!important] 冯·诺依曼体系1945年 基于"存储程序"概念的计算机体系结构

⚠️ 这是第1章最高频的考点简答题几乎必考期中/期末多次出现。

五大特点

  1. 计算机由 运算器、存储器、控制器、输入设备、输出设备 五大部件组成
  2. 指令和数据以同等地位存放于存储器内,并可按地址寻访
  3. 指令和数据均用 二进制数 表示
  4. 指令由 操作码地址码 组成
  5. 指令在存储器内按顺序存放,通常顺序执行
graph TB
    subgraph "冯·诺依曼计算机结构"
        direction TB
        CU[控制器] --> |"控制信号"| ALU[运算器]
        CU --> |"控制信号"| MEM[存储器]
        CU --> |"控制信号"| IN[输入设备]
        CU --> |"控制信号"| OUT[输出设备]

        IN --> |"数据"| MEM
        MEM --> |"数据"| ALU
        ALU --> |"数据"| MEM
        MEM --> |"数据"| OUT
    end

    style CU fill:#ff9999
    style ALU fill:#99ccff
    style MEM fill:#99ff99
    style IN fill:#ffcc99
    style OUT fill:#cc99ff

[!warning] 易错点 冯·诺依曼最初提出的结构是以 运算器 为中心,但 现代计算机 已经改为以 存储器 为中心。考试时一定要看清题目问的是"冯·诺依曼结构"还是"现代计算机结构",中心不同!

冯·诺依曼体系可以理解为一个高效的工厂:运算器是生产车间,负责加工产品;存储器是仓库,存放原材料和成品;控制器是厂长,指挥整个生产过程;输入设备是采购部,接收订单和原材料;输出设备是销售部,把成品交给客户。"存储程序"的概念就是把生产计划(程序)和原材料(数据)都放在仓库里,厂长按计划指挥生产。

当你用电脑计算 5 + 3 时,整个过程是这样的:键盘输入数据,存储器存放数字和指令,控制器指挥运算器执行加法,运算器计算结果,最后显示器显示答案。

1.2.2 计算机的硬件框图

传统结构(以运算器为中心)

graph LR
    IN[输入设备] --> |"数据"| ALU[运算器]
    ALU --> |"数据"| MEM[存储器]
    MEM --> |"数据"| ALU
    ALU --> |"数据"| OUT[输出设备]
    CU[控制器] --> |"控制"| ALU
    CU --> |"控制"| MEM
    CU --> |"控制"| IN
    CU --> |"控制"| OUT

现代结构(以存储器为中心)

graph TB
    IN[输入设备] --> |"数据"| MEM[存储器]
    MEM --> |"数据"| OUT[输出设备]
    MEM --> |"数据"| ALU[运算器]
    ALU --> |"数据"| MEM
    CU[控制器] --> |"控制信号"| ALU
    CU --> |"控制信号"| MEM
    CU --> |"控制信号"| IN
    CU --> |"控制信号"| OUT

[!tip] 结构变化的原因 以存储器为中心可以减少数据传输的瓶颈,提高系统效率。

从传统结构到现代结构的变化,可以用快递公司来理解:传统结构中,所有快递都要经过分拣中心(运算器),即使是从仓库直接发给客户的也要先绕一圈,效率很低;现代结构中,仓库可以直接发货给客户,分拣中心只处理需要加工的快递,效率大大提高。

比如从硬盘复制文件到U盘时传统结构需要经过CPU现代结构则可以直接通过内存传输不占用CPU资源。

1.2.3 各部件功能详解

部件 功能 关键特性
运算器 完成算术运算和逻辑运算 暂存中间结果
存储器 存放数据和程序 按地址访问
控制器 控制指挥程序运行 产生控制信号
输入设备 信息形式转换(人→机) 键盘、鼠标等
输出设备 信息形式转换(机→人) 显示器、打印机等

把这些部件想象成一个餐厅:运算器是厨师,负责加工食材,能做各种菜,会把做好的菜暂时放在操作台上;存储器是冰箱和货架,存放食材和菜谱,每个格子都有编号,需要什么直接去对应编号的格子拿;控制器是餐厅经理,看订单决定做什么菜,指挥厨师工作,协调各部门配合;输入设备是服务员,接收顾客点单,把点单翻译成厨房能懂的语言;输出设备是传菜员,把做好的菜端给顾客。

1.2.4 现代计算机组成

graph TB
    subgraph "现代计算机组成"
        subgraph "主机"
            CPU["CPU"] --> ALU["运算器"]
            CPU --> CU["控制器"]
            MM["主存储器<br/>(主存)"]
        end
        subgraph "外部设备"
            IO["I/O设备"] --> INPUT["输入设备"]
            IO --> OUTPUT["输出设备"]
        end
    end

    CPU <--> |"数据/地址"| MM
    CPU <--> |"数据"| IO
    MM <--> |"数据"| IO

    style CPU fill:#ff9999
    style MM fill:#99ff99
    style IO fill:#99ccff

术语说明

  • CPU = 运算器 + 控制器
  • 主机 = CPU + 主存储器
  • I/O设备 = 输入设备 + 输出设备(外部设备)

现代计算机就像一个现代化的办公大楼CPU是总经理办公室其中运算器是财务部负责计算控制器是总经理指挥全局主存储器是办公桌临时存放正在处理的文件速度快但容量小外部设备包括前台输入设备和公关部输出设备


1.3 计算机硬件的主要技术指标

1.3.1 机器字长

[!info] 定义 CPU一次能处理数据的位数通常与CPU寄存器位数有关。

  • 影响:字长越长,计算精度越高
  • 常见8位、16位、32位、64位

机器字长可以理解为工人一次能搬多少东西8位工人一次搬8块砖16位搬16块32位搬32块64位搬64块。搬得越多处理速度越快计算精度越高。早期的单片机是8位大多数嵌入式系统是32位现代个人电脑和服务器是64位。

1.3.2 存储容量

[!info] 定义 存储器能存放二进制代码的总位数

计算公式

存储容量 = 存储单元数 \times 存储字长

其中存储单元数是存储器中有多少个可寻址的位置由地址线位数决定如20位地址线→2²⁰个单元存储字长是每个单元能存多少位数据由数据线位数决定如8位数据线→每单元8位

单位换算

  • 1KB = 1024B
  • 1MB = 1024KB
  • 1GB = 1024MB
  • 1TB = 1024GB

存储容量就像仓库的大小存储单元数是仓库有多少个格子存储字长是每个格子能放多少东西两者相乘就是总容量。比如一个仓库有1024个格子每个格子能放8个鸡蛋总容量就是1024×8=8192个鸡蛋也就是1KB。

1.3.3 运算速度

[!important] MIPS和CPI的计算是考试计算题高频考点 经常出现在填空题和计算题中,需要熟练掌握公式及相互转换。

常用指标

指标 说明 计算方式
MIPS 每秒百万条指令 指令数 / 执行时间
CPI 每条指令时钟周期数 时钟周期数 / 指令数
FLOPS 每秒浮点运算次数 浮点运算数 / 执行时间

这三个指标可以这样理解MIPS是工人每秒能处理多少个订单CPI是处理一个订单需要多少个步骤FLOPS是每秒能计算多少道数学题。MIPS越高处理越快CPI越低效率越高FLOPS越强计算能力越强。

核心公式

MIPS = \frac{主频}{CPI \times 10^6}

其中主频是CPU时钟频率单位Hz如2GHz=2×10⁹HzCPI是每条指令需要的时钟周期数,10⁶是将Hz转换为MHz的换算系数。MIPS表示每秒执行多少百万条指令。

CPI = \frac{时钟周期数}{指令条数}

其中时钟周期数是执行所有指令总共花费的时钟周期,指令条数是指令总数。CPI越小说明每条指令需要的周期越少CPU效率越高。

执行时间 = CPI \times 指令条数 \times 时钟周期

其中时钟周期=1/主频如主频2GHz→时钟周期0.5ns。这个公式说明执行时间由三个因素决定指令效率CPI、指令数量、和CPU速度时钟周期

1.3.4 其他指标

  • 主频CPU时钟频率GHz
  • 带宽数据传输速率MB/s
  • 兼容性:软件在不同机器上的通用性

主频就像工人的心跳速度,主频越高干活越快,但不一定效率高;带宽就像高速公路的车道数,车道越多能通过的车辆越多;兼容性就像不同品牌的手机能不能用同一个充电器。


📝 本章小结

核心概念

  1. 计算机系统 = 硬件 + 软件
  2. 层次结构:从微程序机器到高级语言机器的多级层次
  3. 冯·诺依曼体系:存储程序、五大部件、二进制表示
  4. 现代计算机以存储器为中心CPU = 运算器 + 控制器

关键术语

术语 英文 含义
CPU Central Processing Unit 中央处理器
ALU Arithmetic Logic Unit 算术逻辑单元
CU Control Unit 控制单元
MM Main Memory 主存储器
I/O Input/Output 输入输出

重点图示

[!summary] 必须掌握的图

  1. 计算机系统层次结构图
  2. 冯·诺依曼计算机结构框图
  3. 现代计算机组成框图(以存储器为中心)

📖 真题与作业精选

以下题目来自历年期中/期末考试、课后作业和复习材料,覆盖本章最核心的考点。

真题1冯·诺依曼计算机的特点

题目:冯·诺依曼计算机的特点是什么?

参考答案

冯·诺依曼计算机有五大特点:

  1. 由运算器、存储器、控制器、输入设备、输出设备 五大部件 组成
  2. 指令和数据均用 二进制 表示
  3. 采用 存储程序 的工作方式——指令和数据以同等地位存放在存储器中
  4. 指令由 操作码 + 地址码 组成
  5. 指令在存储器内 按顺序存放,通常顺序执行

易错提醒:注意区分冯·诺依曼结构和现代计算机结构。冯·诺依曼最初提出的是以 运算器 为中心,但现代计算机已经改为以 存储器 为中心。考试中常见陷阱就是把"以存储器为中心"写进冯·诺依曼特点中,这道题问的是冯·诺依曼原始特点,答案是五大部件、二进制、存储程序、操作码+地址码、顺序执行这五条。

真题2计算机的5级软件层次

题目计算机的5级软件层次是什么

参考答案

从低到高依次为:微程序级 → 机器指令级 → 操作系统级 → 系统软件级 → 应用软件级

具体对应关系M0微程序机器由硬件直接执行微指令→ M1传统机器执行机器语言→ M2操作系统机器操作系统管理资源→ M3虚拟机器汇编语言/系统软件层)→ M4虚拟机器高级语言层

记忆技巧:从硬件到用户,从底层到顶层,"微机操系应"五个字就能记住。注意底下两层M0、M1是实际机器上面三层是虚拟机器。

真题3编译程序和解释程序的区别

题目:编译程序和解释程序的区别?

参考答案

对比项 编译程序 解释程序
翻译方式 一次性全部翻译成目标程序,再执行 翻译一条执行一条,边翻译边执行
执行速度 快(目标程序已生成,直接运行) 慢(每次执行都要重新翻译)
调试效率 慢(需修改后重新编译) 快(逐行执行,便于定位错误)
代表语言 C、C++、Pascal Python、JavaScript、BASIC

简单记忆:编译快但调试慢,解释慢但调试快。C语言是典型的编译型语言Python是典型的解释型语言。


🧪 例题与解析

例题1计算机层次结构

题目:简述计算机系统的五级层次结构,并说明各层的作用。

答案

计算机系统的五级层次结构从低到高依次为:

  1. 微程序机器M0微指令系统执行最基础的微指令由硬件直接执行速度最快。比如控制ALU执行加法操作的微指令。

  2. 传统机器M1机器语言机器:执行机器语言程序,直接执行二进制指令。比如执行 000001 0000000101 这样的机器指令。

  3. 虚拟机器M2操作系统机器管理计算机资源提供系统服务。比如Windows管理内存分配、进程调度。

  4. 虚拟机器M3汇编语言机器:执行汇编语言程序,用汇编程序翻译成机器语言。比如执行 ADD R1, R2, R3 这样的汇编指令。

  5. 虚拟机器M4高级语言机器:执行高级语言程序,用编译程序翻译成汇编语言或机器语言。比如执行 int a = 5 + 3; 这样的C语言语句。

这就像一栋5层大楼1楼是地基和电路2楼是生产车间3楼是管理部门4楼是设计部门5楼是销售部门。

例题2编译与解释

题目:比较编译程序和解释程序的区别,并举例说明。

答案

特性 编译程序 解释程序
翻译方式 一次性全部翻译 边翻译边执行
执行速度 快(已翻译成目标程序) 慢(每次都要翻译)
错误处理 编译时发现所有错误 运行时逐行发现错误
代表语言 C、Pascal、FORTRAN BASIC、Python、JavaScript

编译程序就像请翻译把整本小说翻译成中文,然后你读中文版,读得快但翻译时间长;解释程序就像翻译坐在旁边,你读一句他翻译一句,马上能开始读但读得慢。

C语言是编译型hello.cgcchello.exe → 运行Python是解释型python hello.py → 边翻译边执行。

例题3冯·诺依曼体系

题目:简述冯·诺依曼计算机的特点,并说明为什么现代计算机采用以存储器为中心的结构。

答案

冯·诺依曼计算机的五大特点:五大部件组成(运算器、存储器、控制器、输入设备、输出设备);存储程序概念(指令和数据同等地位存放于存储器);二进制表示;指令格式(操作码+地址码);顺序执行。

现代计算机采用以存储器为中心的结构主要是为了减少数据传输瓶颈、提高系统效率。传统结构中所有数据都要经过运算器现代结构中存储器可以直接与I/O设备交换数据CPU可以专心处理计算任务I/O操作不占用CPU时间。

比如从硬盘复制文件到U盘时传统结构需要经过CPU现代结构可以直接通过内存传输效率更高。

例题4技术指标计算

题目某计算机主频为2GHzCPI为4求该计算机的MIPS。

答案

主频2GHz = 2×10⁹ HzCPI=4代入公式

MIPS = \frac{主频}{CPI \times 10^6} = \frac{2 \times 10^9}{4 \times 10^6} = 500

该计算机的MIPS为500即每秒执行5亿条指令。

可以理解为心跳速度主频每秒跳20亿次每个订单需要4次心跳CPI=4每秒能处理20亿÷4=5亿个订单。

例题5存储容量计算

题目某计算机存储器有16位地址线8位数据线求该存储器的容量。

答案

16位地址线可以表示 2¹⁶ = 65536 个地址即有65536个存储单元8位数据线表示每个单元存8位数据1字节

存储容量 = 65536 × 8位 = 65536字节 = 64KB。

这就像一个仓库有65536个格子每个格子能放8个鸡蛋总容量就是64KB。


知识点速记卡

考前快速过一遍30秒回忆整章核心

本章考试形式以填空题、简答题、选择题为主偶尔出现计算题MIPS/CPI。复习时重点对照课后习题1.5、1.6、1.7、1.11。

计算机系统 = 硬件 + 软件,两者缺一不可。

五级层次从下往上微程序机器M0 → 传统机器M1 → 操作系统M2 → 汇编语言M3 → 高级语言M4。底下两层是实际机器上面三层是虚拟机器。简答题高频

冯·诺依曼五大特点:①五大部件(运算器+存储器+控制器+输入+输出)②存储程序(指令和数据同等地位存放)③二进制表示 ④指令=操作码+地址码 ⑤顺序执行。(几乎每次考试都会出现)

现代计算机以存储器为中心不是运算器CPU = 运算器 + 控制器,主机 = CPU + 主存。注意和冯·诺依曼原始结构的区别。

三个速度指标MIPS每秒百万条指令越大越快、CPI每条指令时钟周期数越小越高效、FLOPS每秒浮点运算次数。公式MIPS = 主频 / (CPI × 10^6)。(计算题考点)

编译 vs 解释编译一次性全部翻译再执行C解释边翻译边执行Python。编译快但调试慢解释慢但调试快。对比题常考

容量计算:存储容量 = 存储单元数 × 字长。20位地址线 → 2²⁰ = 1M个单元。

体系结构 vs 组成:体系结构是程序员看到的属性(指令集、数据类型),组成是硬件实现方式(电路细节)。体系结构相同不代表组成相同。


🔗 相关链接


本章难度: 简单 重要程度: 基础