IP Library Granted Patent US 10,599,333
Granted Patent B2
US 10,599,333 · App. 15/253,692 · Granted Mar 24, 2020

Storage device having dual access procedures

Inventor: Daisuke Hashimoto (Cupertino, CA)
Assignee: TOSHIBA MEMORY CORPORATION
G06F3/0604G06F3/0659G06F3/0665G06F3/0688G06F12/0246G06F2212/1024G06F2212/1044G06F2212/214G06F2212/261G06F2212/7201G06F2212/7205G06F2212/7208
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 10,599,333
App. No.
15/253,692
Granted
Mar 24, 2020
Kind
B2
Abstract

A storage device includes a nonvolatile semiconductor memory device, and a controller configured to access the nonvolatile semiconductor memory device. When the controller receives a write command including a logical address, the controller determines a physical location of the memory device in which data are written and stores a mapping from the logical address to the physical location. When the controller receives a write command without a logical address, the controller determines a physical location of the memory device in which data are written and returns the physical location.

Claims (63)

1. A storage device comprising:

a nonvolatile semiconductor memory;

a memory;

a first controller configured to receive commands from a host device including a write command with a logical address, which is of either a first type or a second type, and a write command with no logical address; and

a second controller configured to maintain, in the memory, block mapping indicating block categorization of physical blocks of the nonvolatile semiconductor memory, which includes a first input block for writing data responsive to the write command with a logical address and a second input block for writing data responsive to the write command with no logical address, and to access the nonvolatile semiconductor memory, such that

when the second controller receives, via the first controller, the write command with a logical address that is of the first type, the second controller returns, to the host device, via the first controller, a logical write completion notification, determines a physical location of the first input block in which data associated with the write command are to be written, writes the data in the determined physical location, and stores an address mapping from the logical address to the physical location in the memory,

when the second controller receives, via the first controller, the write command with a logical address that is of the second type, the second controller returns, to the host device, via the first controller, a logical write completion notification, determines a physical location of the first input block in which data associated with the write command are to be written, writes the data in the determined physical location, returns, to the host device, via the first controller, a physical write completion notification and the physical location, and stores an address mapping from the logical address to the physical location in the memory, and

when the second controller receives, via the first controller, the write command with no logical address, the second controller determines a physical location of the second input block in which data associated with the write command are to be written, writes the data in the determined physical location, and returns the determined physical location.

2. The storage device according to claim 1 , wherein

when the second controller receives, via the first controller, the write command with the logical address that is of the first type or the second type, the second controller returns, to the host device, via the first controller, the logical write completion notification before writing the data in the determined physical location, and

when the second controller receives, via the first controller, the write command with no logical address, the second controller returns, to the host device, via the first controller, a completion notification after writing the data in the determined physical location.

3. The storage device according to claim 1 , wherein

when the write command with the logical address is of the second type, the second controller returns, to the host device, via the first controller, the logical write completion notification before writing the data in the determined physical location, and returns the physical location after writing the data in the determined physical location.

4. The storage device according to claim 1 , wherein

the second controller is further configured to maintain, in the memory, logical-to-physical mapping, with respect to at least part of data stored in the nonvolatile semiconductor memory.

5. The storage device according to claim 4 , wherein

when the second controller receives from the host device, via the first controller, a read command with a logical address and no physical location, the second controller determines a physical location corresponding to the logical address by referring to the logical-to-physical mapping, and reads data from the physical location, and

when the second controller receives from the host device, via the first controller, a read command with a physical location and no logical address, the second controller read data from the physical location without referring to the logical-to-physical mapping.

6. The storage device according to claim 4 , wherein

when the second controller receives from the host device, via the first controller, a trim command with a logical address and no physical location, the second controller invalidates mapping for the logical address associated with the trim command in the logical-to-physical mapping, and

when the second controller receives from the host device, via the first controller, an invalidate command with a physical location and no logical address, the second controller remaps a physical block including the physical location as a free block that includes no valid data, in the block mapping.

7. The storage device according to claim 4 , wherein

when the second controller receives from the host device, via the first controller, a garbage collection command, the second controller:

selects a target block of garbage collection from the blocks for logical access;

transfers valid data in the target block to another physical block; and

updates the logical-to-physical mapping.

8. A storage device comprising:

a nonvolatile semiconductor memory;

a memory;

a first controller configured to receive commands from a host device including a read command with a logical address and no physical location, and a read command with a physical location and no logical address; and

a second controller configured to maintain, in the memory, block mapping indicating block categorization of physical blocks of the nonvolatile semiconductor memory, which includes a first input block for writing data responsive to a write command with a logical address and a second input block for writing data responsive to a write command with no logical address, to access the nonvolatile semiconductor memory, and to maintain logical-to-physical mapping in the memory, such that

