Method and system for asynchronous die operations in a non-volatile memory
US-9734911-B2 · Aug 15, 2017 · US
US9836243B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9836243-B1 |
| Application number | US-201615086439-A |
| Country | US |
| Kind code | B1 |
| Filing date | Mar 31, 2016 |
| Priority date | Mar 31, 2016 |
| Publication date | Dec 5, 2017 |
| Grant date | Dec 5, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Described are techniques for caching metadata. At least a portion of the cached metadata may be stored persistently on flash-based storage. A data movement granularity size may be determined in accordance with one or more values including M denoting a number of storage units, or more generally metadata objects, having associated metadata stored in a single cached metadata page. At least a portion of the associated metadata is stored on the flash-based storage. A first data portion selected for data movement may have a size equal to the data movement granularity size. The first data portion has first metadata stored on the flash-based storage. The first metadata may include location metadata updated in connection with data movements performed. In accordance with data movement of the first data portion, the first metadata is updated. In a single write operation, the updated first metadata may be written to the flash-based storage.
Opening claim text (preview).
What is claimed is: 1. A method of performing data movements comprising: determining a data movement granularity size in accordance with a first set of one or more values including M denoting a number of storage units having associated metadata stored in a single cached metadata page of a metadata cache, wherein at least a portion of the associated metadata is stored on one or more non-volatile physical storage devices of the metadata cache each having an expected lifetime based on any of a number of writes and write cycles performed, wherein the metadata cache includes cached metadata that is paged in and out of the metadata cache in pages each the size of the single cached metadata page, wherein M is an integer greater than zero; selecting a first data portion for data movement, the first data portion having a size equal to the data movement granularity size, said first data portion having first metadata stored on the one or more non-volatile physical storage devices of the metadata cache, wherein the data movement is one of a plurality of data movements each moving an amount of data that is equal to the data movement granularity size and each moving data between different ones of a plurality of storage tiers of non-volatile physical storage devices providing back-end persistent data storage; updating, in accordance with the data movement of the first data portion, the first metadata for the first data portion and generating updated first metadata for the first data portion; writing, in a single write operation, the updated first metadata to the one or more non-volatile physical storage devices of the metadata cache; and performing the data movement of the first data portion. 2. The method of claim 1 , wherein the one or more non-volatile physical storage devices are flash-based storage devices. 3. The method of claim 2 , wherein the first set of one or more values includes N and Y, wherein N denotes a number of cached metadata pages having metadata stored in a single flash page, said single flash page having a size Y denoting a write size granularity of the flash-based storage devices whereby data is written to the flash-based storage devices in chunks each having the write size granularity, wherein N and Y are integers greater than zero. 4. The method of claim 3 , wherein the data movement granularity size is less than Y. 5. The method of claim 3 , wherein the data movement granularity size is any of: M, and a mathematical product of M*N*I, wherein I as an integer greater than zero. 6. The method of claim 1 , wherein the data movement is movement of the first data portion in connection with performing any of: a data storage movement optimization that moves the first data portion from a source storage tier to a target storage tier, a data storage service or facility, data replication, creating or maintaining a snapshot, and creating or maintaining a complete physical copy of a primary data entity. 7. The method of claim 1 , wherein the data movement relocates the first data portion from a first physical location in a first storage tier of the plurality of storage tiers to a second physical location in a second storage tier of the plurality of storage tiers, the first metadata includes first location information indicating that the first data portion is located at the first physical location in the first storage tier, and the updated first metadata includes second location information indicating that the first data portion is located at the second physical location in the second storage tier, said first location information indicating physical location of the first data portion prior to the data movement and the second location information indicating physical location of the first data portion after performing the data movement. 8. The method of claim 7 , wherein the first storage tier and the second storage tier are included in the plurality of storage tiers having a relative performance ranking. 9. The method of claim 8 , wherein the data movement is any of: a data promotion where the second storage tier has a higher performance ranking than the first storage tier, and a data demotion where the first storage tier has a higher performance ranking than the second storage tier. 10. The method of claim 2 , wherein the first data portion includes a first plurality of data portions and the data movement includes a first plurality of data movements, each of the first plurality of data movements moving one of the first plurality of data portions from a source storage tier of the plurality of storage tiers to a target storage tier of the plurality of storage tiers, said target storage tier being determined in accordance with an I/O workload of said one data portion. 11. The method of claim 10 , further comprising: storing the updated first metadata in a buffer, wherein as each of the first plurality of data movements are performed, corresponding metadata of the buffer for said each data movement is updated. 12. The method of claim 11 , wherein the buffer has a first size equal to a single flash page, the first size being a write size granularity in which data is written to the flash-based storage devices. 13. The method of claim 12 , wherein, said updating of the buffer generates the updated first metadata for the first data portion and said updating commences at a first point in time, and wherein said writing is performed responsive to an occurrence of a trigger condition that is any of: the buffer reaches a threshold level of metadata updates, and a maximum amount of time has elapsed. 14. The method of claim 2 , wherein Y is a size of each single flash page of the flash-based storage and denotes a write size granularity of the flash-based storage whereby data is written to the flash-based storage in chunks each having the write size granularity, and wherein each unit of storage of the first portion has its metadata partitioned into a first part and a second part, wherein the first metadata for the first data portion is stored in a single first flash page of the flash-based memory and the first metadata includes only the first part for each unit of storage of the first portion and the second part of each unit of storage of the first portion is stored on another form of physical storage other than the flash-based storage devices, wherein Y is an integer greater than zero. 15. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method of performing data movements comprising: determining a data movement granularity size in accordance with a first set of one or more values including M denoting a number of storage units having associated metadata stored in a single cached metadata page of a metadata cache, wherein at least a portion of the associated metadata is stored on flash-based storage of the metadata cache, wherein the metadata cache includes cached metadata that is paged in and out of the metadata cache in pages each the size of the single cached metadata page; determining a total data movement size having a total size that is a least common multiple of “a” and “b”, wherein “a” is a number of storage units having metadata stored in a single cached metadata page and “b” is a number of storage units having metadata stored in a single flash page, wherein the single flash page denotes an amount of data written to flash-based storage in a single write operation; determining a first plurality of data movements each moving an amount of data equal to the data movement granularity size and each moving data between different ones of a plurality of storage tiers of non-volatile physical s
in relation to response time · CPC title
Programming or data input circuits · CPC title
Non-volatile semiconductor memory arrays · CPC title
Migration mechanisms · CPC title
Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.