IP Library Granted Patent US 12,554,400
Granted Patent B2
US 12,554,400 · App. 18/244,618 · Granted Feb 17, 2026

Method of operating storage device using host request bypass and storage device performing the same

Inventor: Yongchan Jo (Suwon-si, KR)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F3/061G06F3/064G06F3/0655G06F3/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 12,554,400
App. No.
18/244,618
Granted
Feb 17, 2026
Kind
B2
Abstract

In a method of operating a storage device, the method receives a first data input/output (I/O) request for performing a first data I/O operation on a first memory block from a host device, where the first data I/O request includes an address of the first memory block. The method receives a parameter check table including a plurality of parameters from the buffer memory. By scheduling the first data I/O request using a first parameter corresponding to the address of the first memory block and the parameter check table, when the first parameter is equal to one of the plurality of parameters, the method transmits a first data I/O command to non-volatile memories, such that a first latency from a time at which the first data I/O request is received to a time at which the first data I/O command is transmitted becomes longer than a reference latency.

Claims (70)

1 . A method of operating a storage device including a plurality of non-volatile memories and a buffer memory, the method comprising:

receiving a first data input/output (I/O) request for performing a first data I/O operation from a host device located outside the storage device, the first data I/O request including an address of a first memory block among a plurality of memory blocks included in the plurality of non-volatile memories, the first data I/O operation being performed on the first memory block;

receiving a parameter check table including a plurality of parameters from the buffer memory; and

transmitting a first data I/O command to at least one of the plurality of non-volatile memories by scheduling the first data I/O request using a first parameter and the parameter check table, the first data I/O command corresponding to the first data I/O request, the first parameter corresponding to the address of the first memory block,

wherein transmitting the first data I/O command includes:

generating, based on the first data I/O request, a first I/O job descriptor including the first parameter and a first scheduling group identification (ID) indicating a first scheduling group among a plurality of scheduling groups, and

wherein, when the first parameter of the first I/O job descriptor is equal to one of the plurality of parameters of the parameter check table, a timing of transmitting the first data I/O command is controlled such that a first latency from a time at which the first data I/O request is received to a time at which the first data I/O command is transmitted becomes longer than a reference latency.

2 . The method of claim 1 ,

wherein, when the first parameter is equal to one of the plurality of parameters included in the parameter check table, a first operation is being performed on the first memory block.

3 . The method of claim 2 ,

wherein the first operation is an operation in which at least a part of first data stored in the first memory block is copied to a second memory block different from the first memory block among the plurality of memory blocks.

4 . The method of claim 3 ,

wherein the first operation is performed when an error occurs in the first memory block or is performed to change the first memory block into a free memory block.

5 . The method of claim 2 ,

wherein, during the first operation being performed on the first memory block, execution of the first data I/O operation on the first memory block is delayed.

6 . The method of claim 5 ,

wherein the first data I/O operation is a data read operation in which at least a part of first data stored in the first memory block is read.

7 . The method of claim 6 , wherein the first data I/O operation is performed when a read count threshold value of the first memory block is greater than zero.

8 . The method of claim 2 , further comprising:

when performing the first operation starts, updating the parameter check table to add the first parameter to the parameter check table.

9 . The method of claim 8 , further comprising:

when performing the first operation is completed, updating the parameter check table to delete the first parameter from the parameter check table.

10 . The method of claim 1 , wherein transmitting the first data I/O command further includes:

comparing the first parameter with the plurality of parameters;

performing a scheduling operation based on a result of comparing the first parameter with the plurality of parameters; and

outputting the first data I/O command based on a result of the scheduling operation.

11 . The method of claim 10 , wherein performing the scheduling operation includes:

when a parameter having the same value as the first parameter exists in the plurality of parameters, scheduling a second data I/O operation different from the first data I/O operation to be performed before the first data I/O operation is performed; and

when the parameter having the same value as the first parameter does not exist in the plurality of parameters, scheduling the first data I/O operation to be immediately performed.

12 . The method of claim 10 ,

wherein the parameter check table further includes a plurality of source scheduling group IDs corresponding to the plurality of parameters and a plurality of destination scheduling group IDs corresponding to the plurality of parameters.

13 . The method of claim 12 , wherein performing the scheduling operation includes:

when a second parameter among the plurality of parameters has the same value as the first parameter, performing a scheduling operation on a second scheduling group ID corresponding to a destination scheduling group ID of the second parameter before a scheduling operation is performed on the first scheduling group ID; and

when a parameter having the same value as the first parameter does not exist in the plurality of parameters, performing the scheduling operation on the first scheduling group ID immediately.

14 . The method of claim 12 ,

wherein first parts of the plurality of scheduling groups correspond to different users using the storage device through the host device, and

wherein second parts of the plurality of scheduling groups correspond to jobs performed by the storage device regardless of the host device.

15 . The method of claim 12 , wherein each of the plurality of scheduling groups is configured to process data I/O requests with predetermined performance.

