-
Notifications
You must be signed in to change notification settings - Fork 779
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
[ast, entropy_src] Reducing idle power #22223
Comments
I think it is OK to disable ES and AST RNG without disabling the subsystem. It may even be OK to keep entropy seeds on the side and inject them back into the system when needed. But as you mentioned, any stalling of the AST RNG or the health tests must be followed by a startup test. |
BTW, do we really need the HW conditioner? If it is acceptable to suck the data from the observe FIFO and push it by software to the CSRNG, we can reduce both gate-count and power consumption. |
@vsukhoml as FYI |
Related issues #22293 |
Sorry @zi-v , I completely forgot to get back to you as a second issue got opened where most of the discussion happened. Apologies! Thanks for your feedback. I think at this point we try to avoid further big RTL changes if possible. Changing the esfinal FIFO clearing would be doable but removing the conditioner (while having big area impact) feels like a very disruptive change at this point. It also makes the hardware block as such less attractive and I haven't been involved in this block from the beginning, thus don't know all the background. I wouldn't feel comfortable to remove it. I am now closing this issue to continue the discussion in #22293. |
Description
ES measurements indicate that the power consumption of Earl Grey in idle mode is non-ideal. One possible reason for this could be in the interaction of AST and ENTROPY_SRC.
Currently, the documentation of ENTROPY_SRC states that once the esfinal FIFO becomes full (which is the case when the chip is idle), the SHA3 conditioner isn't run anymore and entropy is dropped at the input of the conditioner to save power. However, this isn't true. The conditioner is run even if the esfinal FIFO is full and entropy is dropped between the conditioner and the esfinal FIFO.
One other potential problem here is that previously, the noise source inside AST was disabled once the hardware pipeline inside ENTROPY_SRC generated backpressure. This could help against high idle power consumption but there are two issues with it: 1) in case of the esfinal FIFO gets full, the backpressure doesn't reach the front of the pipeline, i.e., the noise source is not disabled, 2) we had to rework this anyway for PROD because it's not spec compliant (whenever the noise source is turned on again, startup health tests need to be performed).
What we could do for PROD is to ensure ENTROPY_SRC can be disabled/enabled without disabling/enabling the full entropy complex (because that's more time consuming) or without dropping the content of the esfinal FIFO. Then, software could explicitly switch off ENTROPY_SRC and hence the noise source in AST to save power.
Does this sound reasonable to you @zi-v , @moidx ? Do you maybe have other and better ideas?
The text was updated successfully, but these errors were encountered: