Skip to content

feat(MMIOBridge): support Svpbmt on CHI MemAttr#273

Merged
Kumonda221-CrO3 merged 4 commits intomasterfrom
feat-mmio-pbmt-uncached
Dec 20, 2024
Merged

feat(MMIOBridge): support Svpbmt on CHI MemAttr#273
Kumonda221-CrO3 merged 4 commits intomasterfrom
feat-mmio-pbmt-uncached

Conversation

@Kumonda221-CrO3
Copy link
Copy Markdown
Contributor

  • Added user field memType_NC to recognize NC type configured by Svpbmt, mapped to Non-cacheable Bufferable.

  • Memory attributes other than NC are still mapped to Device nRnE in CHI specification.

@Kumonda221-CrO3 Kumonda221-CrO3 added wontfix This will not be worked on and removed wontfix This will not be worked on do not merge labels Dec 12, 2024
@Kumonda221-CrO3
Copy link
Copy Markdown
Contributor Author

NOTICE

DO NOT set bufferableNC = true when needRR = false, since the ordering between NC and IO described in SvPBMT was maintained by fence iorw, iorw. And alias with NC and IO must not cause loss of coherency due to SvPBMT, which was NOT guaranteed by CHI specification in which case obtaining different EWA from different agents.

  1. For Memory backend, the observability of possible weakly-ordered intermediate states were determined
    by the core (the processor pipeline, store buffer, etc.) because there is no ordering guarantee from HN.
  2. For Device backend, the observability of possible weakly-ordered intermediate states were determined by the HN (Home Node) on bus with Endpoint Ordering.

Ordering and MemAttr

MM = Main Memory, NC = Non-cacheable, IO = Device I/O

  • When bufferableNC configured to false

    PMA PBMT Memory Type
    MM NC Non-cacheable Non-bufferable
    MM IO Non-cacheable Non-bufferable
    NC/IO NC Device nRnE (no reorder, no early acknowlegment)
    NC/IO IO Device nRnE (no reorder, no early acknowlegment)
  • when bufferableNC configured to true

    PMA PBMT Memory Type
    MM NC Non-cacheable Bufferable
    MM IO Non-cacheable Bufferable
    NC/IO NC Device nRE (no reorder, early acknowlegment)
    NC/IO IO Device nRnE (no reorder, no early acknowlegment)

* Added user field 'memType_NC' to recognize NC type
  configured by Svpbmt,
  mapped to Non-cacheable Bufferable.

* Memory attributes other than NC are still mapped to
  Device nRnE in CHI specification.
@Kumonda221-CrO3 Kumonda221-CrO3 merged commit ba3587e into master Dec 20, 2024
@Kumonda221-CrO3 Kumonda221-CrO3 deleted the feat-mmio-pbmt-uncached branch December 20, 2024 18:29
linjuanZ pushed a commit to OpenXiangShan/XiangShan that referenced this pull request Dec 25, 2024
* L1: deliver the NC and PMA signals of uncacheReq to L2
* L2: [support Svpbmt on CHI
MemAttr](OpenXiangShan/CoupledL2#273)
* LLC: [Non-cache requests are forwarded directly downstream without
entering the slice](OpenXiangShan/OpenLLC#28)
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.

3 participants