Jonathan Woodruff
b65994c00c
Include the new single-cycle CCPipe as a seperate implementation, and
...
use it only in the L1 caches so that the L2 cache can have lower
resource utilisation and better timing. (Resource utilisation is up
about 5% with the new design, and it's not necessary for the L2 cache.)
2024-02-02 11:50:45 +00:00
Jonathan Woodruff
ccc71952bf
Use forwarding BRAMs in L2 Cache. Duh; this is required for the new
...
CCPipe structure.
2024-02-01 13:44:36 +00:00
Jonathan Woodruff
7608543da5
Move back to more traditional implementation of the forwarded BRAM,
...
which also workst.
2024-02-01 10:07:48 +00:00
Jonathan Woodruff
3416040a74
Forward using a working forwarding memory rather than logic in CCPipe.
...
This design runs CoreMark successfully.
2024-01-31 13:29:59 +00:00
Jonathan Woodruff
0e87595d73
Work toward eliminating a cycle of cache latency by doing data lookup in
...
parallel with tag lookup.
2024-01-31 10:15:51 +00:00
Jonathan Woodruff
8e4848c4bc
Turn off tracing in instruction fetch.
2024-01-26 16:32:16 +00:00
Jonathan Woodruff
be26ac9f79
Fix a typo in a comment.
2024-01-26 16:31:49 +00:00
Jonathan Woodruff
9baadf58f3
Tune the size of the fetch pipeline fifos. This appears to make a 3%
...
performance improvement in CoreMark.
2024-01-26 16:02:18 +00:00
Jonathan Woodruff
e873bbd553
Clean up Fetch stage optimisations. This includes removing references
...
to Fetch3, which no longer exists since Fetch2 and Fetch1 are merged
(Fetch3 is now Fetch2).
2024-01-26 15:14:03 +00:00
Jonathan Woodruff
ca4e120a6c
Use DReg instead of Reg, as intended.
2024-01-22 12:06:39 +00:00
Jonathan Woodruff
b586937953
Fix RVFI_DII by only going to the next ID when the instruction fetch is
...
going ahead.
2024-01-22 11:38:52 +00:00
Jonathan Woodruff
640f330d7d
Briefly report flush when vm_info has a change in the itlb to give an
...
opportunity to flush the buffered translations.
2024-01-19 11:48:04 +00:00
Jonathan Woodruff
d30bd71e72
Allow consuming TLB response while TLB is being flushed.
2024-01-18 13:04:21 +00:00
Jonathan Woodruff
83c756a4f4
Tidy up data mem pipeline changes to remove duplicated code.
2024-01-17 16:09:42 +00:00
Jonathan Woodruff
9d12fefda8
Remove commented-out code.
2024-01-17 14:30:34 +00:00
Jonathan Woodruff
829a787be5
Move to vector functions as it's cleaner.
2024-01-17 13:41:43 +00:00
Jonathan Woodruff
5a1ed7c57f
Allow a vector of translations to be remembered.
...
Just do 2 for now.
2024-01-17 13:21:38 +00:00
Jonathan Woodruff
4f91e54bd2
Properly remove pipline stage in fetch and use a seperate rule to do the
...
proper TLB lookup if necessary.
2024-01-16 17:00:10 +00:00
Jonathan Woodruff
eee5a2c23b
Experiment with a zero-cycle TLB in instruction fetch as well.
2024-01-16 10:05:17 +00:00
Jonathan Woodruff
25a728b6d3
Optimise timing of TLB translation, ensuring that the translated address
...
proceeds with minimal conditions to the output.
2024-01-16 09:50:35 +00:00
Jonathan Woodruff
f9bf4ad856
Use default value on reset of Map.
2024-01-15 17:00:00 +00:00
Jonathan Woodruff
2c3c1da5c3
Solve last issue to allow doExeMem and doFinishMem.
2024-01-09 17:12:39 +00:00
Jonathan Woodruff
2f6a0980d9
Move all the work other than the TLB request out of doExeMem back to
...
doRegReadMem.
2024-01-09 12:37:34 +00:00
Jonathan Woodruff
3e3531ffd5
Revert "A scheduling experiment to try to get doRegReadMem and doExeMem"
...
This reverts commit b733e05a86 .
2024-01-09 11:54:53 +00:00
Jonathan Woodruff
b733e05a86
A scheduling experiment to try to get doRegReadMem and doExeMem
...
executing in the same clock cycle. It doesn't seem to work (yet).
2024-01-09 11:52:29 +00:00
Jonathan Woodruff
32d094082b
Some tracing for performance in the memory pipeline.
...
Also, add some ports to registers in DTLB to potentially allow
single-cycle lookup.
2024-01-08 15:28:24 +00:00
Jonathan Woodruff
2d05514b66
An experimental simplification of the SplitLSQ, which I think works
...
because the Memory pipeline only ever reads the getIssueLd interface in
the same rule that it calls issueLd.
2023-12-12 17:29:27 +00:00
Peter Rugg
4acbe2f43b
Fix build error with SPEC contracts
2023-07-17 17:38:57 +01:00
gameboo
561683343d
Add a mean to configure starting PC dynamically at start of simulation
2023-07-13 15:34:08 +01:00
Peter Rugg
373b849d29
Merge branch 'tag-clear' into CHERI
2023-06-27 11:38:42 +01:00
Peter Rugg
ec4eacac9c
Fix CSetAddr tag clear bug
2023-06-26 18:01:56 +01:00
Jonathan Woodruff
3ebf537f71
Tidy up tracing options, including using RVFI when building for bluesim
...
(which I'm sure we had meant to be doing?).
2023-06-23 13:09:38 +00:00
Peter Rugg
86782f9bb5
Cleanup unused exception code
2023-06-20 16:46:39 +01:00
Peter Rugg
c8b0e12f79
Remove traps for CBuildCap
...
This will be very expensive in terms of area and possibly timing.
Ideally this instruction would be multi-cycle or optimised to reduce the overhead.
2023-06-20 16:23:44 +01:00
Peter Rugg
f3ac024b73
Remove exceptions from CUnseal
2023-06-20 12:32:49 +01:00
Peter Rugg
ca711eab2a
Remove exceptions from CToPtr and CFromPtr
2023-06-20 09:45:48 +01:00
gameboo
e6a8111a1b
Fix forgotten type change from tuple2 to tuple3 in mem exe pipeline
2023-06-14 11:49:09 +01:00
Jonathan Woodruff
318c94ec41
Merge branch 'ks980-prefetch' into CHERI
2023-05-23 17:35:58 +00:00
Jonathan Woodruff
410be14a25
Merge remote-tracking branch 'karlis/CHERI' into ks980-prefetch
2023-05-23 17:34:19 +00:00
Karlis Susters
373d92c17a
Added license text
2023-05-23 13:37:43 +01:00
Jonathan Woodruff
1e7f19e7f0
Merge branch 'ks980-prefetch' into CHERI
2023-05-22 16:14:51 +00:00
Karlis Susters
35524a2a50
Revert L1 store counters to tracking stores
2023-05-18 13:34:39 +01:00
gameboo
afba99d0a1
Added missing DefaultValue import
2023-05-17 17:50:05 +01:00
Jonathan Woodruff
f476990c65
Merge branch 'CHERI' into ks980-prefetch
2023-05-17 15:32:40 +00:00
Karlis Susters
2ae2b99268
Move Prefetcher unit tests to unit test folder
2023-05-11 00:10:32 +01:00
Karlis Susters
3098b8afba
Other code cleanup
2023-05-10 23:59:35 +01:00
Karlis Susters
1776ba3317
Prefetcher code cleanup
2023-05-10 23:55:05 +01:00
Karlis Susters
05e5ad5076
Update tests for singlewindow-target
2023-05-10 23:51:16 +01:00
Karlis Susters
0554fad990
Config for L1D MarkovDouble
2023-04-25 13:05:01 +01:00
Karlis Susters
88fee870d0
Minor update to single-window-target
2023-04-22 10:00:50 +01:00