第 1 章 计算机系统概述¶
依据:袁春风《计算机组成原理》(2016 年版)教材第 1 章及配套自考大纲。教材位置:第 1 章;考核层次见课程大纲。教科书的算例与自测为学习辅助,不是真题。下文编号指大纲“考核内容与考核要求”。
复习导航:大纲要求与笔记位置¶
| 大纲条目 | 层次 | 位置 | 学完应能做到 |
|---|---|---|---|
| 1 硬件的基本组成 | 领会 | 第 1 节 | 说明冯·诺依曼结构的工作方式,列出五大部件及其功能 |
| 2 软件概述 | 识记;领会 | 第 2 节 | 给出软件、系统软件、应用软件、语言处理程序的定义,区分各类软件的功能 |
| 3 系统的层次结构 | 领会 | 第 3 节 | 说明软硬件的相互关系与层次化结构,指出各类用户所处位置 |
| 4 程序开发与执行过程 | 识记;领会 | 第 4 节 | 解释翻译、链接、装入过程,区分 PC/IR/GPR/ALU/标志寄存器 |
| 5 性能评价 | 领会;简单应用 | 第 5 节 | 说明影响性能的因素,计算 CPU 时间与性能比 |
第 1、3 节属领会,要求能解释而非仅复述。第 2、4 节的术语属识记,需准确命名;第 5 节则要求完成简单计算。
本章学习目标¶
本章介绍计算机系统的基本组成,以及程序在系统中执行的过程。硬件组成、软件分类和系统层次属于大纲中的领会要求,性能评价还要求完成简单计算。学习时要把程序的转换过程与硬件的执行过程联系起来。
1 硬件的基本组成(1,领会)¶
冯·诺依曼结构以存储程序为核心:指令和数据以二进制形式存放在存储器中,启动后自动取指、解释和执行。经典结构由运算器、控制器、存储器、输入设备、输出设备组成。指令与数据的区别取决于解释和使用方式,不能仅看二进制外观。
| 部件 | 作用 | 需要分清的概念 |
|---|---|---|
| 运算器 | 算术、逻辑、移位等运算 | ALU是核心运算部件,寄存器暂存操作数及结果 |
| 控制器 | 取指、译码、发出控制信号 | 决定何时传什么、执行什么操作 |
| 主存 | 存放正在运行的程序与数据 | 按地址访问;不是CPU内部寄存器 |
| 输入/输出设备 | 与外部交换信息 | 通常经I/O接口连接系统 |
| 总线与互连 | 在部件间传递信息 | 地址、数据、控制信息的职能不同 |
现代系统通常以存储器为中心组织数据交换,主存、CPU、I/O 经互连结构交换信息。CPU 主要包含运算器和控制器。辅存容量大、断电保持,用于长期保存;程序通常装入主存后才能被 CPU 执行。
2 软件概述(2,识记、领会)¶
软件包括程序以及相关数据、文档。系统软件负责管理资源并为应用提供运行环境,包括操作系统、语言处理系统、数据库管理系统和工具软件;应用软件用来解决用户的具体问题。
- 操作系统管理处理器、存储器、设备和文件等资源,并对外提供服务接口。
- 编译程序把高级语言源程序转换成目标代码;汇编程序把汇编语言转换成机器代码。
- 解释程序按源程序或中间表示逐步解释执行。不应把它理解为“先生成一个完整的独立机器程序再运行”。
高级语言的一条语句常对应多条机器指令。汇编指令与机器指令的对应关系比较直接,但伪指令可能展开成多条机器指令。
3 系统的层次结构(3,领会)¶
同一个程序可以在不同抽象层次上描述。应用与算法说明要解决的问题,高级语言表达处理步骤,汇编语言和机器指令则描述机器可以执行的操作。指令集体系结构(ISA)规定这些操作的含义,微体系结构和逻辑电路负责实现它们。操作系统通过系统调用等机制提供资源管理服务,在 ISA 之上扩展程序的运行环境。
ISA 是软件与硬件之间的接口约定,包括指令、寄存器、数据类型、寻址方式等程序员可见特性。微体系结构说明这些约定怎样实现,例如是否采用流水线、怎样组织数据通路。同一 ISA 可以有不同实现,性能也不相同。
硬件是软件运行的基础,软件决定硬件完成的具体工作。一些功能可以用不同的软硬件组合实现,代价在于时间、成本与灵活性。应用程序员主要关心语言和库;系统程序员需要理解操作系统和 ISA;硬件设计者关心数据通路与逻辑实现。本课程连接机器级程序与硬件实现。
4 程序开发与执行过程(4,识记、领会)¶
典型 C 程序从源文件到运行,需要经过预处理、编译、汇编、链接和装入。预处理展开头文件和宏;编译把处理后的源程序转换为汇编代码,汇编再生成可重定位目标文件。链接把目标模块及所需的库代码组合起来,解决符号引用,形成可执行文件。装入阶段则把程序映射到运行所需的地址空间。
源文件通常是文本文件,保存的是字符编码;可执行文件包含机器指令、数据及装入信息。这就是源代码不能直接当作机器指令执行的原因。程序装入后,CPU 通过以下部件读取并执行指令。
| 名称 | 保存或完成的内容 |
|---|---|
| PC,程序计数器 | 指令地址;顺序执行时按指令长度更新,转移时装入目标地址 |
| IR,指令寄存器 | 当前取出的指令 |
| GPR,通用寄存器 | 操作数、中间结果、地址等 |
| ALU | 进行算术与逻辑运算 |
| 标志寄存器 | 零、符号、溢出、进位等状态信息,具体依ISA而定 |
| MAR / MDR | 存储器地址 / 与存储器交换的数据,第4章展开 |
执行指令时,CPU 先按 PC 给出的地址取出指令并送入 IR,再对指令译码,确定操作类型和操作数来源。随后按寻址方式取得操作数,执行指定操作,把结果写入目的位置。PC 更新后,CPU 才能继续执行后继指令。各类指令的步骤并不一致:分支指令主要改变执行顺序,存数指令则把结果写入主存。时钟协调状态更新,控制信号决定各部件在何时执行什么操作。
例如“将主存某单元加到寄存器”:必须先取出这条指令,再算出数据地址并读数据,最后相加写回。取指访问和取数访问的目的不同。
5 性能评价(5,领会、简单应用)¶
响应时间是完成一次任务所需时间;吞吐率是单位时间完成的任务量。比较性能必须使用相同工作负载和评价口径。
设指令数为 IC,平均每条指令周期数为 CPI,时钟频率为 f,周期为 T:
周期 T = 1 / f;CPU 时间 = IC × CPI × T = (IC × CPI) / f。
不同指令类别的占比为 pᵢ 时,平均 CPI 为 Σ(pᵢ×CPIᵢ)。CPU 时间不等于总运行时间,后者还要计入 I/O 等待等开销。
算例:程序执行 10⁹ 条指令,平均 CPI=1.5,主频 3 GHz,则 CPU 时间=10⁹×1.5/(3×10⁹)=0.5 s。若 A 执行需 0.5 s、B 需 0.8 s,A 相对 B 的加速比=0.8/0.5=1.6。
MIPS=IC/(执行秒数×10⁶),在相同口径下也可写成 f/(CPI×10⁶)。MFLOPS 统计每秒百万次浮点运算。指标受 ISA、指令功能和程序组成影响,单看主频或 MIPS 判断不了所有任务的性能。基准程序用有代表性的工作负载比较系统,结论仍需说明负载和测试条件。
公式里的 IC、CPI 和 T 各有来源。算法决定需要完成的工作量;语言和编译器影响生成的指令数及指令组成;ISA 规定每条指令能够完成的功能;硬件组织则影响 CPI 和时钟周期。若评价对象是整个任务的运行时间,还要计入存储访问与 I/O 等待。
6 考核要求¶
本章 5 条考核条目中,第 1、3 条为领会,第 2、4 条兼有识记与领会,第 5 条含简单应用。本章重点为冯·诺依曼结构特点、硬件基本组成、计算机工作过程、系统层次结构;难点为系统层次结构。
7 教材本章习题¶
本节按“单项选择题/填空题/简答题”分节,答案依据教材附录。
| 自测题(自编) | 参考答案与辨析 |
|---|---|
| PC 与 IR 有什么区别? | PC 给出地址,IR 保存指令内容。 |
| 4 GHz 机器一定快于 3 GHz 机器吗? | 还要比较指令数、CPI 和负载。 |
| CPI 为 2 的指令占 25%,CPI 为 1 的占 75%,平均是多少? | 0.25×2+0.75×1=1.25。 |
| CPU 是完整计算机吗? | 还需要主存、I/O 等部件。 |
| 能否用自己的话从源文件讲到执行第一条机器指令? | 应包含翻译、链接、装入、取指译码执行。 |
8 闭卷复习与跨章联系(补充)¶
本章建立了软硬件分层的框架,ISA 划出软件可见的接口,硬件实现则留在接口之下。第 2 章讨论 ISA 之上数据的机器级表示,第 3 章给出 ISA 的具体形态(指令格式与寻址),第 4 章说明数据通路如何实现这些指令,第 5、6 章分别处理存储与 I/O 两个子系统的组织。CPU 时间公式贯穿全书:后续各章的优化措施,最终都落在 IC、CPI 或时钟周期上。