suport stash - #25
Open
zzQGyy wants to merge 8 commits into
Open
Conversation
- mill -> 0.12.17 - chisel -> 7.13.0 - update github workflow
zzQGyy
requested review from
Ivyfeather,
Kumonda221-CrO3,
Maxpicca-Li and
linjuanZ
as code owners
July 23, 2026 03:22
Move L3 stash prefetch request handling out of Prefetcher.scala into StashPrefetcher.scala. Keep the Prefetcher top-level wiring focused on connecting the L3 receive path and SLC CHI channels. Limit the stash prefetch inflight entries to 16 instead of reusing the global L2 prefetch inflight maximum. This keeps the stash queue depth independent from PrefetchReceiverParams. Lower the stash prefetch CHI QoS to 0 so speculative L3 stash traffic does not compete with demand and MMIO TXREQs at the highest QoS level. Rename the stash entry FSM states to camelCase to match local Scala naming style. Validation: - mill -i XSCache.compile
Rework openLLC L3 prefetch perf counters to count accepted `busTask_s1.fire` events for hit and late observations. Remove the narrow `*Cycles` counters and replace the previous-cycle de-dup logic with a shared same-address helper. Keep `stashOnceSharedOriginalRNHit` visible in `MainPipe` as a redundant L3 stash prefetch observation point.
Rename the stash CHI ports to `stash_txreq` and `stash_rxrsp` at the prefetch boundary, and keep the CoupledL2 transaction-ID layout explicit with named `mmioFlag`, `sliceId`, `stashFlag`, and `entryID` fields.
StashOnceShared refill can allocate both ResponseUnit and RefillUnit entries while MainPipe sends a ReadNoSnp to MemUnit. If that read hits a same-line pending WriteNoSnpFull, MemUnit forwards the line through bypassData instead of issuing a downstream read. The bypass data was only consumed by ResponseUnit, so the RefillUnit entry could keep waiting for downstream RXDAT and eventually trigger a RefillBuf Leak assertion. Connect MemUnit bypassData to RefillUnit and update matching StashOnceShared refill entries from the bypass beats. RefillUnit now checks for a single bypass TxnID and rejects mixed data sources. Add a StashPrefetchEntry leak timer to catch long waits for CHI responses. Also tighten stash prefetch TxnID namespace checks so normal request IDs cannot overlap the stash flag.
zzQGyy
force-pushed
the
kunminghu-v3-l3-prefetcher-v2
branch
from
July 29, 2026 15:42
1035c5f to
a234daf
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.