when the second controller receives, via the first controller, the read command with a logical address and no physical location, the second controller determines a physical location of the first input block corresponding to the logical address by referring to the logical-to-physical mapping, and reads data from the physical location, and

when the second controller receives, via the first controller, the read command with a physical location that is mapped to a logical address in the logical-to-physical mapping, and no logical address, the second controller reads data from the physical location of the second input block without referring to the logical-to-physical mapping.

9. The storage device according to claim 8 , wherein

when the second controller receives from the host device, via the first controller, a trim command with a logical address and no physical location, the second controller invalidates mapping for the logical address associated with the trim command in the logical-to-physical mapping, and

when the second controller receives from the host device, via the first controller, an invalidate command with a physical location and no logical address, the second controller remaps a physical block including the physical location as a free block that includes no valid data, in the block mapping.

10. The storage device according to claim 8 , wherein

when the second controller receives from the host device, via the first controller, a garbage collection command, the second controller:

selects a target block of garbage collection from the blocks for logical access;

transfers valid data in the target block to another physical block; and

updates the logical-to-physical mapping.

11. A storage device comprising:

a nonvolatile semiconductor memory including a plurality of physical blocks;

a memory;

a first controller configured to receive commands from a host device including a write command with a logical address, which is of either a first type or a second type, and a write command with no logical address; and

a second controller configured to

maintain block mapping indicating block categorization of the physical blocks of the nonvolatile semiconductor memory, which includes a first input block for writing data responsive to the write command with a logical address and a second input block for writing data responsive to the write command with no logical address,

when the second controller receives, via the first controller, the write command with a logical address that is of the first type, return, to the host device, via the first controller, a logical write completion notification and write data into a physical block that is categorized as the first input block in the block mapping,

when the second controller receives, via the first controller, the write command with a logical address that is of the second type, return, to the host device, via the first controller, a logical write completion notification, write data into a physical block that is categorized as the first input block in the block mapping, and return, to the host device, via the first controller, a physical write completion notification and a physical location of the physical block, and

when the second controller receives, via the first controller, the write command with no logical address, write data into a physical block that is categorized as the second input block in the block mapping.

12. The storage device according to claim 11 , wherein

the second controller returns, to the host device, via the first controller, the logical write completion notification before writing the data in the first input block, and returns a completion notification after writing the data in the second input block.

13. The storage device according to claim 11 , wherein

when the write command with the logical address is of the second type, the second controller returns, to the host device, via the first controller, the physical location after writing the data in the first input block.

14. The storage device according to claim 1 , wherein

the physical blocks includes a first pool of active blocks in which write data associated write commands with a logical address have been written, a second pool of active block in which write data associated write commands with no logical address have been written, and a third pool of free blocks that are generated as a result of garbage collection performed on target physical blocks, and

for each garbage collection that is performed on the target physical blocks, the second controller selects the target physical blocks from either the first pool of active blocks or the second pool of active blocks, but not both.

15. The storage device according to claim 8 , wherein

the physical blocks includes a first pool of active blocks in which write data associated write commands with a logical address have been written, a second pool of active block in which write data associated write commands with no logical address have been written, and a third pool of free blocks that are generated as a result of garbage collection performed on target physical blocks, and

for each garbage collection that is performed on the target physical blocks, the second controller selects the target physical blocks from either the first pool of active blocks or the second pool of active blocks, but not both.

16. The storage device according to claim 11 , wherein

the physical blocks includes a first pool of active blocks in which write data associated write commands with a logical address have been written, a second pool of active block in which write data associated write commands with no logical address have been written, and a third pool of free blocks that are generated as a result of garbage collection performed on target physical blocks, and

for each garbage collection that is performed on the target physical blocks, the second controller selects the target physical blocks from either the first pool of active blocks or the second pool of active blocks, but not both.

Assignments (6)
MERGER Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: K.K. PANGEA
Reel/Frame 055659/0471 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 055669/0001 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: K.K. PANGEA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 055669/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2017
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043194/0647 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2016
From: HASHIMOTO, DAISUKE
To: TOSHIBA AMERICA ELECTRONIC COMPONENTS, INC.
Reel/Frame 039959/0989 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2016
From: TOSHIBA AMERICA ELECTRONIC COMPONENTS, INC.
To: KABUSHIKI KAISHA TOSHIBA
Reel/Frame 039960/0023 →
Continuity (2)
Provisional Application 62305909 · Mar 9, 2016
Related Publication 20170262177A1 · Sep 14, 2017
Cited By (1)
US 12,260,116