| Segment 0 | Segment 1 | |||||||||||||||||||||||||||||||
| Line 0 | Line 1 | Line 2 | Line 3 | Line 0 | Line 1 | Line 2 | Line 3 | |||||||||||||||||||||||||
| Mem Addr |
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0a | 0b | 0c | 0d | 0e | 0f | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1a | 1b | 1c | 1d | 1e | 1f |
| Data | 00 | ff | a0 | 0a | 36 | 91 | f4 | 1b | 17 | b0 | 22 | 00 | 05 | 0b | e2 | dc | b8 | 35 | 92 | 29 | 00 | 77 | 45 | 29 | 00 | 07 | 54 | 52 | 00 | 13 | 3e | 74 |
| Segment 2 | Segment 3 | |||||||||||||||||||||||||||||||
| Line 0 | Line 1 | Line 2 | Line 3 | Line 0 | Line 1 | Line 2 | Line 3 | |||||||||||||||||||||||||
| Mem Addr |
20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 2a | 2b | 2c | 2d | 2e | 2f | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 3a | 3b | 3c | 3d | 3e | 3f |
| Data | 28 | 47 | 01 | 00 | 37 | e9 | 00 | 00 | 46 | d8 | 00 | 00 | 55 | c5 | 00 | 00 | 64 | bb | 00 | 00 | 73 | df | 00 | 00 | 82 | 54 | 00 | 00 | 90 | 55 | 00 | 00 |
The data cache table is 4 cells by 4 lines, each cell holds 1 byte of data.
Only data is cached in this example (not instuctions). Click on first table to
see sequenced version.
The dual tables above represent a single continuous address space.
The Mem Addr row is there so you don't have to count yourselves.
Memory addresses specifed in hexadecimal to simplify calculations.
| Empty cache on boot up. Click to see cache in action. |
LDA $06 - Miss - f4 | ADC $20 - Miss - 28 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 06h = 0000 01 10b tag = 0, line = 1, byte = 2 |
20h = 0010 00 00b tag = 2, line = 0, byte = 0 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SBC $07 - Hit - 1b | ADC $21 - Hit - 47 | SBC $08 - Miss -17 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 07h = 0000 01 11b tag = 0, line = 1, byte = 3 |
21h = 0010 00 01b tag = 2, line = 0, byte = 1 |
08h = 0000 10 00b tag = 0, line = 2, byte = 1 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ADC $22 - Hit - 00 | SBC $09 - Hit - b0 | ADC $23 - Hit - 00 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 22h = 0010 00 10b tag = 2, line = 0, byte = 2 |
09h = 0000 10 01b tag = 0, line = 2, byte = 1 |
23h = 0010 00 11b tag = 2, line = 0, byte = 3 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SBC $0A - Hit - 22 | ADC $24 - Miss - 37 | SBC $0B - Hit - 00 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 0Ah = 0000 10 10b tag = 0, line = 2, byte = 2 |
24h = 0010 01 00b tag = 2, line = 1, byte = 0 |
0Bh = 0000 10 11b tag = 0, line = 2, byte = 3 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||