blob: 0be0ac58b678ab4e14b7ef5f8b422deeef6f9b91 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
vim: set sw=8 noet :
* Add evictions to Spin model
* Evictions need to have a favored peer ("downstream")
* Other (less important?) things to add to Spin model
* E and S states
* O and F states if we're feeling super ambitious
* Multiple ways
* Multiple sets (remove the "Busy" states)
* Multiple evil buffers
* Forwarding stores to eliminate "unstores"
* Store forwarding structure
* Store buffer allocation and senior store commit/deallocation
* SMC snoops?
* Generic "cache level" infrastructure
* Convert I-side cache
* Convert D-side cache
* Shared between exec and indir stages
* Arbitration to reduce total port count
* Real coherence protocol
* Cache consistency between I and D side
* Checker should let us check more data
* Checker should print mismatches on its own instead
of depending on the caller
* Make it complete
* Make it pretty
* Work out why focal is broken
* SMC support
* Stores should snoop all upstream instruction PCs and restart if overlap
* Statistics about instruction mix
* Indirect loads
* Autoincrements
* Exec loads
* Exec stores
* Instructions with both exec load and exec store
* Instructions with both indirect and any exec memory
* Instructions with *three memory operations*
* Instructions with ~*all four memory operations*~
* Maybe histogram support, instructions with N memory ops
* Control register writes
* Per control register / bit
|