采用全相联的cache,使用LRU替换算法,假 定cache为4行,且开始时是空的,考虑下面的主 存块号地址流(每次访问在一个时间单位内完成} 为1,8,1,7,8,2,7,2,1,8,3,8,2,1,3,1,7,1,3,7。那么cache缺失的次数为:
时间: 2024-05-10 07:18:29 浏览: 6
根据题意,cache为4行,即cache能够缓存4个主存块,因此当访问到一个新的主存块时,如果该主存块不在cache中,则产生一次缺失。我们可以模拟整个过程,记录每次访问时cache中的情况,以及是否产生了缺失。
1. 访问主存块1,cache为空,产生一次缺失
```
Cache:
| - | - | - | - |
| | | | |
缺失次数:1
```
2. 访问主存块8,cache为空,产生一次缺失
```
Cache:
| - | - | - | - |
| | | | |
缺失次数:2
```
3. 访问主存块1,cache中已有主存块1,不产生缺失
```
Cache:
| 1 | - | - | - |
| | | | |
缺失次数:2
```
4. 访问主存块7,cache中已有主存块1和8,不产生缺失
```
Cache:
| 1 | 8 | - | - |
| | | | |
缺失次数:2
```
5. 访问主存块8,cache中已有主存块1和8,不产生缺失
```
Cache:
| 1 | 8 | - | - |
| | | | |
缺失次数:2
```
6. 访问主存块2,cache中已有主存块1和8,产生一次缺失,替换主存块1
```
Cache:
| 8 | 2 | - | - |
| | | | |
缺失次数:3
```
7. 访问主存块7,cache中已有主存块8和2,产生一次缺失,替换主存块8
```
Cache:
| 2 | 7 | - | - |
| | | | |
缺失次数:4
```
8. 访问主存块2,cache中已有主存块2和7,不产生缺失
```
Cache:
| 2 | 7 | - | - |
| | | | |
缺失次数:4
```
9. 访问主存块1,cache中已有主存块2和7,产生一次缺失,替换主存块7
```
Cache:
| 2 | 1 | - | - |
| | | | |
缺失次数:5
```
10. 访问主存块8,cache中已有主存块2和1,产生一次缺失,替换主存块2
```
Cache:
| 1 | 8 | - | - |
| | | | |
缺失次数:6
```
11. 访问主存块3,cache中已有主存块1和8,产生一次缺失,替换主存块1
```
Cache:
| 8 | 3 | - | - |
| | | | |
缺失次数:7
```
12. 访问主存块8,cache中已有主存块8和3,不产生缺失
```
Cache:
| 8 | 3 | - | - |
| | | | |
缺失次数:7
```
13. 访问主存块2,cache中已有主存块8和3,产生一次缺失,替换主存块3
```
Cache:
| 8 | 2 | - | - |
| | | | |
缺失次数:8
```
14. 访问主存块1,cache中已有主存块8和2,产生一次缺失,替换主存块8
```
Cache:
| 2 | 1 | - | - |
| | | | |
缺失次数:9
```
15. 访问主存块3,cache中已有主存块2和1,产生一次缺失,替换主存块2
```
Cache:
| 1 | 3 | - | - |
| | | | |
缺失次数:10
```
16. 访问主存块1,cache中已有主存块1和3,不产生缺失
```
Cache:
| 1 | 3 | - | - |
| | | | |
缺失次数:10
```
17. 访问主存块7,cache中已有主存块1和3,产生一次缺失,替换主存块1
```
Cache:
| 3 | 7 | - | - |
| | | | |
缺失次数:11
```
18. 访问主存块1,cache中已有主存块3和7,产生一次缺失,替换主存块3
```
Cache:
| 7 | 1 | - | - |
| | | | |
缺失次数:12
```
19. 访问主存块3,cache中已有主存块7和1,产生一次缺失,替换主存块7
```
Cache:
| 1 | 3 | - | - |
| | | | |
缺失次数:13
```
20. 访问主存块7,cache中已有主存块1和3,产生一次缺失,替换主存块1
```
Cache:
| 3 | 7 | - | - |
| | | | |
缺失次数:14
```
因此,cache缺失的次数为14。