跳转至

第 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 或时钟周期上。