IP Library Granted Patent US 12669937
Granted Patent B2
US 12669937 · App. 18/531,162 · Granted Jun 30, 2026

Storage device using host memory buffer and method of operating the same

Inventors: Jongmin Kim (Suwon-si, KR); Kyungsik Um (Suwon-si, KR); Minsik Oh (Suwon-si, KR); Donggil Kang (Suwon-si, KR); Jinwoo Song (Suwon-si, KR); MyungGwan Jeong (Suwon-si, KR); Kyungjune Cho (Suwon-si, KR)
Assignee: Samsung Electronics Co., Ltd.
G06F3/0613G06F3/0659G06F3/0673G11C29/18
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 12669937
App. No.
18/531,162
Filed
Dec 6, 2023
Granted
Jun 30, 2026
Kind
B2
Art Unit
2137
USPC
711/154
Abstract

A method of operating a storage device using a host memory buffer of a host includes: recording information on HMB addresses on the host memory buffer, respectively corresponding to a plurality of read requests for the host memory buffer, in an address information table when the plurality of read requests are required; transmitting the plurality of read requests to the host memory buffer, regardless of a response of the host memory buffer; receiving a plurality of pieces of read data, respectively corresponding to the plurality of read requests, from the host memory buffer; detecting an error of each of the plurality of pieces of read data; and updating the address information table based on a result of the error detection.

Claims (77)

1 . A method of operating a storage device using a host memory buffer of a host, the method comprising:

based on a plurality of read requests for the host memory buffer being required, recording, in an address information table, information on host memory buffer (HMB) addresses on the host memory buffer, the HMB addresses respectively corresponding to the plurality of read requests for the host memory buffer;

transmitting a first read request of the plurality of read requests to the host memory buffer;

before receiving a response from the host memory buffer based on the first read request, transmitting a second read request of the plurality of read requests to the host memory buffer;

receiving a plurality of pieces of read data from the host memory buffer, the plurality of pieces of read data respectively corresponding to the first and second read requests of the plurality of read requests;

detecting one or more errors within the plurality of pieces of read data; and

updating the address information table based on a result of the detection of one or more errors.

2 . The method of claim 1 , wherein updating the address information table comprises:

releasing HMB address information, corresponding to read data in which no error was detected, of the information on the HMB addresses on the host memory buffer; and

maintaining HMB address information corresponding to read data in which an error was detected.

3 . The method of claim 2 , wherein the plurality of read requests comprises the first read request to an n th read request, wherein n is an integer greater than 1, and

wherein, in transmitting the plurality of read request to the host memory buffer, the storage device is configured to transmit the n th read request to the host memory buffer regardless of a response by the host memory buffer to an n−1 th read request, and

the method comprising:

performing a data recovery operation on the maintained HMB address information in the updated address information table.

4 . The method of claim 3 , wherein performing the data recovery operation comprises:

determining whether data of an HMB address corresponding to a target of the data recovery operation has been updated after a latest flush operation.

5 . The method of claim 4 , wherein performing the data recovery operation comprises:

loading clean data from a nonvolatile memory device in the storage device; and

based on the data of the HMB address corresponding to a target of the data recovery operation having not been updated, writing the loaded clean data in an HMB address corresponding to the read data in which the error was detected.

6 . The method of claim 5 , wherein performing the data recovery operation comprises:

based on data of the HMB address corresponding to the target of the data recovery operation has been updated, replaying a write access to the host memory buffer from the latest flush operation to a time point at which an error was detected, based on journal data on the HMB address, and

wherein the journal data comprises information associated with an address and data of a write request performed on the HMB address.

7 . The method of claim 3 , further comprising:

after completion of the data recovery operation, transmitting, to the host memory buffer, a re-read request for each of HMB addresses on which the data recovery operation was performed.

8 . The method of claim 7 , further comprising:

receiving re-read data for the re-read request from the host memory buffer; and

performing an error detection operation on the re-read data.

9 . The method of claim 8 , further comprising:

based on an error being detected in the re-read data, marking a region corresponding to an HMB address corresponding to the re-read data as a bad region; and

remapping the region to an HMB address different from the HMB address corresponding to the re-read data on the host memory buffer.

