History log of /XiangShan/src/main/scala/xiangshan/backend/rob/Rob.scala (Results 1 – 25 of 264)
Revision Date Author Comments
# 00c6a8aa 25-Apr-2025 Guanghui Cheng <[email protected]>

fix(criticalError): Stop counting `wfi_cycles` when disable `wfiResume` (#4623)

* The precondition for `commitStuck_overflow` to trigger a critical
error is that `WFI` resumes after 1M(2^20) cycles.


# c9c4960f 10-Apr-2025 Ziyue Zhang <[email protected]>

fix(decode): block the vector decode until vsetvl has committed (#4535)


# 4ec1f462 09-Apr-2025 cz4e <[email protected]>

timing(StoreMisalignBuffer): fix misalign buffer enq timing (#4493)

* a misalign store will enqueue misalign buffer at s1, and revoke if it
needs at s2


# 736dee70 09-Apr-2025 NewPaulWalker <[email protected]>

fix(Svinval): remove assert related to Svinval extension in ROB (#4519)

The RISC-V manual says that:
> In typical usage, software will invalidate a range of virtual
> addresses in the addresstransla

fix(Svinval): remove assert related to Svinval extension in ROB (#4519)

The RISC-V manual says that:
> In typical usage, software will invalidate a range of virtual
> addresses in the addresstranslation caches by executing an
> SFENCE.W.INVAL instruction, executing a series of SINVAL.VMA,
> HINVAL.VVMA, or HINVAL.GVMA instructions to the addresses (and
> optionally ASIDs or VMIDs) in question, and then executing an
> SFENCE.INVAL.IR instruction.

Some additional information was obtained through
https://github.com/riscv/riscv-isa-manual/issues/1936

However, other instructions may still appear between SFENCE.W.INVAL and
SFENCE.INVAL.IR.
> Translation of any memory accesses during that sequence are subject to
> the usual uncertainty as to which translation (among old and new ones)
> is used.

Moreover, these memory accesses are not entirely unpredictable either.
> Each subsequent memory access will unpredictably use either the old
> translation or the new translation. Other behaviors can't occur.

show more ...


# 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 ...


# 4c0658ae 04-Apr-2025 Tang Haojin <[email protected]>

feat(backend): make wfi timeout configurable (#4491)


# ef7a7f80 18-Mar-2025 Tang Haojin <[email protected]>

feat: mark topdown, cycle and instr as critical perf counters (#4431)


# 08373300 07-Mar-2025 Anzo <[email protected]>

feat(Difftest): add multi-core vector load check (#4361)

Currently, we implement the multi core vector load check in difftest.
We modified difftest and NEMU and added related content in XiangShan.


# 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 ...


# 15fbca49 09-Jan-2025 Zhaoyang You <[email protected]>

fix(rob): fix needflush when rob has redirect (#4153)

* This PR fix the boundary case where rob has redirect.
* The `needflush` signal should be `true` when rob flushes all entries.

Co-authored-by:

fix(rob): fix needflush when rob has redirect (#4153)

* This PR fix the boundary case where rob has redirect.
* The `needflush` signal should be `true` when rob flushes all entries.

Co-authored-by: xiaofeibao-xjtu <[email protected]>

show more ...


# 02addab3 23-Dec-2024 xiaofeibao <[email protected]>

fix(rob): when deq is vls exception, wait 2 cycle for execeptionGen out


# 39112cda 23-Dec-2024 xiaofeibao <[email protected]>

timing(rob): remove bolck logic deqHasFlushPipe because deqNeedFlush includes deqHasFlushPipe


# 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 ...


# 22b25a0e 20-Dec-2024 Guanghui Cheng <[email protected]>

timing(Rob): modify selection from robentries to robDeqGroup (#4067)


# 2e4f14ff 18-Dec-2024 xiaofeibao <[email protected]>

fix(rob): fix bug of redirect when all robEntries need flush


# 5540bdc7 05-Dec-2024 xiaofeibao <[email protected]>

fix(rob): fix bug of canAcceptForDispatch


# 35b3b30b 04-Dec-2024 xiaofeibao <[email protected]>

timing(rob): enqRob pipe for better timing


# 3019c601 28-Nov-2024 xiaofeibao <[email protected]>

timing(backend): pipe robCommits for better timing and area


# 0a7d1d5c 22-Nov-2024 xiaofeibao <[email protected]>

feat(backend): NewDispatch


# 8cbf000b 09-Dec-2024 chengguanghui <[email protected]>

fix(CSR, Trace): remove reg `isXRetFlag` in CSR

* remove useless reg `isXRetFlag` in CSR.scala
* fix update of itype for xret instruction


# c308d936 21-Nov-2024 chengguanghui <[email protected]>

fix(trace): remove traceTrap & tracePriv from trace pipeline


# b720b0cd 30-Oct-2024 chengguanghui <[email protected]>

fix(trace): fix `tracePipe` in pipeline

* fix itype for branch after writeback
* update itype to DeqGroup when branch instruction commit at next cycle after writeback.
* fix ftqoffset in commitIn

fix(trace): fix `tracePipe` in pipeline

* fix itype for branch after writeback
* update itype to DeqGroup when branch instruction commit at next cycle after writeback.
* fix ftqoffset in commitInfo for fuse instruction
* fix `iretire` in rename

show more ...


# 725e8ddc 19-Sep-2024 chengguanghui <[email protected]>

feat(trace): add TraceCoreInterface in top.


# 4907ec88 19-Sep-2024 chengguanghui <[email protected]>

feat(trace): add trace buffer.


# 12861ac7 21-Nov-2024 linzhida <[email protected]>

feat(Backend): add support for Zacas extension

misc: remove assert temporarily


1234567891011