Skip to content

timing(CoupledL2): optimize timing#503

Open
Frankslu wants to merge 23 commits into
masterfrom
2mbl2-rebase3
Open

timing(CoupledL2): optimize timing#503
Frankslu wants to merge 23 commits into
masterfrom
2mbl2-rebase3

Conversation

@Frankslu

Copy link
Copy Markdown
Contributor

No description provided.

@linjuanZ linjuanZ changed the title Timing: fix coupledL2 timing in 2mb version timing(CoupledL2): optimize timing Apr 23, 2026
Comment thread src/main/scala/coupledL2/utils/Arb.scala Outdated
Comment thread src/main/scala/coupledL2/utils/Arb.scala Outdated
Comment thread src/main/scala/coupledL2/utils/OHOperation.scala Outdated
Comment thread src/main/scala/coupledL2/utils/OHOperation.scala Outdated
Comment thread src/main/scala/coupledL2/utils/Arb.scala Outdated
Comment thread src/main/scala/coupledL2/prefetch/BestOffsetPrefetch.scala Outdated
Comment thread src/main/scala/coupledL2/prefetch/BestOffsetPrefetch.scala Outdated
Comment thread src/main/scala/coupledL2/utils/OHOperation.scala Outdated
Frankslu added 21 commits May 9, 2026 16:04
When a way is occupied by mshr, it must be hit, or chosen as refill way
in mainpipe stage 3, which means it is definitely not invalid. On the
other hand, a selected invalid replace way must be a freeWay. So don't
use invalidWay to lookup freeWayMask when choose replace way.
After reset, the first access to a certain way will inevitably be
selected as invalid way, and the read value from the replacer SRAM
and origin bit SRAM won't be used at this time. At the same time, these
SRAMs are written after selection, which is equivalent to initializing
them. Therefore, the initialization of these SRAMs can be removed.
For hit related logic, it won't use meta chosen by replace logic, so
does replace related logic. So decouple them.
Connection of source_req_s3 and status_vec_toTX will generate a path
from replace logic to TX Module, which causes critical path. So just use
task_s3 as status_vec_toTX[0]. This may cause a decrease performance of
snoop.
Passing origin bit sram read by HoldUless will cause critical path from
origin bit sram read resp port to origin bit sram write port. So use
RegEnable to pass it.
When receiving aMergeTask during mshr task fire, mshr should immediatly
pass aMergeTask ti mshr_tasj_arb, causing direct connection from
TLBuffer --> SinkA --> reqBuffer --> mshr --> mshrCtl/arb. So dong't
merge aMergeTask when mshr_task is going to fire.
Current cmo logic will use result from replace logic by using
dirReault.meta. So decouple replace logic and cmo logic.
Current nestable_meta of snoop will use the result from replace logic by
using dirResult.meta. So decouple them.
Current prefetch train will use the meta from replace logic. So decouple
them.
Some input value of arbiter in bop is he same constant value. So assign
these value in output directly.
@Frankslu Frankslu requested a review from linjuanZ May 9, 2026 08:48
@Frankslu Frankslu force-pushed the 2mbl2-rebase3 branch 2 times, most recently from 064f446 to 7427574 Compare May 11, 2026 04:24
move TwoLevelRRArbiter and MaskToOH to utility and bump
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants