IP Library Granted Patent US 8,904,092
Granted Patent B2
US 8,904,092 · App. 13/383,641 · Granted Dec 2, 2014

Identifying a location containing invalid data in a storage media

Inventor: Joseph A. Tucek (Palo Alto, CA)
Assignee: Hewlett-Packard Development Company, L.P.
G06F12/0246G06F2212/7201G06F12/0238G06F2212/7209G06F12/10G06F2212/7205
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 8,904,092
App. No.
13/383,641
Granted
Dec 2, 2014
Kind
B2
Abstract

A system includes storage media and control logic coupled to the storage media, where the control logic is configured to receive a write request and determine whether the write request specifies writing a predetermined pattern to a particular location of the storage media. In response to determining that the write request specifies writing the predetermined pattern to the particular location, the control logic is configured to identify with an indicator that the particular location contains invalid data.

Claims (53)

1. A system comprising:

storage media; and

control logic coupled to the storage media, wherein the control logic is configured to:

receive a write request specifying a write to a logical address;

determine whether the write request specifies writing a predetermined pattern;

in response to determining that the write request specifies writing the predetermined pattern, change an indicator from a first value to a second value, the indicator having the first value indicating that a physical location on the storage media corresponding to the logical address contains valid data, and the indicator having the second value indicating that the physical location corresponding to the logical address contains invalid data, the changed indicator being part of a first data structure mapping physical locations on the storage media to respective indicators for indicating whether the corresponding physical locations contain valid or invalid data.

2. The system of claim 1 , wherein the control logic is configured to further:

in response to determining that the write request specifies writing the predetermined pattern, change an indicator in a second data structure to a value indicating that a logical block associated with the logical address contains invalid data, wherein the second data structure associates logical addresses with respective indicators of whether corresponding logical blocks contain valid or invalid data.

3. The system of claim 2 , wherein the control logic is configured to further:

receive a read request specifying a logical address;

determine based on the indicators in the second data structure whether a logical block associated with the logical address of the read request contains invalid data; and

in response to determining that the logical block associated with the logical address of the read request contains invalid data, return the predetermined pattern.

4. The system of claim 1 , wherein the control logic is configured to further use the indicators in the first data structure to perform remapping of data in first physical locations on the storage media to second physical locations on the storage media.

5. The system of claim 4 , wherein the control logic is configured to perform the remapping of data as part of performing one or both of wear leveling and garbage collection.

6. The system of claim 4 , wherein the control logic is configured to perform the remapping by:

in response to a first of the indicators in the first data structure indicating that a first of the physical locations contains valid data, moving valid data of the first physical location from a first block to a second block, and

in response to a second of the indicators in the first data structure indicating that a second of the physical locations contains invalid data, disregarding the second physical location in the remapping.

7. The system of claim 1 , further comprising a non-volatile memory device, wherein the storage media is in the non-volatile memory device.

8. The system of claim 7 , wherein the control logic is in the non-volatile memory device, the non-volatile memory device further comprising:

a memory to store the first data structure and a mapping data structure to map logical addresses to physical locations of the storage media, the logical addresses corresponding to respective logical blocks, wherein a given one of the logical blocks includes a plurality of physical locations on the storage media.

9. The system of claim 8 , wherein the physical locations mapped by the first data structure are physical pages on the storage media.

10. The system of claim 1 , wherein the control logic is configured to further:

in response to determining that the write does not specify a write of the predetermined pattern, perform a normal write operation by writing data of the write request to the storage media.

11. The system of claim 1 , wherein the control logic is configured to:

perform successive write operations sequentially to locations of the storage media in a log-like manner; and

remap data in at least a first one of the locations to another location of the storage media to free up the first location, wherein the remapping is based on accessing the first data structure.

12. The system of claim 1 , wherein the predetermined pattern is all zeros.

13. The system of claim 1 , wherein the control logic is configured to, after changing the indicator from the first value to the second value:

receive a second write request specifying a write to the logical address;

determine whether the second write request specifies writing the predetermined pattern; and

in response to determining that the second write request does not specify writing the predetermined pattern, change the indicator from the second value to the first value in the first data structure, for indicating that the physical location of the storage media corresponding to the logical address contains valid data.

14. A method useable with a storage device having storage media, comprising:

receive a write request received by control logic associated with the storage device, wherein the write request is received from an upper-level layer and specifies a write to a logical address;

determine whether the write request specifies a write of a predetermined pattern;

in response to determining that the write request specifies the write of the predetermined pattern, change an indicator from a first value to a second value, the indicator having the first value indicating that a physical location on the storage media corresponding to the logical address contains valid data, and the indicator having the second value indicating that the physical location corresponding to the logical address contains invalid data, the changed indicator being part of a first data structure mapping physical locations on the storage media to respective indicators for indicating whether the corresponding physical locations contain valid or invalid data; and

in response to determining that the write request does not specify the write of the predetermined pattern, set the indicator to the first value to indicate that the physical location corresponding to the logical address contains valid data.

15. The method of claim 14 , further comprising:

in response to determining that the write request specifies writing the predetermined pattern, changing an indicator in a second data structure to a value indicating that a logical block associated with the logical address contains invalid data, wherein the second data structure associates logical addresses with respective indicators of whether corresponding logical blocks contain valid or invalid data.

16. The method of claim 15 , comprising:

receiving a read request specifying a logical address;

determining based on the indicators in the second data structure whether a logical block associated with the logical address of the read request contains invalid data; and

in response to determining that the logical block associated with the logical address of the read request contains invalid data, returning the predetermined pattern.

17. The method of claim 14 , further comprising:

accessing a mapping data structure to map the logical address of the write request to corresponding one or more physical locations on the storage media.

18. The method of claim 14 further comprising:

performing one of wear leveling and garbage collection in the storage device using the first data structure.

19. The method of claim 18 , wherein performing the one of the wear leveling and garbage collection comprises:

in response to a first of the indicators in the first data structure indicating that a first of the physical locations contains valid data, moving the valid data of the first physical location from a first block to a second block, and

in response to a second of the indicators in the first data structure indicating that a second of the physical locations contains invalid data, disregarding the second physical location in the one of the wear leveling and garbage collection.

20. An article comprising at least one non-transitory computer-readable storage media storing instructions that upon execution cause a storage device to:

receive a write request specifying a write to a logical address;

determine whether the write request specifies writing a predetermined pattern; and

in response to determining that the write request specifies writing the predetermined pattern, change an indicator from a first value to a second value, the indicator having the first value indicating that a physical location on a storage media corresponding to the logical address contains valid data, and the indicator having the second value indicating that the physical location corresponding to the logical address contains invalid data, the changed indicator being part of a first data structure mapping physical locations on the storage media to respective indicators for indicating whether the corresponding physical locations contain valid or invalid data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2012
From: TUCEK, JOSEPH A
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 027825/0035 →
Continuity (1)
Related Publication 20120303868A1 · Nov 29, 2012