History log of /XiangShan/src/main/scala/xiangshan/mem/pipeline/HybridUnit.scala (Results 1 – 25 of 56)
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 ...


# 99ce5576 20-Feb-2025 cz4e <[email protected]>

style(Bundles): rewrite bundles with new style (#4274)


# 9e12e8ed 08-Feb-2025 cz4e <[email protected]>

style(Bundles): move bundles to Bundles.scala (#4247)


# 066ca249 27-Dec-2024 zhanglinjuan <[email protected]>

fix(MemBlock): support non-data error handling for cacheable region (#4093)

When DCache refill reponses with `denied` or `corrupt` asserted, the
loads belonging to the cache line should report load

fix(MemBlock): support non-data error handling for cacheable region (#4093)

When DCache refill reponses with `denied` or `corrupt` asserted, the
loads belonging to the cache line should report load access fault. This
is accomplished by including a `corrupt` bit in the DCache MSHR
forwarding and TileLink channel D forwarding logic and triggering
excepion when `corrupt` is detected.

Store non-data error that comes from DCache store miss is unable to
trigger a precise access fault trap but an imprecise bus-error
interrupt. And it will be included in another commit.

show more ...


# e04c5f64 19-Nov-2024 Yanqin Li <[email protected]>

feat(outstanding): support nc outstanding and remove mmio st outstanding


# bb76fc1b 10-Oct-2024 Yanqin Li <[email protected]>

fix(NC): fix a list of bugs of NC WMO access

* fix(PBMT): skip nc difftest and handle the conflict of nc and normal store

* fix(PBMT): nc st req is changed to a state machine execution

* fix(pbmt)

fix(NC): fix a list of bugs of NC WMO access

* fix(PBMT): skip nc difftest and handle the conflict of nc and normal store

* fix(PBMT): nc st req is changed to a state machine execution

* fix(pbmt): fix typo and control error of nc ld

* fix(pbmt): nc data assignment error

* fix(pbmt): nc should be used to wakeup

* fix(pbmt): remove wrong assert

* fix(pbmt): lots of bugs of nc st ld forward

* fix(pbmt): fix address align error

show more ...


# 189d8d00 29-Oct-2024 Anzo <[email protected]>

refactor(MemBlock): turn on `dontTouch` only when debugging (#3792)

This will result in the delivery of clean generated code and may remove
some of the pseudo-paths.


# 506ca2a3 11-Sep-2024 Anzooooo <[email protected]>

feat(Trigger): add vector memory access Trigger logic


# 94998b06 04-Sep-2024 happy-lx <[email protected]>

fix(Zicclsm, trigger): fix the problem of missing breakpoint exception (#3470)

+ @wissygh Refactored Trigger check code of Memblock.
+ Move Trigger address cmp from load S3 to S1. In addition, the

fix(Zicclsm, trigger): fix the problem of missing breakpoint exception (#3470)

+ @wissygh Refactored Trigger check code of Memblock.
+ Move Trigger address cmp from load S3 to S1. In addition, the
detection of trigger is moved from Memblock to LoadUnit.
- Once the breakpoint exception is detected, enter the exception Buffer
directly to handle the exception (previously, the
load instruction was executed first and then the exception was handled,
which would cause the mmio load to change the
status of the peripheral).
+ If Trigger address matches and the action is to enter debug mode, both
loadUnit and storeUnit will directly write this instruction back without
any execution (by setting this instruction as an exception).
+ Match trigger addresses for vector instructions in LoadUnit.
+ If both a misalign exception and a breakpoint occur, the breakpoint
exception will be processed first.

---------

Co-authored-by: chengguanghui <[email protected]>

show more ...


# 08b0bc30 03-Sep-2024 happy-lx <[email protected]>

timing(MemBlock): optimize MemBlock timing (#3467)

This PR optimizes the timing of MemBlock. Specific optimizations include
but are not limited to:
+ TLB use the redirect for the next cycle
+ Opt

timing(MemBlock): optimize MemBlock timing (#3467)

This PR optimizes the timing of MemBlock. Specific optimizations include
but are not limited to:
+ TLB use the redirect for the next cycle
+ Optimize VLSU feedback and redirect
+ Optimise ldCancel and writeback signal generation
+ Optimise TLB Query Vaddr/hlv/hlvx/valid etc
+ Delay MMIO Store writeback for 1 Cycle
+ Fix tlbNoQuery and pmp logic
+ Remove clock gating for s3_fast_rep
+ Remove wbq conflict check to LoadPipe/MainPipe
+ Remove Mux in dcache resp data
+ Optimise data generation logic of LoadUnit
+ Duplicate Register in LoadUnit for data writeback
+ Duplicate Register in loadPipe for missQueue enq
+ Add skid buffer in VLSU
+ Select data from metaArray at S1
+ Simplify the enqueuing logic of missQueue
+ Separately generate the ready logic of miss Queue
+ Relax the conditions valid for bankdataArray reads
+ Add Reg between Dcache Mainpipe with sms prefetcher
+ Optimise store exceptionBuffer pipeline

---------

Co-authored-by: weiding liu <[email protected]>
Co-authored-by: Charlie Liu <[email protected]>
Co-authored-by: good-circle <[email protected]>

show more ...


# 753d2ed8 02-Sep-2024 Yanqin Li <[email protected]>

refactor(LDU, HYU): optimized for low coupling (#3451)

The old version involved manually handling multiple load sources and
processing signals like `valid`, `ready`, and `select` one by one. Each

refactor(LDU, HYU): optimized for low coupling (#3451)

The old version involved manually handling multiple load sources and
processing signals like `valid`, `ready`, and `select` one by one. Each
time a new source was added, multiple lines of dependent code had to be
written. In the new version, `Vec` are used for unified handling, so
adding a new source only requires adding the corresponding `idx` and the
necessary dependent code.

show more ...


# 7e0f64b0 21-Aug-2024 Guanghui Cheng <[email protected]>

Trigger: refactor trigger information in pipeline. (#3403)


# 04b415db 02-Jul-2024 chengguanghui <[email protected]>

Trigger: add breakpoint exception for `STORE`

*prevent `STORE` from writing sbuffer when trigger fire.


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

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


# 5adc4829 16-Jun-2024 Yanqin Li <[email protected]>

memblock: add rest clockgate of reg (#3017)

Co-authored-by: cai luoshan <[email protected]>
Co-authored-by: Cai Luoshan <[email protected]>
Co-authored-by: good-circle <

memblock: add rest clockgate of reg (#3017)

Co-authored-by: cai luoshan <[email protected]>
Co-authored-by: Cai Luoshan <[email protected]>
Co-authored-by: good-circle <[email protected]>
Co-authored-by: Ma-YX <[email protected]>
Co-authored-by: Ma-YX <[email protected]>
Co-authored-by: CharlieLiu <[email protected]>

show more ...


# a4d1b2d1 13-May-2024 good-circle <[email protected]>

Merge branch 'master' into vlsu-merge-master-0504


# 20e09ab1 09-May-2024 happy-lx <[email protected]>

fix bug of stream (#2756)

Bug Description:
(1) Increase the way of Dcache to 8 to reduce the problem of running on the bwaves test caused by too many addresses mapped to the same set.
(2) Set ldu0

fix bug of stream (#2756)

Bug Description:
(1) Increase the way of Dcache to 8 to reduce the problem of running on the bwaves test caused by too many addresses mapped to the same set.
(2) Set ldu0 to a high-confidence prefetch request channel to increase the probability that the prefetch request will be accepted by Dcache's MSHR.
(3) Fix the issue that ldu sends an error ready back to the prefetcher to prevent the prefetch request from being dropped.
(4) Dont let the prefetch request access Dcache's DataArray.
(5) Add a extra port in Muti-level prefetch Queue to accept more pf req from stream&stride
(6) Larger Stream bit vector Array 16 -> 32 to cover muti Stream access pattern in Bwaves and GemsFDTD.

In addition, the decline in libquantum is a bit strange.

show more ...


# 25df626e 04-May-2024 good-circle <[email protected]>

Merge branch 'master' into vlsu-tmp-master


# 3952421b 24-Mar-2024 weiding liu <[email protected]>

rv64v: rewrite VLSU

uop split in V*SplitImp, flow merge in V*MergeBufferImp, uop issued out of order


# 13a87dc5 19-Apr-2024 Xiaokun-Pei <[email protected]>

LSU, RVH: fix the bug about the exception vaddr of guest page fault (#2898)

After new backend was merged into master, the guest page fault was
delete from fuConfig. That results in the wrong guest

LSU, RVH: fix the bug about the exception vaddr of guest page fault (#2898)

After new backend was merged into master, the guest page fault was
delete from fuConfig. That results in the wrong guest page fault
exception vaddr in CSR module. This commit adds gpf back to fuConfig

show more ...


# b28f986d 14-Apr-2024 Xuan Hu <[email protected]>

fix merge error in HybridUnit


# 0ffeff0d 07-Apr-2024 Xuan Hu <[email protected]>

Merge remote-tracking branch 'upstream/master' into tmp-master


# 00e6f2e2 27-Feb-2024 weiding liu <[email protected]>

rv64v: add suport of 128-bit vector elements load/store


# e6db8670 05-Mar-2024 chengguanghui <[email protected]>

Trigger: delete useless code about trigger


# a9715d9d 29-Feb-2024 sinsanction <[email protected]>

HybridUnit: disable ld1Cancel


123