IP Library › Granted Patent US 11,126,360
Granted Patent B2
US 11,126,360 · App. 16/660,627 · Granted Sep 21, 2021

Dynamically adjusting block mode pool sizes

Inventors: Radu Ioan Stoica (Zurich, CH); Roman Alexander Pletka (Uster, CH); Nikolas Ioannou (Zurich, CH); Nikolaos Papandreou (Thalwil, CH); Sasa Tomic (Kilchberg, CH)
Assignee: International Business Machines Corporation
G06F3/0644G06F3/0604G06F3/0631G06F3/0647G06F3/0679
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,126,360
App. No.
16/660,627
Granted
Sep 21, 2021
Kind
B2
Abstract

A computer-implemented method, according to one embodiment, is for managing a plurality of blocks of memory in two or more pools. The computer-implemented method includes: maintaining a first subset of the plurality of blocks in a first pool, where the blocks maintained in the first pool are configured in single-level cell (SLC) mode. A second subset of the plurality of blocks is also maintained in a second pool, where the blocks maintained in the second pool are configured in multi-bit-per-cell mode. Current workload input/output (I/O) metrics are also identified during runtime. Moreover, a size of the first subset of blocks in the first pool and a size of the second subset of blocks in the second pool are adjusted based on the current workload I/O metrics.

Claims (47)

1. A computer-implemented method for managing a plurality of blocks of memory in two or more pools, comprising:

maintaining a first subset of the plurality of blocks in a first pool, wherein the blocks maintained in the first pool are configured in single-level cell (SLC) mode;

maintaining a second subset of the plurality of blocks in a second pool, wherein the blocks maintained in the second pool are configured in multi-bit-per-cell mode;

identifying current workload input/output (I/O) metrics during runtime; and

adjusting a size of the first subset of blocks in the first pool and a size of the second subset of blocks in the second pool based on the current workload I/O metrics,

wherein adjusting a size of the first subset of blocks in the first pool and a size of the second subset of blocks in the second pool based on the current workload I/O metrics includes:

comparing the current workload I/O metrics to predetermined workload fingerprints.

2. The computer-implemented method of claim 1 , wherein adjusting a size of the first subset of blocks in the first pool and a size of the second subset of blocks in the second pool based on the current workload I/O metrics includes:

identifying a predetermined workload fingerprint which is a closest match to the current workload I/O metrics; and

adjusting the size of the first subset of blocks in the first pool and the size of the second subset of blocks in the second pool based on a workload configuration template associated with the identified predetermined workload fingerprint.

3. The computer-implemented method of claim 2 , wherein the workload I/O metrics include write skew.

4. The computer-implemented method of claim 2 , wherein the workload configuration template includes specific settings for each of the first and second pools.

5. The computer-implemented method of claim 4 , wherein the specific settings include the size and an occupancy of each of the respective first and second pools, wherein the size of the first subset of blocks in the first pool is adjusted using the specific settings for the first pool, wherein the size of the second subset of blocks in the second pool is adjusted using the specific settings for the second pool.

6. The computer-implemented method of claim 2 , wherein the method is implemented by a hybrid controller, wherein the predetermined workload fingerprints are computed offline and preloaded into the hybrid controller.

7. The computer-implemented method of claim 6 , wherein adjusting the size of the first subset of blocks in the first pool and the size of the second subset of blocks in the second pool includes:

transferring at least one block from the second subset of blocks in the second pool to the first subset of blocks in the first pool and/or transferring at least one block from the first subset of blocks in the first pool to the second subset of blocks in the second pool.

8. The computer-implemented method of claim 1 , wherein the memory includes non-volatile random access memory (NVRAM).

9. The computer-implemented method of claim 1 , wherein the blocks in the second pool that are configured in multi-bit-per-cell mode are configured in a multi-bit-per-cell mode selected from the group consisting of: triple-level cell (TLC) mode, quad-level cell (QLC) mode, and penta-level cell (PLC) mode.

10. A computer program product for managing a plurality of blocks of memory in two or more pools, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable and/or executable by a processor to cause the processor to:

maintain, by the processor, a first subset of the plurality of blocks in a first pool, wherein the blocks maintained in the first pool are configured in single-level cell (SLC) mode;

maintain, by the processor, a second subset of the plurality of blocks in a second pool, wherein the blocks maintained in the second pool are configured in multi-bit-per-cell mode;

identify, by the processor, current workload input/output (I/O) metrics during runtime; and

adjust, by the processor, a size of the first subset of blocks in the first pool and a size of the second subset of blocks in the second pool based on the current workload I/O metrics,

wherein adjusting a size of the first subset of blocks in the first pool and a size of the second subset of blocks in the second pool based on the current workload I/O metrics includes:

comparing the current workload I/O metrics to predetermined workload fingerprints, and

identifying a predetermined workload fingerprint which is a closest match to the current workload I/O metrics.

11. The computer program product of claim 10 , wherein adjusting a size of the first subset of blocks in the first pool and a size of the second subset of blocks in the second pool based on the current workload I/O metrics includes:

adjusting the size of the first subset of blocks in the first pool and the size of the second subset of blocks in the second pool to match prespecified settings in a workload configuration template associated with the identified predetermined workload fingerprint.

12. The computer program product of claim 11 , wherein the workload I/O metrics include write skew.

13. The computer program product of claim 11 , wherein the workload configuration template includes the prespecified settings for each of the first and second pools.

14. The computer program product of claim 13 , wherein the prespecified settings include the size and an occupancy of each of the respective first and second pools, wherein the size of the first subset of blocks in the first pool is adjusted using the prespecified settings for the first pool, wherein the size of the second subset of blocks in the second pool is adjusted using the prespecified settings for the second pool.

15. The computer program product of claim 11 , wherein the processor is a hybrid controller, wherein the predetermined workload fingerprints are computed offline and preloaded into the hybrid controller.

16. The computer program product of claim 15 , wherein adjusting the size of the first subset of blocks in the first pool and the size of the second subset of blocks in the second pool includes:

transferring at least one block from the second subset of blocks in the second pool to the first subset of blocks in the first pool and/or transferring at least one block from the first subset of blocks in the first pool to the second subset of blocks in the second pool.

17. The computer program product of claim 10 , wherein the memory includes non-volatile random access memory (NVRAM).

18. The computer program product of claim 10 , wherein the blocks in the second pool that are configured in multi-bit-per-cell mode are configured in a multi-bit-per-cell mode selected from the group consisting of: triple-level cell (TLC) mode, quad-level cell (QLC) mode, and penta-level cell (PLC) mode.

19. A system, comprising:

a plurality of non-volatile random access memory (NVRAM) blocks configured to store data; and

a processor and logic integrated with and/or executable by the processor, the logic being configured to:

maintain, by the processor, a first subset of the plurality of blocks in a first pool, wherein the blocks maintained in the first pool are configured in single-level cell (SLC) mode;

maintain, by the processor, a second subset of the plurality of blocks in a second pool, wherein the blocks maintained in the second pool are configured in multi-bit-per-cell mode;

identify, by the processor, current workload input/output (I/O) metrics during runtime; and

adjust, by the processor, a size of the first subset of blocks in the first pool and a size of the second subset of blocks in the second pool based on the current workload I/O metrics,

wherein adjusting a size of the first subset of blocks in the first pool and a size of the second subset of blocks in the second pool based on the current workload I/O metrics includes:

comparing the current workload I/O metrics to predetermined workload fingerprints;

identifying a predetermined workload fingerprint which is a closest match to the current workload I/O metrics; and

adjusting the size of the first subset of blocks in the first pool and the size of the second subset of blocks in the second pool based on a workload configuration template associated with the identified predetermined workload fingerprint.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2019
From: STOICA, RADU IOAN; PLETKA, ROMAN ALEXANDER; IOANNOU, NIKOLAS; PAPANDREOU, NIKOLAOS; TOMIC, SASA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 050981/0445 →
Continuity (1)
Related Publication 20210117118A1 · Apr 22, 2021
Cited By (1)
US 12,366,984