US10643668B1 - Power loss data block marking - Google Patents

Power loss data block marking Download PDF

Info

Publication number
US10643668B1
US10643668B1 US14/011,167 US201314011167A US10643668B1 US 10643668 B1 US10643668 B1 US 10643668B1 US 201314011167 A US201314011167 A US 201314011167A US 10643668 B1 US10643668 B1 US 10643668B1
Authority
US
United States
Prior art keywords
data
power loss
storage device
recording
power
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US14/011,167
Inventor
Sundar Poudyal
Ajay Narayan Kulkarni
Daniel Kiser
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seagate Technology LLC filed Critical Seagate Technology LLC
Priority to US14/011,167 priority Critical patent/US10643668B1/en
Assigned to SEAGATE TECHNOLOGY LLC reassignment SEAGATE TECHNOLOGY LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KISER, DANIEL, KULKARNI, AJAY NARAYAN, POUDYAL, SUNDAR
Application granted granted Critical
Publication of US10643668B1 publication Critical patent/US10643668B1/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/36Monitoring, i.e. supervising the progress of recording or reproducing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
    • G11B19/02Control of operating function, e.g. switching from recording to reproducing
    • G11B19/04Arrangements for preventing, inhibiting, or warning against double recording on the same blank or against other recording or reproducing malfunctions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1883Methods for assignment of alternate areas for defective areas
    • G11B20/1889Methods for assignment of alternate areas for defective areas with discs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
    • G11B19/02Control of operating function, e.g. switching from recording to reproducing
    • G11B19/04Arrangements for preventing, inhibiting, or warning against double recording on the same blank or against other recording or reproducing malfunctions
    • G11B19/047Recovery from power failure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B21/00Head arrangements not specific to the method of recording or reproducing
    • G11B21/02Driving or moving of heads
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/48Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed
    • G11B5/54Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head into or out of its operative position or across tracks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/48Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed
    • G11B5/58Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head for the purpose of maintaining alignment of the head relative to the record carrier during transducing operation, e.g. to compensate for surface irregularities of the latter or for track following

Definitions

  • Implementations described and claimed herein provide techniques for marking or identifying data blocks affected by a power loss event.
  • the disclosed technology provides for detecting a power loss event on a storage device and marking a plurality of data blocks affected by the power loss event.
  • a power loss logging module is configured to mark a plurality of data blocks potentially affected by an unexpected power loss event.
  • a processor identifies a plurality of data blocks affected by a power loss event of a storage device responsive to a detected power restoration event.
  • FIG. 1 illustrates an example recording system for marking data blocks affected by a power loss.
  • FIG. 2 illustrates another example recording system for marking data blocks affected by an unexpected power loss.
  • FIG. 3 illustrates example operations for a recording head position information at the time of an unexpected power loss.
  • FIG. 4 illustrates example operations for marking data blocks affected by an unexpected power loss.
  • FIG. 5 illustrates example operations for executing specialized error recovery on a marked data block during a read operation.
  • Data storage devices can experience power loss events that create problems with data integrity. Intelligent managing of those power loss events can increase the reliability of storage devices when in use.
  • SMR shingled magnetic recording
  • Some types of data storage devices like shingled magnetic recording (SMR) devices, have increased sensitivity to power loss events.
  • SMR is a recording technique that allows for increased cell density, but in some implementations entails re-writing an entire band of shingled data (e.g., multiple data tracks) when one or more data cells within the band are changed. If an unexpected (or even in some cases an expected) power loss occurs during a data band re-write, data in one or more data cells within the band may be corrupted. In such case, relatively lengthy data recovery processes may later commence when a host device or a recording device tries to access the corrupted data cells.
  • FIG. 1 illustrates a recording system 100 for marking or identifying data blocks affected by an power loss (in some implementations, an unexpected power loss).
  • the recording system 100 includes a host computer 102 that sends one or more access commands (e.g., read or write commands) to a storage device 104 .
  • the storage device 104 is a SMR device; however, the storage device 104 may, in other implementations, be any device having a tangible computer-readable storage media (i.e., a storage medium 106 ).
  • the storage medium 106 is a shingled magnetic disk drive.
  • the storage medium 106 may be one or more of a variety of tangible computer-readable media, including without limitation magnetic storage disks, solid state drives, flash memory optical storage disks, random access memories (RAMs) read only memories (ROMS), an the like.
  • the storage medium 106 has a number of concentric data tracks (e.g., a data track 110 ). Each of the concentric data tracks includes plurality of data regions or cells on which data can be stored. Isolation regions (e.g., isolation regions 112 and 114 ) separate groupings of adjacent data tracks, referred to as “data bands” (e.g., data bands 116 , 118 , and 120 ). Data may be stored within each of the data bands.
  • data bands e.g., data bands 116 , 118 , and 120 .
  • data can be written to data cells on the disk 106 using a write pole on a head (not shown).
  • the write pole may generate a magnetic field strong enough to affect two adjacent data tracks at one time. Consequently, a write operation directed at a data track 122 can incidentally affect or corrupt data on an adjacent data track 110 . Therefore, in order to change any data cell within a data band (e.g., the data band 120 ), all of the other data in the data band is re-written to the data band in a selected sequential write order.
  • the isolation regions e.g., the isolation regions 112 and 114 ) separate the data bands from one another to prevent overwrite between adjacent data bands.
  • data in a data band is modified.
  • data stored in the data band 116 is read by the storage device 104 and copied into non-volatile memory such as a temporary cache (not shown). Thereafter, the data band 116 is re-written with modified data within one or more changed data cells.
  • the back-up copy of the data band mitigates or eliminates the risk of data corruption in the event of power loss; however, creating the copy of the data band is time consuming and, in some cases, an inefficient use of power.
  • all data in a data band is overwritten with new data.
  • the recording system 100 elects not to create a backup copy of the data band 120 in non-volatile memory because the old data in the data band 120 is going to be completely overwritten (and presumptively, the old data is no longer needed).
  • Forgoing creation of the back-up copy saves time and reduces power consumption; however, forgoing creation of the backup copy also increases the risk of data corruption due to an unexpected power loss.
  • an unexpected power loss is a power loss that occurs in a non-routine manner.
  • the storage device 104 may not execute usual shut-down procedures that ensure data integrity.
  • An unexpected power loss may occur, for example, when a user pulls a power plug, when battery life of the storage device 104 expires, or when a connection between the host computer 102 or a power supply and the storage device is suddenly severed or altered.
  • the host computer 102 sends a command to write all new data to the data band 120 .
  • the storage device 104 begins writing the new data to the data band 120 , starting with the outermost data track 122 . While the storage device 104 is writing to the data track 122 , the large write field of the writer incidentally corrupts some data cells on the adjacent data track 110 .
  • corrupted data cells can normally be corrected on a subsequent pass (e.g., a pass that writes data to the data track 110 ); however, an unexpected power loss during the write to the data track 122 can leave the corrupted data cells on the data track 110 uncorrected when the power is restored.
  • a subsequent pass e.g., a pass that writes data to the data track 110
  • an unexpected power loss during the write to the data track 122 can leave the corrupted data cells on the data track 110 uncorrected when the power is restored.
  • the host computer 102 may or may not re-initiate the write operation. If the write operation is not resumed, the corrupted data cells may trigger an error recovery mode at a later point in time, such as when the storage device 104 tries to read data from the corrupted data cells. At such time, the storage device 104 may attempt a number of iterative error recovery processes to restore the data on the corrupted data cells. However, some error recovery processes are prone to timeouts and/or are unsuccessful when corrupted data exists on multiple sequential cells (as observed in the above-described SMR unexpected power loss situation).
  • the recording system 100 includes a power loss logging module 128 that utilizes a spare power reservoir (e.g., a capacitor or back EMF (electromotive force)) to record the position of the head when the recording system 100 loses power.
  • a spare power reservoir e.g., a capacitor or back EMF (electromotive force)
  • the power loss logging module 128 can use the recorded head position and a known structure of the storage device 104 (e.g., span of the write field, layout of data blocks) to identify which data blocks are likely affected by the power loss.
  • This identification and marking allows the storage device 104 to later identify the cause of corrupted data (e.g., when the storage device 104 tries to read the corrupted data), and also permits the storage device 104 to elect a specialized error recovery process to execute on the corrupted data blocks.
  • the power loss logging module 128 may use a reserve power supply to record the logical block address (LBA) where data was being written at the time of the power loss.
  • LBA logical block address
  • the storage device 104 may use this recorded LBA to identify other LBAs potentially affected by the power loss.
  • data block marking techniques disclosed herein are illustrated primarily with respect to shingled magnetic recording systems, such techniques may also be utilized in other types of recording systems, including those with other types of computer-readable media that are vulnerable to power-loss related data corruption.
  • FIG. 2 illustrates another recording system 200 for marking data blocks potentially affected by an unexpected power loss.
  • the recording system 200 includes a host computer 202 communicatively coupled to a storage device 204 .
  • the storage device 204 includes a shingled magnetic recording (SMR) storage medium 208 (i.e., the “medium 208 ”), a processor 212 , volatile memory 206 (e.g., DRAM), and non-volatile solid state memory 234 (e.g., flash memory, read-only memories (RAMs), ferroelectric RAM (F-RAM), optical storage disk(s), etc.).
  • the non-volatile memory 234 is a storage region on the storage medium 208 .
  • Expanded View B illustrates a portion of the medium 208 including a number of data bands (e.g., data bands 224 and 228 ).
  • Each data band includes a number of concentric data tracks (e.g., data tracks 230 and 232 ) which are used to store data.
  • the data tracks are each further divided into data blocks (e.g., sectors A, B, C, D, etc.), including a number of individual data cells (not shown).
  • Each data block corresponds to a logical memory location (e.g., a logical block address (LBA)) of the storage device 204 .
  • the medium 208 also includes a number of isolation regions (e.g., an isolation region 226 ), where no data is stored.
  • the host computer 202 transmits a write command to the storage device 204 to write new data to the data band 228 .
  • the new data is temporarily stored in the volatile memory 206 (e.g., a volatile data buffer), and a write pole on a head (not shown) of the storage device 204 begins writing the new data to the data band 228 .
  • the write field of the write pole is large enough to affect two adjacent data tracks on each pass. Therefore, when the head writes to data blocks on one data track, some data blocks on an adjacent data track become corrupted. For example, when the head writes consecutively to sectors A, B, and C on the data track 230 , some data cells in sectors D, E, and F, on the adjacent data track 232 may become corrupted. These corrupted data cells can be corrected on a subsequent pass of the head, when data is written to the adjacent data track 232 .
  • the processor 212 sends a confirmation to the host computer 202 and deletes the new data from the volatile memory 206 .
  • some data in the data band 228 may remain corrupted when power is restored to the storage device 204 .
  • the head may write data to the data track 230 , as described above. During this write, some data on the data track 232 (e.g., in sectors D, E, and F) is corrupted.
  • the head may next begin to write to data track 232 , starting with sector D.
  • the head overwrites and corrects all corrupted data cells in sector D.
  • power is unexpectedly lost.
  • Some data cells in sectors E and F remain corrupted after power is restored to the recording system 200 .
  • a power loss logging module 210 uses an emergency power reserve 218 to record certain information at the time of the unexpected power loss.
  • the power loss logging module 210 may be, for example, one or more modules included in firmware or software, such as a functional module of firmware embodied within the storage device 204 , or software of the host computer 202 .
  • the power loss logging module 210 may be executed, for example, by the processor 212 , by a processor of the host computer 202 , or by another processor communicatively coupled to the storage device 204 .
  • the emergency power reserve 218 is a capacitor in a hardware circuit of the storage device 204 .
  • the emergency power reserve 218 is, in other implementations, a back-up battery, a back EMF (electromotive force) of a motor of the storage device 204 , or other form of reserve power supply.
  • the power loss logging module 210 uses power from the emergency power reserve 218 to record head position information in the non-volatile memory 234 .
  • the power loss logging module 210 may detect an unexpected power loss when, for example, a monitored voltage (e.g., a voltage of a primary power source 220 ) drops below a predetermined threshold or when the monitored voltage drops and the storage device 204 does not first receive an expected “shut-down” command. More generally, an unexpected power loss may occur anytime power to the storage device 204 drops below the lower end of the VCC threshold.
  • a monitored voltage e.g., a voltage of a primary power source 220
  • the head position information is recorded in a power loss logfile 216 (an example data record) of the non-volatile memory 234 .
  • data record refers to a record (e.g., table, logfile, etc.) that may be saved on the storage device 204 or a storage medium communicatively coupled to the storage device 204 .
  • Information written to the power loss logfile 216 may, in various implementations, include the data block being written to at the time of the power loss (e.g., sector E), a logical memory location (e.g., LBA) associated with the data block being written to at the time of the power loss, or other identifying information from which a position of the head can later be determined.
  • LBA logical memory location
  • the power loss logging module 210 When power is restored to the storage device 204 , the power loss logging module 210 is called upon (e.g., by a start-up module) to determine whether the power loss was an unexpected power loss. In one implementation, the power loss logging module 210 determines that the power loss was unexpected by querying the power loss logfile 216 and identifying a new data entry indicating a head position (e.g., “sector E”). In another implementation, the power loss logging module 210 determines that the power loss was unexpected by identifying a flag set by the power loss logging module 210 before or during the power loss. In yet another implementation, the power loss logging module 210 determines that the power loss was unexpected when a command is received from the host computer 202 which indicates that the host computer 202 failed to receive successful confirmation of completion of the previous write command.
  • a command is received from the host computer 202 which indicates that the host computer 202 failed to receive successful confirmation of completion of the previous write command.
  • a data block is “potentially affected” by a power loss if data stored on the data block is likely to be corrupted due to reduced power available to the storage device 204 or likely to be corrupted as a result of the failed execution of one or more operations halted by the power loss.
  • a data block is potentially affected by a power loss if data within the block is corrupted by the head (or write head) of the SMR system and that data is left uncorrected at the time of an unexpected power loss.
  • the power loss logging module 210 determines which data blocks are potentially affected by the power loss by using the head position information in the power loss logfile 216 and known structure of recording system 200 (e.g., span of the write field, layout of data blocks, etc.). In a recording system that is not an SMR system, the power loss logging module 210 may use additional system parameters to identify data blocks potentially affected by an unexpected power loss.
  • the power loss logging module 210 identifies sectors E and F as potentially affected data blocks, and “marks” these data blocks by creating or updating another data record (e.g., a record of potentially affected data blocks 222 ) to include information identifying the potentially affected data blocks.
  • the record of potentially affected data blocks 222 (hereinafter “the record 222 ”) includes a listing of the sectors potentially corrupted at the time of the power loss.
  • the record 222 includes logical block addresses (LBAs) associated with the data stored in the potentially affected data blocks or other information useful in identifying the potentially-affected data blocks.
  • LBAs logical block addresses
  • ECC error correction coding
  • the power loss logging module 210 queries the record 222 to determine whether the sectors E and F may have been affected by a prior power loss. Because the sectors E and F are marked sectors (e.g., sectors previously marked in the record 222 ), the storage device can elect to perform a “specialized error recovery process”—an error recovery process uniquely tailored to a known cause of data corruption. In some situations, specialized recovery processes can be more conducive to successful data recovery than generalized error recovery processes.
  • FIG. 3 illustrates example operations for recording head position information at the time of an unexpected power loss.
  • a first determination operation 302 determines whether a storage device has experienced a power loss associated with a primary power source. In one implementation, the first determination operation 302 determines there has been a power loss when a monitored voltage associated with the primary power source drops below a predetermined threshold. This voltage drop may be the result of, for example, a user pulling a power plug of the storage device, expiration of a battery power, or unexpected severance of a connection between a host device and the storage device.
  • a waiting operation 304 waits for an event indicating that a power loss has occurred. If, on the other hand, the determination operation 302 determines that a power loss has occurred, then a second determination operation 306 determines whether the power loss was unexpected. In one implementation, the determination operation 306 determines that the power loss was unexpected if the power was shut-off in a non-routine manner (e.g., certain procedures routinely executed to ensure data integrity did not fully execute).
  • the waiting operation 304 waits for another event indicating that a power loss has occurred. If, however, the second determination operation 306 determines that the power loss was unexpected, then a recording operation 308 utilizes an emergency power reserve, such as a capacitor, back-up battery, or back EMF, to record head position information (e.g., a read/write head) of the storage device the time of the unexpected power loss.
  • an emergency power reserve such as a capacitor, back-up battery, or back EMF
  • the recording operation 308 may record (e.g., in a data record of the storage device) a logical block addresses (LBA) of data being written at the time of the unexpected power loss, the sector number of a sector being written to at the time of the unexpected power loss, or other head position indicator information.
  • LBA logical block addresses
  • the recording operation sets a flag that indicates the power loss was unexpected.
  • the existence of a recorded head position serves as indication that the power loss was unexpected.
  • FIG. 4 illustrates example operations for marking data blocks affected by an unexpected power loss.
  • a first determination operation 402 determines whether power has recently (e.g., within the past few minutes) been restored to a storage device. For example, the first determination operation 402 may determine that power has been recently restored to the device by identifying one or more received commands related to initiation of the storage device. If the first determination operation 402 does not determine that power was recently restored, a waiting operation 404 waits until the next power-on of the storage device.
  • a second determination operation 406 determines (e.g., by querying one or more data records) whether head position information was recorded prior to the power loss. If the second determination operation 406 determines that the head position was recorded, an identification operation 408 uses the head position information and known structure of recording system (e.g., span of the write field, layout of data blocks, etc.) to identify a range of logical block addresses (LBAs) and/or corresponding sectors on the storage device potentially affected by the power loss.
  • LBAs logical block addresses
  • a recording operation 410 records the potentially affected LBAs and/or corresponding sectors in one or more data records accessible by the storage device. After the recording operation 410 , the storage device enters a normal operation mode 412 .
  • FIG. 5 illustrates example operations for executing specialized error recovery on a marked data block during a read operation.
  • a first determination 502 determines whether an error correction code (ECC) check has failed during a read operation of a data block on a storage medium. If an ECC check failure has not occurred, a waiting operation 504 waits until an ECC check failure occurs. If the determination operation 502 determines that the ECC check failure has occurred, another determination operation 506 determines whether the data block has been marked as one that is potentially affected by an unexpected power loss. In one implementation, the determination operation 506 accesses one or more logfiles of the device to determine whether the data block or associated LBA has been marked as potentially affected by a prior, unexpected power loss.
  • ECC error correction code
  • an execution operation 508 executes a generalized error recovery process on the data block.
  • the generalized error recover process may include, for example, a number of calculative iterations that execute regardless of the original reason for the corruption. If, however, the determination operation 506 determines that the data block has been marked, another execution operation 510 executes a specialized data recovery process on the data block.
  • the specialized process is a process uniquely tailored for error recovery of data corrupted due to an unexpected power loss.
  • a series of corrupted data blocks are identified by a storage device.
  • the storage device initiates a lengthy generalized error recovery process on the first corrupted data block in the series.
  • the generalized error recovery process fails to recover the data of the first corrupted data block, and the storage device begins to execute the generalized recovery process on the second corrupted block.
  • the generalized error recovery process also fails to recover data of the second corrupted data block.
  • the storage device initiates the generalized error recovery process on the third corrupted data block. While waiting for the drive operation to complete, a host computer experiences a timeout.
  • An example specialized error recovery process may differ from the above-described generalized error recovery process in that the specialized error recovery process does not attempt to recover the data from every corrupted data block in the series after recovery efforts fail on the first one or two data blocks. Rather, the specialized recovery process determines that such data is not recoverable and quickly reports back to the host computer. In this situation, the host computer does not timeout. In other implementations, specialized error recovery processes may be more likely to successfully recover data than generalized error recovery processes.
  • the implementations of the technology described herein are can be implemented as logical steps in one or more computer systems.
  • the logical operations of the present invention are implemented (1) as a sequence of processor-implemented steps executing in one or more computer systems and (2) as interconnected machine or circuit modules within one or more computer systems.
  • the implementation is a matter of choice, dependent on the performance requirements of the computer system implementing the invention. Accordingly, the logical operations making up the embodiments of the invention described herein are referred to variously as operations, steps, objects or modules.
  • logical operations may be performed in any order, adding and omitting as desired, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Implementations disclosed herein provide for detecting an expected or unexpected power loss event on a storage device. Responsive to the detection of the power loss event, a plurality of potentially affected data blocks are identified and/or marked, such as by a processor, to indicate that data stored therein is potentially corrupted.

