Peter Rugg
7a1d234e40
Merge branch 'ifetch-cleanup' into CHERI
2021-03-02 11:57:31 +00:00
Jessica Clarke
e1060ac43d
TlbTypes: Fix exception code reported for some store page fault conditions
...
The mode and well-formedness checks above also set fault to True, so we
end up with cases where a DataStore request uses the default load page
fault exception code. Instead, unconditionally set excStorePageFault for
DataStore, and conditionally override to excStoreCapPageFault when
appropriate, being particularly careful to ensure earlier exception
causes still take precedence.
Also restructure the InstFetch and DataLoad cases to match how DataStore
needs to look.
This fixes the rv64si-p-dirty ISA test, currently the sole failure.
2021-02-28 03:51:05 +00:00
Jessica Clarke
c7bd60b47e
CSRs: Don't guard HPM CSRs with PERFORMANCE_MONITORING
...
They always exist, just WARL so can be hard-wired.
2021-02-28 01:11:39 +00:00
Jessica Clarke
df430e22c8
Exec: Enable non-ASR access to TIME
...
This is needed for benchmarking.
2021-02-24 04:17:42 +00:00
Jessica Clarke
7776bac8b5
Exec: Enable non-ASR access to HPMCOUNTERn
...
These are now defined, and needed for benchmarking.
2021-02-23 20:35:18 +00:00
Peter Rugg
5b6e8d88f6
Add CSetEqualExact
2021-02-22 17:44:36 +00:00
Peter Rugg
e8487e2a1c
Revert "Provide opt-in wedge debugging info"
...
This reverts commit 68d3bd484e .
2021-01-19 22:00:16 +00:00
Peter Rugg
20f1ddf587
Revert "Plumb through a lot more ROB debug state"
...
This reverts commit 0f65994955 .
2021-01-19 21:40:59 +00:00
jon
c515fb4518
Remove commented-out code.
...
Enable building with open-source BSC.
Resolve a couple issues brought up by Jess.
Remove a stray space (as noted by Jess).
2021-01-14 17:10:04 +00:00
jon
fc968c867f
PC compression scheme for the instruction fetch pipeline.
...
Store the upper bits of the PC in a table and only handle indices and
lsbs in the main pipeline.
This eliminates redundancy between PCs and predicted PCs, and even more
between fragments of instructions.
2021-01-14 11:41:11 +00:00
jon
0d93ed3ad2
Merge branch 'CHERI' into ifetch-cleanup
2021-01-13 15:21:20 +00:00
Jonathan Woodruff
92ca72a6e2
Fix build error by providing default.
2020-12-18 17:55:18 +00:00
Jonathan Woodruff
84d60d03b1
Merge pull request #6 from nwf/capdirty
...
CHERI ISAv8 CapDirty fault priority fix
2020-12-18 16:48:56 +00:00
jon
f86d4d9dc0
Add counter support to ITLB.
2020-12-17 17:57:43 +00:00
jon
4ddcaff497
Support for data TLB counters.
2020-12-17 16:52:45 +00:00
jon
bab989d6d2
Support for stat counters from the tag controller.
...
The order of the events is very not tested; 50% chance of being correct.
2020-12-17 12:38:52 +00:00
jon
fa9931b64c
Implement a couple Cache counters in the LLCache.
...
These aren't too useful... We don't seem to have normal counters for
loads and stores in the baseline.
2020-12-15 18:16:21 +00:00
jon
b6a397df52
Support for ICache stat counters.
2020-12-15 14:49:16 +00:00
jon
73d25bf8f5
Support performance counters (hopefully) in the caches. The DCache
...
should be fully wired up.
2020-12-14 18:10:06 +00:00
Jessica Clarke
f6569e2d14
Actually do the intended fix, not just inverting the variable
2020-12-14 10:51:57 +00:00
Jessica Clarke
295b878836
Fix negated CYCLE/INSTRET logic for ASR and make less confusing
2020-12-14 10:50:23 +00:00
jon
19a07882ab
CSome style cleanups from chat with Alexandre.
2020-12-11 16:44:59 +00:00
jon
1bae03da9c
Implement all the remaining core (not cache) memory stat counters.
2020-12-11 15:48:10 +00:00
jon
d6243be1dd
Add a few more core performance counters.
2020-12-04 18:34:56 +00:00
jon
f42c3f3577
Merge branch 'cheri-perfmon' into CHERI
2020-12-04 16:29:51 +00:00
jon
4fcc18635a
Supporting most architectural counters, wiring them out from
...
CommitStage.
Also support multiple events per cycle.
2020-12-02 15:28:41 +00:00
jon
e99e1e6274
Update CSR names to fullish standard names.
2020-12-02 10:18:25 +00:00
jon
259d34618c
A design that actually passes one performance monitor trace from
...
TestRig. The example counted redirections, which happend to match
between Flute and Toooba for this example.
2020-12-01 18:02:11 +00:00
Alexandre Joannou
98a9c076cd
Update BlueStuff API and Bump BlueStuff and TagController
2020-12-01 14:22:12 +00:00
Nathaniel Filardo
6e4c378d4d
CHERI ISAv8 CapDirty fault priority fix
...
Raise a store page fault if the PTE is missing R or W, even if the store is a
cap store and the PTE is also missing CW, as per the sail spec.
Co-authored-by: Jessica Clarke <jrtc27@jrtc27.com >
2020-11-06 19:15:47 +00:00
Nathaniel Filardo
d4308f0f03
Slightly rework CHERI PTE to add CapDirty flag
...
Permissions are consistently checked before dirty flags, now, too.
2020-09-30 15:40:50 +01:00
jon
1568fcf485
Enable larger than 2x superscalar by using explicit ports into the BTB.
...
(Previously we ran into the limit of ports on the regFiles holding state
in the BTB. This uses a vector of regFiles with a vector of interfaces,
which is logically the same but might produce multiple copies of state.)
2020-09-16 11:42:19 +01:00
jon
96afb0a7f5
FIFO optimisation both for build time (and possibly condition
...
complexity?) and for throughput.
2020-08-13 17:33:46 +01:00
jon
00ffdd7228
Enable to build with latest BSC compiler.
2020-08-11 14:46:28 +01:00
Peter Rugg
3132f9f55f
Trap when writing PCC, rather than silently ignoring
2020-07-28 12:57:13 +01:00
jon
1f968b0c07
2-byte aligned instruction memory to simplify compressed instruction
...
fetch.
2020-07-24 12:38:37 +01:00
Peter Rugg
ecce475b97
Merge branch 'mem_perm_checks' into CHERI
2020-07-23 16:53:14 +01:00
Peter Rugg
27082ee2a9
Report writes to PCC as illegal instruction, not ASR violation
2020-07-23 15:40:28 +01:00
Peter Rugg
e8aa873c2e
Prevent 'insufficient type info' warning
2020-07-23 11:18:31 +01:00
Peter Rugg
a6b40e946b
Prevent using CCSeal to 'seal over' other types
2020-07-23 11:18:07 +01:00
Peter Rugg
c693462f6b
Add tag-clearing due to cap load perm and PTE bits
2020-07-22 15:54:49 +01:00
Peter Rugg
0040b05ada
Add page table cap store checking
2020-07-21 16:02:37 +01:00
Jessica Clarke
0516db5e8d
Bump BSV-RVFI-DII and refactor to support new parcel-based interface
...
This means FetchStage should now behave in the same way with RVFI-DII as
with an I-Cache. A Dii_Parcel_Id is fed alongside PC everywhere relevant
and follows very similar logic, but, importantly it's just extra state
on the side, it doesn't affect what we do with the branch predictor and
parcel combining/instruction decoding logic.
2020-07-21 14:36:36 +01:00
Peter Rugg
a74596c956
Fix CCall being impossible
...
The cap to be checked (rs1) was being overwritten with the unsealed jump
target before the type was checked
2020-07-16 14:06:26 +01:00
Jessica Clarke
7eff218288
Replace enums-for-constants with structs wrapping a plain Bit#(n)
...
BSC does not play nicely with enums whose labels do not start at 0 and
increase linearly. Instead, in such cases, it generates a whole bunch of
conditions to "legalise" any read values, which causes an explosion of
logic in places like the ROB. Thus, use this ugly (but still typed)
alternative that, other than naming conventions enforced by BSC, looks
almost the same as an enum.
2020-07-15 03:16:24 +01:00
Peter Rugg
b44a912756
Don't require ASR to read PCC
...
The dInst.scr field was accidentally left populated in this case,
causing the check to occur
2020-07-14 22:41:51 +01:00
Jessica Clarke
6356d5f8a1
Drop check against whether the ROB row already has a trap
...
The only other thing setting this is enq, but RenameStage marks
already-trapping instuctions as Executed so they should never go to the
ALU.
2020-07-14 16:46:29 +01:00
Jessica Clarke
f2d9c78824
Drop unused exception parameter on FPU ROB ports
...
This gives traceBundle its own set of ports. Also fix the nonsensical
calculations for those Ehr ports; the number of FPUs should not be
calculated as ALUs/2!
2020-07-14 16:37:59 +01:00
Jessica Clarke
0b7d635cbf
Drop unused store_data/store_data_BE arguments when TV is disabled
2020-07-14 16:23:10 +01:00
Jessica Clarke
5a42b0102a
Turn pc back into a Reg
...
This is from before we fed bounds all the way back to the BTB and RAS.
We no longer need this and can go back to what upstream does.
2020-07-14 16:22:52 +01:00