#
1592abd1 |
| 08-Apr-2025 |
Yan Xu <[email protected]> |
feat: support inst lifetime trace (#4007)
PerfCCT(performance counter commit trace) is a Instruction-level granularity perfCounter like GEM5 How to use this: 1. Make with "WITH_CHISELDB=1" argument
feat: support inst lifetime trace (#4007)
PerfCCT(performance counter commit trace) is a Instruction-level granularity perfCounter like GEM5 How to use this: 1. Make with "WITH_CHISELDB=1" argument 2. Run with "--dump-db --dump-select-db lifetime", then get the database 3. Instruction lifetime visualize run "python3 scripts/perfcct.py "the-db-file-path" -p 1 -v | less" 4. Analysis script now is in XS-GEM5 repo, see https://github.com/OpenXiangShan/GEM5/blob/xs-dev/util/ClockAnalysis.py
How it works: 1. Allocate one unique tag "seqNum" like GEM5 for each instruction at fetch stage 2. Passing the "seqNum" in each pipeline 3. Recording perf data through the DPIC interface
show more ...
|
#
9cd76b21 |
| 17-Jan-2025 |
Zhaoyang You <[email protected]> |
fix(TopDown, frontend): remove frontBubble double count on redirect (#4196)
|
#
e836c770 |
| 16-Jan-2025 |
Zhaoyang You <[email protected]> |
feat(TopDown): add TopDown PMU Events (#4122)
This PR adds hardware synthesizable three-level categorized TopDown performance counters. Level-1: Retiring, Frontend Bound, Bad Speculation, Backend Bo
feat(TopDown): add TopDown PMU Events (#4122)
This PR adds hardware synthesizable three-level categorized TopDown performance counters. Level-1: Retiring, Frontend Bound, Bad Speculation, Backend Bound. Level-2: Fetch Latency Bound, Fetch Bandwidth Bound, Branch Missprediction, machine clears, Core Bound, Memory Bound. Leval-3: L1 Bound, L2 Bound, L3 Bound, Mem Bound, Store Bound.
show more ...
|
#
8b33cd30 |
| 13-Dec-2024 |
klin02 <[email protected]> |
feat(XSLog): move all XSLog outside WhenContext for collection
As data in WhenContext is not acessible in another module. To support XSLog collection, we move all XSLog and related signal outside Wh
feat(XSLog): move all XSLog outside WhenContext for collection
As data in WhenContext is not acessible in another module. To support XSLog collection, we move all XSLog and related signal outside WhenContext. For example, when(cond1){XSDebug(cond2, pable)} to XSDebug(cond1 && cond2, pable)
show more ...
|
#
fbdb359d |
| 08-Nov-2024 |
Muzi <[email protected]> |
fix(ICache): cancel prefetch when there is exception from backend (#3787)
|
#
cf7d6b7a |
| 25-Oct-2024 |
Muzi <[email protected]> |
style(Frontend): use scalafmt formatting frontend (#3370)
Format frontend according to the scalafmt file drafted in #3061.
|
#
948e8159 |
| 19-Sep-2024 |
Easton Man <[email protected]> |
feat(ifu,ibuf): add isLastInFtqEntry in IBuffer
|
#
c1b28b66 |
| 09-Sep-2024 |
Tang Haojin <[email protected]> |
fix(exception): check high address bits of jump target (#3003)
This commit contains high address bits checking of jump target. In previous implementation, we simply truncated the higher bits of jump
fix(exception): check high address bits of jump target (#3003)
This commit contains high address bits checking of jump target. In previous implementation, we simply truncated the higher bits of jump target address, which made it impossible to raise exceptions in such cases.
To resolve this problem, we detect the invalid jump target in jump/branch/CSR and, this information to frontend and store the complete invalid target in a single register in backend. The frontend will then raise an exception to backend and backend will also use the invalid target in the register to write xtval and mepc.
---------
Co-authored-by: Muzi <[email protected]> Co-authored-by: ngc7331 <[email protected]>
show more ...
|
#
27d10d0c |
| 27-Aug-2024 |
Easton Man <[email protected]> |
fix(frontend): update Front_Bubble pmu
ibuffer deq signal had changed recently, this commit update the pmu definition accordingly.
|
#
f5b900a2 |
| 26-Aug-2024 |
Xuan Hu <[email protected]> |
IBuffer: the priority of illegal instruction should be lower than fetch exception
* This commit fix the priorities between EX_II and other fetch exceptions in exception type transfer in IBuffer. * T
IBuffer: the priority of illegal instruction should be lower than fetch exception
* This commit fix the priorities between EX_II and other fetch exceptions in exception type transfer in IBuffer. * The fetch exceptions always have higher priority than EX_II. For example, when instruction access fault occurs, there will be not valid instruction.
show more ...
|
#
92c61038 |
| 16-Aug-2024 |
Xuan Hu <[email protected]> |
Frontend,Backend: add xxtvala support
* utils * Add checkInputWidth function in NamedUInt to check if the UInt arg passed in has the same width as it defined. * Frontend * Pass the unexpanded in
Frontend,Backend: add xxtvala support
* utils * Add checkInputWidth function in NamedUInt to check if the UInt arg passed in has the same width as it defined. * Frontend * Pass the unexpanded instruciton to IBuffer if the C extension 16 bits instruction is illegal. * No need to use bypass illBuf, since the origin 16 bits instruction will be passed in the ctrlflow bundle. * IBuffer * Merge exceptionType and crossPageIPFFix into 3bit field, which type is IBufferExceptionType. * IBufferExceptionType can hold illegal instruction exception. * Backend * CSROpType.ro is removed, since we can use rs1 and rd passed in imm field to distinguish CSRR and CSRW in CSR module. * Create TrapInstMod to store the trap instruction and handle its update.
show more ...
|
#
7e0f64b0 |
| 21-Aug-2024 |
Guanghui Cheng <[email protected]> |
Trigger: refactor trigger information in pipeline. (#3403)
|
#
88895b11 |
| 12-Aug-2024 |
xu_zh <[email protected]> |
Frontend: refactor exceptions to labels (#3354)
Combine `excp_pf`/`_gpf`/`_af` into `exception` to:
1. Reduce code redundancy and improve readability and maintainability
e.g. `!itlb_excp_af && !it
Frontend: refactor exceptions to labels (#3354)
Combine `excp_pf`/`_gpf`/`_af` into `exception` to:
1. Reduce code redundancy and improve readability and maintainability
e.g. `!itlb_excp_af && !itlb_excp_pf && !itlb_excp_gpf && !pmp_excp_af
&& !pmp_excp_mmio`
-> `exception === ExcedptionType.none && !mmio`
2. Select exceptions as they are generated (e.g. from iTLB/PMP, or
data/meta array ECC check) on a priority basis (e.g. iTLB over PMP),
ensuring that there is at most one exception in the pipeline (and on the
ports of iCache -> IFU)
3. Save a little bit of pipeline/WayLookup registers (i.e. 3 bit
`excp_pf`/`_gpf`/`_af` -> 2bit `exception`)
show more ...
|
#
a5546049 |
| 05-Aug-2024 |
xiaofeibao <[email protected]> |
IBuffer: change read ptr logic for fix timing, change outputEntries logic for better performance
|
#
8506cfc0 |
| 04-Aug-2024 |
xiaofeibao <[email protected]> |
Decode and Ibuffer: change decodeCanAccept and bypass logic for fix timing
|
#
6b46af8d |
| 28-Jun-2024 |
Muzi <[email protected]> |
refactor: change exception encoding from one-hot to label (#3104)
|
#
e778bb8a |
| 17-May-2024 |
xiaofeibao-xjtu <[email protected]> |
IBuffer: fix a bypass bug when decode stage can not accept all the bypass insts (#2985)
|
#
bad60841 |
| 10-May-2024 |
Xiaokun-Pei <[email protected]> |
IFU & GPAMem, RVH: fix the bug about getting gpa (#2960)
1. Delete some useless codes about gpaddr.
2. fix the bugs about wrong gpa was writen in mtval2 or htval when guest
page fault occured
|
#
78c76c74 |
| 27-Apr-2024 |
Tang Haojin <[email protected]> |
IBuffer: consider valid signal in XSError (#2921)
|
#
3f2dd678 |
| 12-Apr-2024 |
Xuan Hu <[email protected]> |
Merge remote-tracking branch 'upstream/master' into tmp-master
|
#
e25e4d90 |
| 11-Apr-2024 |
Xuan Hu <[email protected]> |
Merge remote-tracking branch 'upstream/master' into tmp-master
TODO: add gpaddr data path from frontend to backend
|
#
9afa8a47 |
| 12-Apr-2024 |
Tang Haojin <[email protected]> |
Ibuffer, PreDecode: consider valids for assertions (#2871)
|
#
d0de7e4a |
| 26-Aug-2023 |
peixiaokun <[email protected]> |
RVH: finish the desigh of H extention
|
#
ac3c9508 |
| 25-Mar-2024 |
Xuan Hu <[email protected]> |
IBuffer: fix the update of deqPtrNext and deqBankPtrVecNext
* The update of deqPtrNext and deqBankPtrVecNext need not decodeCanAccept, since decode.io.in.ready may from complexDecoder
|
#
05cc2a4e |
| 18-Mar-2024 |
Xuan Hu <[email protected]> |
Decode,IBuffer: fix circle dependency deadlock
* Add a new field `canAccept` passed from decode to notice `IBuffer` that it can deq new instructions. * IBuffer.io.out(i).ready depends on IBuffer.io.
Decode,IBuffer: fix circle dependency deadlock
* Add a new field `canAccept` passed from decode to notice `IBuffer` that it can deq new instructions. * IBuffer.io.out(i).ready depends on IBuffer.io.out(i).ready. * Since decode promises accepting insts in order, priority encoder is used to simplify the accumulation of `numDeq`. * `numDeq` records the number of deq insts from ibuffer, not from bypass. And it is used to update deqPtr and corresponding deqBankPtr. * Guard numFromFetch calculation with io.in.valid to avoid updating enqPtr when input signal is invalid. * Todo: check ibuffer timing, critical path maybe ibuffer.io.out.valid -> ibuffer.io.out.ready -> ibuffer.validEntries -> nextValidEntries -> allowEnq
show more ...
|