A method of managing a memory system (100, 200, 1000, 1100, 1200), the method comprising: maintaining a variable credit value in a memory controller (104, 204, 1001, 1105a, 1105b, 1205a, 1205b), the variable credit value reflecting an amount of current available for memory operations in the memory system (100, 200, 1000, 1100, 1200), the variable credit value having an upper limit that reflects a maximum current limit for the memory system (100, 200, 1000, 1100, 1200); and the method further comprising: prior to performing a memory operation, checking that the variable credit value indicates that there is sufficient current available to perform the memory operation; checking if the variable credit value indicates that there is sufficient current available to perform at least a part of an additional memory operation, and if there is sufficient current to perform at least a part of an additional memory operation, then determining a degree of parallelism to use in performing the memory operation and the additional memory operation, wherein the degree of parallelism indicates whether the memory operation and the additional memory operation may be performed partially in parallel or entirely in parallel by indicating the amount by which the memory operation and the additional memory operation may overlap; and updating the variable credit value to reflect the current used in performing the memory operation and the additional memory operation. maintaining a variable credit value in a memory controller (104, 204, 1001, 1105a, 1105b, 1205a, 1205b), the variable credit value reflecting an amount of current available for memory operations in the memory system (100, 200, 1000, 1100, 1200), the variable credit value having an upper limit that reflects a maximum current limit for the memory system (100, 200, 1000, 1100, 1200); and the method further comprising: prior to performing a memory operation, checking that the variable credit value indicates that there is sufficient current available to perform the memory operation; checking if the variable credit value indicates that there is sufficient current available to perform at least a part of an additional memory operation, and if there is sufficient current to perform at least a part of an additional memory operation, then determining a degree of parallelism to use in performing the memory operation and the additional memory operation, wherein the degree of parallelism indicates whether the memory operation and the additional memory operation may be performed partially in parallel or entirely in parallel by indicating the amount by which the memory operation and the additional memory operation may overlap; and updating the variable credit value to reflect the current used in performing the memory operation and the additional memory operation. prior to performing a memory operation, checking that the variable credit value indicates that there is sufficient current available to perform the memory operation; checking if the variable credit value indicates that there is sufficient current available to perform at least a part of an additional memory operation, and if there is sufficient current to perform at least a part of an additional memory operation, then determining a degree of parallelism to use in performing the memory operation and the additional memory operation, wherein the degree of parallelism indicates whether the memory operation and the additional memory operation may be performed partially in parallel or entirely in parallel by indicating the amount by which the memory operation and the additional memory operation may overlap; and updating the variable credit value to reflect the current used in performing the memory operation and the additional memory operation.