文章目录
一、非时间指标
1、机器字长:指机器一次能处理的二进制位数
(1)由加法器、寄存器的位数决定;
(2)一般与内部寄存器的位数相等(字长);
(3)字长越长,表示数据的范围就越大,精确度越高;
(4)目前常见的有32位和64位字长。
2、总线宽度:数据总线一次能并行传送的最大信息的位数
(1)一般指运算器与存储器之间的数据总线位数。
(2)有些计算机内部与外部数据总线宽度不一致
- 8086、80286、80386内外数据总线等宽;
- 8088、80386SX 外部总线宽度8位,内部总线宽度16位;
- Pentium外总线64位,内总线32位(两条32位流水线)
3、主存容量与存储带宽
主存容量
:是指一台计算机主存所包含的存储单元总数。
存储带宽
:指单位时间内与主存交换的二进制信息量,常用单位B/s(字节/秒)。(影响存储带宽的指标包括数据位宽和数据传输速率)
二、时间指标
1、主频f/时钟周期T,外频、倍频
主频f
指CPU内核工作的时钟频率,即CPU内数字脉冲信号振荡的速率,与CPU实际的运算能力之间不是唯一的、直接关系;
时钟周期T
也称节拍周期,是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作;
f与T的关系
互为倒数,f越高,T就越小(f=100MHz时T=10ns,f=1GHz时T=1ns)。
外频
指CPU(内存)与主板之间同步的时钟频率(系统总线的工作频率);
倍频
CPU主频与外频之间的倍数;
主
频
=
外
频
×
倍
频
主频 = 外频 × 倍频
主
频
=
外
频
×
倍
频
如
:Pentium 4 2.4G CPU主频
2400
M
=
133
M
(
外
频
)
×
18
(
倍
频
)
2400M = 133M(外频)× 18(倍频)
2
4
0
0
M
=
1
3
3
M
(
外
频
)
×
1
8
(
倍
频
)
2、CPI(Clock cycles Per Instruction)
- 执行一条指令(平均)需要的时钟周期数(即T周期的个数)
- 单条指令CPI,一段程序中所有指令的CPI、指令系统CPI等
C
P
I
=
程
序
中
所
有
指
令
的
时
钟
周
期
数
之
和
程
序
指
令
总
数
=
∑
(
程
序
中
各
类
指
令
的
C
P
I
×
程
序
中
该
类
指
令
的
比
例
)
CPI = \frac{程序中所有指令的时钟周期数之和}{程序指令总数} = ∑(程序中各类指令的CPI×程序中该类指令的比例)
C
P
I
=
程
序
指
令
总
数
程
序
中
所
有
指
令
的
时
钟
周
期
数
之
和
=
∑
(
程
序
中
各
类
指
令
的
C
P
I
×
程
序
中
该
类
指
令
的
比
例
)
CPI举例
例1
某计算机指令系统中各类指令所占比例及CPI如下表所示,求程序的CPI。
指令类型 | CPI | 指令比例 |
---|---|---|
算术和逻辑 | 1 | 60% |
Load/Store | 2 | 18% |
转移 | 4 | 12% |
Cache缺失访存 | 8 | 10% |
解
根据公式可知
C
P
I
=
1
∗
60
%
+
2
∗
18
%
+
4
∗
12
%
+
8
∗
10
%
=
2.24
CPI = 1 * 60\% + 2 * 18\% + 4 * 12\% + 8 * 10\% = 2.24
C
P
I
=
1
∗
6
0
%
+
2
∗
1
8
%
+
4
∗
1
2
%
+
8
∗
1
0
%
=
2
.
2
4
IPC(Instruction Per Clock)
每个时钟周期内执行的指令条数(并行)
实际上频率和IPC在真正影响CPU性能
准确的CPU性能判断应该是:
C
P
U
性
能
=
I
P
C
(
C
P
U
每
一
时
钟
周
期
内
所
执
行
的
指
令
多
少
)
×
频
率
(
M
H
z
时
钟
速
度
)
CPU性能 = IPC(CPU每一时钟周期内所执行的指令多少) × 频率(MHz时钟速度)
C
P
U
性
能
=
I
P
C
(
C
P
U
每
一
时
钟
周
期
内
所
执
行
的
指
令
多
少
)
×
频
率
(
M
H
z
时
钟
速
度
)
—–由英特尔提出并被业界广泛认可
如果将英特尔用于企业级服务器的主频为800MHz的安腾处理器(英特尔最高系列CPU)与用于台式机的主频为1800MHz的奔腾4处理器进行对比,我们就会发现:主频仅为800MHz的安腾处理器在性能上竟然比主频高达1800MHz的奔腾4处理器还强大。
3、MIPS(Million Instructions Per Second)
每秒钟CPU能执行的指令总条数(单位:百万条/秒)
M
I
P
S
=
指
令
条
数
执
行
时
间
×
1
0
6
=
指
令
条
数
所
有
指
令
C
P
U
时
钟
周
期
数
之
和
f
×
1
0
6
MIPS = \frac{指令条数}{执行时间 × 10^6}= \frac{指令条数}{\frac{所有指令CPU时钟周期数之和}{f} × 10^6}
M
I
P
S
=
执
行
时
间
×
1
0
6
指
令
条
数
=
f
所
有
指
令
C
P
U
时
钟
周
期
数
之
和
×
1
0
6
指
令
条
数
=
f
C
P
I
×
1
0
6
\frac{f}{CPI × 10^6}
C
P
I
×
1
0
6
f
(全性能公式)
MIPS应用举例
例2
某计算机主频为1GHz,在其上运行的目标代码包括2×10
5
条指令,分4类,各类指令所占比例和各自CPI和例1中一致,求程序的MIPS。
解
根据CPU全性能公式:
M
I
P
S
=
f
C
P
I
×
1
0
6
=
1
×
1
0
9
2.24
×
1
0
6
=
446.4
MIPS = \frac{f}{CPI × 10^6} = \frac{1 × 10^9}{2.24 × 10^6} = 446.4
M
I
P
S
=
C
P
I
×
1
0
6
f
=
2
.
2
4
×
1
0
6
1
×
1
0
9
=
4
4
6
.
4
4、CPU时间
执
行
一
段
程
序
所
需
的
时
间
=
C
P
U
时
间
+
I
/
O
时
间
+
存
储
访
问
时
间
+
各
类
排
队
时
延
等
执行一段程序所需的时间 = CPU时间 + I/O时间 + 存储访问时间 + 各类排队时延等
执
行
一
段
程
序
所
需
的
时
间
=
C
P
U
时
间
+
I
/
O
时
间
+
存
储
访
问
时
间
+
各
类
排
队
时
延
等
C
P
U
时
间
=
程
序
中
所
有
指
令
的
时
钟
周
期
数
之
和
×
T
=
程
序
中
所
有
指
令
的
时
钟
周
期
数
之
和
f
CPU时间 = 程序中所有指令的时钟周期数之和 × T = \frac{程序中所有指令的时钟周期数之和}{f}
C
P
U
时
间
=
程
序
中
所
有
指
令
的
时
钟
周
期
数
之
和
×
T
=
f
程
序
中
所
有
指
令
的
时
钟
周
期
数
之
和
(回顾汇编语言课程中延时子程序的设计原理)
CPU时间的计算方法
(1)考虑CPI后的CPU时间
C
P
U
时
间
=
总
指
令
数
×
∑
i
=
1
n
(
C
P
I
i
×
I
C
i
总
指
令
数
)
×
时
钟
周
期
时
间
=
总
指
令
数
×
C
P
I
×
T
CPU时间 = 总指令数 × \sum_{i = 1}^n (CPI_i × \frac{IC_i}{总指令数}) × 时钟周期时间 = 总指令数 × CPI × T
C
P
U
时
间
=
总
指
令
数
×
∑
i
=
1
n
(
C
P
I
i
×
总
指
令
数
I
C
i
)
×
时
钟
周
期
时
间
=
总
指
令
数
×
C
P
I
×
T
(2)考虑MIPS后的CPU时间
M
I
P
S
=
指
令
条
数
执
行
指
令
的
时
间
×
1
0
6
MIPS = \frac{指令条数}{执行指令的时间 × 10^6}
M
I
P
S
=
执
行
指
令
的
时
间
×
1
0
6
指
令
条
数
程
序
的
执
行
时
间
t
=
指
令
数
量
M
I
P
S
×
1
0
6
程序的执行时间 t = \frac{指令数量}{MIPS × 10^6}
程
序
的
执
行
时
间
t
=
M
I
P
S
×
1
0
6
指
令
数
量
CPU时间应用举例
例3
在例2的基础上求程序的CPU时间。
解
方法1
:利用CPI
C
P
U
时
间
=
2
×
1
0
5
×
C
P
I
f
=
2
×
1
0
5
×
2.24
1
0
9
=
4.48
×
1
0
−
4
(
秒
)
CPU时间 = \frac{2 × 10^5 × CPI}{f} = \frac{2 × 10^5 × 2.24}{10^9} = 4.48 × 10^{-4}(秒)
C
P
U
时
间
=
f
2
×
1
0
5
×
C
P
I
=
1
0
9
2
×
1
0
5
×
2
.
2
4
=
4
.
4
8
×
1
0
−
4
(
秒
)
方法2
:利用MIPS
C
P
U
时
间
=
指
令
数
量
M
I
P
S
×
1
0
6
=
2
×
1
0
5
1
0
3
2.24
×
1
0
6
=
4.48
×
1
0
−
4
(
秒
)
CPU时间 = \frac{指令数量}{MIPS × 10^6} = \frac{2 × 10^5}{\frac{10^3}{2.24} × 10^6} = 4.48 × 10^{-4}(秒)
C
P
U
时
间
=
M
I
P
S
×
1
0
6
指
令
数
量
=
2
.
2
4
1
0
3
×
1
0
6
2
×
1
0
5
=
4
.
4
8
×
1
0
−
4
(
秒
)
三、时间指标的应用思考
1、如何合理利用时间指标评测计算机性能
2、f、CPI、MIPS、CPU时间在评价计算机性能方面的特点和不足?
3、如何科学合理测试计算机系统的综合性能?有哪些常用测试工具?测试结果能否真实反映计算机的实际性能?
计算机性能指标是确定的吗?
硬件或软件指标 | 影响什么 | 如何影响 |
---|---|---|
算法 | CPI、MIPS、CPU时间 | 影响指令数量和指令类型 |
编程语言 | CPI、MIPS、CPU时间 | 指令数量和指令类型 |
编译程序 | CPI、MIPS、CPU时间 | 影响指令数量和指令类型 |
指令集体系结构 | f/T、CPI、MIPS、CPU时间 | 全面影响 |