Memory system, controller and control method of memory

US9304906B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9304906-B2
Application numberUS-201414200625-A
CountryUS
Kind codeB2
Filing dateMar 7, 2014
Priority dateSep 10, 2013
Publication dateApr 5, 2016
Grant dateApr 5, 2016

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.

According to one embodiment, a memory system includes non-volatile memory, a block management table that stores whether data in the non-volatile memory is valid or invalid in a unit of cluster, and a controller configured to execute compaction. In the block management table, first information related to likelihood that valid data within the block is invalidated is registered for each of the blocks. The controller is configured to select a block to be a target of the compaction based on the first information and use the selected block to execute the compaction.

First claim

Opening claim text (preview).

What is claimed is: 1. A memory system, comprising: non-volatile memory that includes a plurality of blocks as a unit of data erase, each one of the plurality of blocks including a plurality of pages as a unit of data write and read; a block management table that stores whether data in the non-volatile memory is valid or invalid in a unit of cluster, the cluster being natural number times as large as a unit of sector, the natural number being equal to or more than two, the unit of sector being a minimum access unit from a host, a size of the cluster being smaller than a size of the block; and a controller configured to: manage data stored in the non-volatile memory based on the block management table; and execute compaction based on the block management table, the compaction being a process that reads out a valid cluster from the block and rewrites the valid cluster to an erased block, wherein in the block management table, for each of the blocks, first information related to the likelihood that valid data within the block is invalidated is registered, and the controller is configured to select a block to be a target of the compaction based on the first information and use the selected block to execute the compaction. 2. The memory system according to claim 1 , wherein in the block management table, for each of the blocks, an immediately-previous invalid cluster count is registered as the first information, the immediately-previous invalid cluster count being a number of invalid clusters that become invalid within a predetermined time period immediately prior to the compaction in the block among the clusters, and the controller is configured to select the block to be the target of compaction based on the immediately-previous invalid cluster count. 3. The memory system according to claim 2 , wherein in the block management table, for each of the blocks, a valid cluster count is further registered, the valid cluster count being a number of clusters in which valid data is stored, and the controller is configured to select the block to be the target of compaction based on both the valid cluster count and the immediately-previous invalid cluster count. 4. The memory system according to claim 1 , wherein in the block management table, for each of the blocks, a short-term cluster count is registered as the first information, the short-term cluster count being a number of clusters in which a time period until validation time has expired is shorter than a predetermined time, and the controller is configured to select the block to be the target of compaction based on the short-term cluster count. 5. The memory system according to claim 4 , wherein in the block management table, for each of the blocks, a valid cluster count is further registered, the valid cluster count being a number of clusters in which valid data is stored within the block among the clusters, and the controller is configured to select the block to be the target of compaction based on both the valid cluster count and the short-term cluster count. 6. The memory system according to claim 1 , wherein in the block management table, for each of the blocks, a number of clusters that are included in the block and each have an elapsed time after invalidation within a predetermined time period is registered as the first information. 7. The memory system according to claim 2 , wherein the controller includes a block manager configured to update the immediately-previous invalid cluster count on the block management table at a time of data transfer between the non-volatile memory and the host, in the block management table, for each of the blocks, a valid cluster count is further registered, the valid cluster count being a number of clusters in which valid data is stored within the block, and the block manager is configured to register a latest immediately-previous invalid cluster count in a latest block management table based on a comparison result between a valid cluster count registered on the block management table at compaction a predetermined times before and a valid cluster count registered in the latest block management table. 8. The memory system according to claim 7 , wherein the block manager is configured to update the block management table in a case where data is invalidated due to overwriting of data corresponding to an LBA or in a case where data within the block is invalidated due to a Trim command. 9. The memory system according to claim 2 , wherein the controller is configured to set a first block as the target of compaction, a number of the immediately-previous invalid clusters in the first block being smaller than a predetermined number. 10. The memory system according to claim 2 , wherein the controller is configured to set a second block as the target of compaction, a max count of a consecutive number of the immediately-previous invalid clusters in the second block being smaller than a predetermined number. 11. A controller, comprising: a manager configured to manage data stored in non-volatile memory based on a block management table, the block management table storing whether data in the non-volatile memory is valid or invalid in a unit of cluster, the cluster being natural number times as large as a unit of sector, the natural number being equal to or more than two, the unit of sector being a minimum access unit from a host, a size of the cluster being smaller than a size of the block, the block being a unit of data erase of the non-volatile memory; and a compaction controller configured to execute compaction based on the block management table, the compaction being a process that reads out a valid cluster from the block and rewrites the valid cluster to an erased block, wherein the non-volatile memory includes a plurality of blocks as a unit of data erase, each one of the plurality of blocks including a plurality of pages as a unit of data write and read, and in the block management table, for each of the blocks, first information related to likelihood that valid data within the block is invalidated is registered, and the compaction controller is configured to select a block to be a target of the compaction based on the first information and use the selected block to execute the compaction. 12. The controller according to claim 11 , wherein in the block management table, for each of the blocks, an immediately-previous invalid cluster count is registered as the first information, the immediately-previous invalid cluster count being a number of invalid clusters that become invalid within a predetermined time period immediately prior to the compaction in the block among the clusters, and the controller is configured to select the block to be the target of compaction based on the immediately-previous invalid cluster count. 13. The controller according to claim 11 , wherein in the block management table, for each of the blocks, a valid cluster count is further registered, the valid cluster count being a number of clusters in which valid data is stored, and the controller is configured to select the block to be the target of compaction based on both the valid cluster count and the immediately-previous invalid cluster count. 14. The controller according to claim 11 , wherein in the block management table, for each of the blocks, a short-term cluster count is registered as the first information, the short-term cluster count being a number of clusters in which a time period until validation time has expired is shorter than a predetermined time, and the controller is configured to select the block to be the target of compaction

Assignees

Inventors

Classifications

  • in block erasable memory, e.g. flash memory · CPC title

  • Details of memory controller · CPC title

  • using tables or multilevel address translation means (G06F12/023 takes precedence; address translation in virtual memory systems G06F12/10) · CPC title

  • Non-volatile semiconductor memory arrays · CPC title

  • making use of a particular technique · 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 US9304906B2 cover?
According to one embodiment, a memory system includes non-volatile memory, a block management table that stores whether data in the non-volatile memory is valid or invalid in a unit of cluster, and a controller configured to execute compaction. In the block management table, first information related to likelihood that valid data within the block is invalidated is registered for each of the blo…
Who is the assignee on this patent?
Toshiba Kk
What technology area does this patent fall under?
Primary CPC classification G06F12/0246. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 05 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). 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).