History log of /XiangShan/src/main/scala/xiangshan/backend/datapath/DataPath.scala (Results 1 – 25 of 103)
Revision Date Author Comments
# 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 ...


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


# 748214a1 20-Dec-2024 xiaofeibao <[email protected]>

area(dataPath): set fpRegfile and vecRegfile's splictNum to 4


# 33d0849e 15-Dec-2024 xiaofeibao <[email protected]>

area(intRegFile): change intRegFile splitNum to 4


# 771a6ec2 09-Dec-2024 xiaofeibao <[email protected]>

timing(intRegfile): use IntRegFileSplit for better timing


# c37914a4 25-Nov-2024 xiaofeibao <[email protected]>

area(Backend): merge pcMem and pcTargetMem


# f57d73d6 16-Dec-2024 sinsanction <[email protected]>

area(IssueQueue): encode exuOH as UInt to reduce storage (#4033)


# e43bb916 20-Sep-2024 Xuan Hu <[email protected]>

feat(VecLoad): add VecLoadExcp module to handle merging old/new data

* When NF not 0, the register indices are arranged group by group. But in exception handle progress, all registers needed to merg

feat(VecLoad): add VecLoadExcp module to handle merging old/new data

* When NF not 0, the register indices are arranged group by group. But in exception handle progress, all registers needed to merge will be handled first, and then the registers needed to move will be handled later.
* The need merge vdIdx can be until 8, so 4 bits reg is needed.
* If the instruction is indexed, the eew of vd is sew from vtype. Otherwise, the eew of vd is encoded in instruction.
* Use ivemulNoLessThanM1 and dvemulNoLessThanM1 to produce vemul_i_d to avoid either demul or iemul is less than M1.
* For whole register load, need handle NF(nf + 1) dest regs.
* Use data EMUL to calculate number of dest reg.
* GetE8OffsetInVreg will return the n-th 8bit which idx mapped to.
* Since xs will flush pipe, when vstart is not 0 and execute vector mem inst, the value of vstart in CSR is the
first element of this vector instruction. When exception occurs, the vstart in writeback bundle is the new one,
So writebacked vstart should never be used as the beginning of vector mem operation.
* Non-seg indexed load use non-sequential vd.
* When "index emul" / "data emul" equals 2,
the old vd is located in vuopidx 0, 2, 4, 6,
the new vd is located in vuopidx 1, 3, 5, 7.
* Make rename's input not ready until VecExcpMod not busy.
* Delay trap passed to difftest until VecExcpMod not busy.
* Rab commit to VecExcpMod as it commit to Rat, and select real load reg maps in VecExcpMod.
* Use isDstMask to distinguish vlm and other vle.
* When isWhole, vd regs are sequential.

show more ...


# 63d67ef3 14-Sep-2024 Tang Haojin <[email protected]>

build: enable always-basic-diff for make verilog (#3574)

This commit turns on basic difftest features again, no matter it's for
simulation or physical design. This commit aims at allowing designs f

build: enable always-basic-diff for make verilog (#3574)

This commit turns on basic difftest features again, no matter it's for
simulation or physical design. This commit aims at allowing designs for
physical design to be verified.

show more ...


# 42b6cdf9 05-Sep-2024 sinsanction <[email protected]>

timing(Backend): add OG2 stage for vector mem (#3482)


# e4c00b12 07-Aug-2024 xiaofeibao <[email protected]>

DataPath: to iq ready remove og1cancel and og0 ldcancel for better timing and performance


# 6f9eb082 19-Aug-2024 xiaofeibao-xjtu <[email protected]>

DataPath: write v0Regfile and vlRegfile add a pipe for fix timing (#3387)


# 60052a3f 27-Jul-2024 xiaofeibao <[email protected]>

Regfile: vl reset to 0, add instance name and module name for regfile


# 102ba843 10-Jul-2024 sinsanction <[email protected]>

BypassNetwork: add source data from RegCache


# 710b9efa 28-Jun-2024 sinsanction <[email protected]>

DataPath: add RegCache


# be9ff987 19-Jul-2024 sinsanction <[email protected]>

Backend: optimize og0 cancel signals (#3235)

* use Vec[Bool] instead of UInt for og0Cancel
* only wakeup source Exus containing 0-latency function unit should send
og0Cancel


# 37080bd8 17-Jul-2024 sinsanction <[email protected]>

DataPath, BusyTable: remove unnecessary cancel signals (#3218)

* only non-load wakeup sources exu should send og0cancel
* og0cancel only works on the wakeup of 0 latency instructions


# 28ac1c16 12-Jul-2024 xiaofeibao-xjtu <[email protected]>

Backend & MemBlock: feedback use lqidx instead of robidx for fix timing and fix bug of vld feedback (#3189)


# 38f78b5d 10-Jul-2024 xiaofeibao-xjtu <[email protected]>

Backend&MemBlock: feedback use sqidx instead of robidx and uopidx for fix timing (#3172)


# 1e2f0986 09-Jul-2024 xiaofeibao-xjtu <[email protected]>

DataPath: s1_data only gated by s0.valid for fix timing (#3163)


# b3feafe2 31-May-2024 sinsanction <[email protected]>

DataPath: fix connection of RfRdata


# d1e473c9 30-May-2024 xiaofeibao <[email protected]>

Rename: fix debug_v0_rat debug_vl_rat connection


# dbe071d2 30-May-2024 xiaofeibao <[email protected]>

RegFile: change VlLogicRegs to 1


# f8e432b7 30-May-2024 xiaofeibao <[email protected]>

DataSource: add readV0 for vec src0/1/2


# fbe46a0a 29-May-2024 xiaofeibao <[email protected]>

DataConfig: remove VfRegSrcDataSet


12345