Methods and systems for controlling multiple operations of disk drives

Systems and methods for controlling multiple operations of disk drives are described herein. An embodiment includes, receiving firmware to control a disk drive, processing the firmware, configuring the disk drive in a performance mode and a storage mode based on the processing step, storing original data and at least one mirror copy of the original data on an outer region of a disk, if the disk drive is configured in the performance mode in the configuring step, and storing original data throughout the disk including all inner and outer regions, if the disk drive is configured in the storage mode in the configuring step. In this way, a disk drive may be configured for multiple operations.

BACKGROUND

1. Field of the Invention

The present invention relates to disk drive technology.

2. Related Art

Computer systems such as servers and personal computers are used for a wide variety of applications. With the rapid growth of the Internet, several computer systems are being used for the purposes of storing data, for example, video data and other storage-centric applications. Computer systems are also being used for performance-centric applications such as scientific computing and high speed data retrieval over networks.

In most cases, as computer systems age, they get redeployed from performance-centric applications to more storage-centric applications. Computer systems may get re-deployed to storage-centric applications because their hardware may no longer be suited for performance-centric applications. For example, computer systems with faster processors may become available that may replace older processors in existing computer systems.

BRIEF SUMMARY

Embodiments of the present invention relate to controlling multiple operations of disk drives. A method embodiment includes, receiving firmware to control a disk drive, processing the firmware, and configuring the disk drive in a performance mode or a storage mode based on the processing step. In a performance mode, original data plus at least one mirror copy of the data are stored on an outer region of a disk. In a storage mode, no mirror copies need to be used and all original data can be stored throughout the disk including inner and outer regions.

A system embodiment includes, a firmware receiver to receive firmware to control a disk drive, a firmware processor to process the firmware, a disk controller to configure the disk drive based on the firmware, a data writer to store original data and at least one mirror copy of the data on an outer region of a disk, if the disk drive is configured in the performance mode and to store all original data throughout the disk including all inner and outer regions, if the disk drive is configured in the storage mode.

In this way, disk drives may be configured in a storage-centric mode or a performance-centric mode based on received firmware.

DETAILED DESCRIPTION

Embodiments of the invention relate to systems and methods for controlling multiple operations of disk drives. In embodiments of the invention, a disk drive is configured in a performance-centric mode or a storage-centric mode based on firmware. A firmware processor then processes the firmware to control a disk controller that writes data onto a disk.

In this way, a disk drive may be configured for either performance-centric use or storage-centric use based on firmware.

The term “firmware” used herein refers to a set of instructions associated with hardware that may be processed to control one or more operations. As an example, firmware may be a computer program that is embedded in a hardware device, for example a microcontroller. It can also be provided on flash ROM(s) or as a file that can be uploaded onto existing hardware by a user. These examples are illustrative and are not intended to limit the invention.

The term “logical block address” used herein refers to a location of a block of data stored on a disk associated with a disk drive. As an example, a block of data may be represented in bytes. This example is illustrative and is not intended to limit the invention.

This detailed description of the embodiments of the present invention is divided into several sections as shown by the following table of contents.

TABLE OF CONTENTS

2. Disk Controller

3. Performance-Centric Mode of a Disk Drive

4. Storage-Centric Mode of a Disk Drive

5. Configuring a Disk Drive in Performance-Centric and Storage-Centric Modes

This section describes a system for controlling multiple operations of disk drives according to an embodiment of the invention illustrated inFIG. 1.FIG. 1is a diagram of a system100for controlling multiple operations of disk drives.

Disk drive110, for example, may be any form of a hard disk drive. Hard disk drives and other similar storage devices are well known to person of skill in the art. As an example, a hard disk drive (HDD) is a non-volatile storage device which stores digitally encoded data on rapidly rotating disks with magnetic surfaces.