Description

SUMMARY
Implementations described and claimed herein provide techniques for marking or identifying data blocks affected by a power loss event.
In one implementation, the disclosed technology provides for detecting a power loss event on a storage device and marking a plurality of data blocks affected by the power loss event. In another implementation, a power loss logging module is configured to mark a plurality of data blocks potentially affected by an unexpected power loss event. In yet another implementation, a processor identifies a plurality of data blocks affected by a power loss event of a storage device responsive to a detected power restoration event.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. These and various other features and advantages will be apparent from a reading of the following Detailed Description.
BRIEF DESCRIPTIONS OF THE DRAWINGS
FIG. 1 illustrates an example recording system for marking data blocks affected by a power loss.
FIG. 2 illustrates another example recording system for marking data blocks affected by an unexpected power loss.
FIG. 3 illustrates example operations for a recording head position information at the time of an unexpected power loss.
FIG. 4 illustrates example operations for marking data blocks affected by an unexpected power loss.
FIG. 5 illustrates example operations for executing specialized error recovery on a marked data block during a read operation.
DETAILED DESCRIPTION
Data storage devices can experience power loss events that create problems with data integrity. Intelligent managing of those power loss events can increase the reliability of storage devices when in use.
Some types of data storage devices, like shingled magnetic recording (SMR) devices, have increased sensitivity to power loss events. SMR is a recording technique that allows for increased cell density, but in some implementations entails re-writing an entire band of shingled data (e.g., multiple data tracks) when one or more data cells within the band are changed. If an unexpected (or even in some cases an expected) power loss occurs during a data band re-write, data in one or more data cells within the band may be corrupted. In such case, relatively lengthy data recovery processes may later commence when a host device or a recording device tries to access the corrupted data cells.
FIG. 1 illustrates a recording system 100 for marking or identifying data blocks affected by an power loss (in some implementations, an unexpected power loss). The recording system 100 includes a host computer 102 that sends one or more access commands (e.g., read or write commands) to a storage device 104. In some implementations, the storage device 104 is a SMR device; however, the storage device 104 may, in other implementations, be any device having a tangible computer-readable storage media (i.e., a storage medium 106). In the implementation of FIG. 1, the storage medium 106 is a shingled magnetic disk drive. However, in various implementations, the storage medium 106 may be one or more of a variety of tangible computer-readable media, including without limitation magnetic storage disks, solid state drives, flash memory optical storage disks, random access memories (RAMs) read only memories (ROMS), an the like.
The storage medium 106 has a number of concentric data tracks (e.g., a data track 110). Each of the concentric data tracks includes plurality of data regions or cells on which data can be stored. Isolation regions (e.g., isolation regions 112 and 114) separate groupings of adjacent data tracks, referred to as “data bands” (e.g., data bands 116, 118, and 120). Data may be stored within each of the data bands.
In the recording system 100, data can be written to data cells on the disk 106 using a write pole on a head (not shown). In some implementations, such as where the recording device 106 is an SMR recording device, the write pole may generate a magnetic field strong enough to affect two adjacent data tracks at one time. Consequently, a write operation directed at a data track 122 can incidentally affect or corrupt data on an adjacent data track 110. Therefore, in order to change any data cell within a data band (e.g., the data band 120), all of the other data in the data band is re-written to the data band in a selected sequential write order. The isolation regions (e.g., the isolation regions 112 and 114) separate the data bands from one another to prevent overwrite between adjacent data bands.
In one type of write operation, data in a data band is modified. In this type of write operation, data stored in the data band 116 is read by the storage device 104 and copied into non-volatile memory such as a temporary cache (not shown). Thereafter, the data band 116 is re-written with modified data within one or more changed data cells. The back-up copy of the data band (stored in the non-volatile memory) mitigates or eliminates the risk of data corruption in the event of power loss; however, creating the copy of the data band is time consuming and, in some cases, an inefficient use of power.
In another type of write operation, all data in a data band is overwritten with new data. In this type of write operation, the recording system 100 elects not to create a backup copy of the data band 120 in non-volatile memory because the old data in the data band 120 is going to be completely overwritten (and presumptively, the old data is no longer needed). Forgoing creation of the back-up copy saves time and reduces power consumption; however, forgoing creation of the backup copy also increases the risk of data corruption due to an unexpected power loss.
As used herein, an unexpected power loss is a power loss that occurs in a non-routine manner. When an unexpected power loss occurs, the storage device 104 may not execute usual shut-down procedures that ensure data integrity. An unexpected power loss may occur, for example, when a user pulls a power plug, when battery life of the storage device 104 expires, or when a connection between the host computer 102 or a power supply and the storage device is suddenly severed or altered.
In the above-described “data-band overwrite” type of write operation, the risk of data loss due to unexpected power loss increases as a result of the nature of shingled magnetic recording. In one example implementation, the host computer 102 sends a command to write all new data to the data band 120. In response, the storage device 104 begins writing the new data to the data band 120, starting with the outermost data track 122. While the storage device 104 is writing to the data track 122, the large write field of the writer incidentally corrupts some data cells on the adjacent data track 110. These corrupted data cells can normally be corrected on a subsequent pass (e.g., a pass that writes data to the data track 110); however, an unexpected power loss during the write to the data track 122 can leave the corrupted data cells on the data track 110 uncorrected when the power is restored.
When data is restored to the storage device 104 after the power loss, the host computer 102 may or may not re-initiate the write operation. If the write operation is not resumed, the corrupted data cells may trigger an error recovery mode at a later point in time, such as when the storage device 104 tries to read data from the corrupted data cells. At such time, the storage device 104 may attempt a number of iterative error recovery processes to restore the data on the corrupted data cells. However, some error recovery processes are prone to timeouts and/or are unsuccessful when corrupted data exists on multiple sequential cells (as observed in the above-described SMR unexpected power loss situation).
The presently disclosed technology enables identification and marking of data blocks affected by an unexpected power loss. In particular, the recording system 100 includes a power loss logging module 128 that utilizes a spare power reservoir (e.g., a capacitor or back EMF (electromotive force)) to record the position of the head when the recording system 100 loses power. When power is restored to the storage device 104, the power loss logging module 128 can use the recorded head position and a known structure of the storage device 104 (e.g., span of the write field, layout of data blocks) to identify which data blocks are likely affected by the power loss. This identification and marking allows the storage device 104 to later identify the cause of corrupted data (e.g., when the storage device 104 tries to read the corrupted data), and also permits the storage device 104 to elect a specialized error recovery process to execute on the corrupted data blocks.
For example, when power is unexpectedly lost to the storage device 104, the power loss logging module 128 may use a reserve power supply to record the logical block address (LBA) where data was being written at the time of the power loss. When the storage device 104 powers back up, the storage device may use this recorded LBA to identify other LBAs potentially affected by the power loss.
Although the data block marking techniques disclosed herein are illustrated primarily with respect to shingled magnetic recording systems, such techniques may also be utilized in other types of recording systems, including those with other types of computer-readable media that are vulnerable to power-loss related data corruption.
FIG. 2 illustrates another recording system 200 for marking data blocks potentially affected by an unexpected power loss. The recording system 200 includes a host computer 202 communicatively coupled to a storage device 204. The storage device 204 includes a shingled magnetic recording (SMR) storage medium 208 (i.e., the “medium 208”), a processor 212, volatile memory 206 (e.g., DRAM), and non-volatile solid state memory 234 (e.g., flash memory, read-only memories (RAMs), ferroelectric RAM (F-RAM), optical storage disk(s), etc.). In at least one implementation, the non-volatile memory 234 is a storage region on the storage medium 208.
Expanded View B illustrates a portion of the medium 208 including a number of data bands (e.g., data bands 224 and 228). Each data band includes a number of concentric data tracks (e.g., data tracks 230 and 232) which are used to store data. The data tracks are each further divided into data blocks (e.g., sectors A, B, C, D, etc.), including a number of individual data cells (not shown). Each data block corresponds to a logical memory location (e.g., a logical block address (LBA)) of the storage device 204. In addition to data bands, the medium 208 also includes a number of isolation regions (e.g., an isolation region 226), where no data is stored.
In an example write operation, the host computer 202 transmits a write command to the storage device 204 to write new data to the data band 228. The new data is temporarily stored in the volatile memory 206 (e.g., a volatile data buffer), and a write pole on a head (not shown) of the storage device 204 begins writing the new data to the data band 228. The write field of the write pole is large enough to affect two adjacent data tracks on each pass. Therefore, when the head writes to data blocks on one data track, some data blocks on an adjacent data track become corrupted. For example, when the head writes consecutively to sectors A, B, and C on the data track 230, some data cells in sectors D, E, and F, on the adjacent data track 232 may become corrupted. These corrupted data cells can be corrected on a subsequent pass of the head, when data is written to the adjacent data track 232.
If the write operation to the data band 228 completes successfully, the processor 212 sends a confirmation to the host computer 202 and deletes the new data from the volatile memory 206. However, if an unexpected power loss occurs before completion of the write operation to the data band 228, some data in the data band 228 may remain corrupted when power is restored to the storage device 204. For example, the head may write data to the data track 230, as described above. During this write, some data on the data track 232 (e.g., in sectors D, E, and F) is corrupted. The head may next begin to write to data track 232, starting with sector D. The head overwrites and corrects all corrupted data cells in sector D. However, before the head can overwrite all corrupted data cells in sectors E and F, power is unexpectedly lost. Some data cells in sectors E and F remain corrupted after power is restored to the recording system 200.
To assist in subsequent error recovery processes, a power loss logging module 210 uses an emergency power reserve 218 to record certain information at the time of the unexpected power loss. The power loss logging module 210 may be, for example, one or more modules included in firmware or software, such as a functional module of firmware embodied within the storage device 204, or software of the host computer 202. The power loss logging module 210 may be executed, for example, by the processor 212, by a processor of the host computer 202, or by another processor communicatively coupled to the storage device 204.
In FIG. 2, the emergency power reserve 218 is a capacitor in a hardware circuit of the storage device 204. However, the emergency power reserve 218 is, in other implementations, a back-up battery, a back EMF (electromotive force) of a motor of the storage device 204, or other form of reserve power supply.
When the power loss logging module 210 detects the unexpected power loss, it uses power from the emergency power reserve 218 to record head position information in the non-volatile memory 234. The power loss logging module 210 may detect an unexpected power loss when, for example, a monitored voltage (e.g., a voltage of a primary power source 220) drops below a predetermined threshold or when the monitored voltage drops and the storage device 204 does not first receive an expected “shut-down” command. More generally, an unexpected power loss may occur anytime power to the storage device 204 drops below the lower end of the VCC threshold.
In FIG. 2, the head position information is recorded in a power loss logfile 216 (an example data record) of the non-volatile memory 234. As used herein, the term “data record” refers to a record (e.g., table, logfile, etc.) that may be saved on the storage device 204 or a storage medium communicatively coupled to the storage device 204. Information written to the power loss logfile 216 may, in various implementations, include the data block being written to at the time of the power loss (e.g., sector E), a logical memory location (e.g., LBA) associated with the data block being written to at the time of the power loss, or other identifying information from which a position of the head can later be determined.
When power is restored to the storage device 204, the power loss logging module 210 is called upon (e.g., by a start-up module) to determine whether the power loss was an unexpected power loss. In one implementation, the power loss logging module 210 determines that the power loss was unexpected by querying the power loss logfile 216 and identifying a new data entry indicating a head position (e.g., “sector E”). In another implementation, the power loss logging module 210 determines that the power loss was unexpected by identifying a flag set by the power loss logging module 210 before or during the power loss. In yet another implementation, the power loss logging module 210 determines that the power loss was unexpected when a command is received from the host computer 202 which indicates that the host computer 202 failed to receive successful confirmation of completion of the previous write command.
If the power loss logging module 210 determines that the recent power loss was unexpected, the power loss logging module 210 attempts to identify which data blocks were potentially affected by the power loss. A data block is “potentially affected” by a power loss if data stored on the data block is likely to be corrupted due to reduced power available to the storage device 204 or likely to be corrupted as a result of the failed execution of one or more operations halted by the power loss. For example, a data block is potentially affected by a power loss if data within the block is corrupted by the head (or write head) of the SMR system and that data is left uncorrected at the time of an unexpected power loss.
The power loss logging module 210 determines which data blocks are potentially affected by the power loss by using the head position information in the power loss logfile 216 and known structure of recording system 200 (e.g., span of the write field, layout of data blocks, etc.). In a recording system that is not an SMR system, the power loss logging module 210 may use additional system parameters to identify data blocks potentially affected by an unexpected power loss.
In the example of FIG. 2, the power loss logging module 210 identifies sectors E and F as potentially affected data blocks, and “marks” these data blocks by creating or updating another data record (e.g., a record of potentially affected data blocks 222) to include information identifying the potentially affected data blocks. The record of potentially affected data blocks 222 (hereinafter “the record 222”) includes a listing of the sectors potentially corrupted at the time of the power loss. In other implementations, the record 222 includes logical block addresses (LBAs) associated with the data stored in the potentially affected data blocks or other information useful in identifying the potentially-affected data blocks.
When the storage device 204 receives (e.g., at a later time) a command to read data from the data band 228, error correction coding (ECC) embedded in sectors E and F (the potentially affected data blocks) may indicate that the sectors E and F include corrupted data. The power loss logging module 210 (or other module of the storage device 204) queries the record 222 to determine whether the sectors E and F may have been affected by a prior power loss. Because the sectors E and F are marked sectors (e.g., sectors previously marked in the record 222), the storage device can elect to perform a “specialized error recovery process”—an error recovery process uniquely tailored to a known cause of data corruption. In some situations, specialized recovery processes can be more conducive to successful data recovery than generalized error recovery processes.
FIG. 3 illustrates example operations for recording head position information at the time of an unexpected power loss. A first determination operation 302 determines whether a storage device has experienced a power loss associated with a primary power source. In one implementation, the first determination operation 302 determines there has been a power loss when a monitored voltage associated with the primary power source drops below a predetermined threshold. This voltage drop may be the result of, for example, a user pulling a power plug of the storage device, expiration of a battery power, or unexpected severance of a connection between a host device and the storage device.
If the first determination operation 302 determines that a power loss has not occurred, then a waiting operation 304 waits for an event indicating that a power loss has occurred. If, on the other hand, the determination operation 302 determines that a power loss has occurred, then a second determination operation 306 determines whether the power loss was unexpected. In one implementation, the determination operation 306 determines that the power loss was unexpected if the power was shut-off in a non-routine manner (e.g., certain procedures routinely executed to ensure data integrity did not fully execute).
If the second determination operation 306 determines that the power loss was an expected power loss, the waiting operation 304 waits for another event indicating that a power loss has occurred. If, however, the second determination operation 306 determines that the power loss was unexpected, then a recording operation 308 utilizes an emergency power reserve, such as a capacitor, back-up battery, or back EMF, to record head position information (e.g., a read/write head) of the storage device the time of the unexpected power loss. For example, the recording operation 308 may record (e.g., in a data record of the storage device) a logical block addresses (LBA) of data being written at the time of the unexpected power loss, the sector number of a sector being written to at the time of the unexpected power loss, or other head position indicator information. In one implementation, the recording operation sets a flag that indicates the power loss was unexpected. In another implementation, the existence of a recorded head position serves as indication that the power loss was unexpected.
FIG. 4 illustrates example operations for marking data blocks affected by an unexpected power loss. A first determination operation 402 determines whether power has recently (e.g., within the past few minutes) been restored to a storage device. For example, the first determination operation 402 may determine that power has been recently restored to the device by identifying one or more received commands related to initiation of the storage device. If the first determination operation 402 does not determine that power was recently restored, a waiting operation 404 waits until the next power-on of the storage device.
If, however, the first determination operation 402 determines that power has been recently restored to the storage device, a second determination operation 406 determines (e.g., by querying one or more data records) whether head position information was recorded prior to the power loss. If the second determination operation 406 determines that the head position was recorded, an identification operation 408 uses the head position information and known structure of recording system (e.g., span of the write field, layout of data blocks, etc.) to identify a range of logical block addresses (LBAs) and/or corresponding sectors on the storage device potentially affected by the power loss. A recording operation 410 records the potentially affected LBAs and/or corresponding sectors in one or more data records accessible by the storage device. After the recording operation 410, the storage device enters a normal operation mode 412.
FIG. 5 illustrates example operations for executing specialized error recovery on a marked data block during a read operation. A first determination 502 determines whether an error correction code (ECC) check has failed during a read operation of a data block on a storage medium. If an ECC check failure has not occurred, a waiting operation 504 waits until an ECC check failure occurs. If the determination operation 502 determines that the ECC check failure has occurred, another determination operation 506 determines whether the data block has been marked as one that is potentially affected by an unexpected power loss. In one implementation, the determination operation 506 accesses one or more logfiles of the device to determine whether the data block or associated LBA has been marked as potentially affected by a prior, unexpected power loss.
If the determination operation 506 determines that the data block has not been marked, then an execution operation 508 executes a generalized error recovery process on the data block. The generalized error recover process may include, for example, a number of calculative iterations that execute regardless of the original reason for the corruption. If, however, the determination operation 506 determines that the data block has been marked, another execution operation 510 executes a specialized data recovery process on the data block. The specialized process is a process uniquely tailored for error recovery of data corrupted due to an unexpected power loss.
In one example generalized error recovery process, a series of corrupted data blocks are identified by a storage device. The storage device initiates a lengthy generalized error recovery process on the first corrupted data block in the series. The generalized error recovery process fails to recover the data of the first corrupted data block, and the storage device begins to execute the generalized recovery process on the second corrupted block. The generalized error recovery process also fails to recover data of the second corrupted data block. Subsequently, the storage device initiates the generalized error recovery process on the third corrupted data block. While waiting for the drive operation to complete, a host computer experiences a timeout.
An example specialized error recovery process may differ from the above-described generalized error recovery process in that the specialized error recovery process does not attempt to recover the data from every corrupted data block in the series after recovery efforts fail on the first one or two data blocks. Rather, the specialized recovery process determines that such data is not recoverable and quickly reports back to the host computer. In this situation, the host computer does not timeout. In other implementations, specialized error recovery processes may be more likely to successfully recover data than generalized error recovery processes.
The implementations of the technology described herein are can be implemented as logical steps in one or more computer systems. The logical operations of the present invention are implemented (1) as a sequence of processor-implemented steps executing in one or more computer systems and (2) as interconnected machine or circuit modules within one or more computer systems. The implementation is a matter of choice, dependent on the performance requirements of the computer system implementing the invention. Accordingly, the logical operations making up the embodiments of the invention described herein are referred to variously as operations, steps, objects or modules. Furthermore, it should be understood that logical operations may be performed in any order, adding and omitting as desired, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.
The above specification, examples, and data provide a complete description of the structure and use of exemplary implementations of the disclosed technology. Since many implementations can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.

