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

Merged
merged 159 commits into from
May 14, 2024
Merged

Add CoupledL2 with CHI interface #145

merged 159 commits into from
May 14, 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. However, you can switch to TL2CHICoupledL2 by setting EnableCHI Field to true in src/test/scala/chi/TestTop.scala.

linjuanZ and others added 30 commits February 22, 2024 19:44
* SinkC: fix bug for regs Buf not init

* MSHR: fix bug when L1_acquirePerm but L2_miss, L2 should acquireBlock to L3, not only acquirePerm

* MainPipe: when L3_probetoB and L2=TIP, L2 donot need probetoB L1

* SinkB: cannot accept Probe when same-addr Release to L3 and have not receive ReleaseAck

---------

Co-authored-by: Cai Luoshan <[email protected]>
* ReqArb: only give s1 info when s1-to-s2 fire

* Backbone: new structure for Hint
now we send Hint @s1 for every MSHR-GrantData passing by
   and send Hint @s3 for every  CHN-GrantData passing by

* CoupledL2: update logic for Hint Arb

* misc: fix connection

* Hint: consider new feature ** AMergeTask **

* Hint: fix Hint Arb among Slices

* Hint: add keyword info
Enter command `make test-top-chil2` to generate CHI-CoupledL2 verilog
@Kumonda221-CrO3 Kumonda221-CrO3 requested a review from Ivyfeather May 8, 2024 06:39
Ivyfeather

This comment was marked as resolved.

@linjuanZ linjuanZ requested a review from Ivyfeather May 10, 2024 07:06
@linjuanZ linjuanZ merged commit 2a260b4 into master May 14, 2024
2 checks passed
@Ivyfeather Ivyfeather modified the milestone: TileLink2CHI CPL2 May 15, 2024
@Ivyfeather Ivyfeather added the milestone Important feature label May 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
milestone Important feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants