前略
计算机系统的性能评价
- 非时间指标
- 机器字长
- 总线宽度
- 主存容量、存储带宽
- CPU内核数
- 时间指标
- 主频、周期、外频、倍频
- CPI、IPC
- MIPS、MFLOPS
- CPU执行时间
非时间指标
机器字长:机器一次能处理的二进制位数
- 由运算器、寄存器的位数决定;
- 一般与内部寄存器的位数相等;
- 字长决定数据表示范围与精度;
- 目前常见的有32位和64位字长。
总线宽度:数据总线一次能并行传送的最大信息位数
- 运算器与存储器之间的数据总线位数。
- 有些计算机内部与外部数据总线宽度不一致:
- 8086、80286、80386内外数据总线等宽;
- Pentium外总线64位,内总线32位(两条32位流水线)
主存容量与存储带宽
- 主存容量:是指一台计算机主存所包含的存储单元总数。
- 存储带宽: 指单位时间内与主存交换的二进制信息量,单位Byte/s。
(影响存储带宽的指标包括数据位宽和数据传输速率)。
时间指标
- 主频f
- CPU工作的时钟频率,与CPU运算能力之间不是唯一的、直接关系;
- 时钟周期T = 1/f
- 计算机中最基本的、最小的时间单位。一个时钟周期CPU仅完成一个最基本的动作;
- 外频
- 系统总线的工作频率,CPU与主板之间同步运行的速度,标准外频66MHz、100MHz、133MHz、200MHz、400MHz
- 倍频
- 主频=外频×倍频 , Pentium 4 2.4G 主频 2400M = 133M (外频) × 18 (倍频)
- 调整倍频可以获得较高的主频,486后出现的技术,使得外设低频,CPU高频
CPI (Clock cycles Per Instruction)
- 执行一条指令 (平均) 需要的时钟周期数
- 单条指令CPI
- 一段程序中所有指令的CPI
- 指令系统CPI
CPI = 一段程序中所有指令的时钟周期数之和 / 指令条数 //统计
= 程序中各类指令的CPI * 程序中该类指令的比例 //加权
例1 假设一台计算机主频为1GHZ,在其上运行由2105条指令组成的目标代码,程序主要由4类指令组成,他们所占的比例和各自的CPI如下表所示,求程序的CPI和MIPS。
| 指令类型 | CPI | 指令比例 |
| :—————-: | :—: | :———: |
| 算术和逻辑 | 1 | 60% |
| Load/Store | 2 | 18% |
| 转移 | 4 | 12% |
| Cache缺失访存 | 8 | 10% |
解: CPI = 1*60% + 2*18% + 4*12% +8*10% = 2.24
MIPS = f/(CPI * 10^6) = 1*10^9/ (2.24 *10^6 ) = 446.4
MFLOPS (Million Floating-Point Operations Per Second)
- 计算机每秒钟执行浮点操作的次数
- MIPS:单位时间内执行的指令条数
- MFLOPS = 程序中的浮点运算次数 / (执行时间 * 10^6 )
- MFLOPS (Mega) = 10^6 FLOPS GFLOPS (Giga) = 10^9 FLOPS
- TFLOPS (Tera) = 10^12 FLOPS PFLOPS (Peta) = 10^15 FLOPS
- EFLOPS (Exa) = 10^18 FLOPS
CPU执行
- 执行一段程序所需的时间
( CPU时间 + I/O时间 + 存储访问时间 + 各类排队时延等) - CPU时间 = 程序中所有指令的时钟周期数之和 * T
CPU 时间 = CPI * 指令条数 * 时钟周期=程序中所有指令的时钟周期数之和 / f
CPU 时间 = 指令条数 / (MIPS * 10^6)
例1 假设一台计算机主频为1GHZ,在其上运行由2*10^5条指令组成的目标代码,程序主要由4类指令组成,他们所占的比例和各自的CPI如下表所示,求程序的CPI和MIPS,求程序执行时间?
| 指令类型 | CPI | 指令混合比例 |
| ——————- | —— | —————— |
| 算术和逻辑 | 1 | 60% |
| Load/Store | 2 | 18% |
| 转移 | 4 | 12% |
| Cache缺失访存 | 8 | 10% |
CPI = 2.24
MIPS = 446.4
CPU时间 = 2 *10^5 * CPI / f = (2 *10^5 * 2.24 / 10^9 ) = 4.48 *10^-4 (秒)
CPU时间 = 指令条数/MIPS*10^6 = 2 *10^5 / 446.44*10^6
关键时间指标
- 实际上频率和IPC真正决定CPU性能
- CPU性能=IPC × 频率 (MHz时钟速度)
- 英特尔提出并被业界广泛认可
计算机性能测试
- 性能测试原理
- 计算机中配置了大量传感器和状态寄存器
- 通过读取相应寄存器的值得到系统运行的状况
- 通过实际运行测试关键指标获取性能数据
- 性能测试工具分类
- CPU测试工具
- 显卡测试工具
- 磁盘测试工具
- 内存测试工具