解释一下计算机架构中缓存的性能?
computer architecturecomputer sciencenetwork更新于 2026/1/12 5:37:17
计算机中包含缓存的主要原因是通过减少访问内存所需的时间来提高系统性能。缓存性能的组成部分是缓存命中和缓存未命中。
每次 CPU 访问内存时,它都会确定缓存。如果请求的数据在缓存中,则 CPU 会访问缓存中的数据,而不是物理内存,这称为缓存命中。如果数据不在缓存中,则 CPU 会从主内存访问数据,这称为缓存未命中。
平均内存访问时间 TM 是缓存访问时间 TC 加上物理内存访问时间 TP 的加权平均值。加权因子是命中率 h。 TM 可表示为
TM=h TC+(1−h)TP
由于 TC 远小于 TP,因此提高命中率可以减少平均内存访问时间。下表显示了 TC=10 ns,TP=60 ns 以及各种 h 值的情况。
命中率和平均内存访问时间
| h | 𝐓𝐌 |
|---|---|
| 0.0 | 60 ns |
| 0.1 | 55 ns |
| 0.2 | 50 ns |
| 0.3 | 45纳秒 |
| 0.4 | 40 纳秒 |
| 0.5 | 35 纳秒 |
| 0.6 | 30 纳秒 |
| 0.7 | 25 纳秒 |
| 0.8 | 20 纳秒 |
| 0.9 | 15 纳秒 |
| 1.0 | 10 纳秒 |
假设一个计算机系统有一个 8 字节的相联缓存、一个直接映射缓存或一个双向组相联缓存。CPU 按所示顺序访问以下位置。每个值的下标是其在物理内存中地址的低 3 位。
A0 B0 C2 A0 D1 B0 E4 F5 A0 C2 D1 B0 G3 C2 H7 I6 A0 B0
它可以确定三种缓存配置中每种访问模式的命中率和平均内存访问时间,再次假设
TC=10 ns并且
TP=60ns。
首先,考虑关联缓存。它初始为空,采用先进先出 (FIFO) 替换策略。下表显示了访问每个值时缓存的内容。18 次访问中有 7 次命中,命中率为 h = 0.389,平均内存访问时间为
TM=40.56 ns。
使用关联缓存的缓存活动
| Data | A | B | C | A | D | B | E | F | A | C | D | B | G | C | H | I | A | B |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |
| C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | |
| A | C | C | C | C | C | C | C | C | C | C | C | C | C | C | C | C | ||
| C | D | D | D | D | D | D | D | D | D | D | D | D | D | D | ||||
| H | E | E | E | E | E | E | E | E | E | E | E | E | ||||||
| E | F | F | F | F | F | F | F | F | F | F | F | |||||||
| G | G | G | G | G | G | |||||||||||||
| H | H | H | H | |||||||||||||||
| Hit? | √ | √ | √ | √ | √ | √ | √ |

