The instruction cache (icache) is a glue between the system memory bus and the SPI flash controller known as SFC.
Family | Cache memory | Tag memory | Organization | Notes |
---|---|---|---|---|
BR17 | 0x1A000 | 0x48000 | 128 sets x 4 ways x 32 bytes (16 KiB) | |
BR21 | 0x1C000 | 0x48000 | 128 sets x 4 ways x 32 bytes (16 KiB) | Cache memory occupies the top 16K of the RAM1. |
BR23+ | 0xF8000 | 0xFC000 | 128 sets x 4 ways x 32 bytes (16 KiB) |
The cache memory stores the cached data themselve.
It is organized in four blocks by 4 KiB each, where the blocks themselve represent a cache way, which are numbered in backwards (i.e. 0x1A000-0x1AFFF corresponds to way 4, 0x1B000-0x1BFFF to way 3, 0x1C000-0x1CFFF to way 2 and 0x1D000-0x1DFFF corresponds to way 1.)
Same thing as in BR17 but now it is in order, i.e. 0xF8000-0xF8FFF is the way 1, 0xF9000-0xF9FFF is the way 2, and so on.
The tag memory stores information about which address the corresponding set/way/line’s data belong to, as well as seemingly data related to selection of ways.
00048000: FF 1F 00 00 01 10 00 00 FF 1F 00 00 00 10 00 00 |................|
00048010: FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 00 10 00 00 |................|
00048020: FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 00 10 00 00 |................|
00048030: FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 00 10 00 00 |................|
00048040: FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 00 10 00 00 |................|
00048050: FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 00 10 00 00 |................|
00048060: FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 00 10 00 00 |................|
00048070: FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 00 10 00 00 |................|
00048080: FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 |................|
.....
000487b0: FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 |................|
000487c0: FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 00 10 00 00 |................|
000487d0: FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 00 10 00 00 |................|
000487e0: FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 |................|
000487f0: FF 1F 00 00 FF 1F 00 00 FF 1F 00 00 00 10 00 00 |................|
~ 128 entries
00049000: 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 |................|
00049010: 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 |................|
00049020: 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 |................|
.....
000491e0: 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 |................|
000491f0: 02 00 00 00 02 00 00 00 07 00 00 00 02 00 00 00 |................|
~ 128 entries
1000 ==> 1000.000
1001 ==> 1001.000
1a000 ---> 4
1b000 ---> 3
1c000 ---> 2
1d000 ---> 1
48000
selection of ways:
waysel: 0314 0365 0365 0365 0365 0365 0365 0365
way: 1234 1324 1324 1324 1324 1324 1324 1324
011
010
110
100
011
101
011
101
011
101
011
101
...
000 0xxx
^ 011 + 011
011 o1xx
^ 010 + 110
001 oo2x
^ 110 + 011
100 ooo3
^ 100 + 100
000 4ooo
^ 011 + 011
011 oo5o
^ 101 + 011
110 o6oo
^ 011 + 111
101 ooo7
^ 101 + 011
000
^ 011 + 011
011
^ 101 + 011
110
^ 011 + 111
101
^ 101
000
011
110
101
000fc000: FF 3F 00 00 00 3E 00 00 FF 3F 00 00 00 30 00 00 |.?...>...?...0..|
000fc010: FF 3F 00 00 00 3E 00 00 FF 3F 00 00 00 30 00 00 |.?...>...?...0..|
000fc020: FF 3F 00 00 00 3E 00 00 FF 3F 00 00 00 30 00 00 |.?...>...?...0..|
000fc030: FF 3F 00 00 00 3E 00 00 FF 3F 00 00 00 30 00 00 |.?...>...?...0..|
000fc040: FF 3F 00 00 00 3E 00 00 FF 3F 00 00 00 30 00 00 |.?...>...?...0..|
000fc050: FF 3F 00 00 00 3E 00 00 FF 3F 00 00 00 30 00 00 |.?...>...?...0..|
000fc060: FF 3F 00 00 00 3E 00 00 FF 3F 00 00 00 30 00 00 |.?...>...?...0..|
000fc070: FF 3F 00 00 00 3E 00 00 FF 3F 00 00 00 30 00 00 |.?...>...?...0..|
000fc080: FF 3F 00 00 FF 3F 00 00 FF 3F 00 00 FF 3F 00 00 |.?...?...?...?..|
.....
000fc7f0: FF 3F 00 00 FF 3F 00 00 FF 3F 00 00 FF 3F 00 00 |.?...?...?...?..|
~ 128 entries
000fd000: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................|
.....
000fd7f0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................|
000fd800: 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 |................|
000fd810: 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 |................|
000fd820: 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 |................|
.....
000fd9f0: 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 |................|
~ 128 entries
f8000 ---> 1
f9000 ---> 2
fa000 ---> 3
fb000 ---> 4
fc000
3000 = 1000'000
3e00 = 1e00'000