# US 11,030,100 B1 · Expansion of HBA write cache using NVDIMM

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,030,100 B1
- Document ID: US11030100B1
- Status: Granted
- Kind: B1
- Application number: 16/687,646
- Filed: 2019-11-18
- Published: 2021-05-20
- Granted: 2021-06-08
- Earliest claimed: 2019-11-18
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Jiang Yu; Chun Yao; Hong Xin Hou; Yu Sun; Shu Luo; Wen Jun Jin
- Web page: https://patentgrep.com/patent/US11030100B1

## CPC

- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 12/0804: with main memory updating (G06F12/0806 takes precedence)
- G06F 2212/604: Details relating to cache allocation
- G06F 2212/7203: Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments relate to a system, program product, and method for expanding the retention capacity of a write cache on a host bus adaptor (HBA) device through the use of non-volatile dual in-line memory modules (NVDIMMs). At least a portion of the existing NVDIMM capacity is leveraged to temporarily retain data that is to be written to persistent storage to reduce the potential for data loss during external electric power disruptions. A NVDIMM HBA Write Cache Module (NHWCM) facilitates the data file traffic transmission and I/O command generation and transmission between a processing device, the HBA device, the NVDIMMs, and the persistent storage.

## Claims

### Claim 1

A computer system comprising:
a processing device;
a host bus adaptor (HBA) in communication with the processing device;
at least one persistent storage device in communication with the HBA;
a memory operatively coupled to the processing device, the memory comprising at least one non-volatile dual in-line memory module (NVDIMM), the memory further comprising a NVDIMM HBA Write Cache Module (NHWCM), the NHWCM in communication with the HBA and the NVDIMM, the NHWCM configured to:
determine there is a least one file to be written to the persistent storage from the processing device;
determine that the NVDIMM includes sufficient storage capacity for storage of the at least one file;
write the at least one file to the NVDIMM;
determine that the HBA is available to receive the at least one file from the NVDIMM; and
write the at least one file to the persistent storage from the NVDIMM through the HBA.

### Claim 2 (depends on 1)

The system of claim 1, further comprising the NHWCM configured to:
determine there is a second file to be written to the persistent storage from the processing device;
determine that the NVDIMM does not include sufficient storage capacity for the second file; and
write the second file to the HBA.

### Claim 3 (depends on 1)

The system of claim 1, further comprising the NHWCM configured to:
maintain storage of a plurality of files to be written to the persistent storage throughout a disruption of external electric power to the processing device, the NVDIMM, and HBA.

### Claim 4 (depends on 3)

The system of claim 3, further comprising the NHWCM configured to:
write the plurality of files to persistent storage from the NVDIMM through the HBA upon restoration of external electric power.

### Claim 5 (depends on 1)

The system of claim 1, further comprising the NHWCM configured to:
populate a record mapping structure resident within the NVDIMM with mapping information facilitating:
writing of the at least one file from the processing device to the NVDIMM; and
writing of the at least one file from the NVDIMM to the persistent storage.

### Claim 6 (depends on 1)

The system of claim 1, wherein the NVDIMM comprises a plurality of NVDIMMs, wherein at least a portion of each NVDIMM is reserved by the NHWCM for dedicated storage of files to be written to the persistent storage to define a plurality of reserved portions of the NVDIMMs, wherein the plurality of reserved portions of the NVDIMMs defines an NVDIMM HBA write cache pool.

### Claim 7 (depends on 1)

The system of claim 1, further comprising the NHWCM configured to:
initialize and populate a metadata record for each file, the metadata record to facilitate writing the file to the NVDIMM from the processing device and writing the file from the NVDIMM to the persistent storage.

### Claim 8

A computer program product for file data management, the computer program product comprising one or more computer readable storage media, and program instructions collectively stored on the one or more computer storage media, the program instructions comprising:
program instructions to determine there is a least one file to be written to persistent storage from a processing device;
program instructions to determine that at least one non-volatile dual in-line memory module (NVDIMM) includes sufficient storage capacity for storage of the at least one file;
program instructions to write the at least one file to the NVDIMM;
program instructions to determine that a host bus adaptor (HBA) is available to receive the at least one file from the NVDIMM; and
program instructions to write the at least one file to the persistent storage from the NVDIMM through the HBA.

### Claim 9 (depends on 8)

The computer program product of claim 8, further comprising program instructions to:
determine through a NVDIMM HBA Write Cache Module (NHWCM) that at least a portion of the NVDIMM includes sufficient storage capacity for a file transfer of the at least one file designated for writing to the persistent storage through the HBA, wherein the processing device, NVDIMM, HBA, NHWCM, and the persistent storage are in operable communication.

### Claim 10 (depends on 9)

The computer program product of claim 9, further comprising program instructions to:
determine, through the NHWCM, that there is a second file to be written to the persistent storage from the processing device;
determine that the NVDIMM does not include sufficient storage capacity for the second file; and
write the second file to the HBA.

### Claim 11 (depends on 9)

The computer program product of claim 9, further comprising program instructions to:
maintain storage of a plurality of files to be written to the persistent storage on the NVDIMM through disruption of external electric power to the NVDIMM and the HBA.

### Claim 12 (depends on 11)

The computer program product of claim 11, further comprising program instructions to:
write the plurality of files to the persistent storage from the NVDIMM through the HBA upon restoration of external electric power.

### Claim 13 (depends on 9)

The computer program product of claim 9, further comprising program instructions to:
initialize and populate a metadata record for each file, the metadata record to facilitate writing each file to the NVDIMM from the processing device and writing each file from the NVDIMM to the persistent storage.

### Claim 14

A computer-implemented method comprising:
determining there is a least one file to be written to persistent storage from a processing device;
determining that at least one non-volatile dual in-line memory module (NVDIMM) includes sufficient storage capacity for storage of the at least one file;
writing the at least one file to the NVDIMM;
determining that a host bus adaptor (HBA) is available to receive the at least one file from the NVDIMM; and
writing the at least one file to the persistent storage from the NVDIMM through the HBA.

### Claim 15 (depends on 14)

The method of claim 14, further comprising:
determining, through a NVDIMM HBA Write Cache Module (NHWCM), that at least a portion of the NVDIMM includes sufficient storage capacity for a file transfer of the at least one file designated for writing to the persistent storage through the HBA, wherein the processing device, NVDIMM, HBA, NHWCM, and the persistent storage are in operable communication with each other.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
determining, through the NHWCM, that there is a second file to be written to the persistent storage from the processing device;
determining, through the NHWCM, that the NVDIMM does not include sufficient storage capacity for the second file; and
writing the second file to the HBA.

### Claim 17 (depends on 15)

The method of claim 15, further comprising:
maintaining storage of a plurality of files to be written to the persistent storage on the NVDIMM through disruption of external electric power to the NVDIMM and the HBA.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
writing the plurality of files to the persistent storage from the NVDIMM through the HBA upon restoration of external electric power.

### Claim 19 (depends on 14)

The method of claim 14, further comprising:
initializing and populating a metadata record for each file, the metadata record to facilitate writing each file to the NVDIMM from the processing device and writing each file from the NVDIMM to the persistent storage.

### Claim 20 (depends on 14)

The method of claim 14, wherein writing the at least one file to the NVDIMM comprises determining an NVDIMM from a plurality of NVDIMMs to write the at least one file thereto, wherein the plurality of NVDIMMS defines a NVDIMM HBA write cache pool.
