U.S. patent application number 12/206968 was filed with the patent office on 2010-03-11 for data storage device including self-test features.
This patent application is currently assigned to Seagate Technology LLC. Invention is credited to Jon D. Trantham.
Application Number | 20100061207 12/206968 |
Document ID | / |
Family ID | 41799179 |
Filed Date | 2010-03-11 |
United States Patent
Application |
20100061207 |
Kind Code |
A1 |
Trantham; Jon D. |
March 11, 2010 |
DATA STORAGE DEVICE INCLUDING SELF-TEST FEATURES
Abstract
In a particular embodiment, a data storage device includes a
non-volatile storage media adapted to store data and a measurement
circuit adapted to measure at least one performance parameter
related to the storage device during operation. The data storage
device further includes logic coupled to the measurement circuit
and adapted to predict a failure associated with at least a portion
of the non-volatile storage media when the measured performance
parameter exceeds a threshold value and to optionally perform
corrective action.
Inventors: |
Trantham; Jon D.;
(Chanhassen, MN) |
Correspondence
Address: |
SEAGATE TECHNOLOGY LLC;C/O WESTMAN, CHAMPLIN & KELLY, P.A.
SUITE 1400, 900 SECOND AVENUE SOUTH
MINNEAPOLIS
MN
55402-3244
US
|
Assignee: |
Seagate Technology LLC
Scotts Valley
CA
|
Family ID: |
41799179 |
Appl. No.: |
12/206968 |
Filed: |
September 9, 2008 |
Current U.S.
Class: |
369/53.1 ;
G9B/27 |
Current CPC
Class: |
G11B 27/36 20130101;
G11B 2220/2516 20130101 |
Class at
Publication: |
369/53.1 ;
G9B/27 |
International
Class: |
G11B 20/00 20060101
G11B020/00; G11B 27/36 20060101 G11B027/36 |
Claims
1. A data storage device comprising: a non-volatile storage media
adapted to store data; a measurement circuit adapted to measure at
least one performance parameter related to the storage device
during operation; and logic coupled to the measurement circuit and
adapted to predict a failure associated with at least a portion of
the non-volatile storage media when the measured performance
parameter exceeds a threshold value.
2. The storage device of claim 1, further comprising a control
circuit coupled to the non-volatile storage media and adapted to
control read/write/erase access to the non-volatile storage
media.
3. The storage device of claim 2, wherein the control circuit is
adapted to reallocate data from the at least a portion of the
non-volatile storage media to a second portion of the non-volatile
storage media in response to the predicted failure.
4. The storage device of claim 2, wherein the control circuit is
adapted to prohibit access to the at least a portion of the
non-volatile storage media in response to the predicted
failure.
5. The storage device of claim 1, wherein the non-volatile storage
media comprises a solid-state memory, and wherein the measured
performance parameter comprises an access time parameter.
6. The storage device of claim 5, wherein the access time parameter
comprises one of an erase time representing a first time parameter
to erase a block of data from the solid-state memory, a write time
including a second time parameter to write a block of data to the
solid-state memory, a read time include a third time parameter to
read a block of data from the solid-state memory, or any
combination thereof.
7. The storage device of claim 1, further comprising an auxiliary
power supply component, wherein the measured performance parameter
comprises a power level associated with the auxiliary power supply
component when the auxiliary power supply component is operating as
an energy source.
8. The storage device of claim 1, further comprising a volatile
write cache to temporarily store data to be written to the storage
media, wherein the logic is adapted to disable writing of data to
the volatile write cache in response to the predicted failure.
9. The storage device of claim 1, further comprising: a disc
assembly including storage media to store data; a spindle motor
coupled to the disc assembly to rotate the storage media; and a
spindle motor control circuit to control operation of the spindle
motor; wherein the measured performance parameter comprises a back
electromotive force associated with the spindle motor acting as a
generator by utilizing a kinetic inertia of the disc assembly when
the disc assembly is rotating.
10. The storage device of claim 1, wherein the non-volatile storage
media comprises a rotatable storage media, the storage device
further comprising: a solid-state memory to store data; a spindle
motor adapted to rotate the non-volatile storage media; and an
auxiliary battery to act as a power source when power is lost;
wherein the measurement circuit is adapted to measure an
erase/write time associated with the solid-state memory, to measure
a back electromotive force (EMF) associated with the spindle motor,
and to measure a power supply from the auxiliary battery; and
wherein the logic is adapted to predict the failure based on at
least one of the measured erase/write/read time, the measured back
EMF, and the measured power supply.
11. A storage device comprising: one or more storage media to store
data; a measurement circuit adapted to measure at least one
performance parameter associated with at least one of the one or
more storage media; and a control circuit coupled to the
measurement circuit and to the one or more storage media, the
control circuit adapted to control read, write, and erase access to
the one or more storage media, the control circuit to detect a
failure associated with at least one of the one or more storage
media when the at least one performance parameter exceeds a
threshold, the control circuit to initiate a corrective action in
response to the detected failure.
12. The storage device of claim 11, wherein the corrective action
comprises at least one of reallocating data from a first location
at the one or more storage media to a second location at the one or
more storage media based on the detected failure.
13. The storage device of claim 11, wherein the at least one
performance parameter comprises a write time to complete a write
operation to at least one of the one or more storage media.
14. The storage device of claim 11, wherein the at least one
performance parameter comprises an erase time to complete an erase
operation to at least one of the one or more storage media.
15. The storage device of claim 11, wherein the at least one
performance parameter comprises a read time to complete a read
operation to at least one of the one or more storage media.
16. The storage device of claim 11, further comprising a spindle
motor coupled to at least one storage media of the one or more
storage media to rotate the at least one storage media, wherein the
at least one performance parameter comprises a back electromotive
force associated with the spindle motor acting as a generator by
utilizing a kinetic inertia of the at least one storage media when
the at least one storage media is rotating.
17. The storage device of claim 11, further comprising an auxiliary
power storage device coupled to the control circuit, wherein the at
least one performance parameter comprises a power level associated
with the auxiliary power storage device when the auxiliary power
storage device is supplying power to the control circuit.
18. A method comprising: measuring a performance parameter
associated with at least one storage media of a storage device via
a measurement circuit within the storage device when the at least
one storage media is accessed; predicting a failure when the
performance parameter exceeds a threshold; and preventing data loss
by taking a corrective action in response to the predicted
failure.
19. The method of claim 18, wherein circuitry of the storage device
predicts the failure and prevents data loss by taking the
corrective action.
20. The method of claim 18, wherein the performance parameter
comprises a read time, a write time, an erase time, or any
combination thereof.
21. The method of claim 18, wherein measuring the performance
parameter comprises measuring a back electromotive force (EMF)
associated with a spindle motor of the storage device when the at
least one storage media is rotating, the back EMF representing a
kinetic inertia of the rotation associated with the at least one
storage media.
22. The method of claim 18, wherein measuring the performance
parameter comprises measuring a power supply level associated with
an auxiliary power supply when the auxiliary power supply is
providing operating power to circuitry of the storage device.
23. The method of claim 18, further comprising generating an alert
to a host system, the alert indicting an error message associated
with the at least one storage media in response to the predicted
failure.
24. The method of claim 18, wherein preventing data loss comprises
reallocating data from a memory location associated with the at
least one storage media to another storage location in response to
the predicted failure.
25. The method of claim 18, wherein preventing data loss comprises
prohibiting future write access to the at least one storage media
in response to the predicted failure.
Description
FIELD OF THE DISCLOSURE
[0001] The present disclosure is generally related to a data
storage device including self-test features.
BACKGROUND
[0002] Storage devices typically include non-volatile storage
media, such as magnetic discs within a hard disc drive and flash
memory chips within a solid-state drive. Some storage systems, such
as a hybrid disc drive, contain a mixture of non-volatile media
types. In general, hybrid disc drives include non-volatile
electronics, such as flash memory, that can be used in conjunction
with the non-volatile rotating storage media to retain data through
power loss and reset events.
[0003] In many types of solid-state memory, such as NAND flash
memory, data are erased in blocks and are read/written in pages. A
block often contains multiple pages. When updating data stored in a
solid-state memory, it is common for valid data to be read from the
memory to another location (such as into a volatile memory buffer),
modified and written to an erased data block. In some designs, the
data are written back to the same block from which they were read,
where the block is erased after the data is read but before the
modified data is written to the block. In other designs, the data
are written to a previously-erased block elsewhere within the
storage device. The storage cell of the solid-state memory can
deteriorate over time as it is exposed to multiple erase/write/read
cycles. Further, solid-state memories and hard disc storage media
may deteriorate at different rates.
[0004] In general, storage devices and flash memory devices are
tested during manufacturing to improve the quality of the finished
product. Unfortunately, device failures that occur in the finished
product during operation can be catastrophic to a user. While error
correction and predictive failure features are sometimes included
in storage devices, such features often predict failures based on
the quantity of data in error. Prediction of device failure based
upon a quantity of data errors may be insufficient to prevent
unrecoverable loss of data.
[0005] While storage systems can store data in non-volatile media
for retention, in many cases it is advantageous to keep data in a
volatile memory buffer, such as a dynamic random access memory
(DRAM). For example, data may be stored in a DRAM to improve the
performance of the storage system or to reduce the wear on the
storage components by reducing erases and writes. However, it is
generally still desirable to retain information that is stored in
the DRAM upon unexpected loss of external system power. In some
storage systems, the protection of such information is valuable
enough to warrant additional protection of the volatile buffer to
make the information held in the buffer non-volatile. This
protection generally requires the use of an internal energy source
within the storage system. In a disc drive, the kinetic momentum of
the rotating disc pack can be used as an energy source. If the
rotating disc pack has insufficient energy for the particular
design, the rotating disc pack energy source can be replaced or
augmented by an auxiliary power device, such as a battery or a
double-layer capacitor. Generally, solid-state drives do not
include a kinetic energy source, so such drives typically contain
an auxiliary power device to provide this protection. In both of
these cases, however, a failure related to such auxiliary power
sources can cause unexpected loss or corruption of data.
SUMMARY
[0006] In a particular embodiment, a data storage device includes a
non-volatile storage media adapted to store data and a measurement
circuit adapted to measure at least one performance parameter
related to the non-volatile storage media during operation. The
data storage device further includes logic coupled to the
measurement circuit and adapted to predict a failure associated
with at least a portion of the non-volatile storage media when the
measured performance parameter exceeds a threshold value.
[0007] In another particular embodiment, a storage device includes
one or more storage media to store data and a measurement circuit
adapted to measure at least one performance parameter associated
with at least one of the one or more storage media. The storage
device further includes a control circuit coupled to the
measurement circuit and to the one or more storage media. The
control circuit is adapted to control read, write, and erase (if
erasure is required) access to the one or more storage media. The
control circuit detects a failure associated with at least one of
the one or more storage media when the at least one performance
parameter exceeds a threshold. The control circuit initiates a
corrective action in response to the detected failure.
[0008] In still another particular embodiment, a method is
disclosed that includes measuring a performance parameter
associated with at least one storage media of a storage device via
a measurement circuit within the storage device when the at least
one storage media is accessed. The method further includes
predicting a failure when the performance parameter exceeds a
threshold and preventing data loss or corruption by taking a
corrective action in response to the predicted failure.
[0009] In yet another particular embodiment, a method is disclosed
that includes measuring a performance parameter associated with
internal power supplying components of the storage system. The
method further includes predicting a failure when the performance
parameter exceeds a threshold and preventing data loss or
corruption by taking a corrective action in response to the
predicted failure.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] FIG. 1 is a block diagram of a particular illustrative
embodiment of a system including a hybrid storage device that has a
measurement circuit and a spindle power monitor to test the storage
device;
[0011] FIG. 2 is a block diagram of a second particular
illustrative embodiment of a system including a storage device that
has a device health monitor to test the storage device;
[0012] FIG. 3 is a flow diagram of a particular illustrative
embodiment of a method of performing a self-test of a storage
device;
[0013] FIG. 4 is a flow diagram of a second particular illustrative
embodiment of a method of performing a self-test of a storage
device;
[0014] FIG. 5 is a flow diagram of a third particular illustrative
embodiment of a method of performing a self-test of a storage
device;
[0015] FIG. 6 is a flow diagram of a fourth particular illustrative
embodiment of a method of performing a self-test of a storage
device; and
[0016] FIG. 7 is a flow diagram of a fifth particular illustrative
embodiment of a method of performing a self-test of a storage
device.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
[0017] FIG. 1 is a block diagram of a particular illustrative
embodiment of a system 100 including a hybrid storage device 102
that has a measurement circuit 124 and a power monitor 132 used to
test the storage device 102. As used herein, the term "hybrid
storage device" refers to a data storage device that includes both
rotating storage media and solid-state storage media. The storage
device 102 is adapted to communicate with a host system 104. In a
particular embodiment, the host system 104 is typically a computer,
but could be a bus expander, a processor, a personal digital
assistant (PDA), another electronic device, or more generally any
device capable of generating and/or relaying commands to a mass
storage device.
[0018] The storage device 102 includes recording subsystem
circuitry 106, a head-disc assembly 108, and disc-head assembly
control circuitry 120, which includes monitoring circuitry. The
recording subsystem circuitry 106 includes an interface circuit
112, which includes a data buffer for temporarily buffering the
data and a sequencer for directing the operation of the read/write
channel 116 and the preamplifier 150 during data transfer
operations. The interface circuit 112 is coupled to the host system
104 and to a control processor 118, which is adapted to control
operation of the storage device 102. In a particular embodiment,
the control processor 118 includes device failure prediction logic
119 that is adapted to predict a failure associated with the
storage device 102 based on one or more measured performance
parameters. In an alternative embodiment, the device failure
prediction logic 119 can be separate from the control processor
118. In a particular example, the device failure prediction logic
119 can be included within the measurement circuit 124. The control
processor 118 is coupled to a servo circuit 122 that is adapted to
control the position of one or more read/write heads 154 relative
to one or more discs 156 as part of a servo loop established by the
one or more read/write heads 154. Generally, the one or more
read/write heads 154 are mounted to a rotary actuator assembly to
which a coil 152 of a voice coil motor (VCM) is attached. As is
known in the art, a VCM includes a pair of magnetic flux paths
between which the coil 152 is disposed so that the passage of
current through the coil causes magnetic interaction between the
coil 152 and the magnetic flux paths, resulting in the controlled
rotation of the actuator assembly and the movement of the one or
more heads 154 relative to the surfaces of the one or more discs
156. The servo circuit 122 is used to control the application of
current to the coil 152, and hence the position of the heads 154
with respect to the tracks of the one or more discs 156.
[0019] In general, the disc-head assembly control circuitry 120
includes the servo circuit 122 and includes a spindle circuit 126
that is coupled to a spindle motor 158 to control the rotation of
the one or more discs 156. The disc-head assembly control circuitry
120 further includes a measurement circuit 124 that is coupled to
the control processor 118 and that is adapted to measure one or
more electrical parameters associated with the storage device
102.
[0020] In a particular embodiment, the disc-head assembly control
circuitry 120 includes a power monitor 132 that is coupled to the
spindle circuit 126 and adapted to measure the usable energy
available in the back electromotive force associated with the
spindle motor 158. In a particular example, the back electromotive
force (EMF) represents the spindle motor 158 operating as a
generator, utilizing a kinetic inertia associated with the rotation
of the one or more discs 156 to generate the back EMF. In a
particular instance, the energy from the back EMF may be measured
as a power level. When power is interrupted to the storage device,
the control processor 118 programs the data into the non-volatile
memory component, such as the data flash 134. In a particular
example, once the user's data and the firmware metadata have been
stored, the measurement circuitry 124 can record the time it took
to program the data flash 134. The control processor 118 can then
program one bit of memory (of the data flash 134) at fixed periodic
intervals until the power from the spindle motor 158 has been
exhausted. When power is restored, the device failure prediction
logic 119 can use the stored bits to determine how much power the
spindle motor 158 supplied.
[0021] The storage device 102 also includes an auxiliary power
device 130 that is coupled to the spindle power monitor 132 and to
the measurement circuit 124. In a particular embodiment, the
auxiliary power device 130 can be a capacitor or a battery that is
adapted to supply power to the storage device 102 under certain
operating conditions. In a particular example, the auxiliary power
device 130 can provide a power supply to the recording subsystem
assembly 106 and to the disc-head assembly 108 to record data to
the one or more discs 156 when power is turned off. Further, the
auxiliary power device 130 may supply power to the recording
subsystem assembly 106 to record data to a data flash 134 or to a
code (NOR) flash 138 when power is turned off.
[0022] Additionally, the storage device 102 includes a non-volatile
solid-state storage component for data, labeled "data (NAND) flash"
134. Although NAND flash is shown in FIG. 1, the flash memory 134
could be any non-volatile electronic storage component capable of
storing data. For example, the flash memory 134 could be NAND
flash, NOR flash, MRAM, phase-change memory, another solid-state
memory, or any combination thereof. Additionally, the storage
device 102 typically includes a dynamic random access memory (DRAM)
136, and or other memory, or any combination thereof.
[0023] Additionally, the storage device 102 includes internal code
storage 138. Although the internal code storage block shown
generally indicated at 138 is labeled for purposes of easy
comprehension as "code (NOR) flash", the "code (NOR) flash 138
could be any non-volatile solid-state storage component, and in
some embodiments the code storage might only exist as a portion of
the data storage component 134. In a particular embodiment, the
code (NOR) flash 138 stores self-test instructions 140, including
instructions to monitor particular performance parameters
associated with the storage device 102 each time data is written
to, read from, and/or erased from the storage device 102. In a
particular example, the self-test instructions 140 include a
sequence of data values that can be written to an erased block
within the data (NAND) flash 134, for example, while the write time
is measured by the measurement circuit 124.
[0024] In general, the storage device 102 frequently erases, writes
and reads non-volatile electronics (NVE), such as the data (NAND)
flash 134 and the code (NOR) flash 138, to retain data through
power loss and reset events. In flash components, erasing and
writing of the NVE is typically accomplished by storing and
depleting electrical charges in a "floating" gate in a NOR or NAND
gate cell, many of which are included in a single NVE memory. In a
phase-change memory, erasing and writing are accomplished by
heating and cooling chalcogenic material to switch it between
amorphous and crystalline states. Unfortunately, it is common for
these and other NVE storage devices to degrade with usage in their
ability to store data, which degradation results in changes of
erase and/or write and/or read times up and to the point of
failure.
[0025] During operation of the storage device 102, the measurement
circuit 124 measures and records a length of time to complete an
erase/write/read operation for a portion of the memory, such as a
block, page, segment, paragraph, etc. or for the entire memory. Not
shown here, it is a common practice to perform signal conditioning,
such as to normalize and/or filter the measured times. The device
failure prediction logic 119 is adapted to compare the measured
erase/write/read time to a corresponding threshold, and if the
threshold is exceeded, the device failure prediction logic 119 is
adapted to initiate one or more recover steps via the control
processor 118. The one or more recovery steps can include, but are
not limited to, retrying the operation, performing additional
testing on the storage, reconditioning the storage, reallocating
the affected block/page, asserting an error message to the host
system 104, posting an error, and performing further testing on the
flash segment. In a particular embodiment, the device failure
prediction logic 119 may be adapted to monitor programming time on
a historical basis and to use trends, filtered or unfiltered, to
make intelligent device failure predictions.
[0026] In a particular embodiment, the data storage device 102
includes a non-volatile storage media, such as the one or more
discs 156, the data (NAND) flash 134, the code (NOR) flash 138,
other memory 140, or any combination thereof. The non-volatile
storage media is adapted to store data, including instructions
executable by the control processor, user data, measurement data,
other information, or any combination thereof.
[0027] The storage device 102 includes the measurement circuit 124
that is adapted to measure at least one performance parameter
related to the non-volatile storage media during operation. In a
particular example, the at least one performance parameter is an
erase time, a write time, a read time, or any combination thereof,
that is associated with the data (NAND) flash 134, the code (NOR)
flash 138, the other memory 142, or any combination thereof. In
another particular example, the at least one performance parameter
is the usable energy available from the back electromotive force
associated with the spindle motor 158. The back electromotive force
represents electrical energy generated by the spindle motor 158
using a kinetic inertia associated with rotation of the one or more
discs 156. In still another particular example, the at least one
performance parameter is a power level associated with the
auxiliary power device 130 when the auxiliary power device 130
supplies power to the recording subsystem assembly 106.
[0028] The storage device 102 further includes logic, such as the
device failure prediction logic 119, that is coupled to the
measurement circuit 124 and that is adapted to predict a failure
associated with at least a portion of the non-volatile storage
media, when the measured performance parameter exceeds a threshold
value. For example, the erase/write/read time associated with the
data (NAND) flash 134 changes as the data (NAND) flash 134
deteriorates. When the (normalized and/or filtered) measured
erase/write/read time associated with the data (NAND) flash 134
exceeds a corresponding threshold, the logic is adapted to predict
a failure associated with the data (NAND) flash 134 and to take
corrective action to prevent data loss.
[0029] In another example, when the measured power level of the
auxiliary power device 130 falls below a power threshold, the logic
is adapted to predict a failure associated with the auxiliary power
device 130, which may indicate that the storage device 102 may be
unable to record data to the non-volatile storage media when power
is lost. In this example, the logic is adapted to take a corrective
action to prevent data loss in response to the predicted failure.
In still another example, when the measured back EMF from the
spindle motor 158 falls below an EMF threshold, the logic is
adapted to predict a failure and to take action to prevent data
loss.
[0030] In a particular example, the storage device 102 is adapted
to reallocate data from a first storage location to a second
storage location in response to the predicted failure. In another
particular example, the storage device 102 is adapted to prohibit
access to at least a portion of the non-volatile storage media in
response to the predicted failure. In another particular example,
the storage device 102 disables volatile write-caching as a
response to a predicted failure. In still another particular
example, the storage device 102 is adapted to generate an alert,
such as an error message, and to communicate the alert to the host
system 104 via the interface 112.
[0031] Further, using the built-in self-test, it is possible to
test the non-volatile electronics, such as the flash memory,
without external test equipment. Additionally, the built-in
self-test, such as the self-test instructions 140, and the
measurement circuitry 124 make it possible to periodically test the
storage device 102 during regular operation to ensure that the
non-volatile memory, such as the data (NAND) flash 134 and the code
(NOR) flash 138, continues to work reliably. In a particular
embodiment, the built-in self-test instructions 140 include a set
of data patterns for erasing and reprogramming the flash memories
134 and 138. For example, the test patterns can include a pattern
of all one ("1") values, a pattern of all zero ("0") values, a
"walking ones" pattern, a "walking zeroes" pattern, a pattern
containing the logical or physical storage address, a pseudorandom
pattern, another pattern, or any combination thereof. In a
particular embodiment, the control processor 118 is adapted to use
the self-test instructions 140 to erase and reprogram the data
(NAND) flash 134. During erase, write, and read operations, the
measurement circuitry 124 measures the erase/write/read time.
[0032] In a particular embodiment, the device contains voltage
regulator circuitry 128 that can be controlled to provide a higher
or lower voltage than normal, "margining" the voltage supply to
provide additional stress factors that can ferret out weak or
defective components. In a particular example, the control
processor 118 uses the built-in self-test instructions 140 to run a
series of erase/programming cycles against the memory using the
patterns. The tests can be repeated with the voltage margined high
or low. The results of the tests can be used to identify failing
components and to make decision about the overall health of the
storage device 102. In a particular implementation, the storage
device 102 can include a programmable clock that allows the data
(NAND) flash 134, the code (NOR) flash 138, other memory, or any
combination thereof to be run at faster or slower than normal clock
speeds, providing additional stress on the non-volatile
electronics. Further, testing may be performed using various
combinations of the above stresses.
[0033] FIG. 2 is a block diagram of a second particular
illustrative embodiment of a system 200 including a data storage
device 202 that has a device health monitor 216 to test the data
storage device 202. In a particular embodiment, the data storage
device 202 is a solid-state memory device that is adapted to
communicate with a host system 204 via an interface 206. The data
storage device 202 includes a control circuit 208 that is adapted
to communicate with a primary storage media 210 and with other
memory 214. The control circuit 208 is also coupled to an auxiliary
power component 212. In a particular embodiment, the auxiliary
power component 212 is an energy storage component, such as a
battery or a capacitor, which is adapted to provide auxiliary power
to the storage device 202 when power is lost. The control circuit
208 is also coupled to the device health monitor 216, which
monitors one or more performance parameters associated with the
storage device 202 to predict a storage device failure.
[0034] The device health monitor 216 includes a built-in self-test
feature 218, which may be used by the controller 208 to test a
health associated with the primary storage media 210 or the other
memory 214. In a particular example, the built-in self-test feature
218 includes instructions executable by the control circuit 208 to
erase a block of data from a selected memory, such as the primary
storage media 210, to write a new page of data to the selected
memory, and to read a page of data from the selected memory. The
built-in self-test feature 218 may also include a data sequence to
be written to the selected memory. The device health monitor 216
also includes an auxiliary power device monitor 220 adapted to
monitor a power supplied by the auxiliary power component 212 when
the auxiliary power component 212 is acting as an energy source.
The device health monitor 216 further includes one or more
performance thresholds 222. In a particular illustrative
embodiment, the device health monitor 216 may include a spindle
energy power monitor 224, when the primary storage media 210 is a
rotating storage media that is rotated using a spindle motor, such
as the spindle motor 158 illustrated in FIG. 1. In an alternative
embodiment, where the storage device 202 is a solid-state storage
device, the spindle energy power monitor 224 may be omitted.
[0035] The device health monitor 216 further includes a programming
time monitor 226 that is adapted to monitor an erase time, a write
time, a read time, or any combination thereof, when data are
erased, written, or read to/from a selected memory, such as the
primary storage media 210 or the other memory 214. In a particular
embodiment, the device health monitor 216 includes a performance
measurement log 228 that is adapted to record measurement data
related to the one or more measured performance parameters.
Finally, the device health monitor 216 includes device failure
prediction logic 230 that is adapted to predict a failure
associated with the storage device 202 based on at least one of the
one or more measured performance parameters.
[0036] In a particular embodiment, the storage device 202 includes
a control circuit 208 that is coupled to a non-volatile storage
media, such as the primary storage media 210, the other memory 214,
or any combination thereof. The control circuit 208 is adapted to
control read/write access to the non-volatile storage media. In a
particular example, the device health monitor 216 is adapted to
monitor one or more performance parameters associated with the
storage device 202 to predict a failure associated with the storage
device 202, when at least one of the one or more performance
parameters exceeds a respective performance threshold of the one or
more performance thresholds 222.
[0037] In a particular embodiment, the control circuit 208 is
adapted to take corrective action to prevent data loss in response
to the predicted failure. In a particular example, the control
circuit 208 is adapted to reallocate data from a first portion 232
of the primary storage media 210 to a second portion 234 of the
primary storage media 210 in response to the predicted failure. In
another particular example, the control circuit 208 is adapted to
prohibit access to the first or second portions 232 or 234 of the
primary storage media 210 in response to the predicted failure. In
another particular example, the control circuit 208 disables
volatile write-caching as a response to a predicted failure. In
another particular example, the control circuit 208 is adapted to
generate an alert and to send the alert to the host system 204 via
the interface 206 in response to the predicted failure.
[0038] In a particular embodiment, the primary storage media 210 is
a non-volatile, solid-state memory. The device health monitor 216
is adapted to utilize the built-in self-test feature 218 and the
programming time monitor 226 each time the primary storage media
210 is accessed to determine a time parameter, which is compared to
one of the performance thresholds 222 to predict a failure
associated with at least a portion of the primary storage media
210.
[0039] FIG. 3 is a flow diagram of a particular illustrative
embodiment of a method of performing a self-test of a storage
device. The method starts at 300. At 302, erase/write/read times of
an individual block/page of a storage media are measured when an
erase/write/read process is invoked. In a particular embodiment,
the erase/write/read process can be invoked by a host system, by an
interrupt, by a controller of the storage device, by another
process, or any combination thereof. Moving to 304, the measured
erase/write/read times are recorded in a performance log.
Continuing to 306, the measured erase/write/read times are compared
against erase/write/read thresholds. Advancing to 308, when the
measured erase, write, or read times do not exceed corresponding
erase/write/read thresholds, the method terminates without error at
312.
[0040] Returning to 308, when the measured erase/write/read times
exceed corresponding erase/write/read thresholds, the method
proceeds to 310 and corrective fault recovery actions are
performed. In a particular example, a corrective fault recovery
action may include disabling volatile write-caching as a response
to a predicted failure. In another particular example, the
corrective fault recovery action may include generating an alert to
a host system, reallocating data from a first portion to a second
portion a storage media, prohibiting access to the a portion of the
storage media, taking other data protection actions, or any
combination thereof. The method terminates at 312.
[0041] FIG. 4 is a flow diagram of a second particular illustrative
embodiment of a method of performing a self-test of a storage
device. The method starts at 400. At 402, optionally, an
environmental temperature of a storage device under test is set.
Advancing to 404, a voltage is adjusted that is applied to a
solid-state storage memory component of the storage device.
Continuing to 406, erase/write/read times of an individual
block/page of a storage media are measured when an erase/write/read
process is invoked. In a particular embodiment, the
erase/write/read process can be invoked by a host system, by an
interrupt, by a controller of the storage device, by another
process, or any combination thereof. Moving to 408, the measured
erase/write/read times are recorded in a performance log.
Continuing to 410, the measured erase/write/read times are compared
against erase/write thresholds. Advancing to 412, when the measured
erase and write times do not exceed corresponding erase/write
thresholds, the method advances to 416 and the voltage that is
applied to a solid-state storage memory component of the storage
device is adjusted to an operating voltage level. The method
terminates at 418.
[0042] Returning to 412, when the measured erase/write/read times
exceed corresponding erase/write/read thresholds, the method
proceeds to 414 and corrective fault recovery actions are
performed. In a particular example, a corrective fault recovery
action may include disabling volatile write-caching as a response
to a predicted failure. In another particular example, the
corrective fault recovery action may include generating an alert to
a host system, reallocating data from a first portion to a second
portion a storage media, prohibiting access to the a portion of the
storage media, taking other data protection actions, or any
combination thereof. Continuing to 416, the voltage that is applied
to a solid-state storage memory component of the storage device is
adjusted to an operating voltage level. The method terminates at
418.
[0043] In general, non-volatile memory devices, such as the data
(NAND) flash 134 and the code (NOR) flash 138 illustrated in FIG.
1, are tested by a manufacturer prior to shipment. These tests are
performed by iteratively erasing and then writing and reading the
non-volatile memory devices using a plurality of test patterns. If
the memory device passes its tests, the memory device is shipped to
the end user for incorporation into a final product. However, it is
sometimes beneficial to test the non-volatile memory device after
it is installed into the final product. For storage devices, such
as the hybrid storage device 102 illustrated in FIG. 1, it is
sometimes desirable to test the non-volatile memory devices after
assembly is complete. Further, using the built-in self-test, it is
possible to test the non-volatile electronics, such as the flash
memory, without external test equipment or with less-costly test
equipment. Additionally, the built-in self-test and the measurement
circuitry make it possible to periodically test the storage device
during regular operation to ensure the non-volatile memory
continues to work reliably.
[0044] In a particular embodiment, a manufacturer's test equipment
can invoke the built-in self-tests at various temperatures as an
additional stress that is not always present in the field. Further,
a manufacturer's test process can use the built-in self-test,
optionally in conjunction with the measurement circuitry (such as a
programming time monitor), to collect data about the device
performance. The data can be used as part of a statistical process
control to monitor and control the quality of the final
product.
[0045] FIG. 5 is a flow diagram of a third particular illustrative
embodiment of a method of performing a self-test of a storage
device. The method starts at 500. At 502, data are optionally
written to a page of memory within the non-volatile storage. In
general, block 502 is unnecessary if the data are known or can be
determined via an error-correcting code. Advancing to 504, the data
are read back to determine a quality value associated with the
data. In a particular embodiment, the quality value is related to
the number of bits in error within the page. In another particular
embodiment, the quality value is determined by totaling the
mean-square error of the sensed storage level of each individual
bit cell from its optimal value. For example, if the non-volatile
electronic storage device contains circuitry capable of converting
the analog voltage of a bit cell's charge to a digital value, this
information can be used to determine a value related to the amount
of error. Proceeding to 506, the quality value is recorded in a
performance log. Moving to 508, the quality value is compared to a
threshold. If the quality value is less than the threshold, the
method terminates without error at 512. Returning to 508, if the
quality value is greater than the threshold, the method advances to
510 and corrective action is performed to protect the data. The
method terminates at 514.
[0046] FIG. 6 is a flow diagram of a fourth particular illustrative
embodiment of a method of performing a self-test of a storage
device. The method starts at 600. At 602, an electrical load is
applied to a power-supplying component of a storage device.
Advancing to 604, a power level associated with read/write
circuitry of a storage device including a storage media is measured
when data is erased from or written to a portion of the storage
media. In a particular example, the power level is measured from a
spindle motor, an auxiliary power device, another component, or any
combination thereof, using a measurement circuit. In a particular
illustrative embodiment, the power level is determined by measuring
the length of time in which the spindle motor or power device
remains above a threshold. This is accomplished by periodically
programming a series of non-volatile locations at fixed timed
intervals until power falls below a threshold.
[0047] Continuing to 606, the measured power level is recorded in a
measurement log. Proceeding to 608, the measured power level is
compared to a threshold value. In a particular example, the
measured power level is compared to the threshold time value by
logic, which may be part of the measurement circuit, a control
circuit, a processor, or any combination thereof. At 608, if the
measured power level is less than a threshold value, the method is
terminated without error at 612. Otherwise, at 608, if the measured
power level exceeds a threshold value, the method advances to 610
and corrective fault recovery actions are performed. The he
corrective fault recovery actions may include disabling volatile
write-caching as a response to a predicted failure. In another
particular example, the corrective fault recovery action may
include generating an alert to a host system, reallocating data
from a first portion to a second portion a storage media,
prohibiting access to the a portion of the storage media, taking
other data protection actions, or any combination thereof. In a
particular embodiment, the power level may be adjusted to a normal
operating power level prior to termination. The method terminates
at 612.
[0048] FIG. 7 is a flow diagram of a fifth particular illustrative
embodiment of a method of performing a self-test of a storage
device. The method starts at 700. At 702, a performance parameter
associated with at least one storage media of a storage device is
measured via a measurement circuit within the storage device when
the at least one storage media is accessed. In a particular
embodiment, the performance parameter comprises a read time, a
write time, an erase time, or any combination thereof. In a
particular illustrative embodiment, measuring the performance
parameter includes measuring the energy associated with the back
electromotive force (EMF) of a spindle motor of the storage device
when at least one storage media is rotating, where the back EMF is
power generated from the kinetic inertia of the storage media. In
another particular illustrative embodiment, measuring the
performance parameter includes measuring a power supply level
associated with an auxiliary power supply when the auxiliary power
supply is providing operating power to circuitry of the storage
device.
[0049] Continuing to 704, a failure is predicted when the
performance parameter exceeds a threshold. Proceeding to 706, data
loss is prevented by taking a corrective action in response to the
predicted failure. In a particular embodiment, circuitry of the
storage device predicts the failure and prevents data loss by
taking the corrective action. In a particular example, data loss is
prevented by reallocating data from a memory location associated
with the at least one storage media to another storage location in
response to the predicted failure. In another particular example,
data loss is prevented by prohibiting future write access to the at
least one storage media in response to the predicted failure. The
method terminates at 708.
[0050] In a particular embodiment, the method further includes
generating an alert to a host system. The alert may be generated by
logic, by a control circuit, by the measurement circuit, or any
combination thereof. In general, the alert indicates an error
message or annunciation associated with the at least one storage
media in response to the predicted failure.
[0051] In general, it should be understood that the "start" blocks
indicated at 300, 400, 500, 600, and 700 in FIGS. 3-7 represent a
trigger that initiates the particular method flow. In general, the
trigger may be initiated by a host system, such as the host systems
104 and 204 in FIGS. 1 and 2, may be initiated by firmware within a
storage device, may be triggered by a peripheral device (not
shown), may be initiated by circuitry within the storage device, or
any combination thereof.
[0052] In general, the measurement circuitry is incorporated within
the storage device to monitor performance parameters associated
with the storage device during normal operation. By monitoring
performance parameters, component failures may be predicted before
data is lost by comparing the performance parameters to respective
performance thresholds and by taking corrective action when the
performance parameters deviate from the performance thresholds. In
a particular example, when the power level falls below a power
threshold, it may be desirable to perform further testing of the
storage device to isolate a problem and to provide an error message
to a host system that can be used to fix the problem. In general,
one or more performance parameters can be measured, including the
erase/write/reads times of the memory, the power supply of the
auxiliary power device, the energy associated with the back
electromotive force of the spindle motor, other performance
parameters, or any combination thereof.
[0053] In a particular embodiment, once a failure is predicted, the
control circuitry of the storage device can take precautions to
protect user data, such as by reallocating the user data to another
portion of the storage media that is tested to have better
erase/reprogram times. Further, by including the measurement
circuitry and the logic to determine corrective actions within the
storage device, the storage device can be made to be more reliable,
since device failures can be predicted before data is lost,
allowing the device to take corrective action or allowing the
device to notify the user so that the user can take corrective
actions to protect the user data.
[0054] Although the present invention has been described with
reference to preferred embodiments, workers skilled in the art will
recognize that changes may be made in form and detail without
departing from the spirit and scope of the invention.
* * * * *