aboutsummaryrefslogtreecommitdiff
path: root/TODO.md
blob: 63c16ec06fd82ed12331e92785619e1803b00c04 (plain)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<meta charset="utf-8">

**CacheRacer TODOs**

This is what remains to be done in reimplementing CacheRacer. Please
email [li.davidm96@gmail.com](mailto:li.davidm96@gmail.com) with
suggestions or questions. You can follow along with development at
https://git.lidavidm.me/cacheracer/.

## Overall

- [ ] Come up with a theme
  - [ ] Overall theme
  - [ ] Sneak attack/retreat =
  - [ ] White walker/dragon glass =
  - [ ] Arrow barrage =

## Memory

- [x] Make sure `ReverseMmu` maps addresses correctly (i.e. 0x0 should
  map to an actual array element)
    - [ ] `ReverseMmu` needs to mark VA 0x0 as invalid somehow
- [x] Sneak attack/retreat needs to be per-core
- [x] ~~Invalidate~~/update other caches when a write is made
- [ ] Implement global data structures
    - [ ] Player status
    - [ ] Core status
    - [ ] Cache info
    - [ ] Enemy memory should be inaccessible unless in sneak-attack mode

## Scoring

- [ ] Stop game once score reached
- [ ] Provide visualization (possibly using console?) like one used at
  tournament

## Sneak Attack/Retreat

- [ ] Test sneak attack/retreat system calls
- [ ] Implement taunt array
    - [ ] Write array to main memory
    - [ ] Update or invalidate relevant cache lines

## Traps

- [ ] Implement traps
- [ ] Rebalance traps

## Development/Debugging

- [ ] Write the header file
- [x] Write some sample bots
    - [x] Publish them
- [ ] Package RISC-V toolchain
    - [ ] Find way to shrink toolchain
- [ ] Implement debugger
- [ ] Debug logging
    - [ ] Cache misses/stalls
    - [ ] Traps

## Misc

- [ ] Allow custom trap handling in simulator, so we can restart cores
  if they crash

<style>
h1:before, h2:before { content: none; }
</style>
<!-- Markdeep: --><style class="fallback">body{visibility:hidden;white-space:pre;font-family:monospace}</style><script src="markdeep.min.js"></script><script src="https://casual-effects.com/markdeep/latest/markdeep.min.js"></script><script>window.alreadyProcessedMarkdeep||(document.body.style.visibility="visible")</script>