IP Library Granted Patent US 11,487,477
Granted Patent B2
US 11,487,477 · App. 17/186,478 · Granted Nov 1, 2022

Memory system and method of fetching command

Inventor: Toru Katagiri (Sagamihara Kanagawa, JP)
Assignee: KIOXIA CORPORATION
G06F3/0659G06F3/0604G06F3/067G06F3/0613G06F3/0653
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,487,477
App. No.
17/186,478
Granted
Nov 1, 2022
Kind
B2
Abstract

A memory system includes a non-volatile memory and a controller. The controller controls writing of data to the non-volatile memory or reading of data from the non-volatile memory, in response to a command from at least one host. The controller performs command fetching by calculating for each of a plurality of queues, a remaining processing amount, which is an amount of processing remaining for one or more commands previously fetched therefrom, selecting a queue based on the remaining processing amounts calculated for the plurality of queues, and fetching a new command from the selected queue.

Claims (38)

1. A memory system comprising:

a non-volatile memory; and

a controller configured to control writing of data to the non-volatile memory or reading of data from the non-volatile memory, in response to a command from at least one host, wherein the controller is configured to perform command fetching by:

calculating for each of a plurality of queues, a remaining processing amount, based on a type of one or more commands previously fetched therefrom and an amount of data targeted by the one or more commands, the remaining processing amount being an amount of processing remaining for the one or more commands previously fetched therefrom,

selecting a queue that has the smallest remaining processing amount among the plurality of queues, and

fetching a new command from the selected queue, wherein

when the controller fetches a read command, the controller adds a value obtained by multiplying a first number by a first coefficient, to the remaining processing amount for a queue from which the read command is fetched, the first number being representative of a size of read data targeted by the read command, and

when the controller fetches a write command, the controller adds a value obtained by multiplying a second number by a second coefficient that is larger than the first coefficient, to the remaining processing amount for a queue from which the write command is fetched, the second number being representative of a size of write data targeted by the write command.

2. The memory system according to claim 1 , wherein

when a logical address indicating a beginning of the write data does not correspond to a boundary of a first physical cluster, the controller adds a value corresponding to the first coefficient to the remaining processing amount for the queue from which the write command is fetched, and

when a logical address indicating an end of the write data does not correspond to a boundary of a second physical cluster, the controller adds the value corresponding to the first coefficient to the remaining processing amount for the queue from which the write command is fetched.

3. The memory system according to claim 2 , wherein

each time at least a part of the read data is transmitted to the at least one host, the controller subtracts a value obtained by multiplying a third number by the first coefficient, from the remaining processing amount for the queue from which the read command is fetched, the third number being representative of a size of the part of the read data transmitted to the at least one host, and

each time at least a part of the write data is written to the non-volatile memory, the controller subtracts a value obtained by multiplying a fourth number by the second coefficient, from the remaining processing amount for the queue from which the write command is fetched, the fourth number being representative of a size of the part of the write data written to the non-volatile memory.

4. The memory system according to claim 3 , wherein

when the logical address indicating the beginning of the write data does not correspond to the boundary of the first physical cluster or the logical address indicating the end of the write data does not correspond to the boundary of the second physical cluster, the controller executes reading of data from one physical cluster, and when the reading of the data from the one physical cluster is completed, subtracts the value corresponding to the first coefficient from the remaining processing amount for the queue from which the write command is fetched.

5. The memory system according to claim 1 , wherein the plurality of queues is provided for at least two hosts, and the controller is further configured to select the host having a smallest remaining processing amount among the at least two hosts and select one of a plurality of queues of the selected host as the queue from which the new command is to be fetched.

6. The memory system according to claim 5 , wherein the controller is configured to select the queue having the smallest remaining processing amount among the plurality of queues of the selected host as the queue from which the new command is to be fetched.

7. The memory system according to claim 1 , wherein each of the plurality of queues is provided in a memory of the at least one host.

8. A method of fetching a command from one of a plurality of queues, the method comprising:

calculating for each of the plurality of queues, a remaining processing amount, based on a type of one or more commands previously fetched therefrom and an amount of data targeted by the one or more commands, the remaining processing amount being an amount of processing remaining for the one or more commands previously fetched therefrom;

selecting a queue that has the smallest remaining processing amount among the plurality of queues;

fetching a new command from the selected queue;

when a read command is fetched, adding a value obtained by multiplying a first number by a first coefficient, to the remaining processing amount for a queue from which the read command is fetched, the first number being representative of a size of read data targeted by the read command; and

when a write command is fetched, adding a value obtained by multiplying a second number by a second coefficient that is larger than the first coefficient, to the remaining processing amount for a queue from which the write command is fetched, the second number being representative of a size of write data targeted by the write command.

9. The method according to claim 8 , further comprising:

when a logical address indicating a beginning of the write data does not correspond to a boundary of a first physical cluster, adding a value corresponding to the first coefficient to the remaining processing amount for the queue from which the write command is fetched; and

when a logical address indicating an end of the write data does not correspond to a boundary of a second physical cluster, adding the value corresponding to the first coefficient to the remaining processing amount for the queue from which the write command is fetched.

10. The method according to claim 9 , further comprising:

each time at least a part of the read data is transmitted to a host, subtracting a value obtained by multiplying a third number by the first coefficient, from the remaining processing amount for the queue from which the read command is fetched, the third number being representative of a size of the part of the read data transmitted to the host; and

each time at least a part of the write data is written to a non-volatile memory, subtracting a value obtained by multiplying a fourth number by the second coefficient, from the remaining processing amount for the queue from which the write command is fetched, the fourth number being representative of a size of the part of the write data written to the non-volatile memory.

11. The method according to claim 10 , further comprising:

when the logical address indicating the beginning of the write data does not correspond to the boundary of the first physical cluster or the logical address indicating the end of the write data does not correspond to the boundary of the second physical cluster, executing reading of data from one physical cluster; and

when the reading of the data from the one physical cluster is completed, subtracting the value corresponding to the first coefficient from the remaining processing amount for the queue from which the write command is fetched.

12. The method according to claim 8 , wherein the plurality of queues is provided for at least two hosts, said method further comprising:

selecting a host having a smallest remaining processing amount among the at least two hosts, wherein one of a plurality of queues of the selected host is selected as the queue from which the new command is to be fetched.

13. The method according to claim 12 , wherein the queue having the smallest remaining processing amount among the plurality of queues of the selected host is selected as the queue from which the new command is to be fetched.

14. The method according to claim 8 , wherein each of the plurality of queues is provided in a memory of at least one host.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2021
From: KATAGIRI, TORU
To: KIOXIA CORPORATION
Reel/Frame 058424/0452 →
Priority Claims (1)
JP JP2020-124364 · Jul 21, 2020 · national
Continuity (1)
Related Publication 20220027092A1 · Jan 27, 2022