16 . The method of claim 1 , wherein, when the first parameter is different from all of the plurality of parameters included in the parameter check table, the timing of transmitting the first data I/O command is controlled such that the first latency becomes shorter than the reference latency.

17 . The method of claim 1 ,

wherein the address of the first memory block included in the first data I/O request is a logical address, and

wherein the first parameter is a physical address of the first memory block.

18 . A storage device comprising:

a storage controller;

a plurality of non-volatile memories controlled by the storage controller, and including a plurality of memory blocks; and

a buffer memory controlled by the storage controller, and configured to store a parameter check table including a plurality of parameters,

wherein the storage controller is configured to:

receive a first data input/output (I/O) request for performing a first data I/O operation from a host device located outside the storage device, the first data I/O request including an address of a first memory block among the plurality of memory blocks, the first data I/O operation being performed on the first memory block;

receive the parameter check table from the buffer memory;

transmit a first data I/O command to at least one of the plurality of non-volatile memories by scheduling the first data I/O request using a first parameter and the parameter check table, the first data I/O command corresponding to the first data I/O request, the first parameter corresponding to the address of the first memory block; and

when the first parameter is equal to one of the plurality of parameters included in the parameter check table, control a timing of transmitting the first data I/O command such that a first latency from a time at which the first data I/O request is received to a time at which the first data I/O command is transmitted becomes longer than a reference latency,

wherein the storage controller is configured further to generate, in the transmitting of the first data I/O command, a first I/O job descriptor based on the first data I/O request, and

wherein the first I/O job descriptor includes the first parameter and a first scheduling group identification (ID) indicating a first scheduling group among a plurality of scheduling groups.

19 . The storage device of claim 18 ,

wherein the buffer memory is included in the storage controller.

20 . A method of operating a storage device including a storage controller, a plurality of non-volatile memories and a buffer memory, and communicating with a host device located outside the storage device, the method comprising:

receiving, by the storage controller, a first data read request for performing a first data read operation from the host device, the first data read operation being performed on a first memory block among a plurality of memory blocks included in the plurality of non-volatile memories;

receiving, by the storage controller, a parameter check table from the buffer memory; and

transmitting, by the storage controller, a first data read command to at least one of the plurality of non-volatile memories by scheduling the first data read request using the parameter check table, the first data read command corresponding to the first data read request,

wherein the first data read request includes a logical address of the first memory block,

wherein a first read job descriptor generated based on the first data read request includes a first parameter corresponding to a physical block number (PBN) of the first memory block, and a first scheduling group identification (ID) corresponding to a first scheduling group among a plurality of scheduling groups,

wherein the parameter check table includes a plurality of parameters, a plurality of source scheduling group IDs corresponding to the plurality of parameters and a plurality of destination scheduling group IDs corresponding to the plurality of parameters,

wherein transmitting the first data read command includes:

generating the first read job descriptor based on the first data read request;

comparing the first parameter included in the first read job descriptor with the plurality of parameters included in the parameter check table;

when a second parameter among the plurality of parameters has the same value as the first parameter, performing a scheduling operation on a second scheduling group ID corresponding to a destination scheduling group ID of the second parameter before a scheduling operation is performed on the first scheduling group ID;

when a parameter having the same value as the first parameter does not exist in the plurality of parameters, performing the scheduling operation on the first scheduling group ID immediately; and

outputting the first data read command based on a result of the scheduling operations,

wherein, when the second parameter has the same value as the first parameter, an operation in which at least a part of first data stored in the first memory block is copied to a second memory block different from the first memory block among the plurality of memory blocks is being performed, and

wherein, when the second parameter has the same value as the first parameter, a timing of transmitting the first data read command is controlled such that execution of the first data read operation on the first memory block is delayed, and the timing of transmitting the first data read command is controlled such that a first latency from a time at which the first data read request is received to a time at which the first data read command is transmitted becomes longer than a reference latency.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2023
From: JO, YONGCHAN
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 065095/0450 →
Priority Claims (1)
KR 10-2023-0012358 · Jan 31, 2023 · national
Continuity (1)
Related Publication 20240256130A1 · Aug 1, 2024
References Cited (10)
US 9921908B2 · Yum et al. · 2018 [cited by applicant]
US 10310924B2 · Jei et al. · 2019 [cited by applicant]
US 10579286B2 · Oh et al. · 2020 [cited by applicant]
US 11416413B1 · Lercari et al. · 2022 [cited by applicant]
US 20180046377A1 · Camp · 2018 [cited by examiner]
US 20220083275A1 · Liu et al. · 2022 [cited by applicant]
KR 1020190054239A · 2019 [cited by applicant]
KR 102277521B1 · 2021 [cited by applicant]
KR 102435873B1 · 2022 [cited by applicant]
Jin Ae and Youpyo Hong, “Efficient Garbage Collection Algorithm for Low Latency SSD,” Electronics 2022, 11, 1084. [cited by applicant]