Claims (17)

What is claimed is:
1. A method comprising:
detecting a power loss event on a storage device at a time when a first data track is being written with data that is not backed-up in non-volatile memory;
responsive to the detection of the power loss event, recording a position of a head of the storage device at the time of the power loss;
responsive to a power restoration event, identifying one or more data blocks potentially corrupted by the power loss event based on the recorded position of the head;
select a specialized error recovery process from multiple available error recovery processes to recover data from the data blocks identified as potentially corrupted due to the power loss event; and
initiating the specialized error recovery process on one or more of the marked plurality of data blocks.
2. The method of claim 1, wherein the marking operation is responsive to a detected power restoration event.
3. The method of claim 1, wherein recording the position of the head further comprises:
recording the position of the head in a non-volatile solid state memory.
4. The method of claim 1, wherein the marking operation further comprises: identifying the plurality of data blocks potentially affected by the power loss event based on a recorded position of a head; and
updating a record of the storage device to include an identifier, including a logical block address, associated with each of the identified data blocks.
5. The method of claim 1, wherein the storage device is a shingled magnetic recording (SMR) device.
6. The method of claim 1, wherein the marking operation further comprises:
updating a record of the storage device to include a logical memory location associated with each of the plurality of data blocks.
7. The method of claim 1, wherein the recording operation further comprises:
recording the location of the head using a reserve power supply.
8. A system comprising:
memory;
a processor; and
a power loss logging module stored in the memory and executable by the processor to:
detect an unexpected power loss event at a time when a first data track is being written with data that is not backed-up in non-volatile memory;
responsive to and after the detection, record a position of a write head of a storage device; and
responsive to a power restoration event, use the recorded position of the write head to identify one or more sectors that are potentially corrupted by the power loss event;
select a specialized error recovery process from multiple available error recovery processes to recover data from the one or more sectors identified as potentially corrupted due to the power loss event; and
initiate the selected specialized error recovery process on one or more of the identified sectors.
9. The system of claim 8, wherein the power loss logging module marks the one or more sectors responsive to a detected power restoration event.
10. The system of claim 8, wherein the power loss logging module is further executable to:
identify the identified sectors based on a recorded position of a write head; and update a record of a storage device to include an identifier associated with each of the identified sectors.
11. The system of claim 8, wherein the power loss logging module is further executable to:
update a record of a storage device to include a logical memory location associated with each of the identified sectors.
12. The method of claim 8, wherein the specialized recovery process entails:
determining that data recovery attempt has failed with respect to a first data block of the one or more sectors identified as potentially corrupted due to the power loss event; and
responsive to the determination, reporting back to a host that data is not recoverable from the sectors other than the sector with the first data block identified as potentially corrupted without performing a data recovery attempt on the sectors other than the first data block.
13. A method comprising:
responsive to a detection of a power loss event, recording by a processor a position of a write head of a storage device;
responsive to a detected power restoration event, identifying by the processor a plurality of data blocks affected by the power loss event of the storage device based on the recorded position of the write head, each of the plurality of data blocks being associated with data that is not backed-up in non-volatile memory; and
selecting and initiating a specialized error recovery process on one or more the data blocks identified as potentially corrupted due to the power loss event based on the recorded position of the write head.
14. The method of claim 13, wherein recording the position of the write head is performed using an emergency power reserve separate from a primary power source of a storage device.
15. The method of claim 14, wherein the identifying operation further comprises:
recording the position of the write head in a non-volatile flash memory.
16. The method of claim 13, wherein the identifying operation further comprises:
identifying the plurality of data blocks potentially affected by the power loss event based on a recorded position of a write head; and
updating a record of the storage device to include an identifier associated with each of the identified data blocks.
17. The method of claim 14, wherein the recording operation further comprises:
recording the location of the write head using a reserve power supply.
US14/011,167 2013-08-27 2013-08-27 Power loss data block marking Active 2037-08-29 US10643668B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/011,167 US10643668B1 (en) 2013-08-27 2013-08-27 Power loss data block marking

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/011,167 US10643668B1 (en) 2013-08-27 2013-08-27 Power loss data block marking

