Selection of an open block in solid state storage systems with multiple open blocks

US9727249B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9727249-B1
Application numberUS-201414543333-A
CountryUS
Kind codeB1
Filing dateNov 17, 2014
Priority dateFeb 6, 2014
Publication dateAug 8, 2017
Grant dateAug 8, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

An instruction to write data to a write logical address is received where the write logical address is a member of a group of one or more logical addresses. It is determined if data associated with any of the logical addresses in the group of logical addresses has been written to any of a plurality of open groups of locations. If so, the data is written to the open group of locations to which data from the group of logical addresses has already been written to. If not, an open group of locations to write to is selected from the plurality of open groups of locations.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a host interface configured to receive an instruction for writing write data to a write logical address, wherein the write logical address is a member of a first logical address group wherein the first logical address group is one of a plurality of logical address groups comprising a plurality of logical addresses; a block selector configured for selecting an open block from a plurality of open blocks for writing the write data, wherein each of the plurality of open blocks comprises a group of physical addresses having at least one of the physical addresses thereof valid for writing the write data, and wherein the selecting the open block includes: determining if any existing data, whose associated logical address is in the first logical address group, has been previously written to a first open block, wherein the first open block is one of the plurality of open blocks; in the event it is determined that the any existing data whose associated logical address is in the first logical address group has been previously written to the first open block, selecting the first open block to which to write the write data; in the event it is determined that the any existing data whose associated logical address is in the first logical address group has not been previously written to the first open block, selecting one of the plurality of open blocks to which to write the write data; and writing the write data to the selected open block. 2. The system recited in claim 1 , further comprising solid state storage and a storage interface, wherein the storage interface is configured to write to the solid state storage. 3. The system recited in claim 1 , wherein the system includes a semiconductor device, including one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA). 4. The system recited in claim 1 , wherein the block selector is configured to determine, including by: accessing, in a destination table, an entry associated with the write logical address; and determining if a destination field in the entry indicates that data associated with the group of logical addresses has been previously written to the first open block. 5. The system recited in claim 1 , wherein the block selector is configured to determine, including by: determining a physical address that corresponds to the logical address using a LBA table; obtaining a block number from the physical address; and determining if the block corresponding to the block number is still open. 6. The system recited in claim 1 , wherein the block selector is configured to select based at least in part on a traffic classification. 7. The system recited in claim 6 , wherein a single-level cell (SLC) open block is selected in the event the traffic classification is associated with a short, random write and a multi-level cell (MLC) open block is selected in the event the traffic classification is associated with a long, sequential write. 8. The system recited in claim 6 , wherein an open block from a first group of blocks is selected in the event the traffic classification is associated with hot data and an open block from a second group of blocks is selected in the event the traffic classification is associated with cold data. 9. The system recited in claim 6 , wherein the traffic classification is provided by a host. 10. The system recited in claim 6 , wherein the block selector is further configured to generate the traffic classification. 11. A method, comprising: receiving an instruction for writing write data to a write logical address, wherein the write logical address is a member of a first logical address group, wherein the first logical address group is one of a plurality of logical address groups comprising a plurality of logical addresses; using a processor to determine if any existing data, whose associated logical address is in the first logical address group, has been previously written to a first open block, wherein the first open block is one of a plurality of open blocks, each of the plurality of open blocks comprises a group of physical addresses having at least one of the physical addresses thereof valid for writing the write data; in the event it is determined that the any existing data whose associated logical address is in the first logical address group has been previously written to the first open block, selecting the first open block to which to write the write data; in the event it is determined that the any existing data whose associated logical address is in the first logical address group has not been previously written to the first open block, selecting one of the plurality of open blocks to which to write the write data; and writing the write data to the selected open block. 12. The method recited in claim 11 , wherein the method is performed by a semiconductor device, including one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA). 13. The method recited in claim 11 , wherein using a processor to determine includes: accessing, in a destination table, an entry associated with the write logical address; and determining if a destination field in the entry indicates that data associated with the group of logical addresses has been previously written to the first open block. 14. The method recited in claim 11 , wherein using a processor to determine includes: determining a physical address that corresponds to the logical address using a LBA table; obtaining a block number from the physical address; and determining if the block corresponding to the block number is still open. 15. The method recited in claim 11 , wherein selecting is based at least in part on a traffic classification. 16. The method recited in claim 15 , wherein a single-level cell (SLC) open block is selected in the event the traffic classification is associated with a short, random write and a multi-level cell (MLC) open block is selected in the event the traffic classification is associated with a long, sequential write. 17. The method recited in claim 15 , wherein an open block from a first group of blocks is selected in the event the traffic classification is associated with hot data and an open block from a second group of blocks is selected in the event the traffic classification is associated with cold data. 18. The method recited in claim 15 , wherein the traffic classification is provided by a host. 19. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for: receiving an instruction for writing write data to a write logical address, wherein the write logical address is a member of a first logical address group, wherein the first logical address group is one of a plurality of logical address groups comprising a plurality of logical addresses; determining if any existing data, whose associated logical address is in the first logical address group, has been previously written to a first open block, wherein the first open block is one of a plurality of open blocks, each of the plurality of open blocks comprises a group of physical addresses having at least one of the physical addresses thereof valid for writing the write data; in the event it is determined that the any existing data whose associated logical address is in the first logical address group has been previously written to the first open block,

Assignees

Inventors

Classifications

  • Performance improvement · CPC title

  • G06F3/061Primary

    Improving I/O performance · CPC title

  • Management of blocks · CPC title

  • Flash memory · CPC title

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9727249B1 cover?
An instruction to write data to a write logical address is received where the write logical address is a member of a group of one or more logical addresses. It is determined if data associated with any of the logical addresses in the group of logical addresses has been written to any of a plurality of open groups of locations. If so, the data is written to the open group of locations to which d…
Who is the assignee on this patent?
Sk Hynix Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/061. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 08 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).