Methods and system with dynamic ECC voltage and frequency
Apparatus and methods are disclosed, including using a memory controller to monitor at least one parameter related to power level of a host processor of a host device, and dynamically adjusting at least one of a clock frequency and a voltage level of an error-correcting code (ECC) subsystem of the memory controller based on the at least one parameter to control power usage of the host device.
1. A storage system, comprising:
a memory array; and
a memory controller that comprises an error-correcting code (ECC) subsystem and that is configured to:
communicate with a host processor to implement interactions between the host processor and the memory array;
monitor a temperature of at least a portion of the storage system; and
adjust a clock frequency or a voltage level of the ECC subsystem of the memory controller based at least in part on the monitored temperature, wherein the ECC subsystem comprises an ECC generation portion and an ECC checking portion, and wherein the ECC generation portion is configured to operate at a different voltage level than the ECC checking portion.
2. The storage system of claim 1 , comprising a temperature sensor configured to monitor the temperature of the at least a portion of the storage system.
3. The storage system of claim 1 , comprising a bit error rate monitor configured to monitor a bit error rate for the storage system.
4. The storage system of claim 3 , wherein the memory controller is configured to adjust the clock frequency or the voltage level of the ECC subsystem based at least in part on the monitored bit error rate.
5. The storage system of claim 1 , wherein adjusting the clock frequency of the ECC subsystem comprises adjusting the clock frequency between 100 MHz and 1000 MHz.
6. The storage system of claim 1 , wherein adjusting the voltage level comprises adjusting the voltage level between 0.7 V and 1.0 V.
7. The storage system of claim 1 , wherein adjusting the clock frequency or the voltage level is based on comparison of the monitored temperature to a threshold.
8. The storage system of claim 7 , wherein the memory controller is configured to receive an indication of the threshold to set a temperature for the threshold.
9. The storage system of claim 8 , wherein the indication comprises a fuse, a metal mask, a bonding option, a substrate wiring option, a bootstrap hardware select pin, or a read-only memory (ROM) setting.
10. The storage system of claim 1 , wherein the memory controller is configured to:
save a previous setting of the clock frequency of the ECC subsystem of the memory controller; and
restore the previous setting when entering or exiting sleep mode for the storage system.
11. The storage system of claim 1 , wherein the memory controller is configured to:
save a previous setting of the voltage level of the ECC subsystem of the memory controller; and
restore the previous setting when entering or exiting sleep mode for the storage system.
12. A method, comprising:
monitoring, by a memory controller of a storage system, a temperature of the storage system; and
adjusting, by the memory controller, a voltage level of an error-correcting code (ECC) subsystem of the memory controller based at least in part on the monitored temperature, wherein the ECC subsystem comprises an ECC generation portion and an ECC checking portion, and adjusting the voltage of the ECC subsystem comprises operating the ECC generation portion at a different voltage level than the ECC checking portion.
13. The method of claim 12 , wherein the temperature comprises an ambient temperature.
14. The method of claim 12 , comprising:
monitoring, by the memory controller, a wear of a storage medium corresponding to the memory controller; and
adjusting, by the memory controller, the voltage level of the ECC subsystem of the memory controller based at least in part on the monitored wear of the storage medium.
15. The method of claim 12 , wherein monitoring the temperature comprises comparing the monitored temperature to a programmable threshold, and adjusting the voltage level is based at least in part on a comparison of the monitored temperature and the programmable threshold.
16. The method of claim 15 , comprising programming, by the memory controller, the programmable threshold based at least in part on a fuse, a metal mask, a bonding option, a substrate wiring option, a bootstrap hardware select pin, or a read-only memory (ROM) setting.
17. A storage system, comprising:
a memory array;
a temperature sensor configured to measure a temperature; and
a memory controller that comprises an error-correcting code (ECC) subsystem and that is configured to:
monitor the temperature via the temperature sensor; and
adjust a clock frequency or a voltage level of the ECC subsystem of the memory controller based at least in part on the monitored temperature, wherein the ECC subsystem comprises an ECC generation portion and an ECC checking portion, and wherein the ECC generation portion is configured to operate at a different voltage level than the ECC checking portion.
18. The storage system of claim 17 , wherein adjusting the clock frequency of the ECC subsystem includes using ring buffers to adjust for clock domain differences within the ECC subsystem.
19. The storage system of claim 17 , wherein the memory controller is configured to:
monitor a power level of a host system that is host to the storage system; and
adjust the clock frequency or the voltage level based at least in part on the monitored power level.