Publications (1)

Publication Number Publication Date
US10643668B1 true US10643668B1 (en) 2020-05-05

Family

ID=70461631

Family Applications (1)

Application Number Title Priority Date Filing Date
US14/011,167 Active 2037-08-29 US10643668B1 (en) 2013-08-27 2013-08-27 Power loss data block marking

Country Status (1)

Country Link
US (1) US10643668B1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929251B2 (en) * 2019-03-29 2021-02-23 Intel Corporation Data loss prevention for integrated memory buffer of a self encrypting drive
WO2021196663A1 (en) * 2020-04-01 2021-10-07 长鑫存储技术有限公司 Read-write method and memory device
US20220137836A1 (en) * 2020-11-02 2022-05-05 SK Hynix Inc. Storage device and method of operating the same
US11527301B2 (en) 2020-04-01 2022-12-13 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US20230092423A1 (en) * 2021-09-17 2023-03-23 Kabushiki Kaisha Toshiba Magnetic disk device
US11756581B1 (en) 2022-03-24 2023-09-12 Western Digital Technologies, Inc. Position and risk reconstruction in shingled magnetic recording data storage devices
US11869615B2 (en) 2020-04-01 2024-01-09 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11881240B2 (en) 2020-04-01 2024-01-23 Changxin Memory Technologies, Inc. Systems and methods for read/write of memory devices and error correction
US11894088B2 (en) 2020-04-01 2024-02-06 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11899971B2 (en) 2020-04-01 2024-02-13 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11922023B2 (en) 2020-04-01 2024-03-05 Changxin Memory Technologies, Inc. Read/write method and memory device

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
US5349481A (en) * 1993-06-10 1994-09-20 Exabyte Corporation Apparatus and method for distorted track data recovery by rewinding and re-reading the tape at a slower than nominal speed
EP0493984B1 (en) 1991-01-04 1997-06-04 Emc Corporation Storage device array architecture with copyback cache
US20020141097A1 (en) * 2000-03-30 2002-10-03 International Business Machines Corporation Disk apparatus and head position control method
US7095579B1 (en) * 2005-06-02 2006-08-22 Western Digital Technologies, Inc. Disk drive employing momentum based unload during power failure
US20090019194A1 (en) * 2005-03-28 2009-01-15 Matsushita Electric Industrial Co., Ltd. Storage device
US20100107016A1 (en) 2007-03-23 2010-04-29 Gerald Adolph Colman System and method for preventing errors ina storage medium
US20100169543A1 (en) * 2008-12-31 2010-07-01 Joseph Edgington Recovery for non-volatile memory after power loss
US20120030510A1 (en) * 2010-07-27 2012-02-02 Samsung Electronics Co., Ltd. Method to recover data sector damaged by abrupt power loss in hard disk drives
US20120162806A1 (en) * 2010-12-23 2012-06-28 Western Digital Technologies, Inc. Directional write retry for shingled disk drive application
US8370683B1 (en) * 2009-07-31 2013-02-05 Western Digital Technologies, Inc. System and method to reduce write splice failures
US8612706B1 (en) * 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US8756382B1 (en) * 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
US20150046747A1 (en) * 2013-08-07 2015-02-12 Seagate Technology Llc Torn write mitigation
US8959281B1 (en) * 2012-11-09 2015-02-17 Western Digital Technologies, Inc. Data management for a storage device

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
EP0493984B1 (en) 1991-01-04 1997-06-04 Emc Corporation Storage device array architecture with copyback cache
US5349481A (en) * 1993-06-10 1994-09-20 Exabyte Corporation Apparatus and method for distorted track data recovery by rewinding and re-reading the tape at a slower than nominal speed
US20020141097A1 (en) * 2000-03-30 2002-10-03 International Business Machines Corporation Disk apparatus and head position control method
US20090019194A1 (en) * 2005-03-28 2009-01-15 Matsushita Electric Industrial Co., Ltd. Storage device
US7095579B1 (en) * 2005-06-02 2006-08-22 Western Digital Technologies, Inc. Disk drive employing momentum based unload during power failure
US20100107016A1 (en) 2007-03-23 2010-04-29 Gerald Adolph Colman System and method for preventing errors ina storage medium
US20100169543A1 (en) * 2008-12-31 2010-07-01 Joseph Edgington Recovery for non-volatile memory after power loss
US8370683B1 (en) * 2009-07-31 2013-02-05 Western Digital Technologies, Inc. System and method to reduce write splice failures
US20120030510A1 (en) * 2010-07-27 2012-02-02 Samsung Electronics Co., Ltd. Method to recover data sector damaged by abrupt power loss in hard disk drives
US20120162806A1 (en) * 2010-12-23 2012-06-28 Western Digital Technologies, Inc. Directional write retry for shingled disk drive application
US8756382B1 (en) * 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
US8612706B1 (en) * 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US8959281B1 (en) * 2012-11-09 2015-02-17 Western Digital Technologies, Inc. Data management for a storage device
US20150046747A1 (en) * 2013-08-07 2015-02-12 Seagate Technology Llc Torn write mitigation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
google.com/patents. *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929251B2 (en) * 2019-03-29 2021-02-23 Intel Corporation Data loss prevention for integrated memory buffer of a self encrypting drive
US11881240B2 (en) 2020-04-01 2024-01-23 Changxin Memory Technologies, Inc. Systems and methods for read/write of memory devices and error correction
US11527301B2 (en) 2020-04-01 2022-12-13 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11869615B2 (en) 2020-04-01 2024-01-09 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
WO2021196663A1 (en) * 2020-04-01 2021-10-07 长鑫存储技术有限公司 Read-write method and memory device
US11886287B2 (en) 2020-04-01 2024-01-30 Changxin Memory Technologies, Inc. Read and write methods and memory devices
US11894088B2 (en) 2020-04-01 2024-02-06 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11899971B2 (en) 2020-04-01 2024-02-13 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11922023B2 (en) 2020-04-01 2024-03-05 Changxin Memory Technologies, Inc. Read/write method and memory device
US20220137836A1 (en) * 2020-11-02 2022-05-05 SK Hynix Inc. Storage device and method of operating the same
US11543975B2 (en) * 2020-11-02 2023-01-03 SK Hynix Inc. Storage device and method of operating the same
US20230092423A1 (en) * 2021-09-17 2023-03-23 Kabushiki Kaisha Toshiba Magnetic disk device
US11842047B2 (en) * 2021-09-17 2023-12-12 Kabushiki Kaisha Toshiba Magnetic disk device
US11756581B1 (en) 2022-03-24 2023-09-12 Western Digital Technologies, Inc. Position and risk reconstruction in shingled magnetic recording data storage devices

