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(XSNoCTop): Power down and WFI gating #4373

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

yulightenyu
Copy link
Contributor

feat(XSNoCTop): The low-power features include the following:

  • when Core is in WFI state, Core+L2 clock is gated and restore clocks only when interrupt/reset/snoop.
  • low-power process is controlled by FSM to follow the steps: flush L2 -> core enter WFI state -> send power-down request to SoC (o_cpu_no_op)
  • SoC plays as PPU to generate power on/off sequence with signals: isolation/reset/clock, also the power on/off req/ack signals

* when Core is in WFI state, Core+L2 clock is gated and restore clocks only when interrupt/reset/snoop.
* low-power process is controlled by FSM to follow the steps: flush L2 -> core enter WFI state -> send power-down request to SoC (o_cpu_no_op)
* SoC plays as PPU to generate power on/off sequence with signals: isolation/reset/clock, also the power on/off req/ack signals
@yulightenyu yulightenyu changed the title Power down wfi gate feat(XSNoCTop): Power down and WFI gating Mar 6, 2025
@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: f469c60

commit astar copy_and_run coremark gcc gromacs hmmer-Vector lbm linux mcf microbench milc namd povray wrf xalancbmk
f469c60 1.794 0.442 2.641 1.236 2.158 1.676 2.143 2.363 0.943 1.389 1.961 3.102 2.538 2.275 3.276

master branch:

commit astar copy_and_run coremark gcc gromacs hmmer-Vector lbm linux mcf microbench milc namd povray wrf xalancbmk
a2ecedc 1.823 0.442 2.641 1.234 2.158 1.676 2.144 2.364 0.940 1.378 1.972 3.112 2.538 2.272 3.300
ac5be75 1.822 1.242 2.158 1.676 2.144 0.940 1.972 3.112 2.272 3.300
eaf1474 1.823 0.442 2.641 1.228 2.158 1.676 2.144 2.364 0.940 1.389 1.972 3.112 2.538 2.272 3.300
90f8d3c 1.823 0.442 2.641 1.232 2.158 1.676 2.144 2.364 0.940 1.378 1.972 3.112 2.538 2.272 3.300
455e3b5 1.795 0.442 2.641 1.235 2.158 1.676 2.143 2.363 0.943 1.389 1.961 3.102 2.538 2.275 3.276
4c91604 1.795 0.442 2.641 1.236 2.158 1.676 2.143 2.363 0.943 1.389 1.961 3.102 2.538 2.275 3.276
25381b7 1.795 0.442 2.641 1.234 2.158 1.676 2.143 2.363 0.943 1.378 1.961 3.102 2.538 2.275 3.276
aa78128 1.795 0.442 2.641 1.235 2.158 1.676 2.143 2.363 0.943 1.378 1.961 3.102 2.538 2.275 3.276
d084f29 1.794 0.442 2.641 1.230 2.158 1.676 2.143 2.363 0.943 1.378 1.961 3.102 2.538 2.275 3.276
e0d20e1 1.794 0.442 2.641 1.230 2.158 1.676 2.143 2.363 0.943 1.378 1.961 3.102 2.538 2.275 3.276

Copy link
Member

@linjuanZ linjuanZ left a comment

Choose a reason for hiding this comment

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

Have you tested whether it can still operate normally with the power-down feature turned on?

1. remove i_cpu_sw_clk_en and use i_cpu_sw_rst_n to gate clock during power down sequence
2. fix value of soc_rst_n when low power disabled
3. add exitco state check in cpu low power state for safe
@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: 0caea6d

commit astar copy_and_run coremark gcc gromacs hmmer-Vector lbm linux mcf microbench milc namd povray wrf xalancbmk
0caea6d 1.806 0.442 2.641 1.228 2.150 1.676 2.149 2.364 0.933 1.389 2.010 3.108 2.538 2.274 3.309

master branch:

commit astar copy_and_run coremark gcc gromacs hmmer-Vector lbm linux mcf microbench milc namd povray wrf xalancbmk
8893eb2 1.806 0.442 2.641 1.236 2.150 1.676 2.149 2.364 0.933 1.389 2.010 3.108 2.538 2.274 3.309
961164a 1.806 0.442 2.641 1.227 2.150 1.676 2.149 2.364 0.933 1.378 2.010 3.108 2.538 2.274 3.309
42b75a5 1.806 0.442 2.641 1.229 2.150 1.676 2.149 2.364 0.933 1.378 2.010 3.108 2.538 2.274 3.309
f9395f7 1.806 0.442 2.641 1.229 2.150 1.676 2.149 2.364 0.933 1.389 2.010 3.108 2.538 2.274 3.309
c1eb288 1.806 0.442 2.641 1.237 2.150 1.676 2.149 2.364 0.933 1.389 2.010 3.108 2.538 2.274 3.309
9d7a35d 1.822 0.442 2.641 1.228 2.158 1.676 2.144 2.364 0.940 1.378 1.972 3.112 2.538 2.272 3.300
fad7c42 1.823 0.442 2.641 1.228 2.158 1.676 2.144 2.364 0.940 1.389 1.972 3.112 2.538 2.272 3.300
dfb03ba 1.822 0.442 2.641 1.234 2.158 1.676 2.144 2.364 0.940 1.378 1.972 3.112 2.538 2.272 3.300
d6b0a27 1.823 0.442 2.641 1.226 2.158 1.676 2.144 2.364 0.940 1.378 1.972 3.112 2.538 2.272 3.300

* fix iso_en/pwrdown_req_n/pwrdown_ack_n connection and set to a default value
* change bundle <LowPowerIo>
@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: 11ae53b

commit astar copy_and_run coremark gcc gromacs hmmer-Vector lbm linux mcf microbench milc namd povray wrf xalancbmk
11ae53b 1.806 0.442 2.641 1.229 2.150 1.676 2.149 2.364 0.933 1.389 2.010 3.108 2.538 2.274 3.309

master branch:

commit astar copy_and_run coremark gcc gromacs hmmer-Vector lbm linux mcf microbench milc namd povray wrf xalancbmk
aa34026 1.806 0.442 2.641 1.233 2.150 1.676 2.149 2.364 0.933 1.378 2.010 3.108 2.538 2.274 3.309
d7ff192 1.806 0.442 2.641 1.229 2.150 1.676 2.149 2.364 0.933 1.378 2.010 3.108 2.538 2.274 3.309
8893eb2 1.806 0.442 2.641 1.236 2.150 1.676 2.149 2.364 0.933 1.389 2.010 3.108 2.538 2.274 3.309
961164a 1.806 0.442 2.641 1.227 2.150 1.676 2.149 2.364 0.933 1.378 2.010 3.108 2.538 2.274 3.309
42b75a5 1.806 0.442 2.641 1.229 2.150 1.676 2.149 2.364 0.933 1.378 2.010 3.108 2.538 2.274 3.309
f9395f7 1.806 0.442 2.641 1.229 2.150 1.676 2.149 2.364 0.933 1.389 2.010 3.108 2.538 2.274 3.309
c1eb288 1.806 0.442 2.641 1.237 2.150 1.676 2.149 2.364 0.933 1.389 2.010 3.108 2.538 2.274 3.309
9d7a35d 1.822 0.442 2.641 1.228 2.158 1.676 2.144 2.364 0.940 1.378 1.972 3.112 2.538 2.272 3.300
fad7c42 1.823 0.442 2.641 1.228 2.158 1.676 2.144 2.364 0.940 1.389 1.972 3.112 2.538 2.272 3.300
dfb03ba 1.822 0.442 2.641 1.234 2.158 1.676 2.144 2.364 0.940 1.378 1.972 3.112 2.538 2.272 3.300

@yulightenyu
Copy link
Contributor Author

Currently, CMN Linux passed on both turn on and off low power feature

@yulightenyu yulightenyu requested a review from linjuanZ March 14, 2025 10:17
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