54d1a204f0
Don't decode redirected streams until they are non-speculative.
Jonathan Woodruff
2021-12-17 16:29:14 +00:00
4cc86b1e56
Revert more changes to buffer speculative training, as previous buffering of training from execute should be sufficient for the BTB as well.
Jonathan Woodruff
2021-12-16 15:01:46 +00:00
3322d1d3d7
Revert "An attempt at wiring up the specUpdate interface for the Btb."
Jonathan Woodruff
2021-12-16 12:10:50 +00:00
022df36199
An attempt at wiring up the specUpdate interface for the Btb.
Jonathan Woodruff
2021-12-15 16:43:31 +00:00
696f546ecb
Version using searchableSpecFifo in BTB with actual searching, but without killing speculative elements yet. This one is full performance in CoreMark.
Jonathan Woodruff
2021-12-15 11:18:33 +00:00
657453a0a0
Two modules (that build) that should be helpful in delaying the commit of training data.
Jonathan Woodruff
2021-12-14 16:17:54 +00:00
af69f2e5db
Merge branch 'CHERI' into jdw57_prediction
Jonathan Woodruff
2021-12-15 16:47:42 +00:00
9b2318a9ba
Simpelest strategy for making wrongSpec not conflict with loads of rules. This triggers some assertions in the ROB what should be dealt with properly if this is going to work.
Jonathan Woodruff
2021-12-09 12:27:57 +00:00
34c6ee1894
Specifically give priority to wrong_spec when they conflict. This appears to yield 10% performance improvement as our default setup appears to choose a wrong priority.
Jonathan Woodruff
2021-12-03 12:36:40 +00:00
e761f18c26
Code to trace RAS predictions for measuring accuracy in simulation.
Jonathan Woodruff
2021-11-29 12:19:00 +00:00
37074525e1
removed unnecessary execute permissions for Decode.bsv, Exec.bsv, ProcTypes.bsv, ReorderBuffer.bsv, and AluExePipeline.bsv
Franz Fuchs
2021-11-29 10:38:23 +00:00
59836cc9e5
Hopefully optimise this function to have just one call to modifyOffset.
Jonathan Woodruff
2021-11-25 17:39:46 +00:00
ad149db5c0
Hopefully optimise this function to have just one call to modifyOffset.
Jonathan Woodruff
2021-11-25 17:39:46 +00:00
4e0da006e8
Make non-speculative training optional. Removing non-speculative training actually improves performance in CoreMark. While it's "safer", I guess this isn't required for BSC.
Jonathan Woodruff
2021-11-24 17:11:36 +00:00
ac92562be0
Merge pull request #19 from CTSRD-CHERI/mv380-ccopytypepullrequest
Marno van der Maas
2021-11-17 09:54:57 +00:00
cc0114f645
Swap write priority, as suggested by Franz.
Jonathan Woodruff
2021-11-16 15:40:01 +00:00
7b472d4d3c
Reduce area overhead by using an unguarded specfifo that does not have to be worst-case-sized, but can drop elements if it is full.
Jonathan Woodruff
2021-11-16 13:53:34 +00:00
618dea1225
Feed head of RAS through to execute with training info to reset the head on a misprediction.
Jonathan Woodruff
2021-11-16 11:00:04 +00:00
d56045effe
Make the associative BTB compressed. That is, only store the bottom 16 bits of the target if the upper bits of pc and nextPc match. Have a single "way" dedicated to full targets.
Jonathan Woodruff
2021-11-15 11:50:57 +00:00
54c0ccadf0
Only train from branches that have all previous branches resolved.
Jonathan Woodruff
2021-11-12 17:55:04 +00:00
04a5d82ff0
Go back to standard tournament predictor (which performs the best on CoreMark), though cleaning up slightly to use standard functions.
Jonathan Woodruff
2021-11-10 09:54:34 +00:00
aec3e404ed
Bumped RISCV HPM Events
Franz Fuchs
2021-11-10 08:05:07 +00:00
8379d77cc5
Don't use a synthesis barrier for Bht so that we don't have to add it to XML. The direction predictor already has one anyway.
Jonathan Woodruff
2021-11-08 13:51:52 +00:00
e342600cb5
Try the traditional Bht, as it seems like it might be less fiddly with speculative training.
Jonathan Woodruff
2021-11-08 12:34:07 +00:00
6713505d12
Experiment with different Bht constants to see if these affect our benchmark.
Jonathan Woodruff
2021-11-05 18:52:40 +00:00
d5e52a9ecb
Revert to upstream direction predictors to reduce diffs and prepare for improvements that can be upstreamed. Basically, only use addresses in these predictors rather than capabilities, and just pass an address in from the FetchStage.
Jonathan Woodruff
2021-11-05 17:42:19 +00:00
001c5e8347
put changing the interrupt counter and writing back to a register in the right order
Franz Fuchs
2021-11-05 13:47:39 +00:00
836ed5b143
Merge branch 'jdw57-jr-bsc-safety' into CHERI
Jonathan Woodruff
2021-11-03 16:46:21 +00:00
cb1858447b
Fix tracing of Sc. Sc is unique in that it writes both memory and a register value. This implementation works around the fact that the memory store data and the register write data are sharing the same field in the reorder buffer by inferring the writeback value of Sc from the byteEnable field.
Jonathan Woodruff
2021-11-03 12:45:15 +00:00
3908c5f955
A merge resolution not included in previous commit due to not saving file. Doh.
Jonathan Woodruff
2021-11-02 18:12:05 +00:00
7437c0c5e7
Some cleanups.
Jonathan Woodruff
2021-11-02 18:08:22 +00:00
56173bf2c2
Added interrupt counter
Franz Fuchs
2021-11-02 15:45:40 +00:00
87785eb25c
Don't translate invalid vaddrs in the DTLB.
Jonathan Woodruff
2021-10-14 17:13:18 +00:00
1930025e1f
Add StatCounters and GenerateHPMVector dependencies to verilator makefile
Alexandre Joannou
2021-10-13 14:50:21 +01:00
dad3d504b1
Take into account BTB predictions. nextPc only reflected things known in the Decode stage, but not before (i.e. BTB predictions). This meant that we were pretty much always redirecting JRs. I needed to pipe through whether a jump was predicted by the BTB or not, and then only stop predicting if there is no nextPc prediction and also no BTB prediction. This should actually reasonably approximate SBC. Also, this one is not "redirecting", it's just flushing (flipping decode_epoch_local), trusting that we'll get a later redirection.
Jonathan Woodruff
2021-10-11 16:23:45 +00:00
3636f6239a
Use Matt's slightly cleaner version of the function.
Jonathan Woodruff
2021-10-11 16:23:22 +00:00
1b5a036c46
Two fixes: do a proper "all bits are the same" function, as well as prepare a capability target to pass back.
Jonathan Woodruff
2021-10-08 16:35:42 +00:00
5d5bee3e08
Use an invalid virtual address when preventing prediction, and also detect invalid virtual addresses in the TLB and miss rather than proceed with page walking.
Jonathan Woodruff
2021-10-08 11:00:11 +00:00
cec55419f5
Merge branch 'CHERI' into jdw57-jr-bsc-safety
Jonathan Woodruff
2021-10-08 09:50:45 +00:00
3d0aee0af4
Remove some verbosity from the committed state.
Jonathan Woodruff
2021-10-07 16:30:32 +00:00
81a12b89cb
Move to NonPipelinedSquareRooter to hopefully fit more deterministically. We're still waiting for a fixed NonPipelinedDivider.
Jonathan Woodruff
2021-10-07 16:28:57 +00:00
520b09a6ed
Use less wierd default value.
Jonathan Woodruff
2021-10-07 16:16:27 +00:00
fe9e000f43
Merge branch 'CHERI' into jdw57-jr-bsc-safety
Jonathan Woodruff
2021-10-04 08:37:56 +00:00
db54d27368
Move import DReg::* into ifdefs
Franz Fuchs
2021-10-01 16:54:17 +01:00
df74a71d61
changed _Synth to _Sig following the new convention in BlueStuff
Franz Fuchs
2021-09-30 15:02:47 +01:00
b4fe3ee93c
adjusted SSITH_P3 Makefile to new version of HPM Events
Franz Fuchs
2021-09-30 13:33:26 +01:00
c69acc2fc4
Don't predict next instruction for JR without a BTB prediction.
Jonathan Woodruff
2021-09-30 12:20:40 +00:00
9657339d87
"fix" non PERFORMANCE_MONITORING build
gameboo
2021-09-29 18:09:06 +01:00
87977461a6
Merge branch 'CHERI' of github.com:CTSRD-CHERI/Toooba into CHERI
Franz Fuchs
2021-09-29 14:23:20 +01:00
cf8bfdc4a8
Merge branch 'faf28_hpm_consistency' into CHERI
Franz Fuchs
2021-09-29 14:04:08 +01:00
c379a7a293
Changes to build with the new stat counters.
Jonathan Woodruff
2021-09-24 13:18:55 +00:00
db9b5c7f54
re-integrated TagController
Franz Fuchs
2021-09-24 11:39:23 +01:00
8ef44b0a6c
Workaround single step wedges by not waiting for flush before halting
Peter Rugg
2021-07-02 16:41:35 +01:00
4cfac08bca
Bumped BlueStuff and made necessary adaptations
Franz Fuchs
2021-09-23 15:25:46 +01:00
4c194d4e82
integrated new version of RISCV_HPM_Events done by Jess
Franz Fuchs
2021-09-23 14:36:50 +01:00
9ea66bed86
Merge pull request #18 from CTSRD-CHERI/faf28_hpm_consistency
Franz Fuchs
2021-09-20 13:21:52 +01:00
d80bc24bf3
Bumped TagController
Franz Fuchs
2021-09-20 11:59:32 +01:00
9320e53720
Bumped RISCV_HPM_Events made minor changes
Franz Fuchs
2021-09-17 10:38:48 +01:00
01000dba56
bump RISCV_HPM_Events
Franz Fuchs
2021-09-14 11:32:45 +01:00
e675400ab8
Fixed things as pointed out by aj443
Franz Fuchs
2021-09-13 16:35:23 +01:00
726c9f19a9
put deprecate note on Performance_Monitoring.md
Franz Fuchs
2021-09-08 16:47:34 +01:00
c489a177d4
Fix type error.
Jonathan Woodruff
2021-09-08 10:23:29 -05:00
08231b7e5c
Hopefully don't wedge on ifetch bus error.
Jonathan Woodruff
2021-09-08 10:11:25 -05:00
5d021e8c2e
Bump RISCV_HPM_Events
Franz Fuchs
2021-09-08 12:29:07 +01:00
c3775b80c9
Bumped new version of RISCV_HPM_Events
Franz Fuchs
2021-09-07 16:38:30 +01:00
b567db8e8e
Updated RISCV_HPM_Events submodule
Franz Fuchs
2021-09-07 11:16:40 +01:00
f89e3d79c7
Bumped RISCV_HPM_Events
Franz Fuchs
2021-09-07 08:32:34 +01:00
b25d70a8cc
performed corrections for CONTRACTS_VERIFY
Franz Fuchs
2021-09-07 08:15:03 +01:00
e58000c82d
added HPM Events submodule again
Franz Fuchs
2021-09-06 16:39:25 +01:00