Commit 56f1078
Bump coupledL2 upstream at Dec 19, 2025
Merge coupledL2 commits up to 95e8de (2025-12-01),
which is tracking by XiangShan commit c06233 (2025-12-08).
Squashed commit of the following:
commit 95e8de9
Author: lwd <liuweiding10@outlook.com>
Date: Mon Dec 1 11:44:38 2025 +0800
fix(AsyncBridge): revert (OpenXiangShan#433) (OpenXiangShan#446)
Revert "fix(AsyncBridge): add l-credit manager in AsyncBridge to fix performance (OpenXiangShan#433)"
This reverts commit 4fc8217.
commit cfc9235
Author: zhanglinjuan <zhanglinjuan16@mails.ucas.ac.cn>
Date: Tue Nov 25 16:54:40 2025 +0800
Timing(TL2CHICoupledL2): remove ICG of 'pCrdGrantType' and 'pCrdGrantSrcID' (OpenXiangShan#444)
Co-authored-by: Zhu Yu <yulightenyu@gmail.com>
commit 7ea02e3
Author: Yanqin Li <maxpicca@qq.com>
Date: Tue Nov 25 15:03:42 2025 +0800
time(bop): fix long path due to clock gating (OpenXiangShan#442)
commit a9990de
Author: Ma-YX <71326427+Ma-YX@users.noreply.github.com>
Date: Mon Nov 24 15:11:48 2025 +0800
fix(MainPipe, MSHR, RXDAT): not report DataCheck error to BEU (OpenXiangShan#443)
When detected Data Check error in RXDAT,
coupledL2 reports corrupt = 1(TL) to L1 $,
but not reports L2 Error to BEU.
Prioritize triggering synchronous exceptions
over asynchronous ones.
commit d00d32f
Author: yanyiming <139243183+Yan-Yiming@users.noreply.github.com>
Date: Mon Nov 10 22:21:19 2025 +0800
perf: add perfevent (OpenXiangShan#441)
add perfevent for last level cache event:
l2_cache_prefetch_{access, miss}
l2_cache_{access, miss}_{rd, wr}
add perfevent for cache hit/miss in L2:
l2_cache_hit, l2_cache_miss
commit 4fc8217
Author: yulightenyu <145419941+yulightenyu@users.noreply.github.com>
Date: Fri Nov 7 17:23:32 2025 +0800
fix(AsyncBridge): add l-credit manager in AsyncBridge to fix performance (OpenXiangShan#433)
- For rx channel, add l-credit manager module to generate 'lcrdv' right after rx flit received
- For tx channel, add l-credit manager module to generate 'ready' to block tx flit, using l-credit
number more than Maximum tx l-credit in CoupledL2 to cover lcrdv sync delay
commit f4b7db3
Author: Ding Haonan <kumonda@kucro3.org>
Date: Fri Nov 7 17:21:51 2025 +0800
fix(MainPipe, MSHR): decode SnpPreferUnique as SnpUnique (OpenXiangShan#438)
commit c1022d9
Author: Ding Haonan <kumonda@kucro3.org>
Date: Fri Nov 7 17:18:16 2025 +0800
timing(LinkLayer, RXSNP): simplified CMO on RXSNP and pipelined RXRSP, RXDAT (OpenXiangShan#436)
* timing(RXSNP): CMO blocks RXSNP regardless of PA for better timing
### 1. **In the past**:
- RXSNP (with same address) was blocked for CMO when:
- In progress of Probing L1
- Ready to send ```WriteBackFull```/```WriteCleanFull```/```Evict```,
but not sent yet (more specifically, went through S3 of MainPipe)
- In progress of compensational meta write (more specifically,
changing ```TRUNK``` to ```TIP```)
- **```blockRefill```** means: ready to send ```WriteBackFull```/
```WriteCleanFull```/```Evict```, but not sent yet (more specifically,
went through S3 of MainPipe)
- **```w_releaseack```** means: ready to receive ```CompDBIDResp``` from
downstream
- **```s_cmometaw```** means compensational meta write, changing
```TRUNK``` to ```TIP``` in L2 and not initiating any
```WriteBackFull```/```WriteCleanFull```/```Evict``` (CoupledL2 now is
not sending any ```Probe toT``` to L1, so no ```TRUNK``` state could
be kept in L2 after any CMO)
- By **```reqBlockSnpMask```**, blocking RXSNP (with same address) for
CMO when:
- Before ```WriteBackFull```/```WriteCleanFull```/```Evict``` sent, or
after ```CompDBIDResp``` received, in progress of Probing L1
- Before ```WriteBackFull```/```WriteCleanFull```/```Evict``` sent, or
after ```CompDBIDResp``` received, in progress of compensational
meta write (more specifically, changing ```TRUNK``` to ```TIP```)
- By **```cmoBlockSnpMask```**, blocking RXSNP (with same address) for
CMO when:
- Ready to send ```WriteBackFull```/```WriteCleanFull```/```Evict```,
but not sent yet (more specifically, went through S3 of MainPipe)
- In progress of Probing L1
- In **```reqBlockSnpMask```** and **```cmoBlockSnpMask```**:
- Blockage by progress of Probing L1 was duplicated
- Blockage by compensational meta write was duplicated
- Blockage constraint (Before ```WriteBackFull```/```WriteCleanFull```
/```Evict``` sent, After ```CompDBIDResp``` received) was
unnecessary, since:
- The first constraint (Before ```WriteBackFull```/
```WriteCleanFull```/```Evict``` sent) was unnecessary since:
- RXSNP must always be blocked in progress of Probing L1
- The compensational meta write ```cmometaw``` activity is equal
to the attempt to send ```WriteBackFull```/```WriteCleanFull```/
```Evict``` in MSHR sequence (```cmometaw``` would only and
immediately be activated after MSHR decided not to send any
```WriteBackFull```/```WriteCleanFull```/```Evict```)
- The second constraint (After ```CompDBIDResp``` received) was kept
by HN / L3
### 2. **After this PR**:
- All duplicated blocking logic would be removed, and all blocking logic
would be merged into **```cmoBlockSnpMask```**, blocking RXSNP for CMO
when:
- In progress of Probing L1
- Ready to send ```WriteBackFull```/```WriteCleanFull```/```Evict```,
but not sent yet (more specifically, went through S3 of MainPipe)
- In progress of compensational meta write (more specifically,
changing ```TRUNK``` to ```TIP```)
- PA would be no longer taken into consideration for timing reason, but
would still be dead-lock free, since:
- Progress of Probing L1 is not depending on any downstream sequence
- Progress of sending TXREQ is not depending on any downstream
sequence
* timing(TL2CHICoupledL2): add pipeline(deppth=1, pipe=1) on rxdat/rxrsp channel
---------
Co-authored-by: Zhu Yu <yulightenyu@gmail.com>
commit 826415a
Author: yanyiming <139243183+Yan-Yiming@users.noreply.github.com>
Date: Fri Nov 7 17:09:38 2025 +0800
perf: add perfevent (OpenXiangShan#437)
add perfevent for last level cache event:
l2_cache_prefetch_{access, miss}
l2_cache_{access, miss}_{rd, wr}
add perfevent for cache hit/miss in L2:
l2_cache_hit, l2_cache_miss1 parent 047334b commit 56f1078
File tree
30 files changed
+252
-261
lines changed- src
- main/scala/coupledL2
- prefetch
- tl2chi
- chi
- tl2tl
- test/scala
- chi
30 files changed
+252
-261
lines changed- .github/workflows/main.yml+2-2
- Makefile+4-4
- Utility+1-1
- build.sc+17-19
- rocket-chip+1-1
- src/main/scala/huancun/BaseDirectory.scala+8-6
- src/main/scala/huancun/Common.scala+3-3
- src/main/scala/huancun/DataStorage.scala+4-4
- src/main/scala/huancun/HuanCun.scala+6-4
- src/main/scala/huancun/Slice.scala+8
- src/main/scala/huancun/prefetch/TPmeta.scala+2-2
- src/main/scala/huancun/utils/CustomAnnotations.scala+10-14
- src/main/scala/huancun/utils/ResetGen.scala-74
- src/main/scala/huancun/utils/SRAMWrapper.scala+3-4
- src/test/scala/huancun/AcquireTester.scala+14-9
- src/test/scala/huancun/AllocatorTest.scala+4-7
- src/test/scala/huancun/DSTest.scala+4-5
- src/test/scala/huancun/FakeClient.scala+6-7
- src/test/scala/huancun/L2Tester.scala+35-28
- src/test/scala/huancun/TestTop.scala+16-5
- src/test/scala/huancun/tlctest/DirConflictTester.scala+5-12
- src/test/scala/huancun/tlctest/RandomTester.scala+6-6
- src/test/scala/huancun/tlctest/TLCTest.scala+1-1
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
8 | 10 | | |
9 | 11 | | |
10 | 12 | | |
| |||
16 | 18 | | |
17 | 19 | | |
18 | 20 | | |
| 21 | + | |
19 | 22 | | |
20 | 23 | | |
21 | 24 | | |
22 | 25 | | |
23 | 26 | | |
| 27 | + | |
24 | 28 | | |
25 | 29 | | |
26 | 30 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
16 | | - | |
17 | | - | |
| 15 | + | |
| 16 | + | |
18 | 17 | | |
19 | 18 | | |
20 | 19 | | |
| |||
69 | 68 | | |
70 | 69 | | |
71 | 70 | | |
72 | | - | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
73 | 76 | | |
74 | 77 | | |
75 | 78 | | |
| |||
88 | 91 | | |
89 | 92 | | |
90 | 93 | | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
| 94 | + | |
96 | 95 | | |
97 | 96 | | |
98 | 97 | | |
| |||
Submodule rocket-chip updated 14 files
- src/main/scala/devices/debug/Debug.scala+3-4
- src/main/scala/devices/tilelink/CLINT.scala-1
- src/main/scala/devices/tilelink/Plic.scala-1
- src/main/scala/diplomacy/LazyModule.scala+2-5
- src/main/scala/rocket/BTB.scala+2-4
- src/main/scala/rocket/DCache.scala+1-3
- src/main/scala/rocket/Multiplier.scala+1-1
- src/main/scala/subsystem/BaseSubsystem.scala+2-4
- src/main/scala/tile/FPU.scala+4-4
- src/main/scala/tile/RocketTile.scala-1
- src/main/scala/tilelink/RegisterRouter.scala-7
- src/main/scala/util/Annotations.scala-242
- src/main/scala/util/DescribedSRAM.scala-10
- src/main/scala/util/ElaborationArtefactAnnotation.scala-155
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
188 | | - | |
189 | 188 | | |
190 | 189 | | |
191 | 190 | | |
192 | | - | |
| 191 | + | |
193 | 192 | | |
194 | 193 | | |
195 | 194 | | |
| |||
294 | 293 | | |
295 | 294 | | |
296 | 295 | | |
297 | | - | |
298 | 296 | | |
299 | 297 | | |
300 | 298 | | |
| |||
387 | 385 | | |
388 | 386 | | |
389 | 387 | | |
| 388 | + | |
390 | 389 | | |
391 | 390 | | |
392 | 391 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
43 | 44 | | |
44 | 45 | | |
45 | 46 | | |
| |||
90 | 91 | | |
91 | 92 | | |
92 | 93 | | |
93 | | - | |
| 94 | + | |
94 | 95 | | |
95 | 96 | | |
96 | 97 | | |
97 | 98 | | |
98 | | - | |
| 99 | + | |
99 | 100 | | |
100 | 101 | | |
101 | 102 | | |
| |||
145 | 146 | | |
146 | 147 | | |
147 | 148 | | |
148 | | - | |
| 149 | + | |
149 | 150 | | |
150 | 151 | | |
151 | 152 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
146 | 146 | | |
147 | 147 | | |
148 | 148 | | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
149 | 152 | | |
150 | 153 | | |
151 | 154 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
99 | | - | |
| 99 | + | |
100 | 100 | | |
101 | 101 | | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
102 | 111 | | |
103 | 112 | | |
104 | 113 | | |
| |||
0 commit comments