Similar Documents

Publication Publication Date Title
US10643668B1 (en) Power loss data block marking
KR101608679B1 (en) Torn write mitigation
US7911840B2 (en) Logged-based flash memory system and logged-based method for recovering a flash memory system
US10061655B2 (en) Volatile cache reconstruction after power failure
US8812901B2 (en) Methods and apparatus for marking writes on a write-protected failed device to avoid reading stale data in a RAID storage system
US9009526B2 (en) Rebuilding drive data
US8484522B2 (en) Apparatus, system, and method for bad block remapping
US8775864B2 (en) Controlling a solid state disk (SSD) device
US20150378642A1 (en) File system back-up for multiple storage medium device
CN102184129B (en) Fault tolerance method and device for disk arrays
US9690642B2 (en) Salvaging event trace information in power loss interruption scenarios
TWI490876B (en) Method and apparatus of system boot and pilot process
US20040123202A1 (en) Mechanisms for detecting silent errors in streaming media devices
JP2013041455A (en) Storage system, storage control device, and storage control method
CN107918568B (en) Method for preventing Linux system from failing to restart
CN111045870B (en) Method, device and medium for saving and restoring metadata
CN115793985B (en) Secure storage method, apparatus, device and storage medium
US9772782B2 (en) Non-volatile complement data cache
US20150100719A1 (en) Data backup method and device thereof
US20090204756A1 (en) Method for protecting exposed data during read/modify/write operations on a sata disk drive
CN115599607B (en) Data recovery method and related device of RAID array
US9971645B2 (en) Auto-recovery of media cache master table data
JP4143040B2 (en) Disk array control device, processing method and program for data loss detection applied to the same
CN113190179B (en) Method for prolonging service life of mechanical hard disk, storage device and system
CN111858139A (en) Method and device for detecting silent data errors

Legal Events

Date Code Title Description
STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4