FIG. 3illustrates an exemplary disk300that may be used in disk drive110.FIG. 3also illustrates exemplary regions of disk300associated with different logical byte addresses. Furthermore, as illustrated byFIG. 3, data may be stored on regions304and306of disk300. Exemplary regions304and306are located on an outer rim of disk300. Region308is located on an inner rim of disk300. Distance302represents an approximate distance between region308on the inner rim of disk300and region306on an outer rim of disk300. Region310represents an area of disk300through with a spindle (not shown) may pass through. The use of a spindle in a disk drive is known to those skilled in the art. As an example, a spindle may act as a physical axis of rotation for disk300. Thus, disk300may rotate around a spindle located in region310while data is being accessed or written by a data reader/writer on disk300.

Each region of data on disk300may be associated with a logical block address (LBA). Logical block addressing is a scheme known to those skilled in the art, used for specifying the location of blocks of data stored on computer storage devices, generally secondary storage systems such as hard disks. As an example, not intended to limit the invention, logical blocks in modern computer systems are typically 512 or 1024 bytes each. Furthermore, for example, in logical block addressing, blocks are located by an index, with the first block being LBA=0, the second LBA=1, and so on. These examples are purely illustrative and are not intended to limit the invention.

Although a hard disk drive is used as an example of disk drive110, it is to be appreciated that any other form of media used to store data may be used.

Disk controller120may control the operation of disk drive110. As an example, disk controller120may control the movement of data reader/writer230. As an example, data reader/writer230may be used to physically write data onto a magnetic disk associated with disk drive110. The operation of disk controller120according to an embodiment of the invention is described in detail further in the description.

Processing unit130may be used to process firmware that may be received by system100. As an example, not intended to limit the invention processing unit130may be any for of microcontroller or microprocessor that interprets, compiles and executes instructions. Processing unit130may be embodied in software, firmware, hardware or any combination thereof.

Firmware receiver140may be used to receive performance-centric and storage-centric firmware and other firmware that may modify the operation of disk drive110. As an example, not intended to limit the invention, firmware receiver140may receive firmware from a user. In another example, firmware receiver140may receive firmware from a memory (not shown) associated with disk drive110. Firmware may be “flashed” or written onto the memory from where it may be read by firmware receiver140. These examples are illustrative and are not intended to limit the invention.

In this way, system100may receive or generate and process firmware for operating disk drive110. In an embodiment, the received or generated firmware may configure disk drive110in a performance-centric mode or a storage-centric mode.

2. Disk Controller

Disk controller120may control the operation of disk drive110. As an example, disk controller120may control the movement of a drive head (not shown) associated with disk drive110. As an example, a drive head may be used to physically write data onto a magnetic disk associated with disk drive110.

Microprocessor210may be used to control the operation of spindle controller220, servo controller210, memory218, controller214and port216.

Spindle controller220may be used to control the operation of a spindle (not shown) around which disk300or any other disk associated with disk drive110rotates. For example, when data is to be read from disk drive110, spindle controller may rotate a spindle in a manner such that the appropriate data is available at a location of data reader/writer230. Data reader/writer230may then read the data. Spindle controller may rotate the spindle at a rate that may be expressed in revolutions per minute (rpm).

Servo controller212may control the operation of a servo motor that rotates the spindle. Servo controller212may modify servo motor speed, torque and other characteristics of the servo motor. As an example, servo controller may receive information from microprocessor210to control the servo motor.

Memory218may be any form of volatile or non-volatile memory that may be used by microprocessor210to store data or access one or more instructions to control the operation of spindle controller220, servo controller212, and controller214. Additionally, servo controller212, spindle controller220and controller214may write data to or read data from memory218.

Controller214may control the transfer of data through port216. Port216may be used to interface or connect disk drive110to other devices. As an example, not intended to limit the invention, controller214may be a serial ATA (SATA) controller controlling the transfer of data between disk drive110and any other device though port216.

3. Performance-Centric Mode of a Disk Drive

In a performance-centric mode, disk drive110may retrieve data at a higher rate than its usual rate of data retrieval. Faster retrieval of data from disk drive110may be necessary for applications where a longer latency in retrieval of data may degrade a user experience. As an example, Internet sites such as YouTube may need to provide videos requested by a user in a fast and efficient manner. Delays in providing a video to a user may degrade user experience. Furthermore, faster data retrieval may be needed in several scientific or mission critical operations.

In a performance-centric mode, data may be written on a disk in disk drive110in a manner that allows for faster retrieval of data. In an embodiment, data is stored at a first logical block address and a copy of the data at a second logical block address such that the second logical block address is at a location on the disk which is one hundred and eighty degrees apart from a location of the first logical block address on an region of the disk. In an embodiment, the region of a disk at which the data is stored may be located on an outer rim of the disk.

FIG. 4illustrates and exemplary disk400associated with disk drive110that has data written at logical block addresses in the performance mode. Disk400includes a data stored at region402and a copy of the data stored at region406. In an embodiment, region402and region406are associated with LBAs that are one hundred and eighty degrees apart as illustrated by angular displacement404.

Thus, a copy of data at a given LBA is stored at a region on disk400that at an LBA that is one hundred and eighty degrees apart from the given LBA. As data and a copy of the same data are stored one hundred and eighty degrees apart, data is more likely to be read and retrieved by data reader/writer230while it is traversing disk400to locate the data. This is because data or a copy of the data may always be available at a location that is requires data reader/writer230to traverse less one hundred and eighty degrees of disk400.

In this way, data may be retrieved from disk drive110in a manner that increases performance of disk drive110. The example of angular displacement404being one hundred and eighty degrees is illustrative and not intended to limit the invention. Other angular displacements may be used. For example, angular displacement404may be one hundred and twenty degrees with three total copies of data around the disk.

4. Storage-Centric Mode of a Disk Drive

In a storage-centric mode, data is stored on disk drive110in a manner that optimizes disk drive110for storage-centric operation. As an example, in a storage-centric operation, a large amount of data may need to be stored on disk drive110. Storage-centric use for example may include uses such as archival of large amounts of data that may not necessarily be retrieved frequently.

In an embodiment, in a storage-centric mode data may be written to disk drive at any available LBA. For example, data may be written at a logical block address that may not have any data associated with it.

In this way, data may be stored on disk drive110to optimize disk drive110for storage.

5. Configuring a Disk Drive in Performance-Centric and Storage-Centric Modes

In an embodiment, firmware processor130may switch disk drive110between performance-centric mode and a storage-centric mode based on firmware that may be received.

In an embodiment, once firmware receiver140receives firmware, from a user or any other delivery mechanism, it is processed by firmware processor130and provided to disk controller120.

FIG. 5illustrates method500that may be used to configure disk drive110for performance centric or storage centric mode.

Method500begins with firmware receiver140receiving firmware (step502). As an example, firmware receiver140may receive firmware from a user. Furthermore, firmware receiver may read firmware from a memory where it may be stored by a user.

Firmware receiver140may then provide the firmware to firmware processor130(step504).

Firmware processor140then identifies the purpose of use of the firmware (step506). Firmware processor140then checks if the firmware is performance-centric (step508).

If the firmware is not performance-centric (step508), firmware processor140instructs disk controller120to store data at all available LBAs of a disk associated with disk drive110(step510). As an example, storing data at all available LBAs of a disk may maximize the amount of data that is stored on disk drive110.

If the firmware is performance-centric (step508), firmware processor140instructs disk controller120to store data at a first logical block address and a copy of the data at a second logical block address such that the second logical block address is at a location on the disk which is one hundred and eighty degrees apart from a location of the first logical block address on an region of the disk (step512). As an example, since data and a copy of the same data are stored one hundred and eighty degrees apart, data is more likely to be read and retrieved by data reader/writer230while it is traversing disk400to locate the data. This is because data or a copy of the data may always be available at a location that is requires data reader/writer230to traverse less one hundred and eighty degrees of disk400.

In this way, disk drive110is configured in a performance-centric or a storage-centric mode based on firmware. When in performance-centric use, disk drive110is optimized for performance-centric operation. Furthermore, when a computer system is redeployed from performance-centric use to a storage-centric use, disk drive110is optimized for storage centric use.