本章复习提纲:
1.2.1 计算机的功能部件
1.2.2 冯诺依曼计算机
1.6.1 CPU的性能及度量因素
1.6.2 CPU性能的评价方法
引言
一个【完整的计算机系统】由【硬件】、【软件】构成
因此一个计算机可以抽象成如下:
计算机系统八大思想:
- 面向摩尔定律的设计
- 使用抽象简化设计
- 加速大概率事件
- 通过并行提高性能
- 通过流水线提高性能
- 通过预测提高性能
- 存储器层次
- 通过冗余提高可靠性
1.硬件系统
计算机基本功能:数据加工、数据保存、数据传送、操作控制
- 数据加工:算术运算和逻辑运算
- 数据保存:保存计算机指令和数据
- 数据传送:由传送通道将数据从一处传送的另一处
- 操作控制:严格控制上面3种工作
1.1. 5大功能部件
- 输入设备:将程序和数据以机器所能识别和接受的形式输入计算机内
- 输出设备:将计算机处理结果以人能接收的信息形式或其他系统要求的形式输出
输入设备和输出设备统称为I/O设备
- 存储器:分为主存储器(主存、内存)和辅助存储器(外存、辅存)。CPU直接访问内存,外存内信息必须先调入主存才能被CPU调用。每个存储单元用地址码标识。
存储体:存放二进制信息的主体
地址寄存器MAR:存放访问的存储单元的地址码,由它经地址译码找到存储单元。
数据存储器MDR:主存与其他部件的接口,用于暂存从存储器读出或向存储器写入的信息
控制逻辑:产生存储器操作所需各种时序信号。
存储器访问方式
- 按地址访问:必须先给出对应存储单元的地址码才能进行读写操作。
- 按内容访问:按所需内容对存储器多个单元同时进行访问(相联存储器)。
存储器具体会在《第3章存储》讲到
- 运算器:数据加工处理。算数运算和逻辑运算。核心:算数逻辑部件ALU,运算器中有若干通用暂存器(暂存操作数据和中间结果)。
- 控制器:程序按指令序列的形式存放在存储器中,控制器依次读出存储器中存放的程序指令实施控制。(存储程序方式)
记忆五大部件,我一般使用下面这个流程图(只是便于记忆,是否正确不敢保证)
书上的图。
1.2. 冯·诺依曼计算机:
- 计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成
- 运算器和控制器称为CPU;CPU和存储器称为计算机主机;其余输入、输出设备、外存储器称为计算机外部设备(简称I/O设备)
- 采用二进制表示数据和指令
- 指令由操作码(指明操作性质)和地址码(数据所在的存储单元地址编码)组成(第4章指令会讲)
- 核心:采用存储程序方式
- 即解题前事先编制程序,连同数据预先存入主存储器(内存)中;解题时,控制器按照存储器中程序依次取出指令并执行。
早期以运算器为中心,后来以存储器为中心
RISC-V本课程不涉及,但是考研会考,因此待有时间再写
2.软件系统
基本软件系统:系统软件、应用软件
2.1.系统软件
操作系统
语言处理程序(翻译 程序 为二进制):1.解释:对源程序边翻译边执行 2.编译:全部翻译为机器语言
数据库管理系统、分布式软件系统、网络软件系统
3.计算机系统组织结构
3.1.计算机层次机构
3.1.2.软硬件关系
软硬件逻辑等效:对于具体功能来说,可以软件实现也可以硬件实现
即软件和硬件在【逻辑关系】上是等效的
固件:载有在用户环境中不能加以改变的程序及数据的器件。
将复杂且常用的程序写入只读存储器就构成了固件。
从功能上看是软件,但从形态上看是硬件。
软硬件功能分配:设计系统是,首先确定功能分配
哪些功能直接由硬件实现,哪些功能通过软件实现
3.1.2.系统多级层次结构
分为实机器(0~2)、虚机器(3~6,软件技术构成的机器)
3.2.组织结构
采用总线(BUS)结构连接5大功能部件。
特点:1.总线上各个部件必须分时使用总线发送信息(同一时刻最多一个部件发送信息,防止信息冲突) 2.总线上各部件可同时接收总线上信息(共享信息)
分类:1.任务:CPU内部总线、部件内总线、系统总线、外总线 2.传送方向:单向总线、双向总线 3.总线上信息传送位数:单总线、双总线
(1)单总线:用一组系统总线把CPU、主存及各种I/O接口连接起来。
- I/O与存储器同等对待,统一进行编址
- 系统速度受到限制:同一时刻只能在一对设备之间或部件之间传送信息
- 降低了主存的地位:把主存与I/O设备同等对待,因为主存与CPU间的信息传送要比CPU与I/O设备间的信息传送频繁很多
(2)双总线
- 以CPU为中心的双总线结构
优点:以CPU为中心的双总线,结构简单,控制容易。
缺点:降低了CPU的工作效率:I/O设备与主存间的信息传送都必须通过CPU进行,CPU要花费大量时间进行信息的输入输出处理。
- 面向主存的双总线结构
单总线的基础上,在CPU与主存之间增加了一组存储器总线。
(3)三总线
在面向主存的双总线结构的基础上,增加I/O总线,使得CPU与主存、主存与I/O之间均具备独立的信息传输通路
如何解决速度匹配问题,使CPU与I/O操作尽可能并行地工作
因此提出“通道”概念
通道:一种具有处理机功能的用于管理I/O操作的控制部件
具有通道的计算机系统通常采用主机、通道、I/O设备控制器、I/O设备四级连接方式。
4.计算机性能指标
4.1.基本字长
基本字长是参与运算的数的基本位数,字长标志运算精度;
为了兼顾效率与成本,多数计算机允许变字长运算
4.2.主存容量
CPU执行的程序和数据都存储在主存中
4.3.运算速度
每秒平均执行指令数
MIPS(每秒百万条指令)
MFLOPS(每秒百万个浮点运算)
记得要乘以10^{-6}
为解决CPU与RAM速度不匹配问题:Cache
5.CPU性能与评价方法
CPU执行时间:执行某一任务在CPU上花费的时间(不包括等待I/O或运行其他程序的时间)
用户CPU时间:用户程序的时间
系统CPU时间:操作系统的额外开销)
经典CPU性能公式
CPI :每条指令所需的时钟周期数的平均值
1 KHz = 10^3Hz ;1 MHz = 10^6Hz ;1 GHz = 10^9Hz
:时钟周期的宽度。(与时钟频率有关)
例题:
MIPS的计算:
AMdahl定理:当系统某个部件改进后,所能获得的整个系统的性能提升程度与改部件的执行时间在总的时间中所占比例有关
加速比涉及因素:改进部分执行时间站总时间的比例
、部件改进后性能提升倍数
。
评价方法
基准程序测试法(benchmark):从加速经常性事件的执行角度,把用户程序中使用最频繁的那部分核心程序作为评价计算机性能的标准程序。
- 整数测试程序:人为地选择一些“典型指令”综合起来形成的测试程序。
基准程序用了100条语句,由下列操作组成:各种赋值语句、各种数据类型的数据区、各种控制语句、过程调用和参数传送、整数运算和逻辑操作,得到的是MIPS度量值。
- 浮点测试程序
每秒钟能完成的浮点计算最大次数
理论浮点峰值=CPU主频(1秒内的时钟周期数)×CPU每个时钟周期执行浮点运算次数×CPU数量
- Linpack基准程序
- SPEC基准测试程序
# markdown代码
$$
程序CPU执行时间 = \frac{程序CPU时钟周期数}{时钟频率} = \frac{程序的指令数 \times指令平均时钟周期数CPI}{时钟频率}
$$
$$
CPI = \frac{执行整个程序的CPU时钟周期数}{程序指令数} = \sum^{n}_{i=1}(第i种指令时间\times出现概率)
$$
$$
经典CPU性能公式:T_{CPU} = 程序指令数I_{N}\times 指令平均周期数CPI \times 时钟周期 T_{C}
$$
$$
加速比S_n = T_{CPUbefore}/T_{CPUafter} = \frac{1}{1-F_e + \frac{F_e}{S_e}}
$$
$$
T_{CPUafter} = T_{CPUbefore}(1-F_e)+ T_{CPUbefore}\times \frac{F_e}{S_e}
$$
$$
改进后未改进部分占总时间的比例 = \frac{1-F_e}{1-F_e+\frac{F_e}{S_e}}
$$