summaryrefslogtreecommitdiff
path: root/Plan
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