CS61C: Great Ideas in Computer Architecture (aka Machine Structures)
Lecture 31: Caches Part 3
Instructors: Dan Garcia, Justin Yokota
#
CS 61C
Spring 2023
Computing in the News
2
Computer Made of DNA Works Out Prime Factors of 6 and 15
Filling a test tube with molecules made from folded DNA can work as a simple computer. The approach has been used to split two numbers into prime factors.
Conventional computers work by passing electricity through tiny on-off switches to perform simple calculations. However, the new computer relies on the way that differently shaped DNA molecules combine.
Based on typical DNA functional motifs, DNA computational devices can perform diverse powerful computational functions, such as simple Boolean logics and sophisticated neural network algorithms. Thus, DNA computer is widely regarded as one of the most excellent next-generation molecular computers performing Boolean logic. Benefiting from DNAs’ inherent properties of biocompatibility, low-cost, ease of synthesis, and sequence programmability, DNA computational devices have shown great potential in various biosensing applications.
CS 61C
Spring 2023
Agenda
3
CS 61C
Spring 2023
Problems with Fully-Associative Caches
4
CS 61C
Spring 2023
Problems with Fully-Associative Caches
5
CS 61C
Spring 2023
Problems with Fully-Associative Caches
6
CS 61C
Spring 2023
7
CS 61C
Spring 2023
8
CS 61C
Spring 2023
9
CS 61C
Spring 2023
Attempt 2: Picking a grouping mechanism
10
CS 61C
Spring 2023
Attempt 2: Picking a grouping mechanism
11
CS 61C
Spring 2023
New Blocks
12
CS 61C
Spring 2023
Direct-Mapped Cache (1/4)
13
CS 61C
Spring 2023
Direct-Mapped Cache (2/4)
14
CS 61C
Spring 2023
Direct-Mapped Cache (3/4): Example Memory Access
15
Index | Tag | V | Data |
0 | 0b10 0110 | 0 | 0xDE 0xAD 0xBE 0xEF |
1 | 0b10 1100 | 0 | 0x01 0x23 0x45 0x67 |
2 | 0b01 1010 | 1 | 0xAB 0xAD 0xCA 0xFE |
3 | 0b11 1100 | 1 | 0xAC 0xDE 0xFF 0x61 |
CS 61C
Spring 2023
Direct-Mapped Cache (3/4): Example Memory Access
16
Index | Tag | V | Data |
0 | 0b10 0110 | 1 | 0xDE 0xAD 0xBE 0xEF |
1 | 0b10 1100 | 0 | 0x01 0x23 0x45 0x67 |
2 | 0b01 1010 | 1 | 0xAB 0xAD 0xCA 0xFE |
3 | 0b11 1100 | 1 | 0xAC 0xDE 0xFF 0x61 |
CS 61C
Spring 2023
Direct-Mapped Cache (4/4)
17
CS 61C
Spring 2023
Caching Example: Write-Back Direct-Mapped
18
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | | | | |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
Index | Tag | V | Dirty | Data |
0 | 0x100 | 0 | 0 | 0xBF 0x16 0x88 0x2B |
1 | 0x133 | 0 | 0 | 0x3B 0x18 0xF1 0xB3 |
2 | 0x156 | 0 | 0 | 0xE6 0x57 0x49 0xEE |
3 | 0x0E9 | 0 | 0 | 0xB5 0x81 0x67 0x3F |
CS 61C
Spring 2023
Caching Example: Write-Back Direct-Mapped
19
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | | | | |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
Index | Tag | V | Dirty | Data |
0 | 0x100 | 0 | 0 | 0xBF 0x16 0x88 0x2B |
1 | 0x133 | 0 | 0 | 0x3B 0x18 0xF1 0xB3 |
2 | 0x156 | 0 | 0 | 0xE6 0x57 0x49 0xEE |
3 | 0x0E9 | 0 | 0 | 0xB5 0x81 0x67 0x3F |
CS 61C
Spring 2023
Caching Example: Write-Back Direct-Mapped
20
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | | | | |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
Index | Tag | V | Dirty | Data |
0 | 0x040 | 1 | 0 | 0x01 0x02 0x03 0x04 |
1 | 0x133 | 0 | 0 | 0x3B 0x18 0xF1 0xB3 |
2 | 0x156 | 0 | 0 | 0xE6 0x57 0x49 0xEE |
3 | 0x0E9 | 0 | 0 | 0xB5 0x81 0x67 0x3F |
CS 61C
Spring 2023
Caching Example: Write-Back Direct-Mapped
21
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | | | | |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
Index | Tag | V | Dirty | Data |
0 | 0x060 | 1 | 0 | 0x11 0x15 0x19 0x1D |
1 | 0x133 | 0 | 0 | 0x3B 0x18 0xF1 0xB3 |
2 | 0x156 | 0 | 0 | 0xE6 0x57 0x49 0xEE |
3 | 0x0E9 | 0 | 0 | 0xB5 0x81 0x67 0x3F |
CS 61C
Spring 2023
Caching Example: Write-Back Direct-Mapped
22
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | | | | |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
Index | Tag | V | Dirty | Data |
0 | 0x040 | 1 | 0 | 0x01 0x02 0x03 0x04 |
1 | 0x133 | 0 | 0 | 0x3B 0x18 0xF1 0xB3 |
2 | 0x156 | 0 | 0 | 0xE6 0x57 0x49 0xEE |
3 | 0x0E9 | 0 | 0 | 0xB5 0x81 0x67 0x3F |
CS 61C
Spring 2023
Caching Example: Write-Back Direct-Mapped
23
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | 250 | | | |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
Index | Tag | V | Dirty | Data |
0 | 0x040 | 1 | 0 | 0x01 0x02 0x03 0x04 |
1 | 0x060 | 1 | 0 | 0x12 0x16 0x1A 0x1E |
2 | 0x156 | 0 | 0 | 0xE6 0x57 0x49 0xEE |
3 | 0x0E9 | 0 | 0 | 0xB5 0x81 0x67 0x3F |
CS 61C
Spring 2023
Caching Example: Write-Back Direct-Mapped
24
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | 250 | | | |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
Index | Tag | V | Dirty | Data |
0 | 0x080 | 1 | 1 | 0xFA 0x04 0x?? 0x?? |
1 | 0x060 | 1 | 0 | 0x12 0x16 0x1A 0x1E |
2 | 0x156 | 0 | 0 | 0xE6 0x57 0x49 0xEE |
3 | 0x0E9 | 0 | 0 | 0xB5 0x81 0x67 0x3F |
CS 61C
Spring 2023
Problem with Direct-Mapped Caches
25
CS 61C
Spring 2023
Meeting in the Middle: The Set-Associative Cache
26
CS 61C
Spring 2023
N-way Set Associative Cache (1/4)
27
CS 61C
Spring 2023
4-way Set Associative Cache (2/4)
28
CS 61C
Spring 2023
N-way Set Associative Cache (3/4): Example
29
I | Tag | V | Data |
0 | 0b100 0110 | 1 | 0xDE 0xAD 0xBE 0xEF |
0 | 0b101 1100 | 0 | 0x01 0x23 0x45 0x67 |
1 | 0b011 1010 | 1 | 0xAB 0xAD 0xCA 0xFE |
1 | 0b111 1001 | 1 | 0xAC 0xDE 0xFF 0x61 |
CS 61C
Spring 2023
N-way Set Associative Cache (4/4)
30
CS 61C
Spring 2023
Caching Example: Write-Back LRU 2-way Set Associative
31
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | | | | |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
I | Tag | LRU | V | D | Data |
0 | 0x100 | 0 | 0 | 0 | 0xBF 0x16 0x88 0x2B |
0 | 0x333 | 0 | 0 | 0 | 0x3B 0x18 0xF1 0xB3 |
1 | 0x156 | 0 | 0 | 0 | 0xE6 0x57 0x49 0xEE |
1 | 0x0E9 | 0 | 0 | 0 | 0xB5 0x81 0x67 0x3F |
CS 61C
Spring 2023
Caching Example: Write-Back LRU 2-way Set Associative
32
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | | | | |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
I | Tag | LRU | V | D | Data |
0 | 0x080 | 2 | 1 | 0 | 0x01 0x02 0x03 0x04 |
0 | 0x100 | 1 | 1 | 0 | 0x11 0x15 0x19 0x1D |
1 | 0x156 | 0 | 0 | 0 | 0xE6 0x57 0x49 0xEE |
1 | 0x0E9 | 0 | 0 | 0 | 0xB5 0x81 0x67 0x3F |
CS 61C
Spring 2023
Caching Example: Write-Back LRU 2-way Set Associative
33
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | | | | |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
I | Tag | LRU | V | D | Data |
0 | 0x180 | 1 | 1 | 1 | 0xFA 0x?? 0x?? 0x?? |
0 | 0x100 | 2 | 1 | 0 | 0x11 0x15 0x19 0x1D |
1 | 0x156 | 0 | 0 | 0 | 0xE6 0x57 0x49 0xEE |
1 | 0x0E9 | 0 | 0 | 0 | 0xB5 0x81 0x67 0x3F |
CS 61C
Spring 2023
Caching Example: Write-Back LRU 2-way Set Associative
34
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | | | | |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
I | Tag | LRU | V | D | Data |
0 | 0x180 | 1 | 1 | 1 | 0xFA 0x04 0x?? 0x?? |
0 | 0x080 | 2 | 1 | 0 | 0x01 0x02 0x03 0x04 |
1 | 0x100 | 1 | 1 | 0 | 0x12 0x16 0x1A 0x1E |
1 | 0x0E9 | 0 | 0 | 0 | 0xB5 0x81 0x67 0x3F |
CS 61C
Spring 2023
Caching Example: Write-Back LRU 2-way Set Associative
35
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | 250 | 260 | | |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
I | Tag | LRU | V | D | Data |
0 | 0x080 | 2 | 1 | 0 | 0x01 0x02 0x03 0x04 |
0 | 0x180 | 1 | 1 | 1 | 0xFA 0x04 0x0E 0x18 |
1 | 0x100 | 2 | 1 | 0 | 0x12 0x16 0x1A 0x1E |
1 | 0x101 | 1 | 1 | 0 | 0x14 0x18 0x1C 0x20 |
CS 61C
Spring 2023
Caching Example: Write-Back LRU 2-way Set Associative
36
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | 250 | 260 | 270 | 280 |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
I | Tag | LRU | V | D | Data |
0 | 0x100 | 1 | 1 | 0 | 0x11 0x15 0x19 0x1D |
0 | 0x180 | 2 | 1 | 1 | 0xFA 0x04 0x0E 0x18 |
1 | 0x100 | 2 | 1 | 0 | 0x12 0x16 0x1A 0x1E |
1 | 0x181 | 1 | 1 | 1 | 0x6A 0x?? 0x?? 0x?? |
CS 61C
Spring 2023
Caching Example: Write-Back LRU 2-way Set Associative
37
| | | | Bt | 17 | 21 | 25 | 29 |
| | | | | 18 | 22 | 26 | 30 |
| | | | | 19 | 23 | 27 | 31 |
| | | | | 20 | 24 | 28 | 32 |
A | | | | | C | | | |
1 | 2 | 3 | 4 | | 250 | 260 | 270 | 280 |
5 | 6 | 7 | 8 | | | | | |
9 | 10 | 11 | 12 | | | | | |
13 | 14 | 15 | 16 | | | | | |
I | Tag | LRU | V | D | Data |
0 | 0x100 | 2 | 1 | 0 | 0x11 0x15 0x19 0x1D |
0 | 0x101 | 1 | 1 | 0 | 0x13 0x17 0x1B 0x1F |
1 | 0x081 | 2 | 1 | 0 | 0x05 0x06 0x07 0x08 |
1 | 0x181 | 1 | 1 | 1 | 0x6A 0x84 0x9E 0xB8 |
CS 61C
Spring 2023
Conclusion
38
CS 61C
Spring 2023