Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add CoupledL2 with CHI interface #2953

Merged
merged 26 commits into from
May 15, 2024
Merged

Add CoupledL2 with CHI interface #2953

merged 26 commits into from
May 15, 2024

Conversation

linjuanZ
Copy link
Member

@linjuanZ linjuanZ commented May 8, 2024

This pull request introduces TL2CHICoupledL2, which adopts TileLink standard to connect L1 DCache/ICache/PTW, and CHI Issue B specification to connect downstream interconnect. The key features of TL2CHICoupledL2 are:

  • Fully coherent Request Node in a CHI interconnect.
  • Coherency granule of 64B cache line.
  • MESI cache coherence model, which is based on TileLink coherence policies.
  • Transition from TL-C transactions to CHI snoopable requests.
  • Transition from TL-UL transactions to CHI non-snoopable requests.
  • Support for ReadNoSnp, ReadNotSharedDirty, ReadUnique, MakeUnique.
  • Support for WriteNoSnp, WriteBackFull, Evict.
  • Support for all the snoops except for SnpDVMOp.
  • Request retry to manage protocol resources.
  • Message transfer across CHI interfaces based on Link Layer Credit.
  • Power aware signaling on the component interface.

The original CoupledL2 is now renamed to TL2TLCoupledL2. TL2TLCoupledL2 still works as default L2 Cache instance in XiangShan processor for now. TL2CHICoupledL2 is still not available for verilator simulation in this pr.

To compile XSTile verilog with TL2CHICoupledL2, run make verilog CONFIG=KunminghuV2Config RELEASE_ARGS MFC=1.

Copy link
Member

@poemonsense poemonsense left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some commented lines. Remove them?

@cyyself
Copy link
Member

cyyself commented May 8, 2024

If there is no CHI Interconnect RTL for us now, should we develop a software co-simulation solution that simulates the interconnect part in software like gem5 for performance evaluation and functional check in CI?

@linjuanZ linjuanZ requested a review from poemonsense May 8, 2024 11:04
@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: 334e76c

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
334e76c 1.866 0.449 2.105 1.190 2.170 2.174 2.331 0.942 1.413 1.281 2.738 2.558 2.281 2.879

master branch:

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
aab8ef9 1.862 0.450 2.092 1.174 2.178 2.174 2.331 0.966 1.379 1.253 2.738 2.556 2.283 2.930
d67f093 1.862 0.450 2.091 1.189 2.178 2.174 2.334 0.966 1.389 1.253 2.738 2.566 2.283 2.930
545d7be 1.862 0.450 2.092 1.175 2.178 2.174 2.333 0.966 1.370 1.253 2.738 2.556 2.283 2.930
768f5f9 1.862 0.450 2.092 1.190 2.178 2.174 2.334 0.966 1.370 1.253 2.738 2.563 2.283 2.930
7390003 1.862 0.450 2.092 1.174 2.178 2.174 2.337 0.966 1.370 1.253 2.738 2.561 2.283 2.930
40d3f1b 1.862 0.450 2.092 1.182 2.178 2.174 2.334 0.966 1.370 1.253 2.738 2.566 2.283 2.930
73c515a 1.862 0.450 2.096 1.174 2.178 2.174 2.335 0.966 1.374 1.253 2.738 2.552 2.283 2.930
0c22420 1.862 0.450 2.092 1.174 2.178 2.174 2.333 0.966 1.370 1.253 2.738 2.556 2.283 2.930
afd7818 1.862 0.450 2.090 1.184 2.178 2.174 2.335 0.966 1.370 1.253 2.738 2.554 2.283 2.930
0785388 1.862 0.450 2.090 1.175 2.178 2.174 2.332 0.966 1.392 1.253 2.738 2.556 2.283 2.930

@Lemover
Copy link
Contributor

Lemover commented May 9, 2024

If there is no CHI Interconnect RTL for us now, should we develop a software co-simulation solution that simulates the interconnect part in software like gem5 for performance evaluation and functional check in CI?

The CHI interconnection is already in the planning phase. However, it will still take some time to complete. If there is support of software co-simulation for interconnection, it would be very welcome.

@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: eef8ffd

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
eef8ffd 1.853 0.449 2.108 1.183 2.171 2.147 2.333 0.949 1.422 1.282 2.743 2.586 2.286 2.910

