Homework 05¶
5.3¶
5.3.1¶
一个块大小 \(=64\text{ bit}/8*2=16\text{ Byte}\)
块数 \(=32*2^{10}/16=2^{11}\)
\(\text{Byte Offset}=2^1\)
\(\text{Tag Bit}=64-(11+1+3)=49\)
\(\text{Total Bits}=2^{11}\times(2\times 64+49+1)=356\text{K bits}\)
5.3.2¶
一个块大小 \(=64\text{ bit}/8*16=2^7\text{ Byte}\)
块数 \(=64*2^{10}/2^7=2^9\)
\(\text{Byte Offset}=2^4\)
\(\text{Tag Bit}=64-(9+4+3)=48\)
\(\text{Total Bits}=2^9\times(16\times 64+48+1)=536.5\text{K bits}\)
所以比 5.3.1 的 Cache 大 180.5K bits
5.3.3¶
当块的大小变大时,Hit Time 和 Miss Penalty 也相应变长
当块数变少时,Miss Rate 就变高了
两者相结合就导致性能更慢
5.3.4¶
如果我们交替访问在同一个组里的两个 Block 而在直接映射中属于同一个 Block 的内存地址,那么在 2-相联当中在前两次访问 Miss 后,后面全部命中,但是在直接映射中则会每次都 Miss,举例来说,我们交替访问 0 和 2048 即可
5.4¶
可以使用这个索引函数来索引直接映射 Cache,只要生成的索引为 10 位即可,但是这样的映射可能会导致映射不均匀,从而导致更高的 Miss Rate,可能还需要更高的 Tag 位数
5.5¶
5.5.1¶
块大小 \(=2^5/2^2=8\) 个字
5.5.2¶
块数 \(=2^5=32\) 块
5.5.3¶
总位数 \(=2^5\times(8\times 32+54+1)=9952\text{ bits}\)
比例即为 \(\frac{9952}{2^5\times 8\times 32}\approx 1.2\)
5.5.4¶
Hex | Binary | Tag | Index | Offset | Hit/Miss | Replacement |
---|---|---|---|---|---|---|
0x00 | 0000_0000_0000 | 0x0 | 0x00 | 0x00 | Miss | |
0x04 | 0000_0000_0100 | 0x0 | 0x00 | 0x04 | Hit | |
0x10 | 0000_0001_0000 | 0x0 | 0x00 | 0x10 | Hit | |
0x84 | 0000_1000_0100 | 0x0 | 0x04 | 0x04 | Miss | |
0xe8 | 0000_1110_1000 | 0x0 | 0x07 | 0x08 | Miss | |
0xa0 | 0000_1010_0000 | 0x0 | 0x05 | 0x00 | Miss | |
0x400 | 0100_0000_0000 | 0x1 | 0x00 | 0x00 | Miss | 0x00-0x1f |
0x1e | 0000_0001_1110 | 0x0 | 0x00 | 0x1e | Miss | 0x400-0x41f |
0x8c | 0000_1000_1100 | 0x0 | 0x04 | 0x0c | Hit | |
0xc1c | 1100_0001_1100 | 0x3 | 0x00 | 0x1c | Miss | 0x00-0x1f |
0xb4 | 0000_1011_0100 | 0x0 | 0x05 | 0x14 | Hit | |
0x884 | 1000_1000_0100 | 0x2 | 0x04 | 0x04 | Miss | 0x80-0x9f |
*** | ||||||
### 5.5.5 |
\(\text{Hit Rate}=\frac{4}{12}=\frac{1}{3}\)
5.5.6¶
Index | Tag | Data |
---|---|---|
0 | 3 | 0xc00-0xc1f |
4 | 2 | 0x880-0x89f |
5 | 0 | 0xa0-0xbf |
7 | 0 | 0xe0-0xff |
*** | ||
## 5.6 |
5.6.1¶
- 在 L1 和 L2 Cache 之间添加缓冲器可以有效减少 L1 在向 L2 Cache 写穿时的延迟
- 在 L2 Cache 与内存之间添加缓冲器可以有效减少 Dirty Block 写进内存时造成的延迟
5.6.2¶
当 L1 写入失效,读入的数据会直接写入 L2 而不会写入 L1
- 如果造成了 L2 写入也失效,那么考虑 L2 Cache 块是否为脏块
- 如果是,那么将脏块写入内存,同时将 L2 写成当前数据;
- 如果不是,那么直接从内存拿到缓存中再写成当前数据
- 如果没造成 L2 写入失效,那么直接写 L2
5.6.3¶
- L1 写入失效时,块将会按照 5.6.2 的方式写到 L2 当中
- L1 读取失效时,将会读取 L2 中的块:
- 如果 L2 也读取失效,那么会从内存读取并存到 L1
- 如果 L2 读取命中,那么会将此存到 L1,但因为多级独占 Cache 配置,所以 L2 的块也将写到内存当中
5.10¶
5.10.1¶
\(\text{Clock Rate}_{P1}=\frac{1}{0.66ns}=1.515GHz\)
\(\text{Clock Rate}_{P2}=\frac{1}{0.9ns}=1.111GHz\)
5.10.2¶
\(\text{AMAT}_{P1}=\frac{8\%\times 70.66ns+92\%\times 0.66ns}{0.66ns}=9.485\text{Cycles}\)
\(\text{AMAT}_{P2}=\frac{6\%\times 70.90ns+94\%\times 0.90ns}{0.90ns}=5.667\text{Cycles}\)
5.10.3¶
\(\text{CPI}_{P1}=1+8\%\times\frac{70ns}{0.66ns}+8\%\times 36\%\times\frac{70ns}{0.66ns}=12.54\)
\(\text{CPI}_{P2}=1+6\%\times\frac{70ns}{0.90ns}+6\%\times 36\%\times\frac{70ns}{0.90ns}=7.35\)
P2 更快
5.10.4¶
\(\text{AMAT}_{P1}'=1+8\%\times(\frac{5.62ns}{0.66ns}+95\%\times\frac{70ns}{0.66ns})=9.742\)
变差了
5.10.5¶
\(\text{CPI}_{P1}'=1+8\%\times(\frac{5.62ns}{0.66ns}+95\%\times\frac{70ns}{0.66ns})+8\%\times 36\%\times(\frac{5.62ns}{0.66ns}+95\%\times\frac{70ns}{0.66ns})=12.89\)
5.10.6¶
\(1+8\%\times(\frac{5.62ns}{0.66ns}+\alpha\times\frac{70ns}{0.66ns})<1+8\%\times\frac{70ns}{0.66ns}\)
解得 \(\alpha<92.0\%\)
5.10.7¶
\(1+8\%\times(\frac{5.62ns}{0.66ns}+\alpha\times\frac{70ns}{0.66ns})+8\%\times 36\%\times(\frac{5.62ns}{0.66ns}+\alpha\times\frac{70ns}{0.66ns})<7.35\)
解得 \(\alpha<47.0\%\)
5.11¶
5.11.1¶
5.11.2¶
Hex | Binary | Tag | Index | Offset | Hit/Miss | Table 1 | Table 2 | Table 3 |
---|---|---|---|---|---|---|---|---|
0x03 | 0000_0011 | 0x0 | 1 | 1 | Miss | Tag(1)=0 | ||
0xb4 | 1011_0100 | 0xb | 2 | 0 | Miss | Tag(1)=0 Tag(2)=b |
||
0x2b | 0010_1011 | 0x2 | 5 | 1 | Miss | Tag(1)=0 Tag(2)=b Tag(5)=2 |
||
0x02 | 0000_0010 | 0x0 | 1 | 0 | Hit | Tag(1)=0 Tag(2)=b Tag(5)=2 |
||
0xbe | 1011_1110 | 0xb | 7 | 0 | Miss | Tag(1)=0 Tag(2)=b Tag(5)=2 Tag(7)=b |
||
0x58 | 0101_1000 | 0x5 | 4 | 0 | Miss | Tag(1)=0 Tag(2)=b Tag(4)=5 Tag(5)=2 Tag(7)=b |
||
0xbf | 1011_1111 | 0xb | 7 | 1 | Hit | Tag(1)=0 Tag(2)=b Tag(4)=5 Tag(5)=2 Tag(7)=b |
||
0x0e | 0000_1110 | 0x0 | 7 | 0 | Miss | Tag(1)=0 Tag(2)=b Tag(4)=5 Tag(5)=2 Tag(7)=b |
Tag(7)=0 | |
0x1f | 0001_1111 | 0x1 | 7 | 1 | Miss | Tag(1)=0 Tag(2)=b Tag(4)=5 Tag(5)=2 Tag(7)=b |
Tag(7)=0 | Tag(7)=1 |
0xb5 | 1011_0101 | 0xb | 2 | 1 | Hit | Tag(1)=0 Tag(2)=b Tag(4)=5 Tag(5)=2 Tag(7)=b |
Tag(7)=0 | Tag(7)=1 |
0xbf | 1011_1111 | 0xb | 7 | 1 | Hit | Tag(1)=0 Tag(2)=b Tag(4)=5 Tag(5)=2 Tag(7)=b |
Tag(7)=0 | Tag(7)=1 |
0xba | 1011_1010 | 0xb | 5 | 0 | Miss | Tag(1)=0 Tag(2)=b Tag(4)=5 Tag(5)=2 Tag(7)=b |
Tag(5)=b Tag(7)=0 |
Tag(7)=1 |
0x2e | 0010_1110 | 0x2 | 7 | 0 | Miss | Tag(1)=0 Tag(2)=b Tag(4)=5 Tag(5)=2 Tag(7)=b |
Tag(5)=b Tag(7)=2 |
Tag(7)=1 |
0xce | 1100_1110 | 0xc | 7 | 0 | Miss | Tag(1)=0 Tag(2)=b Tag(4)=5 Tag(5)=2 Tag(7)=b |
Tag(5)=b Tag(7)=2 |
Tag(7)=c |
5.11.3¶
5.11.4¶
Hex | Binary | Tag | Hit/Miss | Content |
---|---|---|---|---|
0x03 | 0000_0011 | 0x03 | Miss | 0x03 |
0xb4 | 1011_0100 | 0xb4 | Miss | 0x03, 0xb4 |
0x2b | 0010_1011 | 0x2b | Miss | 0x03, 0xb4, 0x2b |
0x02 | 0000_0010 | 0x02 | Miss | 0x03, 0xb4, 0x2b, 0x02 |
0xbe | 1011_1110 | 0xbe | Miss | 0x03, 0xb4, 0x2b, 0x02, 0xbe |
0x58 | 0101_1000 | 0x58 | Miss | 0x03, 0xb4, 0x2b, 0x02, 0xbe, 0x58 |
0xbf | 1011_1111 | 0xbf | Miss | 0x03, 0xb4, 0x2b, 0x02, 0xbe, 0x58, 0xbf |
0x0e | 0000_1110 | 0x0e | Miss | 0x03, 0xb4, 0x2b, 0x02, 0xbe, 0x58, 0xbf, 0x0e |
0x1f | 0001_1111 | 0x1f | Miss | 0x1f, 0xb4, 0x2b, 0x02, 0xbe, 0x58, 0xbf, 0x0e |
0xb5 | 1011_0101 | 0xb5 | Miss | 0x1f, 0xb5, 0x2b, 0x02, 0xbe, 0x58, 0xbf, 0x0e |
0xbf | 1011_1111 | 0xbf | Hit | 0x1f, 0xb5, 0x2b, 0x02, 0xbe, 0x58, 0xbf, 0x0e |
0xba | 1011_1010 | 0xba | Miss | 0x1f, 0xb5, 0xba, 0x02, 0xbe, 0x58, 0xbf, 0x0e |
0x2e | 0010_1110 | 0x2e | Miss | 0x1f, 0xb5, 0xba, 0x2e, 0xbe, 0x58, 0xbf, 0x0e |
0xce | 1100_1110 | 0xce | Miss | 0x1f, 0xb5, 0xba, 0x2e, 0xce, 0x58, 0xbf, 0x0e |
5.11.5¶
5.11.6¶
Hex | Binary | Tag | Offset | Hit/Miss | Content |
---|---|---|---|---|---|
0x03 | 0000_0011 | 0x01 | 1 | Miss | (0x02, 0x03) |
0xb4 | 1011_0100 | 0x5a | 0 | Miss | (0x02, 0x03), (0xb4, 0xb5) |
0x2b | 0010_1011 | 0x15 | 1 | Miss | (0x02, 0x03), (0xb4, 0xb5), (0x2a, 0x2b) |
0x02 | 0000_0010 | 0x01 | 0 | Hit | (0xb4, 0xb5), (0x2a, 0x2b), (0x02, 0x03) |
0xbe | 1011_1110 | 0x5f | 0 | Miss | (0xb4, 0xb5), (0x2a, 0x2b), (0x02, 0x03), (0xbe, 0xbf) |
0x58 | 0101_1000 | 0x2c | 0 | Miss | (0x2a, 0x2b), (0x02, 0x03), (0xbe, 0xbf), (0x58, 0x59) |
0xbf | 1011_1111 | 0x5f | 1 | Hit | (0x2a, 0x2b), (0x02, 0x03), (0x58, 0x59), (0xbe, 0xbf) |
0x0e | 0000_1110 | 0x07 | 0 | Miss | (0x02, 0x03), (0x58, 0x59), (0xbe, 0xbf), (0x0e, 0x0f) |
0x1f | 0001_1111 | 0x0f | 1 | Miss | (0x58, 0x59), (0xbe, 0xbf), (0x0e, 0x0f), (0x1e, 0x1f) |
0xb5 | 1011_0101 | 0x5a | 1 | Miss | (0xbe, 0xbf), (0x0e, 0x0f), (0x1e, 0x1f), (0xb4, 0xb5) |
0xbf | 1011_1111 | 0x5f | 1 | Hit | (0x0e, 0x0f), (0x1e, 0x1f), (0xb4, 0xb5), (0xbe, 0xbf) |
0xba | 1011_1010 | 0x5d | 0 | Miss | (0x1e, 0x1f), (0xb4, 0xb5), (0xbe, 0xbf), (0xba, 0xbb) |
0x2e | 0010_1110 | 0x17 | 0 | Miss | (0xb4, 0xb5), (0xbe, 0xbf), (0xba, 0xbb), (0x2e, 0x2f) |
0xce | 1100_1110 | 0x67 | 0 | Miss | (0xbe, 0xbf), (0xba, 0xbb), (0x2e, 0x2f), (0xce, 0xcf) |
5.11.7¶
Hex | Binary | Tag | Offset | Hit/Miss | Content |
---|---|---|---|---|---|
0x03 | 0000_0011 | 0x01 | 1 | Miss | (0x02, 0x03) |
0xb4 | 1011_0100 | 0x5a | 0 | Miss | (0x02, 0x03), (0xb4, 0xb5) |
0x2b | 0010_1011 | 0x15 | 1 | Miss | (0x02, 0x03), (0xb4, 0xb5), (0x2a, 0x2b) |
0x02 | 0000_0010 | 0x01 | 0 | Hit | (0xb4, 0xb5), (0x2a, 0x2b), (0x02, 0x03) |
0xbe | 1011_1110 | 0x5f | 0 | Miss | (0xb4, 0xb5), (0x2a, 0x2b), (0x02, 0x03), (0xbe, 0xbf) |
0x58 | 0101_1000 | 0x2c | 0 | Miss | (0xb4, 0xb5), (0x02, 0x03), (0x2a, 0x2b), (0x58, 0x59) |
0xbf | 1011_1111 | 0x5f | 1 | Miss | (0x2a, 0x2b), (0x02, 0x03), (0xb4, 0xb5), (0xbe, 0xbf) |
0x0e | 0000_1110 | 0x07 | 0 | Miss | (0x2a, 0x2b), (0x02, 0x03), (0xb4, 0xb5), (0x0e, 0x0f) |
0x1f | 0001_1111 | 0x0f | 1 | Miss | (0x2a, 0x2b), (0x02, 0x03), (0xb4, 0xb5), (0x1e, 0x1f) |
0xb5 | 1011_0101 | 0x5a | 1 | Miss | (0x2a, 0x2b), (0x02, 0x03), (0xbe, 0xbf), (0xb4, 0xb5) |
0xbf | 1011_1111 | 0x5f | 1 | Hit | (0x2a, 0x2b), (0x02, 0x03), (0xbe, 0xbf), (0xbe, 0xbf) |
0xba | 1011_1010 | 0x5d | 0 | Miss | (0x2a, 0x2b), (0x02, 0x03), (0xbe, 0xbf), (0xba, 0xbb) |
0x2e | 0010_1110 | 0x17 | 0 | Miss | (0x2a, 0x2b), (0x02, 0x03), (0xbe, 0xbf), (0x2e, 0xef) |
0xce | 1100_1110 | 0x67 | 0 | Miss | (0x2a, 0x2b), (0x02, 0x03), (0xbe, 0xbf), (0xce, 0xcf) |
5.11.8¶
Hex | Binary | Tag | Offset | Hit/Miss | Content |
---|---|---|---|---|---|
0x03 | 0000_0011 | 0x01 | 1 | Miss | (0x02, 0x03) |
0xb4 | 1011_0100 | 0x5a | 0 | Miss | (0x02, 0x03), (0xb4, 0xb5) |
0x2b | 0010_1011 | 0x15 | 1 | Miss | (0x02, 0x03), (0xb4, 0xb5), (0x2a, 0x2b) |
0x02 | 0000_0010 | 0x01 | 0 | Hit | (0x02, 0x03), (0xb4, 0xb5), (0x2a, 0x2b) |
0xbe | 1011_1110 | 0x5f | 0 | Miss | (0x02, 0x03), (0xb4, 0xb5), (0x2a, 0x2b), (0xbe, 0xbf) |
0x58 | 0101_1000 | 0x2c | 0 | Miss | (0x58, 0x59), (0xb4, 0xb5), (0x2a, 0x2b), (0xbe, 0xbf) |
0xbf | 1011_1111 | 0x5f | 1 | Hit | (0x58, 0x59), (0xb4, 0xb5), (0x2a, 0x2b), (0xbe, 0xbf) |
0x0e | 0000_1110 | 0x07 | 0 | Miss | (0x0e, 0x0f), (0xb4, 0xb5), (0x2a, 0x2b), (0xbe, 0xbf) |
0x1f | 0001_1111 | 0x0f | 1 | Miss | (0x1e, 0x1f), (0xb4, 0xb5), (0x2a, 0x2b), (0xbe, 0xbf) |
0xb5 | 1011_0101 | 0x5a | 1 | Hit | (0x1e, 0x1f), (0xb4, 0xb5), (0x2a, 0x2b), (0xbe, 0xbf) |
0xbf | 1011_1111 | 0x5f | 1 | Hit | (0x1e, 0x1f), (0xb4, 0xb5), (0x2a, 0x2b), (0xbe, 0xbf) |
0xba | 1011_1010 | 0x5d | 0 | Miss | (0x1e, 0x1f), (0xb4, 0xb5), (0xba, 0xbb), (0xbe, 0xbf) |
0x2e | 0010_1110 | 0x17 | 0 | Miss | (0x1e, 0x1f), (0xb4, 0xb5), (0x2e, 0x2f), (0xbe, 0xbf) |
0xce | 1100_1110 | 0x67 | 0 | Miss | (0x1e, 0x1f), (0xb4, 0xb5), (0xce, 0xcf), (0xbe, 0xbf) |
5.16¶
5.16.1¶
Address | Virtual Page | TLB Hit/Miss | Page Table Hit/Miss | Page Fault | Valid | Tag | Physical Page |
---|---|---|---|---|---|---|---|
0x123d | 0x1 | Miss | Hit | True | 1 | 0xb | 12 |
0x123d | 0x1 | Miss | Hit | True | 1 | 0x7 | 4 |
0x123d | 0x1 | Miss | Hit | True | 1 | 0x3 | 6 |
0x123d | 0x1 | Miss | Hit | True | 1 | 0x1 | 13 |
0x08b3 | 0x0 | Miss | Hit | False | 1 | 0x0 | 5 |
0x08b3 | 0x0 | Miss | Hit | False | 1 | 0x7 | 4 |
0x08b3 | 0x0 | Miss | Hit | False | 1 | 0x3 | 6 |
0x08b3 | 0x0 | Miss | Hit | False | 1 | 0x1 | 13 |
0x365c | 0x3 | Hit | Hit | False | 1 | 0x0 | 5 |
0x365c | 0x3 | Hit | Hit | False | 1 | 0x7 | 4 |
0x365c | 0x3 | Hit | Hit | False | 1 | 0x3 | 6 |
0x365c | 0x3 | Hit | Hit | False | 1 | 0x1 | 13 |
0x871b | 0x8 | Miss | Hit | True | 1 | 0x0 | 5 |
0x871b | 0x8 | Miss | Hit | True | 1 | 0x8 | 14 |
0x871b | 0x8 | Miss | Hit | True | 1 | 0x3 | 6 |
0x871b | 0x8 | Miss | Hit | True | 1 | 0x1 | 13 |
0xbee6 | 0xb | Miss | Hit | False | 1 | 0x0 | 5 |
0xbee6 | 0xb | Miss | Hit | False | 1 | 0x8 | 14 |
0xbee6 | 0xb | Miss | Hit | False | 1 | 0x3 | 6 |
0xbee6 | 0xb | Miss | Hit | False | 1 | 0xb | 12 |
0x3140 | 0x3 | Hit | Hit | False | 1 | 0x0 | 5 |
0x3140 | 0x3 | Hit | Hit | False | 1 | 0x8 | 14 |
0x3140 | 0x3 | Hit | Hit | False | 1 | 0x3 | 6 |
0x3140 | 0x3 | Hit | Hit | False | 1 | 0xb | 12 |
0xc049 | 0xc | Miss | Miss | True | 1 | 0xc | 15 |
0xc049 | 0xc | Miss | Miss | True | 1 | 0x8 | 14 |
0xc049 | 0xc | Miss | Miss | True | 1 | 0x3 | 6 |
0xc049 | 0xc | Miss | Miss | True | 1 | 0xb | 12 |
5.16.2¶
Address | Virtual Page | TLB Hit/Miss | Page Table Hit/Miss | Page Fault | Valid | Tag | Physical Page |
---|---|---|---|---|---|---|---|
0x123d | 0x0 | Miss | Hit | False | 1 | 0xb | 12 |
0x123d | 0x0 | Miss | Hit | False | 1 | 0x7 | 4 |
0x123d | 0x0 | Miss | Hit | False | 1 | 0x3 | 6 |
0x123d | 0x0 | Miss | Hit | False | 1 | 0x0 | 5 |
0x08b3 | 0x0 | Hit | Hit | False | 1 | 0xb | 12 |
0x08b3 | 0x0 | Hit | Hit | False | 1 | 0x7 | 4 |
0x08b3 | 0x0 | Hit | Hit | False | 1 | 0x3 | 6 |
0x08b3 | 0x0 | Hit | Hit | False | 1 | 0x0 | 5 |
0x365c | 0x0 | Hit | Hit | False | 1 | 0xb | 12 |
0x365c | 0x0 | Hit | Hit | False | 1 | 0x7 | 4 |
0x365c | 0x0 | Hit | Hit | False | 1 | 0x3 | 6 |
0x365c | 0x0 | Hit | Hit | False | 1 | 0x0 | 5 |
0x871b | 0x2 | Miss | Hit | False | 1 | 0x2 | 13 |
0x871b | 0x2 | Miss | Hit | False | 1 | 0x7 | 4 |
0x871b | 0x2 | Miss | Hit | False | 1 | 0x3 | 6 |
0x871b | 0x2 | Miss | Hit | False | 1 | 0x0 | 5 |
0xbee6 | 0x2 | Hit | Hit | False | 1 | 0x2 | 13 |
0xbee6 | 0x2 | Hit | Hit | False | 1 | 0x7 | 4 |
0xbee6 | 0x2 | Hit | Hit | False | 1 | 0x3 | 6 |
0xbee6 | 0x2 | Hit | Hit | False | 1 | 0x0 | 5 |
0x3140 | 0x0 | Hit | Hit | False | 1 | 0x2 | 13 |
0x3140 | 0x0 | Hit | Hit | False | 1 | 0x7 | 4 |
0x3140 | 0x0 | Hit | Hit | False | 1 | 0x3 | 6 |
0x3140 | 0x0 | Hit | Hit | False | 1 | 0x0 | 5 |
0xc049 | 0x3 | Hit | Hit | False | 1 | 0x2 | 13 |
0xc049 | 0x3 | Hit | Hit | False | 1 | 0x7 | 4 |
0xc049 | 0x3 | Hit | Hit | False | 1 | 0x3 | 6 |
0xc049 | 0x3 | Hit | Hit | False | 1 | 0x0 | 5 |
优势:更大的页面能减小 TLB Miss Rate
劣势:会大大减小页面的使用率,更加分裂
5.16.3¶
简写:
- Virtual Page:VP
- Physical Page:PP
- Page Table:PT
- Page Fault:PF
Address | VP | Tag | Index | TLB Hit/Miss | PT Hit/Miss | PF | Valid | Tag | PP | Index |
---|---|---|---|---|---|---|---|---|---|---|
0x123d | 0x1 | 0 | 1 | Miss | Hit | True | 1 | 0xb | 12 | 0 |
0x123d | 0x1 | 0 | 1 | Miss | Hit | True | 1 | 0x7 | 4 | 1 |
0x123d | 0x1 | 0 | 1 | Miss | Hit | True | 1 | 0x3 | 6 | 0 |
0x123d | 0x1 | 0 | 1 | Miss | Hit | True | 1 | 0x0 | 13 | 1 |
0x08b3 | 0x0 | 0 | 0 | Miss | Hit | False | 1 | 0x0 | 5 | 0 |
0x08b3 | 0x0 | 0 | 0 | Miss | Hit | False | 1 | 0x7 | 4 | 1 |
0x08b3 | 0x0 | 0 | 0 | Miss | Hit | False | 1 | 0x3 | 6 | 0 |
0x08b3 | 0x0 | 0 | 0 | Miss | Hit | False | 1 | 0x0 | 13 | 1 |
0x365c | 0x3 | 1 | 1 | Miss | Hit | False | 1 | 0x0 | 5 | 0 |
0x365c | 0x3 | 1 | 1 | Miss | Hit | False | 1 | 0x1 | 6 | 1 |
0x365c | 0x3 | 1 | 1 | Miss | Hit | False | 1 | 0x3 | 6 | 0 |
0x365c | 0x3 | 1 | 1 | Miss | Hit | False | 1 | 0x0 | 13 | 1 |
0x871b | 0x8 | 4 | 0 | Miss | Hit | True | 1 | 0x0 | 5 | 0 |
0x871b | 0x8 | 4 | 0 | Miss | Hit | True | 1 | 0x1 | 6 | 1 |
0x871b | 0x8 | 4 | 0 | Miss | Hit | True | 1 | 0x4 | 14 | 0 |
0x871b | 0x8 | 4 | 0 | Miss | Hit | True | 1 | 0x0 | 13 | 1 |
0xbee6 | 0xb | 5 | 1 | Miss | Hit | False | 1 | 0x0 | 5 | 0 |
0xbee6 | 0xb | 5 | 1 | Miss | Hit | False | 1 | 0x1 | 6 | 1 |
0xbee6 | 0xb | 5 | 1 | Miss | Hit | False | 1 | 0x4 | 14 | 0 |
0xbee6 | 0xb | 5 | 1 | Miss | Hit | False | 1 | 0x5 | 12 | 1 |
0x3140 | 0x3 | 1 | 1 | Hit | Hit | False | 1 | 0x0 | 5 | 0 |
0x3140 | 0x3 | 1 | 1 | Hit | Hit | False | 1 | 0x1 | 6 | 1 |
0x3140 | 0x3 | 1 | 1 | Hit | Hit | False | 1 | 0x4 | 14 | 0 |
0x3140 | 0x3 | 1 | 1 | Hit | Hit | False | 1 | 0x5 | 12 | 1 |
0xc049 | 0xc | 6 | 0 | Miss | Miss | True | 1 | 0x6 | 5 | 0 |
0xc049 | 0xc | 6 | 0 | Miss | Miss | True | 1 | 0x1 | 6 | 1 |
0xc049 | 0xc | 6 | 0 | Miss | Miss | True | 1 | 0x4 | 14 | 0 |
0xc049 | 0xc | 6 | 0 | Miss | Miss | True | 1 | 0x5 | 12 | 1 |
5.16.4¶
Address | VP | Tag | Index | TLB Hit/Miss | PT Hit/Miss | PF | Valid | Tag | PP | Index |
---|---|---|---|---|---|---|---|---|---|---|
0x123d | 0x1 | 0 | 1 | Miss | Hit | True | 1 | 0xb | 12 | 0 |
0x123d | 0x1 | 0 | 1 | Miss | Hit | True | 1 | 0x0 | 13 | 1 |
0x123d | 0x1 | 0 | 1 | Miss | Hit | True | 1 | 0x3 | 6 | 2 |
0x123d | 0x1 | 0 | 1 | Miss | Hit | True | 0 | 0x4 | 9 | 3 |
0x08b3 | 0x0 | 0 | 0 | Miss | Hit | False | 1 | 0x0 | 5 | 0 |
0x08b3 | 0x0 | 0 | 0 | Miss | Hit | False | 1 | 0x0 | 13 | 1 |
0x08b3 | 0x0 | 0 | 0 | Miss | Hit | False | 1 | 0x3 | 6 | 2 |
0x08b3 | 0x0 | 0 | 0 | Miss | Hit | False | 0 | 0x4 | 9 | 3 |
0x365c | 0x3 | 0 | 3 | Miss | Hit | False | 1 | 0x0 | 5 | 0 |
0x365c | 0x3 | 0 | 3 | Miss | Hit | False | 1 | 0x0 | 13 | 1 |
0x365c | 0x3 | 0 | 3 | Miss | Hit | False | 1 | 0x3 | 6 | 2 |
0x365c | 0x3 | 0 | 3 | Miss | Hit | False | 1 | 0x0 | 6 | 3 |
0x871b | 0x8 | 2 | 0 | Miss | Hit | True | 1 | 0x2 | 14 | 0 |
0x871b | 0x8 | 2 | 0 | Miss | Hit | True | 1 | 0x0 | 13 | 1 |
0x871b | 0x8 | 2 | 0 | Miss | Hit | True | 1 | 0x3 | 6 | 2 |
0x871b | 0x8 | 2 | 0 | Miss | Hit | True | 1 | 0x0 | 6 | 3 |
0xbee6 | 0xb | 2 | 3 | Miss | Hit | False | 1 | 0x2 | 14 | 0 |
0xbee6 | 0xb | 2 | 3 | Miss | Hit | False | 1 | 0x0 | 13 | 1 |
0xbee6 | 0xb | 2 | 3 | Miss | Hit | False | 1 | 0x3 | 6 | 2 |
0xbee6 | 0xb | 2 | 3 | Miss | Hit | False | 1 | 0x2 | 12 | 3 |
0x3140 | 0x3 | 0 | 3 | Miss | Hit | False | 1 | 0x2 | 14 | 0 |
0x3140 | 0x3 | 0 | 3 | Miss | Hit | False | 1 | 0x0 | 13 | 1 |
0x3140 | 0x3 | 0 | 3 | Miss | Hit | False | 1 | 0x3 | 6 | 2 |
0x3140 | 0x3 | 0 | 3 | Miss | Hit | False | 1 | 0x0 | 6 | 3 |
0xc049 | 0xc | 3 | 0 | Miss | Miss | True | 1 | 0x3 | 15 | 0 |
0xc049 | 0xc | 3 | 0 | Miss | Miss | True | 1 | 0x0 | 13 | 1 |
0xc049 | 0xc | 3 | 0 | Miss | Miss | True | 1 | 0x3 | 6 | 2 |
0xc049 | 0xc | 3 | 0 | Miss | Miss | True | 1 | 0x0 | 6 | 3 |
5.16.5¶
如果没有 TLB,每次内存访问都需要访问页表再访问需要的数据,这样就加倍了访问内存的时间
5.17¶
5.17.1¶
\(\text{Entry Bits}=32-3-10=19\text{ bits}\)
\(\text{Total Size}=5\times(2^{19}\times 4\text{ Bytes})=10\text{ MB}\)
5.17.2¶
\(2^{19}\) 个条目被分成 256 组到二级页表中,那么每个二级页表有 \(2^{19}/256=2^{11}\) 个条目
那么每张二级页表需要的大小为 \(2^{11}\times 4\text{ Bytes}=8\text{ KB}\)
最大内存容量即为 \(5\times 8\text{ KB}\times 256 + 5\times 6\text{ Bytes}\times 256=10\text{ MB} + 7.5\text{ KB}\)
最小内存容量即为 \(5\text{ MB}+ 3.75\text{ KB}\)
5.17.3¶
每个块大小为 16 Bytes,那么 Cache 的 Block 数量为 1K,所以它有 10 个 Index 和 4 个 Byte Offset,比要求的 13 位大,所以可以制作
设计者可以增加 Cache 的相联数
5.20¶
5.20.1¶
第六次访问(2),第七次访问(3),第八次访问(4)会命中
5.20.2¶
第七次访问(3),第十二次访问(0),第十三次访问(1),第十八次访问(6),第十九次访问(7)会命中
5.20.3¶
根据抛硬币结果而定
5.20.4¶
最佳替换策略即为 MRU 策略,第七次访问(3),第十二次访问(0),第十三次访问(1),第十八次访问(6),第十九次访问(7)会命中
5.20.5¶
因为对于所有序列的最佳替换策略需要知道后续的访问,但是作为机器是不知道后续的访问是什么样的,所以非常难以实现
5.20.6¶
根据每个内存访问来看,如果它要和 Cache 当中的块发生冲突(即发生 Miss 要替换掉原来的块),且当前的内存访问比 Cache 当中的块更不常用就不需要替换了,这样会降低失效率。