A memory system, comprising: a primary memory module; a secondary memory module; and a controller configured to identify addresses in the primary memory module requiring correction, wherein the controller is further configured to: receive a memory access request identifying an address in the primary memory module; determine, by accessing a stored address table identifying addresses in the primary memory module requiring correction, whether the address is identified as requiring correction; if the address is not identified as requiring correction, direct the memory access request to the primary memory module; and if the address is identified as requiring correction, direct the memory access request to the secondary memory module, characterized by the controller being further configured to: determine a target operating voltage of the primary memory module; determine a likely error rate of the primary memory module at the target operating voltage; determine a redundant capacity required based on the likely error rate of the primary memory module; and adjust the capacity of the secondary memory module to match the redundant capacity. a primary memory module; a secondary memory module; and a controller configured to identify addresses in the primary memory module requiring correction, wherein the controller is further configured to: receive a memory access request identifying an address in the primary memory module; determine, by accessing a stored address table identifying addresses in the primary memory module requiring correction, whether the address is identified as requiring correction; if the address is not identified as requiring correction, direct the memory access request to the primary memory module; and if the address is identified as requiring correction, direct the memory access request to the secondary memory module, characterized by the controller being further configured to: determine a target operating voltage of the primary memory module; determine a likely error rate of the primary memory module at the target operating voltage; determine a redundant capacity required based on the likely error rate of the primary memory module; and adjust the capacity of the secondary memory module to match the redundant capacity. receive a memory access request identifying an address in the primary memory module; determine, by accessing a stored address table identifying addresses in the primary memory module requiring correction, whether the address is identified as requiring correction; if the address is not identified as requiring correction, direct the memory access request to the primary memory module; and if the address is identified as requiring correction, direct the memory access request to the secondary memory module, characterized by the controller being further configured to: determine a target operating voltage of the primary memory module; determine a likely error rate of the primary memory module at the target operating voltage; determine a redundant capacity required based on the likely error rate of the primary memory module; and adjust the capacity of the secondary memory module to match the redundant capacity. determine a target operating voltage of the primary memory module; determine a likely error rate of the primary memory module at the target operating voltage; determine a redundant capacity required based on the likely error rate of the primary memory module; and adjust the capacity of the secondary memory module to match the redundant capacity.