master branch:

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
bdc1606 1.854 0.449 2.101 1.182 2.170 2.181 2.329 0.973 1.386 1.294 2.742 2.589 2.283 2.951
dc5a918 1.854 2.103 1.181 2.170 2.181 0.973 1.386 1.294 2.742 2.283 2.951
bad6084 1.854 2.103 1.182 2.170 2.181 2.329 0.972 1.386 1.294 2.742 2.283 2.951
c686adc 1.854 0.449 2.103 1.182 2.170 2.181 2.335 0.972 1.386 1.294 2.742 2.589 2.283 2.951
bc3d558 1.854 0.449 2.100 1.182 2.170 2.181 2.329 0.972 1.380 1.294 2.742 2.589 2.283 2.951
a58f171 1.854 0.449 2.104 1.182 2.170 2.181 2.329 0.972 1.386 1.294 2.742 2.586 2.283 2.951
ff74867 1.898 0.448 2.105 1.186 2.173 2.175 2.335 0.960 1.372 1.288 2.745 2.583 2.285 2.958
20e09ab 1.898 0.448 2.105 1.186 2.173 2.175 2.333 0.960 1.372 1.288 2.745 2.584 2.285 2.958
aab8ef9 1.862 0.450 2.092 1.174 2.178 2.174 2.331 0.966 1.379 1.253 2.738 2.556 2.283 2.930
d67f093 1.862 0.450 2.091 1.189 2.178 2.174 2.334 0.966 1.389 1.253 2.738 2.566 2.283 2.930

@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: a093d00

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
a093d00 1.855 0.450 2.103 1.177 2.478 2.594 2.334 0.957 1.398 1.421 3.117 2.655 2.454 2.952

master branch:

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
9eee369
006b878
7299828
0c70648 1.854 0.450 2.103 1.190 2.468 2.593 2.330 0.960 1.377 1.427 3.123 2.639 2.451 2.960
b628978 1.854 0.450 2.103 1.190 2.468 2.593 2.329 0.960 1.377 1.427 3.123 2.639 2.451 2.960
5e237ba 0.450 2.103 2.328 1.377 2.639
363530d 1.841 1.190 2.478 2.597 0.961 1.391 3.126 2.452 2.959
a72b131
05d833a 1.854 0.450 2.103 1.190 2.468 2.593 2.330 0.961 1.377 1.427 3.123 2.639 2.451 2.960
9cb05b4 0.450 2.103 2.330 1.377 2.639

@linjuanZ linjuanZ merged commit 4b40434 into master May 15, 2024
4 checks passed
@linjuanZ linjuanZ deleted the chi-coupledl2 branch May 15, 2024 03:32
Diana0525 pushed a commit to Diana0525/XiangShan that referenced this pull request May 17, 2024
This pull request introduces TL2CHICoupledL2, which adopts TileLink
standard to connect L1 DCache/ICache/PTW, and CHI Issue B specification
to connect downstream interconnect. The key features of TL2CHICoupledL2
are:
* Fully coherent Request Node in a CHI interconnect.
* Coherency granule of 64B cache line.
* MESI cache coherence model, which is based on TileLink coherence
policies.
* Transition from TL-C transactions to CHI snoopable requests.
* Transition from TL-UL transactions to CHI non-snoopable requests.
* Support for ReadNoSnp, ReadNotSharedDirty, ReadUnique, MakeUnique.
* Support for WriteNoSnp, WriteBackFull, Evict.
* Support for all the snoops except for SnpDVMOp.
* Request retry to manage protocol resources.
* Message transfer across CHI interfaces based on Link Layer Credit.
* Power aware signaling on the component interface.

The original CoupledL2 is now renamed to TL2TLCoupledL2. TL2TLCoupledL2
still works as default L2 Cache instance in
[XiangShan](https://github.com/OpenXiangShan/XiangShan) processor for
now. TL2CHICoupledL2 is still not available for verilator simulation in
this pr.

To compile XSTile verilog with TL2CHICoupledL2, run `make verilog
CONFIG=KunminghuV2Config RELEASE_ARGS MFC=1`.

---------

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
Co-authored-by: Zhu Yu <yulightenyu@gmail.com>
Co-authored-by: Tang Haojin <tanghaojin@outlook.com>
Co-authored-by: Yangyu Chen <cyy@cyyself.name>
@linjuanZ linjuanZ restored the chi-coupledl2 branch May 29, 2024 12:51
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.

None yet

7 participants