Data Storage Devices (DSDs) are often used to record data onto or to reproduce data from a storage media. One type of storage media includes a rotating magnetic disk where a magnetic head of the DSD can read and write data in tracks on a surface of the disk, such as in a Hard Disk Drive (HDD).
Shingled Magnetic Recording (SMR) has recently been introduced as a way of increasing the number of Tracks Per Inch (TPI) by making the tracks narrower. SMR increases TPI by using a relatively wide shingle write head with a stronger magnetic field to overlap tracks like roof shingles. The non-overlapping portion then serves as a narrow track that can be read by a narrower read head.
Although a higher number of TPI is possible with SMR, the overlap in tracks can create a problem when writing data since new writes to a previously overlapped track affects data written in the overlapping track. For this reason, tracks are usually sequentially written to avoid affecting previously written data.
In addition, sequential writing ordinarily mitigates the effects of Adjacent Track Interference (ATI) and Wide Area Track Erasure (WATER) by reducing the number of times that a particular portion of the disk may be repeatedly written. With ATI and WATER, repeated writes to the same area on the disk can interfere with or erase data written in one or more adjacent tracks. ATI and WATER can be especially problematic for SMR due to the stronger magnetic field of the write head and closer proximity of the tracks.
The features and advantages of the embodiments of the present disclosure will become more apparent from the detailed description set forth below when taken in conjunction with the drawings. The drawings and the associated descriptions are provided to illustrate embodiments of the disclosure and not to limit the scope of what is claimed.
In the following detailed description, numerous specific details are set forth to provide a full understanding of the present disclosure. It will be apparent, however, to one of ordinary skill in the art that the various embodiments disclosed may be practiced without some of these specific details. In other instances, well-known structures and techniques have not been shown in detail to avoid unnecessarily obscuring the various embodiments.
Those of ordinary skill in the art will appreciate that system 100 can include more or less than those elements shown in
Input device 102 can be a keyboard, scroll wheel, or pointing device allowing a user of system 100 to enter information and commands to system 100, or to allow a user to manipulate objects displayed on display device 104. In other embodiments, input device 102 and display device 104 can be combined into a single component, such as a touch-screen that displays objects and receives user input.
In the embodiment of
Memory 110 represents a volatile memory of host 101 that interfaces with host bus 112 to provide information stored in memory 110 to CPU 108 during execution of instructions in software programs such as DSD driver 12. More specifically, CPU 108 first loads computer-executable instructions from DSD 106 into a region of memory 110. CPU 108 can then execute the stored process instructions from memory 110. Data such as Sequential Write Pointers (SWPs) 16 or data to be stored in or retrieved from DSD 106 can also be stored in memory 110 so that the data can be accessed by CPU 108 during execution of software programs to the extent that such software programs have a need to access and/or modify the data.
As shown in
SWPs 16 can indicate locations for performing a next write in sequentially written zones on a disk of DSD 106 (e.g., disk 150 shown in
Data storage interface 119 is configured to interface host 101 with DSD 106, and can interface according to a standard such as, for example, Serial Advanced Technology Attachment (SATA), PCI express (PCIe), Small Computer System Interface (SCSI), or Serial Attached SCSI (SAS).
DSD 106 includes controller 120 which includes circuitry such as one or more processors for executing instructions and can include a microcontroller, a DSP, an ASIC, an FPGA, hard-wired logic, analog circuitry and/or a combination thereof. In one implementation, controller 120 can include a system on a chip (SoC).
Host interface 126 is configured to interface DSD 106 with host 101 and may interface according to a standard such as, for example, SATA, PCIe, SCSI, or SAS. As will be appreciated by those of ordinary skill in the art, host interface 126 can be included as part of controller 120. Although
In the example of
The tracks on disk 150 are grouped into zones of tracks such as zones 154, 156, and 158. In the embodiment of
Although a higher number of Tracks Per Inch (TPI) is possible with SMR, the overlap in tracks can create a problem when writing data since new writes to a previously overlapped track affects data written in the overlapping track. For this reason, tracks in SMR zones 154, 156, and 158 are generally sequentially written to avoid affecting previously written data.
In addition, sequential writing in SMR zones can ordinarily mitigate the effects of Adjacent Track Interference (ATI) and Wide Area Track Erasure (WATER) by reducing the number of times that these zones are written. With ATI and WATER, repeated writes to the same area on disk 150 can interfere with or erase data written in one or more adjacent tracks. Disk 150 may also include a number of gap tracks or empty tracks between zones in order to protect against the effects of writes in an adjacent zone.
In the example of
DSD 106 also includes solid-state memory 128 for storing data across power cycles. While the description herein refers to solid-state memory generally, it is understood that solid-state memory may comprise one or more of various types of memory devices such as flash integrated circuits, Chalcogenide RAM (C-RAM), Phase Change Memory (PC-RAM or PRAM), Programmable Metallization Cell RAM (PMC-RAM or PMCm), Ovonic Unified Memory (OUM), Resistive RAM (RRAM), NAND memory (e.g., single-level cell (SLC) memory, multi-level cell (MLC) memory, or any combination thereof), NOR memory, EEPROM, Ferroelectric Memory (FeRAM), Magnetoresistive RAM (MRAM), other discrete NVM (non-volatile memory) chips, or any combination thereof.
As shown in
In the example of
Write count data 32 can be used by controller 120 to keep track of a number of times data has been written in different zones or regions of disk 150. Once a write count for a particular zone or region within a zone has reached a threshold number of writes for the zone, a refresh operation can be performed to help protect against the deterioration of data in the zone due to ATI or WATER. In a refresh operation, valid or non-obsolete data stored in the zone is rewritten to protect the data. In addition, more recent versions of data intended to be stored in the zone that are stored elsewhere (e.g., “dirty data” stored in solid-state memory 128) can be written in the zone as part of the refresh operation. The refresh operation may be performed as a background activity of DSD 106.
In operation, host interface 126 receives host read and write commands from host 101 via host interface 126 for reading data from and writing data to NVM. In response to a write command from host 101, controller 120 may buffer the data to be written for the write commands in memory 140.
For data to be written on disk 150, a read/write channel (not shown) of controller 120 may encode the buffered data into write signal 36 which is provided to head 136 for magnetically writing data on disk 150. In addition, controller 120 via a servo system (not shown) can provide VCM control signal 30 to VCM 132 to position head 136 over a particular track for writing the data.
In response to a read command for data stored on disk 150, controller 120 via a servo system positions head 136 over a particular track. Controller 120 controls head 136 to magnetically read data stored in the track and to send the read data as read signal 36. A read/write channel of controller 120 can then decode and buffer the data into memory 140 for transmission to host 101 via host interface 126.
For data to be stored in solid-state memory 128, controller 120 receives data from host interface 126 and may buffer the data in memory 140. In one implementation, the data is then encoded into charge values for charging cells (not shown) of solid-state memory 128 to store the data.
In response to a read command for data stored in solid-state memory 128, controller 120 in one implementation reads current values for cells in solid-state memory 128 and decodes the current values into data that can be transferred to host 101 via host interface 126.
As noted above, a sequentially written zone (e.g., SMR zones 154, 156, and 158) can use a SWP of SWPs 30 to keep track of a location for performing a next write in the sequentially written zone. In the example of
In addition, the physical locations within the zones (e.g., sectors on disk 150) can be associated with a logical address (e.g., Logical Block Address (LBA)) that follows a sequential addressing from the beginning location to the ending location of the zone. This is reflected in
In practice, a strict adherence to sequential writing can limit the use of sequential zones such as SMR zones 154, 156, and 158. Although sequential writing may be well suited for applications such as a data archive where data is typically sequentially written, sequential writing is generally not well suited to applications where data is written in a more random order. The present disclosure therefore seeks to provide a middle ground where sequential writing is still generally performed while allowing a greater flexibility to handle out-of-order writes by moving or resetting a SWP to a previous location in the zone, not just to the beginning location of the zone as is the prior convention. Since the prior convention would require any change to a zone to be effected by a complete re-write of the zone, the several embodiments described herein enable rewrite of a selected portion of the zone, significantly reducing the amount of data that needs to be rewritten if any changes within the zone are required.
To facilitate such a more flexible backward movement of the SWP, one or more embodiments of the present disclosure considers different regions of the zone in determining whether moving the SWP back to that region would exceed a threshold number of writes for the region that is used to protect against the deterioration of data (e.g., data deterioration caused by ATI or WATER). In one implementation, each region in the zone can correspond to a particular number of tracks in the zone. The size of each region can also be based on a particular condition such as the number of tracks that are usually affected by ATI, such as four tracks. As the effects of ATI, WATER and other such deterioration effects are dependent on the recording head size and other head characteristics, track density and/or media characteristics, other implementations may use a different number of tracks as the size for regions.
In addition, to support the determination of whether an SWP can be safely reset to a certain region, one embodiment associates the aforementioned write counts for the individual regions, and increments those counts as data is written into the regions. In one embodiment, each write may trigger different write count updates to different regions. For example, a write into a region A may significantly increase the write counts of the region A and regions close to A (to account for ATI) and slightly increase the write counts of regions located farther away from region A (to account for WATER).
The examples of
As shown in
Note that, for the sake of illustration, in this example the write count is simply incremented by one, and only the adjacent region is considered. In practice, in some embodiments, the write count for each region may be incremented differently, according to the region size (resolution of tracking) relative to the size of the write head. For example, a small region size would mean that more regions would be affected by a write and would need their counts incremented and checked at reset time. Also, write counts of regions may be raised by different increments according to their distance from the write. For example, regions farther from the write may have their write counts incremented by a smaller amount to account for the WATER effect while regions closer to the write may have their write counts incremented by a larger amount to account for the ATI effect.
Besides the write count tracking, in one embodiment, before moving the SWP back to a target region, a write count for the target region (region 4 in
In the example of
In another embodiment, the SWP may instead be moved to a region ahead of the target region but still behind the current position of the SWP if a reset to the target region is not allowed to occur. For example, if the write count for the target region 4 or its adjacent region 3 has reached the threshold number of writes, the SWP may instead be moved back to a region ahead of the target region such as region 6 in
In one embodiment, the first region upstream where reset is allowed is reported to the host or otherwise made available for the host to obtain. The host can either query this information ahead of time or be informed when a reset is blocked. This information may provide the host with an allowable location to which the SWP can be reset.
In block 404, controller 120 maintains a write count for each region in the zone. As discussed above, the write count can correspond to a number of times data has been written in a particular region. Controller 120 can maintain the write counts for the different regions of the zone in write count data 32.
In block 406, controller 120 receives a write command from host 101 via host interface 126 to write data in a target region at a physical location behind the SWP for the zone. In one implementation, the write command can indicate the physical location with a logical address (e.g., LBA) associated with the data to be written. The write command can be, for example, to modify data that was previously written in the physical location indicated by the write command.
In block 408, controller 120 determines whether the write counts for one or both of the target region and an adjacent region have reached a threshold number of writes. The threshold number of writes can be set based on a number of writes that can be performed in the target region without affecting data in the adjacent region such as from ATI or WATER. In some implementations, the threshold number of writes can be dynamically set by controller 120 based on considerations including environmental conditions such as temperature. For example, controller 120 may lower the threshold number of writes when a temperature of DSD 106 exceeds a threshold temperature.
In addition, controller 120 may calibrate the threshold number of writes for a particular region, zone, or head based on past performance. For example, controller 120 may lower the threshold number of writes for regions in a zone that have experienced a greater amount of variance of the head from the center of tracks in the zone (i.e., a higher Track Mis-Registration (TMR)). In such an example, the greater distance from the center of tracks can worsen the effects of ATI or WATER in nearby tracks and can therefore warrant a lower threshold number of writes.
In block 410, controller 120 moves the SWP to the physical location indicated by the write command received in block 406. This can include updating the position indicated by the SWP in SWPs 30 in memory 140. In block 412, controller 120 controls head 136 to write data for the write command at the physical location. The write counts for the target region and the adjacent region are also updated in write count data 32 to reflect the write in the target region. As discussed above, in some implementations, a write in the target region can also affect data in an adjacent region so the write count for the adjacent region is also updated.
On the other hand, if it is determined in block 408 that one or both of the write counts for the target region and the adjacent region have reached the threshold number of writes, the process proceeds to block 414 to perform a sub-process. In one implementation, sub-process B of
As shown in sub-process B of
If the write counts for the previous region and the previous adjacent region have not reached the threshold number of writes, the SWP for the zone is moved back to the previous region in block 422 and head 136 is controlled in block 424 to write the data from the write command in the previous region. The write counts for the previous region and the adjacent previous region are also updated in block 424 to reflect the write in the previous region.
If it is determined in block 420 that one or both of the write counts for the previous region and the adjacent previous region have reached the threshold number of writes, controller 120 in block 426 checks whether there are more previous regions in the zone. If so, the process returns to block 420 to check the write counts for the next previous region and its adjacent region.
If there are no more previous regions in the zone, then the current region is the first region for the zone (e.g., region 1 in the example shown in
In other embodiments, controller 120 may only check a certain number of previous regions before either performing sub-process B of
Those of ordinary skill in the art will appreciate that the various illustrative logical blocks, modules, and processes described in connection with the examples disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. Furthermore, the foregoing processes can be embodied on a computer readable medium which causes a processor or computer to perform or execute certain functions.
To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, and modules have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Those of ordinary skill in the art may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The various illustrative logical blocks, units, modules, and controllers described in connection with the examples disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The activities of a method or process described in connection with the examples disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. The steps of the method or algorithm may also be performed in an alternate order from those provided in the examples. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable media, an optical media, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an Application Specific Integrated Circuit (ASIC).
The foregoing description of the disclosed example embodiments is provided to enable any person of ordinary skill in the art to make or use the embodiments in the present disclosure. Various modifications to these examples will be readily apparent to those of ordinary skill in the art, and the principles disclosed herein may be applied to other examples without departing from the spirit or scope of the present disclosure. The described embodiments are to be considered in all respects only as illustrative and not restrictive and the scope of the disclosure is, therefore, indicated by the following claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
This application claims the benefit of U.S. Provisional Application No. 62/062,083 filed on Oct. 9, 2014, and entitled “ENHANCED DISK DRIVE TRACK MANAGEMENT IN A SHINGLED MAGNETIC RECORDING DRIVE USING A DATA REFRESH OPERATION” by Kent Gibbons et al., which is hereby incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
6856556 | Hajeck | Feb 2005 | B1 |
7082007 | Liu et al. | Jul 2006 | B2 |
7120737 | Thelin | Oct 2006 | B1 |
7126857 | Hajeck | Oct 2006 | B2 |
7340581 | Gorobets | Mar 2008 | B2 |
7430136 | Merry, Jr. et al. | Sep 2008 | B2 |
7447807 | Merry et al. | Nov 2008 | B1 |
7502256 | Merry, Jr. et al. | Mar 2009 | B2 |
7509441 | Merry et al. | Mar 2009 | B1 |
7596643 | Merry, Jr. et al. | Sep 2009 | B2 |
7653778 | Merry, Jr. et al. | Jan 2010 | B2 |
7685337 | Merry, Jr. et al. | Mar 2010 | B2 |
7685338 | Merry, Jr. et al. | Mar 2010 | B2 |
7685374 | Diggs et al. | Mar 2010 | B2 |
7733712 | Walston et al. | Jun 2010 | B1 |
7765373 | Merry et al. | Jul 2010 | B1 |
7898855 | Merry, Jr. et al. | Mar 2011 | B2 |
7912991 | Merry et al. | Mar 2011 | B1 |
7936603 | Merry, Jr. et al. | May 2011 | B2 |
7962792 | Diggs et al. | Jun 2011 | B2 |
7974029 | Tsai et al. | Jul 2011 | B2 |
8078918 | Diggs et al. | Dec 2011 | B2 |
8090899 | Syu | Jan 2012 | B1 |
8095851 | Diggs et al. | Jan 2012 | B2 |
8108692 | Merry et al. | Jan 2012 | B1 |
8122185 | Merry, Jr. et al. | Feb 2012 | B2 |
8127048 | Merry et al. | Feb 2012 | B1 |
8135903 | Kan | Mar 2012 | B1 |
8151020 | Merry, Jr. et al. | Apr 2012 | B2 |
8161227 | Diggs et al. | Apr 2012 | B1 |
8166245 | Diggs et al. | Apr 2012 | B2 |
8243525 | Kan | Aug 2012 | B1 |
8254172 | Kan | Aug 2012 | B1 |
8261012 | Kan | Sep 2012 | B2 |
8296625 | Diggs et al. | Oct 2012 | B2 |
8312207 | Merry, Jr. et al. | Nov 2012 | B2 |
8316176 | Phan et al. | Nov 2012 | B1 |
8341339 | Boyle et al. | Dec 2012 | B1 |
8375151 | Kan | Feb 2013 | B1 |
8392635 | Booth et al. | Mar 2013 | B2 |
8397107 | Syu et al. | Mar 2013 | B1 |
8407449 | Colon et al. | Mar 2013 | B1 |
8423722 | Deforest et al. | Apr 2013 | B1 |
8433858 | Diggs et al. | Apr 2013 | B1 |
8443167 | Fallone et al. | May 2013 | B1 |
8447920 | Syu | May 2013 | B1 |
8458435 | Rainey, III et al. | Jun 2013 | B1 |
8478930 | Syu | Jul 2013 | B1 |
8489854 | Colon et al. | Jul 2013 | B1 |
8503237 | Horn | Aug 2013 | B1 |
8521972 | Boyle et al. | Aug 2013 | B1 |
8549236 | Diggs et al. | Oct 2013 | B2 |
8583835 | Kan | Nov 2013 | B1 |
8601311 | Horn | Dec 2013 | B2 |
8601313 | Horn | Dec 2013 | B1 |
8612669 | Syu et al. | Dec 2013 | B1 |
8612804 | Kang et al. | Dec 2013 | B1 |
8615681 | Horn | Dec 2013 | B2 |
8638602 | Horn | Jan 2014 | B1 |
8639872 | Boyle et al. | Jan 2014 | B1 |
8683113 | Abasto et al. | Mar 2014 | B2 |
8700834 | Horn et al. | Apr 2014 | B2 |
8700950 | Syu | Apr 2014 | B1 |
8700951 | Call et al. | Apr 2014 | B1 |
8706985 | Boyle et al. | Apr 2014 | B1 |
8707104 | Jean | Apr 2014 | B1 |
8713066 | Lo et al. | Apr 2014 | B1 |
8713357 | Jean et al. | Apr 2014 | B1 |
8719531 | Strange et al. | May 2014 | B2 |
8724422 | Agness et al. | May 2014 | B1 |
8725931 | Kang | May 2014 | B1 |
8745277 | Kan | Jun 2014 | B2 |
8751728 | Syu et al. | Jun 2014 | B1 |
8769190 | Syu et al. | Jul 2014 | B1 |
8769232 | Suryabudi et al. | Jul 2014 | B2 |
8775720 | Meyer et al. | Jul 2014 | B1 |
8782327 | Kang et al. | Jul 2014 | B1 |
8788778 | Boyle | Jul 2014 | B1 |
8788779 | Horn | Jul 2014 | B1 |
8788880 | Gosla et al. | Jul 2014 | B1 |
8793429 | Call et al. | Jul 2014 | B1 |
20030044170 | Haddad et al. | Mar 2003 | A1 |
20050231846 | Winarski et al. | Oct 2005 | A1 |
20070174582 | Feldman | Jul 2007 | A1 |
20100174849 | Walston et al. | Jul 2010 | A1 |
20100205623 | Molaro et al. | Aug 2010 | A1 |
20100250793 | Syu | Sep 2010 | A1 |
20110099323 | Syu | Apr 2011 | A1 |
20110197035 | Na et al. | Aug 2011 | A1 |
20110238887 | Bazzani | Sep 2011 | A1 |
20110283049 | Kang et al. | Nov 2011 | A1 |
20120260020 | Suryabudi et al. | Oct 2012 | A1 |
20120278531 | Horn | Nov 2012 | A1 |
20120284460 | Guda | Nov 2012 | A1 |
20120324191 | Strange et al. | Dec 2012 | A1 |
20130132638 | Horn et al. | May 2013 | A1 |
20130145106 | Kan | Jun 2013 | A1 |
20130290793 | Booth et al. | Oct 2013 | A1 |
20140059405 | Syu et al. | Feb 2014 | A1 |
20140101369 | Tomlin et al. | Apr 2014 | A1 |
20140115427 | Lu | Apr 2014 | A1 |
20140133220 | Danilak et al. | May 2014 | A1 |
20140136753 | Tomlin et al. | May 2014 | A1 |
20140149826 | Lu et al. | May 2014 | A1 |
20140157078 | Danilak et al. | Jun 2014 | A1 |
20140181432 | Horn | Jun 2014 | A1 |
20140223255 | Lu et al. | Aug 2014 | A1 |
Entry |
---|
Karl L. Enarson, et al., U.S. Appl. No. 13/952,768, filed Jul. 29, 2013, 33 pages. |
James N. Malina, et al., U.S. Appl. No. 13/662,353, filed Oct. 26, 2012, 42 pages. |
Suresh, et al., “Shingled Magnetic Recording for Big Data Applications,” Parallel Data Laboratory Carnegie Mellon University, 2012. |
Number | Date | Country | |
---|---|---|---|
62062083 | Oct 2014 | US |