diff options
| author | Julian Blake Kongslie | 2022-11-19 16:29:27 -0800 |
|---|---|---|
| committer | Julian Blake Kongslie | 2022-11-19 16:29:27 -0800 |
| commit | fdb61389099cee41b86c25c3d1ddb660b509e5fa (patch) | |
| tree | 00ebbec2b5a3398ea71442d5cd124a64bd61d80a /BigGolf | |
| parent | Multi-word fetch bundles and icache with realistic dram latency (diff) | |
| download | biggolf-fdb61389099cee41b86c25c3d1ddb660b509e5fa.tar.xz | |
Pipelined microarchitecture, which even almost works!
Includes such horrors as the "unstore" operation for undoing
autoincremented addresses on instructions subsequently found to be
bogus.
Diffstat (limited to '')
| -rw-r--r-- | BigGolf | 10 |
1 files changed, 4 insertions, 6 deletions
| @@ -26,14 +26,16 @@ Memory transactions: Opcodes that do it: (second set is the indirect versi | |||
| 26 | 26 | ||
| 27 | 27 | ||
| 28 | 28 | ||
| 29 | -----------------> | ||
| 30 | Fetch -> Decode -> Indir -> Exec | ||
| 31 | |||
| 32 | |||
| 29 | ┌─────┐ ┌──────┐ ┌────┐ | 33 | ┌─────┐ ┌──────┐ ┌────┐ |
| 30 | │Fetch├──────►│Decode│ ┌─►│Exec│ | 34 | │Fetch├──────►│Decode│ ┌─►│Exec│ |
| 31 | └─────┘ └──────┘ │ └────┘ | 35 | └─────┘ └──────┘ │ └────┘ |
| 32 | │ | 36 | │ |
| 33 | next_pc ┌───init_indirect_load │ init_execution_store | 37 | next_pc ┌───init_indirect_load │ init_execution_store |
| 34 | │ init_execution_load───┤ retire | 38 | │ init_execution_load───┤ retire |
| 35 | │ init_execution_store │ | ||
| 36 | │ retire │ | ||
| 37 | │ rubberband_stall(1/2) │ | 39 | │ rubberband_stall(1/2) │ |
| 38 | │ │ | 40 | │ │ |
| 39 | │ ┌───────┐ │ | 41 | │ ┌───────┐ │ |
| @@ -42,16 +44,12 @@ Memory transactions: Opcodes that do it: (second set is the indirect versi | |||
| 42 | │ | 44 | │ |
| 43 | ┌───init_autoinc_store │ | 45 | ┌───init_autoinc_store │ |
| 44 | │ init_execution_load───┤ | 46 | │ init_execution_load───┤ |
| 45 | │ init_execution_store │ | ||
| 46 | │ retire │ | ||
| 47 | │ │ | 47 | │ │ |
| 48 | │ ┌─────┐ │ | 48 | │ ┌─────┐ │ |
| 49 | └─►│Indir│ │ | 49 | └─►│Indir│ │ |
| 50 | └─────┘ │ | 50 | └─────┘ │ |
| 51 | │ | 51 | │ |
| 52 | init_execution_load───┘ | 52 | init_execution_load───┘ |
| 53 | init_execution_store | ||
| 54 | retire | ||
| 55 | 53 | ||
| 56 | 54 | ||
| 57 | 55 | ||
