The accompanying drawings, which are incorporated in and constitute part of the specification, illustrate various embodiments of the invention. Together with the general description, the drawings serve to explain the principles of the invention. In the drawings:
Aspects of the invention are disclosed in the following description and related drawings directed to specific embodiments of the invention. Alternate embodiments may be devised without departing from the scope of the invention. Additionally, well-known elements of the invention will not be described in detail or will be omitted so as not to obscure the relevant details of the invention.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments. Likewise, the term “embodiments of the invention” does not require that all embodiments of the invention include the discussed feature, advantage or mode of operation.
Further, many embodiments are described in terms of sequences of actions to be performed by, for example, elements of a computing device. It will be recognized that various actions described herein can be performed by specific circuits (e.g., application specific integrated circuits (ASICs)), by program instructions being executed by one or more processors, or by a combination of both. Additionally, these sequence of actions described herein can be considered to be embodied entirely within any form of computer readable storage medium having stored therein a corresponding set of computer instructions that upon execution would cause an associated processor to perform the functionality described herein. Thus, the various aspects of the invention may be embodied in a number of different forms, all of which have been contemplated to be within the scope of the claimed subject matter. In addition, for each of the embodiments described herein, the corresponding form of any such embodiments may be described herein as, for example, “logic configured to” perform the described action.
Referring to
For example, as illustrated in
For purposes of illustration, assume the drive is configured so that the top read/write heads are designated as the primary drive and the bottom read/write heads are designated as the mirror drive. When data is written to the hard disk drive 210 from CPU system 230, the data will be automatically mirrored on both the top and bottom of a platter 216 within the hard disk drive 210. Likewise, when data is read from the hard disk drive 210 the data can be read from the appropriate location via top read/write head and communicated to CPU system 230. Accordingly, the processes can be the same as a conventional hard disk drive, when viewed from CPU system 230 and hard disk controller 220. Additional details regarding the read and write operation are provided in the following description.
Referring to
Accordingly, an embodiment of the invention can include a method including: receiving a write command to write data at a hard disk drive; and writing the data in two locations using two different read/write heads. Further, the method can include determining if auto-mirror is enabled; writing the data in the two locations if the auto-mirror is enabled; and writing the data to a single location if the auto-mirror is not enabled.
Accordingly an embodiment of the invention can include methods for reading data written in two locations using two read/write heads including: receiving a read command at the hard disk drive; and reading the data from a first location of the two locations, if no drive read error is detected. Further, the method can include determining if an auto-mirror is enabled; reading the data from a second location of the two locations, if the auto-mirror is enabled; and returning a read error message, if the auto-mirror is not enabled. Additionally, the read error message can be returned, if the data cannot be read from the second location.
Although embodiments of the invention can improve the overall data reliability of the hard disk drive, it comes at the cost of reducing the effective size by half. For example, a 300 GB hard disk drive may appear to only have 150 GB of available storage space in embodiments of the invention. There can be situations where the freeing up the storage capacity used by the mirror portion is desired, even though it would result in the loss of the internal redundancy of the hard drive. For example, referring to
Accordingly, embodiments of the invention can further include recovering storage space from a mirrored portion of the hard disk drive and adding the storage space to a primary portion of the hard disk drive, upon entering a storage space recovery mode. As discussed above, the storage space recovery mode can be entered upon at least one of exceeding a hard disk drive usage threshold and manually selecting the storage space recovery mode. Further, embodiments of the invention can include incrementally recovering storage space from the mirrored portion of the hard disk drive.
Further, those skilled in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps 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. Skilled artisans 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 invention.
Thus, the foregoing steps, process, functions, algorithms and/or activities can be performed by specific circuits (e.g., application specific integrated circuits (ASICs)), by program instructions being executed by one or more processors, or by a combination of both. Thus, as previously discussed, the various aspects of the invention may be embodied in a number of different forms, which may be described as, “logic configured to” perform the described action. Additionally, the logic may be embodied in one discrete element or may be distributed over multiple elements. For example, the functions described herein can be embodied in the drive control logic 310 in
Accordingly, embodiments of the invention may be embodied as a hard disk drive including: logic configured to receive a write command to write data; and logic configured to write the data in two locations using two different read/write heads. Further, embodiments of the invention can include logic configured to determine if an auto-mirror is enabled; logic configured to write the data in the two locations, if the auto-mirror is enabled; and logic configured to write the data to a single location, if the auto-mirror is not enabled. Still further, embodiments of the invention can include logic configured to receive a read command at the hard disk drive; and logic configured to read the data from a first location of the two locations, if no drive read error is detected. The invention is not limited to these examples as will be appreciated by those skilled in the art and as previously stated, any of the foregoing steps, process, functions, algorithms and/or activities can be performed by appropriately configured logic.
The various steps, functions, or activities may be included or excluded as described above, or may be performed in an order different from that depicted in the figures, with the rest of the activities still remaining within the scope of at least one exemplary embodiment. For example, in some embodiments the auto-mirror function may not be selectable and therefore the check to see if auto-mirror is enabled would be unnecessary. Other optional decisions may also be eliminated, such as the incremental mode and/or the manual selection, and the like. Although the decision may be eliminated, it does not necessarily mean the feature is eliminated. For example, the incremental mode detection block 650 can be eliminated but the driver/hard disk drive can be configured to use only incremental recovery so that the functionality will be realized without the option for selecting and/or detecting the incremental mode.
Additionally, the invention may be implemented with any sort of processing units, processors and controllers capable of performing the stated functions and activities. For example, the controller may be embodied as a microprocessor, microcontroller, DSP, RISC processor, or any other type of processor or hardwired logic that one of ordinary skill would recognize as being capable of performing the functions described herein. A processing unit in accordance with some embodiments may operate computer software programs stored (embodied) on computer-readable medium such as the memory, flash memory, ram, or other computer readable medium as recognized by one of ordinary skill in the art. The computer software programs can aid or perform the steps and activities described above. For example, computer programs in accordance with at least one exemplary embodiment may include: source code for receiving a write command to write data at a hard disk drive; and writing the data in two locations using two different read/write heads. There are many further source codes that may be written to perform the stated steps and procedures above, and these are intended to lie within the scope of exemplary embodiments.
Further variation to embodiments of the invention can include reserving a portion of the drive to re-mirror failed reads. For example, a protect portion of the drive (e.g., 20 sectors) can be reserved for additional protection. If the protect portion exists and if a read fails on the primary data and succeeds on the mirrored data (see, e.g.,
Still further, another embodiment of the invention can include allowing a user to improve drive capacity by dividing the drive's total capacity into two segments, mirrored and non-mirrored. Operating system (OS) level partitions can be created to reflect each of these segments. One partition can be internally mirrored to protect its content and the other partition is not. With this configuration, the user can increase the effective capacity of the drive. For example, if ⅔ of the drive is allocated for mirroring and ⅓ is allocated for non-mirroring, both would have the same functional capacity and would only reduce the total capacity of the physical drive by ⅓ instead of ½. Critical and unique data can be placed on the protected partition (e.g., the OS to ensure booting and personal documents) and reproducible data can be placed on the unprotected partition (e.g., reference data and installed applications)
Accordingly, the description of the various exemplary embodiments provided I in the foregoing is illustrative in nature and is not intended to limit the invention, its application, or uses. Thus, variations that do not depart from the gist of the invention are intended to be within the scope of the embodiments of the present invention. Such variations are not to be regarded as a departure from the spirit and scope of the present invention.