History log of /XiangShan/src/main/scala/xiangshan/mem/prefetch/BasePrefecher.scala (Results 1 – 19 of 19)
Revision Date Author Comments
# 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)


# 881e32f5 22-Jan-2025 Zifei Zhang <[email protected]>

submodule(CoupledL2, OpenLLC): bump L2 and LLC (#4189)

This pull request includes:
- add compilation support for CHI Issue C (but not yet verified)
- enable DataCheck and Poison
- add requirement fo

submodule(CoupledL2, OpenLLC): bump L2 and LLC (#4189)

This pull request includes:
- add compilation support for CHI Issue C (but not yet verified)
- enable DataCheck and Poison
- add requirement for CHI port width check
- add prefetch control by custom csr
- optimize timing in CoupledL2, mainly paths from SRAM to ICG
- add clock gate to each of the splitted SRAMs in CoupledL2
- fix several bugs concerning WriteEvictOrEvict, SnpQuery,
SnpCleanShared, SnpStash*, etc

---------

Co-authored-by: zhanglinjuan <[email protected]>
Co-authored-by: Ma-YX <[email protected]>
Co-authored-by: Yanqin Li <[email protected]>

show more ...


# 25a80bce 16-Jan-2025 Yanqin Li <[email protected]>

fix(L1PF, SMS): add pmp check (#4142)

**Checklist:**
1. no page/access fault
2. not uncache
3. no pmp access fault

**Changes:**
1. Add pmp response from PMPChecker
2. Wait until s3 phase to

fix(L1PF, SMS): add pmp check (#4142)

**Checklist:**
1. no page/access fault
2. not uncache
3. no pmp access fault

**Changes:**
1. Add pmp response from PMPChecker
2. Wait until s3 phase to process the response of TLB (got in s2) and
PMP(got in s3)

show more ...


# f4221883 06-Sep-2024 happy-lx <[email protected]>

perf(L1PF): Stream only pf at miss/pfHit (#3508)

Perf Bug Description:
<img
src="https://github.com/user-attachments/assets/3d1a7105-088b-467a-9c93-833f534bb4e6"
width="300"/>
Stream Prefetcher

perf(L1PF): Stream only pf at miss/pfHit (#3508)

Perf Bug Description:
<img
src="https://github.com/user-attachments/assets/3d1a7105-088b-467a-9c93-833f534bb4e6"
width="300"/>
Stream Prefetcher is **trained and triggered in all memory access
traces**. If the program(As shown above) repeatedly accesses an 8K space
in a loop, the first loop can be prefetched normally, but in the
subsequent loop the data has been fetched back to Dcache already. In
theory, there is no need to prefetch again, since the Stream Prefetcher
is triggered in all memory access traces, which will cause subsequent
prefetching requests to be triggered and preempt the pipeline which may
cause performance loss.

FIX:
Let the Stream prefetcher only trigger prefetching when **miss and
Prefetch hit** (training still uses all memory access traces).

show more ...


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


# 272ec6b1 14-Dec-2023 Haojin Tang <[email protected]>

stIn: connect missing wire


# 6810d1e8 25-Oct-2023 sfencevma <[email protected]>

fix params


# 83ba63b3 11-Oct-2023 Xuan Hu <[email protected]>

fix merge error


# 4b0d80d8 11-Oct-2023 Xuan Hu <[email protected]>

Merge upstream/master into tmp-backend-merge-master


# 8891a219 08-Oct-2023 Yinan Xu <[email protected]>

Bump rocket-chip (#2353)


# 0d32f713 06-Sep-2023 happy-lx <[email protected]>

L1 Prefetch (#2261)

* dcache: optimize the ready signal of missqueue

Add a custom arbiter. In the case of multiple sources with the same
cache block address, the arbiter will assign only one ent

L1 Prefetch (#2261)

* dcache: optimize the ready signal of missqueue

Add a custom arbiter. In the case of multiple sources with the same
cache block address, the arbiter will assign only one entry in
misssqueue but ready for all same cache block address requests.

This will reduce the number of replays of the load instruction which cannot
enter the missqueue

* sta, dcache: add A StorePipe in dcache

When the store command passes through the sta pipeline, access the tag
and meta of dcache to determine whether it hits, if it hits, update the
replacement algorithm, and if miss, send a write intent to missqueue

* sta prefetch: add a queue

Enter this queue when the Store Address pipeline sends a request,
determines that it has a cache miss, and the contention for MSHR fails.

The miss request in this queue will be sent to the Store pipeline later.

* sbuffer, dcache: store prefetch burst

A basic implementation of "Boosting Store Buffer Efficiency with
Store-Prefetch Bursts".

Store prefetch at exe is disabled.
Now, when store goes from sq to sbuffer, it will trigger a store
prefetch; when 48 stores fall into 6 cache lines, trigger a store burst
perfetch, which will bring a whole page back into dcache.

* dcache: restric mshr alloc for prefetch req

* restric the max number of entries which can be used by prefetch
* merge two same cache line address prefetch write req
* dynamically detect memset pattern, all mshr can accept prefetch when
pattern is detected

* spb: constantin support

* dcache: fix missqueue prefetch ready

* make prefetch req goes mshr with bigger id

* Revert "spb: constantin support"

This reverts commit 4ee50b89ba4a62cd28fa22d7fbcb2338ad4b1849.

* spb: fix bug in burst generator

* spb: add load prefetch burst support

* topdown: add defines of topdown counters enum

* redirect: add redirect type for perf

* top-down: add stallReason IOs

frontend -> ctrlBlock -> decode -> rename -> dispatch

* top-down: add dummy connections

* top-down: update TopdownCounters

* top-down: imp backend analysis and counter dump

* top-down: add HartId in `addSource`

* top-down: broadcast lqIdx of ROB head

* top-down: frontend signal done

* top-down: add memblock topdown interface

* Bump HuanCun: add TopDownMonitor

* top-down: receive and handle reasons in dispatch

* top-down: remove previous top-down code

* TopDown: add MemReqSource enum

* TopDown: extend mshr_latency range

* TopDown: add basic Req Source

TODO: distinguish prefetch

* store prefetch: refactor parameters and fix bug

* change some parameters
* fix store pipe bug
* fix load prefetch burst

* dcache: distinguish L1DataPrefetch and CPUData

* top-down: comment out debugging perf counters in ibuffer

* TopDown: add path to pass MemReqSource to HuanCun

* TopDown: use simpler logic to count reqSource and update Probe count

* frontend: update topdown counters

* Update HuanCun Topdown for MemReqSource

* top-down: fix load stalls

* top-down: Change the priority of different stall reasons

* store prefetch: add stride and l2 prefetch

* add a stride prefetcher
* spb and stride will issue prefetch to l2
* when store commits, issue a prefetch to l1

* sbuffer: fix eviction

* when valid count reaches StoreBufferSize, do eviction

* spf: change store prefetch structure

* prefetch @ exe -> l2 cache
* stride -> l2 cache

* sbuffer: fix replaceIdx

* If the way selected by the replacement algorithm cannot be written into dcache, its result is not used.

* Revert "sbuffer: fix replaceIdx"

This reverts commit 40c16aca956af9fb32554a0f12d18db41c22eecd.

* spf: find best interval in stamissqueue

* Revert "spf: find best interval in stamissqueue"

This reverts commit d179f0ce15a5ab989a822de7fe48cc5e2cd96914.

* sms: port store to sms

Miss store will train sms like load.

Now, sms will recieve 4 train sources, 2 for miss load, 2 for miss
store, but prefetcher consume 1 train req per cycle, PrefetchTrainFilter
is added to deal with this case.

* bump huancun

* spf: refactor structure

* miss stores will train sms, and send prefetch to l2
* miss stores will send prefetch to l1 on issue or commit
* spb will send prefetch to l1

* memset: fix memset detection

use lqEmpty to check this

* constantin: storepf constantin support

cherry-pick this to use constantin in storepf

* Revert "constantin: storepf constantin support"

This reverts commit 2b97767b9fa757d920cac3d80d4893a1380592c7.

* storepf: add EnableAtCommitMissTrigger

* trigger prefetch at commit only when the store misses with
EnableAtCommitMissTrigger

* bump coupledl2

* prefetch req from L1 to L2 will Acquire T

* fix merge conflict

* storepf: do not read meta&tag when pf is disabled

* storepf: do not read pcMem when sms store is disabled

* fix verilog check

* fix verilog

* missqueue: support merging prefetch

* prefetch req can be merged to pipeline reg
* merging prefetch write will update cmd
* delay sending out acquire when a prefetch write is about to merge

* missqueue: fix bug of merging prefetch write

* delay sending out acquire when a pipeline reg is about to merging a
prefetch write

* temp: disable store pf

* missqueue: disable merging prefetch

* late prefetch will be ignored
* check alias when merging
* enable store pf at issue

* add L1StreamPrefetcher

* fix assert

* let prefetch req prefer loadunit1 more than 0

* stream prefetcher

* disable stream component in SMS, SMS is only trained on real miss
* add a prefetcher monitor to adjust depth & confidence ..
* add L1 L2 stream prefetch

* add gene support

* Revert "add gene support"

This reverts commit 59ae15640ff3d1cc96347f4d3567d48c740a03bb.

* add miss db

* l1pf: add stride & store source info in cache meta

* add a Stride prefetcher and disable Stride component in sms
* prefetch bit in meta is expanded into 3 bits to store source info of
prefetcher

* prefetch: support sending prefetch req to l3

* l1pf: add FDP & refactor

* add basic FDP counters
* change stride from Block addr to Byte addr
* refactor the code

* bump submodules

* disable load related chiseldb to reduce db size

* fix compile

* fix minimalConfig & enable stream

* fix stride pc problem

* fix minimalconfig compile

* bump submodules

* refactor stream stride helper

* fix compile

* bump huancun

* disable db to save size

* fix l2 assert

* bump submodules

---------

Co-authored-by: tastynoob <[email protected]>
Co-authored-by: Haojin Tang <[email protected]>
Co-authored-by: Guokai Chen <[email protected]>
Co-authored-by: XiChen <[email protected]>
Co-authored-by: Zhou Yaoyang <[email protected]>

show more ...


# ffc9de54 30-Aug-2023 wakafa <[email protected]>

Support temporal prefetcher (disabled by default) (#2264)

* bump huancun

* bump coupledL2

* dcache: pass vaddr to coupledL2 through TL bus

* prefetch: support sending pf src towards l2

*

Support temporal prefetcher (disabled by default) (#2264)

* bump huancun

* bump coupledL2

* dcache: pass vaddr to coupledL2 through TL bus

* prefetch: support sending pf src towards l2

* bump huancun

* bump coupledL2

* bump utility

show more ...


# 8a00ff56 21-Apr-2023 Xuan Hu <[email protected]>

backend: fix merge master error


# eb5f083a 27-Oct-2022 William Wang <[email protected]>

chore: fix merge conflict


# 3af6aa6e 22-Oct-2022 William Wang <[email protected]>

dcache: add optional meta prefetch and access bit

Added meta_prefetch and meta_access related sim perf counter

For now, optional dcache meta prefetch and access can be removed safely


# 967327d8 15-Oct-2022 LinJiawei <[email protected]>

sms: prefetch to l1


# 85de5cae 06-Sep-2022 LinJiawei <[email protected]>

Add prefetch control; Update SMS algorithm


# 289fc2f9 08-Sep-2022 LinJiawei <[email protected]>

Added sms prefetcher