10 . The method of claim 1 , wherein updating the address information table comprises:

releasing HMB address information that corresponds to read data in which no error was detected, the HMB address information corresponding to read data in which a correctable error was detected; and

maintaining HMB address information corresponding to read data in which an uncorrectable error was detected.

11 . A method of operating a storage device using a host memory buffer of a host, the method comprising:

determining to write data to a first host memory buffer (HMB) address;

in response to determining to write the data to the first HMB address, generating, by the storage device, a first write request;

in response to determining to write the data to the first HMB address, recording information on the first HMB address on the host memory buffer corresponding to the first write request for the host memory buffer;

generating a first preliminary read request for the first HMB address and then transmitting the first preliminary read request to the host memory buffer;

receiving, from the host memory buffer, first preliminary read data corresponding to the first preliminary read request;

determining that there is no error in the first preliminary read data; and

in response to determining that there is no error in the first preliminary read data, transmitting the first write request to the host memory buffer.

12 . The method of claim 11 , further comprising:

in response to determining that there is an error in the first preliminary read data, performing a data recovery operation on the first HMB address.

13 . The method of claim 12 , wherein

performing the data recovery operation comprises:

loading clean data from a nonvolatile memory device in the storage device;

based on data of the first HMB address not being updated after a latest flush operation, writing the clean data in the first HMB address; and

based on data of the first HMB address being updated after the latest flush operation, replaying a write access to the first HMB address from the latest flush operation to a time point at which an error was detected, based on journal data on the first HMB address, and

wherein the journal data comprises information associated with an address and data of a write request performed on the first HMB address.

14 . The method of claim 12 , further comprising:

transmitting, to the host memory buffer, the first write request to the host memory buffer after completion of the data recovery operation.

15 . The method of claim 12 , further comprising:

transmitting a first re-read request for the first HMB address to the host memory buffer after completion of the data recovery operation;

receiving first re-read data on the first re-read request from the host memory buffer; and

based on no error being detected in the first re-read data, transmitting the first write request.

16 . The method of claim 15 , comprising:

based on an error being detected in the first re-read data, marking, in the host memory buffer, the first HMB address as a bad region and remapping the first HMB address to a second HMB address different from the first HMB address.

17 . A storage device using a host memory buffer of a host, the storage device comprising

a host interface configured to use the host memory buffer as a memory buffer of the storage device; and

a storage controller configured to, based on a plurality of read requests being required for the host memory buffer:

record information on host memory buffer (HMB) addresses on the host memory buffer, the HMB addresses respectively corresponding to the plurality of read requests,

transmit a first read request of the plurality of read requests to the host memory buffer,

before receiving a response from the host memory buffer based on the first read request, transmitting a second read request of the plurality of read requests to the host memory buffer, and

detect an error of each of a plurality of pieces of read data, respectively corresponding to the plurality of read requests, received from the host memory buffer.

18 . The storage device of claim 17 , wherein the storage controller is configured to:

release HMB address information on the host memory buffer, the HMB address information corresponding to read data that does not require a data recovery operation; and

maintain HMB address information corresponding to read data requiring the data recovery operation.

19 . The storage device of claim 18 , wherein

the storage controller is configured to:

based on data of the HMB address corresponding to read data having not been updated after a latest flush operation, load clean data into an HMB address corresponding to read data from a nonvolatile memory device in the storage device; and

based on the data of the HMB address corresponding to the read data having been updated after the latest flush operation, replay a write access to the host memory buffer from the latest flush operation to a time point, at which the data recovery operation is performed, based on journal data for the HMB address, and

the journal data comprises information associated with an address and data of a write request performed on the HMB address.

20 . The storage device of claim 17 , wherein the storage controller is configured to:

based on a first write request for the host memory buffer being required, record information on a first HMB address on the host memory buffer, corresponding to the first write request,

generate a first preliminary read request for the first HMB address and transmit the first preliminary read request to the host memory buffer, and

receive first preliminary read data, corresponding to the first preliminary read request, from the host memory buffer,

based on no error being detected in the first preliminary read data, transmit the first write request to the host memory buffer.