Commit Graph

773 Commits

Author SHA1 Message Date
c692932124 saving current changes 2026-04-10 03:41:30 +01:00
2d212949d9 added l1 tlb counters 2026-04-09 14:04:02 +01:00
26b025b556 enabled performance counters 2026-04-09 13:17:48 +01:00
056d4e0821 manual performance enable for dtlb 2026-04-09 12:50:48 +01:00
cea30a7be7 working hardware 2026-03-31 16:05:26 +01:00
fcf3390dc5 base testing 2026-03-21 18:39:01 +00:00
3fd9a03aa6 added handler for delta to handle delta being all 1's 2026-03-19 13:22:01 +00:00
6dcad25669 hardare implementation ready for testing 2026-03-18 12:41:06 +00:00
9606815dfa enabled performance counter in CSR register 2026-03-18 11:49:19 +00:00
a0b8d07155 added tlb bypass 2026-03-13 13:19:43 +00:00
6fa2e4a36e pass through pointer works 2026-03-12 18:11:55 +00:00
df2342139f saving current changes 2026-03-11 16:00:42 +00:00
e558b21723 saving current changes 2026-03-05 17:40:46 +00:00
5d3f4c7d6d added working cheri assembly 2026-03-05 15:45:05 +00:00
bf7bd16c53 adding current changes 2026-01-14 15:29:03 +00:00
dd3336a2e0 added test for adding pages 2026-01-06 14:55:05 +00:00
27aa16a7bf added todo 2025-12-24 10:48:04 +00:00
28abd5de95 test traces and log file for TLB check 2025-12-23 09:34:06 +00:00
Jessica Clarke
a8299cfc01 CCTypes: Fix misleading bit width for MESI/Msi enum
4 does not fit in 2 bits. This appears to not matter in practice, as a
spot check of the generated Verilog shows 3'dN for state-related
constants, but we should not be relying on this surprisingly lax
behaviour from bsc, and who knows if there are ways in which bsc does
end up using the as-written bit width somewhere.

Fixes: 6d4644ce73 ("Add tag-only state to MESI and interface with tagOnlyReq of tag controller")
2025-11-02 14:28:02 +00:00
Rishiyur S. Nikhil
8fc12c1dee Merge pull request #36 from h-chal/fix_rv64mi-p-access
fix: cache full virtual address for TLB micro-cache

(cherry picked from commit a79a4502c0e689058e6a2ffafd75b507c57ed3b9)
2025-10-31 18:07:27 +00:00
PeterRugg
ed011ac0fe Fix unseal check operand order 2025-10-01 14:48:46 +01:00
Jonathan Woodruff
e576a2cae7 Revert "Changes to make Prefetcher more deterministic, and also to report schedules."
This reverts commit f964e1dd2c.
2025-07-03 11:47:00 +01:00
Jonathan Woodruff
86c1c65261 Revert "Give commit redirect priority over branch/execute redirect."
This reverts commit 7bc17965b6.
2025-07-03 11:46:43 +01:00
Jonathan Woodruff
d8d7fc3d2b Revert "Improve scheduling of Reorder buffer. This includes an experimental relaxation of ordering."
This reverts commit 1873702c81.
2025-07-03 10:39:52 +01:00
Jonathan Woodruff
79556da485 Revert "Get this building, removing scheduling issue."
This reverts commit 5331162e3c.
2025-07-03 10:37:35 +01:00
Jonathan Woodruff
acbf07ddf0 Merge pull request #46 from CTSRD-CHERI/CHERI-benchmarks
Cheri benchmarks
2025-06-12 10:15:45 +01:00
Yuecheng-CAM
8af3b2e85a Revert "initial commit, test compiled and run sucessfully"
This reverts commit d025278195.
2025-06-01 18:17:24 +01:00
Yuecheng-CAM
d025278195 initial commit, test compiled and run sucessfully 2025-06-01 18:14:19 +01:00
Jonathan Woodruff
5331162e3c Get this building, removing scheduling issue. 2025-05-23 10:43:42 +01:00
Jonathan Woodruff
1873702c81 Improve scheduling of Reorder buffer. This includes an experimental relaxation of ordering. 2025-05-20 16:37:34 +01:00
Jonathan Woodruff
7bc17965b6 Give commit redirect priority over branch/execute redirect. 2025-05-20 16:34:45 +01:00
Jonathan Woodruff
f964e1dd2c Changes to make Prefetcher more deterministic, and also to report schedules. 2025-05-20 16:32:33 +01:00
Jonathan Woodruff
63f25fb0ff Enable > ways MSHRs by default. 2025-03-25 09:59:35 +00:00
Louis Hobson
769a6aec83 merge fix in L1Pipe 2025-03-25 09:23:08 +00:00
Louis Hobson
0c634fc019 Better print statements 2025-03-25 09:23:08 +00:00
Louis Hobson
04ee741ce2 Increase DCRqNum for test 2025-03-25 09:23:08 +00:00
Louis Hobson
a08a701805 Let cRqNum increase 2025-03-25 09:23:07 +00:00
Louis Hobson
c28c6c3670 Fix bad IBank merge 2025-03-25 09:23:07 +00:00
Louis Hobson
657e7e529b Turn verbose on 2025-03-25 09:23:07 +00:00
Louis Hobson
535d85ff35 Request queues in L1 cache 2025-03-25 09:23:06 +00:00
Franz Fuchs
6ebe612ff8 Fix Toooba to use addresses instead of offsets (#32)
* Fixed the Decoding of (C)JAL

* Use CSR addresses instead of offsets

* Fixed offsets correctly

* Fixed all offsets I could spot

* Fix use of modifyOffset function

* Corrected brAddrCalc function

* Preliminary fix for ddc offsetting

* Use setAddr instead of incOffset for DDC

* Deleted unnecessarily added lines in ALU pipeline

* Deleted white space

* Switched off verbosity for ALU pipeline

* Removed unnecessary print import
2025-02-05 11:06:07 +00:00
Franz Fuchs
5dea27457a Corrected setting of global bit when unsealing 2025-01-27 16:13:56 +00:00
Franz Fuchs
d629d678e3 Fixed unseal bug 2025-01-27 16:13:56 +00:00
Peter Rugg
8d0f985d99 Ban illegal shift immediate encodings 2025-01-23 12:39:46 +00:00
Peter Rugg
773d5c1107 Implement CSetHigh 2025-01-22 16:07:06 +00:00
Yuecheng-CAM
f71a3d61a9 implement C_GET_HIGH 2025-01-22 16:05:41 +00:00
Jonathan Woodruff
6ffde560b5 Some small timing optimistations in the direction predictor, and also a new optional smaller configuration for the tournament predictor. 2025-01-21 10:09:06 +00:00
Peter Rugg
6f30f2b703 Fix floating point illegal handling
As well as clarifying the logic in the main decode function (no
functionality change), this also fixes some cases that should be
illegal but weren't caught in the memory instructions.
2025-01-20 17:18:54 +00:00
Peter Rugg
3fd8f22f66 Fix many illegal instruction decode cases
The decode had a TODO to handle illegal instructions more precisely.
Some instructions in the new CHERI spec were not causing traps, and
seemed to wedge the core.
Switch to a new style where instructions are assumed illegal unless
explicitly declared legal.
This definitely at least covers many funct3 etc fields where only
some of the encodings are currently used.
2025-01-20 17:18:54 +00:00
Peter Rugg
0ae1d8a275 Clear compressed and uncompressed BTBs on mispred
This fixes a wedge in the frontend: the fetch stage could get stuck
in a loop, with the next address predictor deciding that the redirect
PC is a compressed instruction doing a close jump. On mispredict,
this would get retrained, but "mispedict" was denoted as an
untaken branch to PC+2. If unlucky, PC+2 could cross an alignment
boundary, causing the untaken branch to be interpreted as a long
branch, leaving an old competing entry in the compressed branch BTB,
which would then take priority.
Fix by always marking entries in both close and long BTBs when not
taken: to avoid hurting performance, this kind of update will not
insert into either BTB unless already present.
2025-01-20 16:50:40 +00:00