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

353 lines
9.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第1章 计算机系统概论
> 📖 本章介绍计算机系统的基本概念和组成,是整个课程的基础。
> 🎯 重点理解计算机层次结构和冯·诺依曼体系
---
## 📋 本章目录
- [[#1.1 计算机系统简介]]
- [[#1.2 计算机的基本组成]]
- [[#1.3 计算机硬件的主要技术指标]]
- [[#本章小结]]
---
## 1.1 计算机系统简介
### 1.1.1 计算机的软硬件概念
计算机系统由 **硬件****软件** 两大部分组成。
```mermaid
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 + 主存储器
- 外部设备:输入设备 + 输出设备
#### 软件Software
> [!info] 定义
> 人们事先编制的具有各类特殊功能的程序,存放在存储器中。
**系统软件**
- 操作系统Windows、Linux等
- 语言处理程序(编译程序、汇编程序)
- 数据库管理系统
- 服务程序(诊断、调试程序)
**应用软件**
- 科学计算程序
- 数据处理程序
- 过程控制程序
- 事务管理程序
> [!tip] 关键理解
> 计算机性能 = 硬件功能 + 软件功能。软硬件相互依存,缺一不可。
---
### 1.1.2 计算机系统的层次结构
计算机系统具有多级层次结构,从低到高依次为:
```mermaid
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
```
#### 各层次说明
| 层次 | 名称 | 说明 | 语言 |
|------|------|------|------|
| M4 | 高级语言机器 | 用户编程层面 | 高级语言C、Java等 |
| M3 | 汇编语言机器 | 汇编语言层面 | 汇编语言 |
| M2 | 操作系统机器 | 操作系统层面 | 机器语言 |
| M1 | 传统机器 | 硬件指令层面 | 机器语言 |
| M0 | 微程序机器 | 微指令层面 | 微指令 |
> [!note] 重要概念
> - **虚拟机**:不是实际存在的机器,而是通过软件实现的功能层次
> - **实际机器**物理存在的硬件机器M0和M1
> - **软硬件交界**:随着技术发展,部分软件功能由硬件实现(固件)
#### 翻译程序的两种方式
```mermaid
graph LR
subgraph "编译程序"
A1[源程序] --> B1[一次性全部翻译] --> C1[目标程序] --> D1[执行]
end
subgraph "解释程序"
A2[源程序] --> B2[翻译一条] --> C2[执行一条] --> D2[下一条]
D2 --> B2
end
```
- **编译程序**一次性全部翻译然后执行如C、Pascal
- **解释程序**边翻译边执行如BASIC
---
### 1.1.3 计算机组成和计算机体系结构
这两个概念容易混淆,需要明确区分:
| 概念 | 定义 | 关注点 | 示例 |
|------|------|--------|------|
| 计算机体系结构 | 程序员所见到的计算机属性 | 指令集、数据类型、寻址技术 | 是否有乘法指令 |
| 计算机组成 | 体系结构的实现方式 | 硬件细节、电路实现 | 乘法指令用专用电路还是加法器实现 |
> [!example] 举例说明
> IBM System/370系列
> - **体系结构相同**:所有机型指令集相同
> - **组成不同**:不同型号性能、价格差异很大
> - **好处**:用户软件投资得到保护
---
## 1.2 计算机的基本组成
### 1.2.1 冯·诺依曼计算机的特点
> [!important] 冯·诺依曼体系1945年
> 基于"存储程序"概念的计算机体系结构
**五大特点**
1. 计算机由 **运算器、存储器、控制器、输入设备、输出设备** 五大部件组成
2. 指令和数据以同等地位存放于存储器内,并可按地址寻访
3. 指令和数据均用 **二进制数** 表示
4. 指令由 **操作码****地址码** 组成
5. 指令在存储器内按顺序存放,通常顺序执行
```mermaid
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
```
### 1.2.2 计算机的硬件框图
#### 传统结构(以运算器为中心)
```mermaid
graph LR
IN[输入设备] --> |"数据"| ALU[运算器]
ALU --> |"数据"| MEM[存储器]
MEM --> |"数据"| ALU
ALU --> |"数据"| OUT[输出设备]
CU[控制器] --> |"控制"| ALU
CU --> |"控制"| MEM
CU --> |"控制"| IN
CU --> |"控制"| OUT
```
#### 现代结构(以存储器为中心)
```mermaid
graph TB
IN[输入设备] --> |"数据"| MEM[存储器]
MEM --> |"数据"| OUT[输出设备]
MEM --> |"数据"| ALU[运算器]
ALU --> |"数据"| MEM
CU[控制器] --> |"控制信号"| ALU
CU --> |"控制信号"| MEM
CU --> |"控制信号"| IN
CU --> |"控制信号"| OUT
```
> [!tip] 结构变化的原因
> 以存储器为中心可以减少数据传输的瓶颈,提高系统效率。
### 1.2.3 各部件功能详解
| 部件 | 功能 | 关键特性 |
|------|------|----------|
| **运算器** | 完成算术运算和逻辑运算 | 暂存中间结果 |
| **存储器** | 存放数据和程序 | 按地址访问 |
| **控制器** | 控制指挥程序运行 | 产生控制信号 |
| **输入设备** | 信息形式转换(人→机) | 键盘、鼠标等 |
| **输出设备** | 信息形式转换(机→人) | 显示器、打印机等 |
### 1.2.4 现代计算机组成
```mermaid
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设备** = 输入设备 + 输出设备(外部设备)
---
## 1.3 计算机硬件的主要技术指标
### 1.3.1 机器字长
> [!info] 定义
> CPU一次能处理数据的位数通常与CPU寄存器位数有关。
- 影响:字长越长,计算精度越高
- 常见8位、16位、32位、64位
### 1.3.2 存储容量
> [!info] 定义
> 存储器能存放二进制代码的总位数
**计算公式**
$$存储容量 = 存储单元数 \times 存储字长$$
**单位换算**
- 1KB = 1024B
- 1MB = 1024KB
- 1GB = 1024MB
- 1TB = 1024GB
### 1.3.3 运算速度
**常用指标**
| 指标 | 说明 | 计算方式 |
|------|------|----------|
| MIPS | 每秒百万条指令 | 指令数 / 执行时间 |
| CPI | 每条指令时钟周期数 | 时钟周期数 / 指令数 |
| FLOPS | 每秒浮点运算次数 | 浮点运算数 / 执行时间 |
### 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. 简述计算机硬件和软件的关系。
2. 画出计算机系统的五级层次结构,并说明各层功能。
3. 冯·诺依曼计算机有哪些特点?
### 思考题
1. 为什么要区分计算机体系结构和计算机组成?
2. 现代计算机为什么采用以存储器为中心的结构?
---
## 🔗 相关链接
- [[00_计算机组成原理学习指南]] - 返回主目录
- [[03_系统总线]] - 下一章
- [[06_运算方法]] - 数据表示相关内容
- [[08_CPU结构与功能]] - CPU详细设计
---
*本章难度:⭐⭐ 简单*
*重要程度:⭐⭐⭐ 基础*