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

feat(Svpbmt): support WMO memory access and outstanding of NC #3900

Merged
merged 9 commits into from
Dec 4, 2024

Conversation

Maxpicca-Li
Copy link
Member

@Maxpicca-Li Maxpicca-Li commented Nov 19, 2024

Here, "NC" represents accesses with PBMT=1, characterized by properties such as non-cacheable, idempotent, weakly-ordered (RVWMO), and main memory. This PR supports the WMO memory access and outstanding uncache of NC. The detailed architecture diagram is as follows.
pbmt drawio

@Maxpicca-Li Maxpicca-Li added the testing beta for CI test, not merged temporarily label Nov 19, 2024
@Maxpicca-Li Maxpicca-Li changed the title Svpbmt: support wmo memory access and outstanding of nc Svpbmt: support WMO memory access and outstanding of nc Nov 19, 2024
@Maxpicca-Li Maxpicca-Li changed the title Svpbmt: support WMO memory access and outstanding of nc Svpbmt: support WMO memory access and outstanding of NC Nov 19, 2024
@Maxpicca-Li Maxpicca-Li self-assigned this Nov 19, 2024
@Maxpicca-Li Maxpicca-Li marked this pull request as draft November 19, 2024 13:50
@Maxpicca-Li Maxpicca-Li changed the title Svpbmt: support WMO memory access and outstanding of NC feat(Svpbmt): support WMO memory access and outstanding of NC Nov 19, 2024
@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: 92af09c

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
92af09c 1.917 0.450 2.701 1.229 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261

master branch:

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
aecf601 1.917 0.450 2.701 1.237 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261
03426fe 1.917 0.450 2.701 1.221 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261
39d5540 1.917 0.450 2.701 1.235 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261
92f3664 1.917 0.450 2.701 1.227 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261
3e2285d 1.917 0.450 2.701 1.226 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261

@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: 8719682

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
8719682 1.917 0.450 2.701 1.229 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261

master branch:

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
92bcee1 1.917 0.450 2.701 1.230 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261
09910ab
531dd12 1.917 0.450 2.701 1.228 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261
6639e9a

@Maxpicca-Li Maxpicca-Li requested a review from linjuanZ November 27, 2024 07:02
@Maxpicca-Li Maxpicca-Li marked this pull request as ready for review November 27, 2024 13:12
@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: 73f086b

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
73f086b 1.917 0.450 2.701 1.232 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261

master branch:

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
b00d582 1.917 0.450 2.701 1.230 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261
e718f87
3956160 1.917 0.450 2.701 1.233 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261
0d6f7fa 1.917 0.450 2.701 1.232 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261
a5c77bc 1.917 0.450 2.701 1.230 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261

src/main/scala/xiangshan/cache/dcache/Uncache.scala Outdated Show resolved Hide resolved
src/main/scala/xiangshan/cache/dcache/Uncache.scala Outdated Show resolved Hide resolved
src/main/scala/xiangshan/mem/MemCommon.scala Outdated Show resolved Hide resolved
@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: 36a189c

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
36a189c 1.902 0.450 2.687 1.230 2.832 2.461 2.393 0.919 1.407 1.992 3.435 2.709 2.383 3.264

master branch:

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
7071df6 1.902 0.450 2.687 1.237 2.832 2.461 2.393 0.919 1.407 1.992 3.435 2.709 2.383 3.264
415fcbe 1.917 0.450 2.701 1.224 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261
85a4c8e 1.917 0.450 2.701 1.230 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261
d7b0ad9 1.917 0.450 2.701 1.227 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261
6cd53fd

@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: 35b5b58

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
35b5b58 1.902 0.450 2.687 1.224 2.832 2.461 2.393 0.922 1.407 1.992 3.434 2.709 2.383 3.264

master branch:

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
2b1f979
547d96a
7071df6 1.902 0.450 2.687 1.237 2.832 2.461 2.393 0.919 1.407 1.992 3.435 2.709 2.383 3.264
415fcbe 1.917 0.450 2.701 1.224 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261
85a4c8e 1.917 0.450 2.701 1.230 2.840 2.464 2.398 0.921 1.430 2.069 3.437 2.716 2.387 3.261

@Maxpicca-Li Maxpicca-Li requested a review from linjuanZ December 2, 2024 06:09
@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: f4fa6e2

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
f4fa6e2 1.959 0.450 2.686 1.228 2.832 2.461 2.393 0.919 1.407 1.992 3.435 2.709 2.383 3.261

master branch:

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
2e5ebf5 1.959 0.450 2.686 1.238 2.832 2.461 2.393 0.919 1.407 1.992 3.435 2.709 2.383 3.261
908b24d
f0a1cc7 1.902 0.450 2.686 1.225 2.832 2.461 2.393 0.919 1.407 1.992 3.434 2.709 2.383 3.264
35850f1 1.902 0.450 2.686 1.222 2.832 2.461 2.393 0.919 1.407 1.992 3.434 2.709 2.383 3.264
dc4fac1 1.902 0.450 2.687 1.231 2.832 2.461 2.393 0.919 1.407 1.992 3.435 2.709 2.383 3.264

* feat(LDU): add support for NC in LoadUnit

* feat(LQ,UB): add support for NC in load queue and uncache buffer

* chore(pbmt): add xsperf for nc ld statistic
* fix(PBMT): skip nc difftest and handle the conflict of nc and normal store

* fix(PBMT): nc st req is changed to a state machine execution

* fix(pbmt): fix typo and control error of nc ld

* fix(pbmt): nc data assignment error

* fix(pbmt): nc should be used to wakeup

* fix(pbmt): remove wrong assert

* fix(pbmt): lots of bugs of nc st ld forward

* fix(pbmt): fix address align error
* fix(uncache): delay flush until receiving uncache resp when state is not idle

* style(pbmt): remove some useless code and comments

* fix(uncache): not alloc and ready when existing same address entry
* style(pbmt): remove outstanding constant which is just for self-test

* fix(uncache): added mask comparison for `addrMatch`

* style(mem): code normalization

* fix(pbmt): handle cases where the load unit is byte, word, etc

* style(uncache): fix an import

* fix(uncahce): address match should use non-offset address when forwading

  In this case, to ensure correct forwarding, stores with the same address but overlapping masks cannot be entered at the same time.

* style(RAR): remove redundant design of `nc` reg
@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: 2a5929e

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
2a5929e 1.959 0.450 2.686 1.237 2.832 2.461 2.393 0.919 1.407 1.992 3.434 2.709 2.383 3.261

master branch:

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
9fabe32 1.959 0.450 2.687 1.227 2.832 2.461 2.393 0.919 1.407 1.992 3.435 2.709 2.383 3.261
8c9adf0 1.959 0.450 2.686 1.221 2.832 2.461 2.393 0.919 1.407 1.992 3.435 2.709 2.383 3.264
c92e74d 1.959 0.450 2.686 1.238 2.832 2.461 2.393 0.919 1.407 1.992 3.434 2.709 2.383 3.261
2e5ebf5 1.959 0.450 2.686 1.238 2.832 2.461 2.393 0.919 1.407 1.992 3.435 2.709 2.383 3.261
908b24d 1.902 0.450 2.686 1.223 2.832 2.461 2.393 0.919 1.407 1.992 3.434 2.709 2.383 3.264

@linjuanZ linjuanZ merged commit e10e20c into master Dec 4, 2024
9 checks passed
@linjuanZ linjuanZ deleted the dev-svpbmt-2409 branch December 4, 2024 11:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
testing beta for CI test, not merged temporarily
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants