计算机组成原理第一章 计算机系统概述 笔记完整版
1.1 计算机发展历程
- 从数据表示看,分为数字计算机和模拟计算机
现代计算机理论基础
-
布尔代数(binary algebra)
-
计算机开关电路(digital circuitry)
-
图林机(Turing machine)
-
阿塔纳索夫三原则(Atanasoff's three principles)
-
维纳现代计算机五原则 (Wiener's five principles of modern computers)
- 数字系统并非模拟系统 (digital systems are not analog)
- 构成计算机的主要元素以电子元件为主,并尽量减少机械部件 (constructed using electronic components with a focus on minimizing mechanical elements)
- 计算主要采用二进制而非十进制编码体系 (utilize binary numbering system rather than decimal)
- 计算机内部存储所有计算所需的数据与程序信息 (store computational tables internally for data and program information)
- 数据存储在计算机内部 (store data internally)
-
冯·诺依曼型计算机原理
-
基于存储程序的概念
-
运算器负责执行算术逻辑运算(如加减乘除),控制器负责管理指令流程(如与非逻辑操作),而存储器则用于临时存放数据与指令
-
存储器的作用是暂存数据与指令
-
控制器的作用是自动执行处理逻辑
-
运算器的功能包括基本的加减乘除以及逻辑操作(如"与"、"或"、"非")
-
输入输出设备则负责人机之间的信息传递
-
计算机系统采用二进制编码来表示指令与数据
-
每条指令由操作码与地址码组成
-
每个指令由操作字段(操作码)与地址字段(地址码)两部分构成
1.1.1 国外计算机发展概括
| 第n代 | 时间 | 逻辑元件 | 存储器 | 特点 | 典型机器 | 语言 |
|---|---|---|---|---|---|---|
| 第一代 | 20世纪四五十年代 | 电子管 | 声延迟线、磁鼓、纸带、卡片 | 定点运算 | ENIAC、EDVAC、EDSAC | 低级语言(机器、汇编) |
| 第二代 | 20世纪五六十年代 | 晶体管 | 内:磁芯存储器 外:磁鼓、磁带 | 浮点运算、变址、中断、I/O处理器 | TRADIC、IBM7070 | 高级语言和编译器 |
| 第三代 | 20世纪六七十年代 | 集成电路 | 半导体磁盘 | 操作系统 | DEC PDP、IBM360、CDC6600 | |
| 第四代 | 20世纪七十年代后期 | 超大规模集成电路 | 半导体磁盘 | 普适计算、嵌入式、智能化 | Cray-1 |
1.1.2 摩尔定律
价格不变时,在集成电路上可容纳的晶体管数量约18至24个月将翻一番,并且性能将提升一倍
(补)计算机发展规律(选)
- Moore定律:晶体管数量每隔18至24个月翻一番,并预计性能也将提升一倍。
- Bell定律:在计算能力恒定的前提下,微处理器价格预计每18个月减半。
- Gilder定律:根据预测(1996年发表),主干网带宽每隔6个月将翻一番。
- Metcalfe定律:网络价值与其所连接用户的数量平方呈正相关关系。
- DRAM发展:该技术密度预计年增长率为60%,每隔三年将增长至原来的四倍。
- 硬盘发展规律:根据历史趋势分析表明,硬盘密度预计每年增长约102.4%。
- 新Moore定律:随着时间推移,在未来每18个月期间内预期新增的存储容量将至少等于现有所有存储容量之总和。
1.1.3 集成电路工艺发展概况
-
集成电路生产
- IC设计
- IC制造
- IC封测
-
光刻
1.1.4 我国计算机发展概况
1.2 计算机系统的组成
- 硬件、软件、固件(固化的软件,兼具软件和硬件的特性)
1.2.1 计算机硬件系统
- 硬件系统:由电子组件与电路系统组成的计算机物质结构总体称谓
- 硬件:指计算机系统的物质基础与核心组成部分
- 数字硬件:执行数据处理、信号传输与存储的专用电子设备
- 转换硬件:将非数字信息转化为数字信号,并完成数据存储过程
- 硬件:指计算机系统的物质基础与核心组成部分
冯诺依曼
- 存储程序:将解题步骤编写成程序,并将程序及其所需的数据以二进制形式存入存储器中。
- 程序控制:控制器依次读取存储器中的指令并按顺序执行操作,并协调各功能模块运行以完成数据处理。
- 这两种设计思想构成了冯诺依曼架构计算机的核心理念。
- 硬件系统包括运算器、控制器、存储器、输入设备以及输出设备:
-
主机部分包含中央处理器(CPU)。
-
运算器负责执行算术运算和逻辑运算操作。
-
控制器负责指令的执行流程管理。
- 存储器:存放程序数据
-
输入输出设备
-
- 总线

存储器
- 职能:保存程序代码及其相关数据,并以二进制形式表示后统称为信息。
- 地址字段:按照一定的顺序编码并赋值给各个存储单元;每个字段值即为该单元的地址码。
- 主存储器全部由半导体材料制成。
- 访问存储器用于操作该主存储器;其功能包括完成相应的读写操作。
- 相关部件;
- 地址总线用于将地址发送给数据总线。
- 数据总线用于将数据发送给地址总线。
运算器
- 功能:数据信息的处理包括对数据执行算术运算和逻辑运算
- 构成:
- 算术逻辑单元(ALU),用于执行计算操作
- 一组寄存器
- 构成:

- 机器字长:运算器一次能处理的二进制位数,重要性能指标
控制器
功能:指挥中心,使计算机各部件协调工作
实质:解释程序,读取-译码-发送,以实现指令和程序的功能
信息:
- 控制流程信息:操作指令分布到各个功能组件中去,并以控制器作为指令的发源点。
- 来源:
- 指令存储器中记录的机器指令作为计算机运行的基础。
- 状态存储单元用于存储反映计算机状态的信息。
- 时序电路模块
数据流信息:由控制流信息进行管理,并通过依次传递从一个部件流向另一个部件,并经过处理。

输入/输出设备
* 通过接口与主机连接
* 外存储器:输入/输出设备,作为辅存使用
1.2.2 计算机软件系统
- 软件系统:全部程序的集合
- 按功能分类:应用软件、系统软件
软件与硬件
- 互相依存
- 逻辑等效性:某些功能可由软件或硬件实现
- 协同发展
操作系统
- 操作系统:管理计算机中各种资源、自动调度用户作业、处理各种中断软件
程序设计语言及语言处理程序
-
机器语言 * 是一种基于二进制代码表示的计算机能直接识别和执行的指令集合。
-
面向 machine 的 language 各具特色,在不同 hardware 结构下 machine language 的表现也有所不同。
-
Machine language 程序运行效率高但开发复杂度较高;其难以理解其运行机制以及不易掌握其工作原理;运行时风险 of errors is relatively high。
-
汇编指令:通过助记符来表达机器指令的语言体系
-
需要掌握处理器内部架构的知识,并且汇编程序需借助汇编器将这些指令转换成可执行的形式
-
汇编语言易于记忆并能具体描述每一条指令
-
高级编程语言* 高级编程语言:与其接近且能被计算机理解的一种精确表达方式
-
解释性编程语言* 解释性编程语言:在运行时逐行解释并运行的编程范式(如Java、Basic)
-
编译性编程语言* 编译性编程语言:通过解析源代码生成可执行文件(如C)
-
编程工具及其工作流程*
- 编程工具:
- 编译器/编译系统:
- 将高级编程语言转化为中间代码
- 汇编器:
- 将汇编指令直接转化为可执行文件
- 解释器:
- 将单条指令逐条解析并执行
- 编译器/编译系统:
数据库管理系统
- 数据库:华中科技大学达梦数据库
- 数据库管理系统:Oracle、DB2
应用程序
1.3 计算机系统的层次结构
1.3.1 系统层次结构

1.3.2 各层之间的关系
1.3.3 软件和硬件的逻辑功能等价性
1.4 计算机性能指标和评价
1.4.1 基本性能指标
字长
- 字长相当于以字节(byte)作为单位来衡量。
-
通常情况下,默认采用32位或64位的字长配置。
- 例如,在计算机中一次运算最多涉及两个八位二进制数相加操作后得到一个八位二进制数,则其字长被定义为8。
-
对计算机性能影响:字长 ↑ ,性能 ↑
- 影响计算准确度
- 影响数据表示范围和精度
-
总线宽度
传输通道的带宽定义为数据总线同时传送的最大信息位数。其中一些计算机其内部和外部数据总线的带宽不一致。
主存容量
主存容量:指主存能够承载的最大信息量,在技术中通常以M×N的形式表示(其中M代表每个存储单元所具有的字容量,N则代表每位存储单元可容纳的二进制位数)

- 主存容量⬆️,程序时访问辅存次数⬇️,执行速度⬆️,计算机性能⬆️
存储带宽
- 存储带宽(storage bandwidth):表示每秒内与主存进行二进制信息交换的数量,默认单位为Byte/s。
- 影响存储带宽的主要因素包括数据位宽(bit width)和数据传输速率(data transfer rate)。这些参数共同决定了系统在不同任务场景下的性能表现。
1.4.2 与时间有关的性能指标
运行/处理时间为:磁盘读取耗时、内存访问耗时、输入输出操作耗时、系统调用开销以及中央处理器运行耗时等
时钟周期
- 时钟周期:计算机中最基本、最小的时间单位,在单个时钟周期内CPU仅执行单一基础操作。
- 时钟周期等于频率的倒数(即T = \frac{1}{f}),也被称为节拍周期。
- 主频提升将导致相应的下降(即每秒指令数增加会缩短运行时间)
CPU主频f
- CPU主频:CPU内数字脉冲信号的振荡频率。
- CPU主频 = 1/时钟周期(即始终频率),单位为赫兹(HZ)
外频
- 外频:系统总线的工作频率,CPU与主板之间同步的速度
- 标准外频(MHz):66、100、133、200等
倍频
- 主频=外频×倍频
CPI
- CPI:不同类别或特定程序中平均每个指令所需的时钟周期数量
-
CPI = m / IC
-
m表示程序运行所需的总时钟周期数量
-
IC代表总的指令数量
-
CPI = ∑ni=1(CPIi × ICi ÷ IC)
-
CPU时间
-
TCPU = m × T = m / f
- T:机器周期
-
TCPU = CPI × IC × T
-
影响因素:
- 时钟频率
- CPI
- 指令条数
-
程序执行时间(CPU时间+I/O时间+存储访问时间+排队时延等)
IPC
- IPC:每个时钟周期CPU能执行的指令条数
- IPC = 1 / CPI
- 已经可以大于1
MIPS
- M IPS衡量标准是每秒执行的指令数量(单位为百万),而G IPS则展示了更高的计算效率。*
M IPS= 指令条数/(执行时间×10^6)
通过分解运算深度与时钟频率的关系式可知,M IPS等于时钟频率除以平均 instruction周期比,同时也可以表示为时钟频率乘以每周期执行的操作数.
——CPU全性能公式
MFLOPS
- MFLOPS(百万浮点运算/秒,简写为MFLOPS,缩写为Mflop/s):衡量计算性能的重要指标,其数值越大表示系统计算能力越强
- MFLOPs = ICflops / (Tcpu × 1e6)
1.4.3 CPU性能公式应用
| 硬件或软件指标 | 如何影响 | 影响什么 |
|---|---|---|
| 算法 | 影响指令数量和指令类型 | CPI、MIPS、CPU时间 |
| 编程语言 | 影响指令数量和指令类型 | CPI、MIPS、CPU时间 |
| 编译程序 | 影响指令数量和指令类型 | CPI、MIPS、CPU时间 |
| 指令集体系结构 | 全面影响 | f/T、CPI、MIPS、CPU时间 |
1.4.4 性能测试及其工具
- 性能测试的核心理论
- 计算机系统配备了丰富的传感器装置以及状态存储单元
- 通过采集各相关寄存器中的数据信息来评估系统运行状态
- 在实际运行过程中监测关键性能参数从而建立全面的数据报告
功能性划分
-
基于标准测试程序评估计算机性能
-
用于评估计算性能的标准测试套件中的实际负载情况反映了计算能力
-
最优标准测试套件通常基于真实应用场景或经过优化的基准设计
-
基准程序存在缺陷
-
当基准程序性能与某段短代码紧密关联时,则会被滥用以影响到其性能评测结果
-
硬件系统设计人员或编译器开发者会专门对这些代码片段进行优化以显著提升执行速度
性能评估工具
全面测试工具
固定点计算能力
浮点计算能力
数据库性能评估系统
多线程计算能力
