#
51f9a957 |
| 21-Feb-2025 |
cz4e <[email protected]> |
style(LoadPipe): use `miss_req.bits.cancel` instead of `mq_enq_cancel` (#4296)
|
#
6d8be4c6 |
| 16-Feb-2025 |
CharlieLiu <[email protected]> |
fix(DCache): pass `amo_cmp` to MSHR when cas req miss (#4272)
|
#
1abade56 |
| 22-Jan-2025 |
Anzo <[email protected]> |
fix(LSU): fix cbo instruction exception handling logic (#4215)
|
#
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 ...
|
#
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 ...
|
#
cb900825 |
| 25-Dec-2024 |
周耀阳 (Zhou Yaoyang) <[email protected]> |
feat(XSPerf): count histogram of larger Ld-to-use latency (#4083)
- Latency of < 100 is not enough for performance analysis - To reduce outputs, use larger bucket (30 per bucket)
|
#
38c29594 |
| 26-Nov-2024 |
zhanglinjuan <[email protected]> |
feat(MemBlock): add support for Zacas extension
fix(AtomicsUnit, MemBlock): fix loss of multiple stds
In the previous design, AtomicsUnit receives stds from StdExeUnit and arbitrate at most one std
feat(MemBlock): add support for Zacas extension
fix(AtomicsUnit, MemBlock): fix loss of multiple stds
In the previous design, AtomicsUnit receives stds from StdExeUnit and arbitrate at most one std uop for one cycle. This works fine on most of the AMOs and LR/SC because they require only one std uop. However AMOCAS requires at least two std uops, which may be issued from two separate issue queues at the same time, leading to the loss of std uops.
This commit fixes this by taking all the outputs of the StdExeUnits into account with arbitration logics.
fix(AtomicsUnit): DCache req can only be sent at `s_cache_req`
fix(AtomicsUnit, difftest): fix difftest io for atomic events
fix(MainPipe): fix precedence of `&` and `=/=` operator
fix(MainPipe): AMOCAS should not wait for AMOALU
fix(MemBlock): remove unnecessary assertion
fix(MainPipe): only CAS instruction can assert `s3_cas_fail`
fix(AtomicsUnit): fix bug in data select logic
submodule(difftest): bump difftest
show more ...
|
#
dc4fac13 |
| 02-Dec-2024 |
CharlieLiu <[email protected]> |
feat(DCache): merge CMO requests into DCache TL-A Channel (#3968)
* remove previous cmo datapath in memblock.
* add datapath for cmo requests between lsq and dcache.
* add new CMOUnit in MissQueue
feat(DCache): merge CMO requests into DCache TL-A Channel (#3968)
* remove previous cmo datapath in memblock.
* add datapath for cmo requests between lsq and dcache.
* add new CMOUnit in MissQueue.
* bump rocket-chip & coupledL2.
show more ...
|
#
c49ebec8 |
| 18-Nov-2024 |
Haoyuan Feng <[email protected]> |
docs: add acknowledgements (#3861)
|
#
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 ...
|
#
038af8f0 |
| 31-Jul-2024 |
Charlie Liu <[email protected]> |
DCache: Block conflicting replacement for whole mshr lifecycle
|
#
7ecd6591 |
| 30-Jul-2024 |
Charlie Liu <[email protected]> |
DCache: Replay refill_req when the evict_addr matching a valid mshr
|
#
5003e6f8 |
| 23-Jul-2024 |
Huijin Li <[email protected]> |
LSQ: optimize static clock gating coverage and fix x_value in vcs (#3176)
optimize LSQ static clock gating coverage, fix x_value in vcs
|
#
1b353fff |
| 21-Jul-2024 |
Charlie Liu <[email protected]> |
DCache: Fix valid signal of refill_info and error_flag_write
|
#
1461d8f8 |
| 12-Jul-2024 |
CharlieLiu <[email protected]> |
DCache: Block the writeback req when the addr matching a valid req in mshr (#3179)
Bug:
- When two req with different addr x and y enter MissQueue together, req
y is real miss req, while req x is
DCache: Block the writeback req when the addr matching a valid req in mshr (#3179)
Bug:
- When two req with different addr x and y enter MissQueue together, req
y is real miss req, while req x is **AcquireBlock BtoT**. Req y receive
the resp from L2 first and complete the refill operation by replacing
the data block with addr x (decided by plru algorithm). MainPipe will
release the data block with addr in writeback queue through req
**Release BtoN** to L2. Addr x receive GrantData with permission toT at
last.
- From the view of L2, the req sequence of addr x is: Acquire BtoT ->
GrantData toT -> Release BtoN, which is abnormal.
Fix: When a valid req reaches wbq, check if there is any valid mshr with
same block_addr. If a mshr is found, block current wbq_req.
show more ...
|
#
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 ...
|
#
1b0de924 |
| 14-Jun-2024 |
CharlieLiu <[email protected]> |
DCache: Move L2 refill error signal to refill_info (#3063)
Error signal for L2 refill request is generated when mem_grant but sent
to MainPipe in mainpipe_req with l2_hint, which is not correct.
M
DCache: Move L2 refill error signal to refill_info (#3063)
Error signal for L2 refill request is generated when mem_grant but sent
to MainPipe in mainpipe_req with l2_hint, which is not correct.
Move error signal to refill_info now.
show more ...
|
#
05d833a8 |
| 13-May-2024 |
Huijin Li <[email protected]> |
MissQueue: fix bug: 'isKeyword' update when miss req merge (#2972)
MissQueue:fix bug: 'isKeyword' update when miss req merge
|
#
c686adcd |
| 10-May-2024 |
Yinan Xu <[email protected]> |
Bump utility and disable ConstantIn by default (#2955)
* use BigInt for initValue of Constantin.createRecord
* use WITH_CONSTANTIN=1 to enable the ConstantIn plugin
|
#
73c515a4 |
| 30-Apr-2024 |
CharlieLiu <[email protected]> |
DCache: Fix X propagation problem (#2933)
|
#
ffd3154d |
| 25-Apr-2024 |
CharlieLiu <[email protected]> |
DCache: New feature evict on refill (#2919)
- Remove module RefillPipe, move DCache replacer access/update to
MainPipe.
- Using l2_hint as an early wake-up signal for MSHR.
---------
Co-auth
DCache: New feature evict on refill (#2919)
- Remove module RefillPipe, move DCache replacer access/update to
MainPipe.
- Using l2_hint as an early wake-up signal for MSHR.
---------
Co-authored-by: YukunXue <[email protected]>
Co-authored-by: Tang Haojin <[email protected]>
Co-authored-by: ssszwic <[email protected]>
Co-authored-by: Kunlin You <[email protected]>
show more ...
|
#
58a9a40d |
| 12-Apr-2024 |
Tang Haojin <[email protected]> |
MemBlock: consider valids for assertions (#2870)
|
#
f57f7f2a |
| 10-Apr-2024 |
Yangyu Chen <[email protected]> |
Configs: correct MaxHartIdBits (#2838)
Currently, many different lengths of HartId in Xiangshan, making it hard to
configure it to scale more than 16 cores since we have set 4bits somewhere.
This
Configs: correct MaxHartIdBits (#2838)
Currently, many different lengths of HartId in Xiangshan, making it hard to
configure it to scale more than 16 cores since we have set 4bits somewhere.
This commit corrects MaxHartIdBits in config and uses MaxHartIDBits where
it needs to get this solved.
Signed-off-by: Yangyu Chen <[email protected]>
show more ...
|
#
45f43e6e |
| 19-Jan-2024 |
Tang Haojin <[email protected]> |
chore: bump chisel 6.0.0 (#2654)
BREAKING CHANGE: `SimTop.v` / `XSTop.v` now generated in `build/rtl`
|
#
d2945707 |
| 26-Dec-2023 |
Huijin Li <[email protected]> |
Feature keyword priority (#2562)
* "isKeyword" priority & debug( modify load fwd mshr data):
*Bundle: add "isKeyword" in L2ToL1Hint
*XSCore/XSTile/MemBlock: modify l2_hint assignment,(
Feature keyword priority (#2562)
* "isKeyword" priority & debug( modify load fwd mshr data):
*Bundle: add "isKeyword" in L2ToL1Hint
*XSCore/XSTile/MemBlock: modify l2_hint assignment,(add isKeyword)
*DCacheWrapper: add lqidx for compare age, add IsKeywordField
*LoadPipe: add lqIdx for miss_req
*MissQueue: add "isKeyword" logic for miss entries, MissReqPipeReg
transfer "isKeyword" from L1 to L2 by mem_acquire
modify refill_to_ldq 's addr/data logic depending on
"isKeyword"
modify load forward data from mshr logic
*LoadQueueReplay: modify replay order by l2_hint
*LoadUnit: add lqIdx in dcache_req
* modify iskeyword 'user' to 'echo', load forward data from tlbundle D
* L2TOP: modify l2_hint type, add l2_hint_iskeyword
* LRQ: add l2_hint xsperf counter
* modify merge conflict:
loadunit: name changed so_uop --> so_select_src.uop
* DCacheWrapper: modify tl_channel_D 2 beats both can fwd data
* dump coupledL2 : Feature favor l1 d keyword priority (#87)
* Fix fma rm (#2586)
* bump fudian
* fma: fix bug of fadd's rm
* FMA: fix bug of fadd's rm
* dump : coupledL2 branch:feature-favor-L1D-keyword-priority
* dump coupledL2
---------
Co-authored-by: xiaofeibao-xjtu <[email protected]>
show more ...
|