Storage device and method of operating the same
US-2019258568-A1 · Aug 22, 2019 · US
US10789170B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10789170-B2 |
| Application number | US-201816196692-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 20, 2018 |
| Priority date | Apr 28, 2018 |
| Publication date | Sep 29, 2020 |
| Grant date | Sep 29, 2020 |
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.
Various techniques are directed to a storage management method, an electronic device and a computer readable medium. Such techniques may involve: receiving a request for a target storage block in a disk; obtaining, from a cache, a cache indicator indicating a state of a group of storage blocks including the target storage block, the number of bits occupied by the cache indicator in the cache being less than the number of storage blocks in the group of storage blocks; and responding to the request based on the cache indicator. Such techniques can reduce times of access to the disk and thereby enhancing input/output performance.
Opening claim text (preview).
We claim: 1. In electronic equipment, a storage management method, comprising: maintaining a set of on-disk indicators and a cache indicator for a group of storage blocks in a disk, the on-disk indicators including per-block mapping indicators each indicating a mapping state of a respective storage block of the group, the cache indicator indicating an overall mapping state for the group of storage blocks, the overall mapping state selected from (1) an all-mapped state when all the storage blocks of the group are mapped, (2) an all-unmapped state when all the storage blocks of the group are unmapped, and (3) a hybrid state when some of the storage blocks of the group are mapped and others of the storage blocks of the group are unmapped; receiving a request for a target storage block of the group of storage blocks; obtaining, from a cache, the cache indicator indicating the state of the group of storage blocks including the target storage block; and responding to the request based on the cache indicator, by (1) when the cache indicator indicates the all-mapped state and when it indicates the all-unmapped state, then responding to the request without accessing the per-block mapping indicator for the target block, and (2) when the cache indicator indicates the hybrid state, then first obtaining the per-block mapping indicator for the target block and then responding to the request based on the per-block mapping indicator. 2. The method according to claim 1 , wherein the request is a read request, and responding to the request based on the cache indicator comprises: in response to the cache indicator indicating the all-unmapped state in which mappings of the group of storage blocks to respective logical blocks are all cancelled, providing a zero pattern, without accessing the per-block mapping indicator indicating the state of the target storage block in the disk. 3. The method according to claim 1 , wherein the request is a read request, and responding to the request based on the cache indicator comprises: in response to the cache indicator indicating the all-mapped state in which the storage blocks of the group are all mapped to respective logical blocks, reading, from the target storage block, data associated with the read request, without accessing the per-block mapping indicator indicating the state of the target storage block in the disk. 4. The method according to claim 1 , wherein the request is a read request, and responding to the request based on the per-block mapping indicator comprises: in response to the per-block mapping indicator indicating a mapped state in which the target storage block is mapped to a target logical block, reading, from the target storage block, data associated with the request; and in response to the per-block mapping indicator indicating an unmapped state in which mapping of the target storage block to the target logical block is cancelled, providing a zero pattern. 5. The method according to claim 1 , wherein the request is a write request, and responding to the request based on the cache indicator comprises: in response to the cache indicator indicating the all-unmapped state in which mappings of the group of storage blocks to respective logical blocks are all cancelled, filling the target storage block with zero; writing, to the target storage block, data associated with the write request; modifying the per-block mapping indicator indicating the state of the target storage block in the disk to indicate a mapped state in which the target storage block is mapped to a target logical block; and modifying the cache indicator to indicate the hybrid state in which a first portion of storage blocks in the group of storage blocks are mapped to respective logical blocks and mappings of a second portion of storage blocks in the group of storage blocks to respective logical blocks are cancelled. 6. The method according to claim 1 , wherein the request is a write request, and responding to the request based on the cache indicator comprises: in response to the cache indicator indicating the all-mapped state in which the storage blocks of the group are all mapped to respective logical blocks, writing, to the target storage block, data associated with the write request, without accessing the per-block mapping indicator indicating the state of the target storage block in the disk. 7. The method according to claim 1 , wherein the request is a write request, and responding to the request based on the per-block mapping indicator comprises: in response to the per-block mapping indicator indicating a mapped state in which the target storage block is mapped to a target logical block, writing, to the target storage block, data associated with the write request. 8. The method according to claim 7 , further comprising: in response to the per-block mapping indicator indicating an unmapped state in which mapping of the target storage block to the target logical block is cancelled, filling the target storage block with zero; writing, to the target storage block, the data associated with the write request; modifying the per-block mapping indicator as indicating the mapped state; and in response to a modification of the per-block mapping indicator causing an all-mapped state in which the storage blocks of the group are all mapped to respective logical blocks, modifying the cache indicator to indicate the all-mapped state. 9. The method according to claim 8 , wherein the hybrid state comprises a first hybrid state in which the number of storage blocks in the group of storage blocks that are mapped to respective logical blocks is less than a threshold number, and a second hybrid state in which the number of storage blocks in the group of storage blocks that are mapped to respective logical blocks is higher than the threshold number, the cache indicator indicating the first hybrid state, the method further comprising: in response to the modification of the per-block mapping indicator causing the second hybrid state, modifying the cache indicator indicating the first hybrid state to indicate the second hybrid state. 10. The method according to claim 9 , further comprising: in response to that the cache indicator indicating the first hybrid state is modified to indicate the second hybrid state, starting a timer; and in response to the timer expiring, triggering a background service that: obtains, from the disk, the per-block mapping indicators indicating respective states of the storage blocks in the group of storage blocks; determines, based on the per-block mapping indicators, pre-filling storage blocks in the group of storage blocks whose mappings to respective logical blocks are cancelled; fills the pre-filling storage blocks with zero; modifies per-block mapping indicators indicating states of the pre-filling storage blocks in the disk to indicate the mapped state in which the pre-filling storage blocks are mapped to respective logical blocks; and modifies the cache indicator to indicate the all-mapped state in which the group of storage blocks are all mapped to respective logical blocks. 11. An electronic device, comprising: a processor; and a memory storing instructions therein, the instructions, when executed by the processor, causing the electronic device to perform the following acts: maintaining a set of on-disk indicators and a cache indicator for a group of storage blocks in a disk, the on-disk indicators including per-block mapping indicators each indicating a mapping state of a respective storage block of the group, the cache indicator indicating an overall mapping state for the group of storage blocks, the overall mapping state selected from (1) an
Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title
Improving I/O performance · CPC title
in block erasable memory, e.g. flash memory · CPC title
In storage device · CPC title
Hybrid cache memory, e.g. having both volatile and non-volatile portions · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.