Hard disk drive data object

A system for transferring data from a disk drive to an external source. The disk drive includes a circuit with embedded firmware that associates internal and output definitions with the data. The definitions and data are provided to the external source which parses the definitions and the data. The parsing engine can output the data in pre-defined format. The embedded firmware associates the same definitions for all data. Thus an external programmer does not have to know, or monitor, the file format and output format of the disk drive to write an external software application.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to storing and retrieving data to and from a hard disk drive.

2. Background Information

Various electronic systems store data in non-volatile mass storage devices such as a hard disk drive. For example, personal computers contain one or more disk drives that store data and other information. Data is typically stored in files of the disk drive by the host computer in conjunction with a direct memory access (“DMA”) controller. When retrieving data, the DMA controller typically specifies a system memory location. The disk drive contains internal firmware that converts the system memory location to areas of the internal disk that contain the requested information. The data is typically stored in the disk drive within a specified file format.

When writing an external software application that retrieves data from the drive the developer must know the file data format and the output format of the drive. Such an approach can be burdensome, requiring the programmer to constantly monitor revisions of the disk drive language. It would be desirable to provide a disk drive that provides an embedded format that remains the same.

BRIEF SUMMARY OF THE INVENTION

A hard disk drive that is coupled to an external source. The hard drive includes a circuit with embedded firmware that associates definitions with data that is stored on a disk of the drive. The definitions and data are provided to the external source.

DETAILED DESCRIPTION

Described is a system for transferring data from a disk drive to an external source. The disk drive includes a circuit with embedded firmware that associates internal and output definitions with the data. The definitions and data are provided to the external source which parses the definitions and the data. The parsing engine can output the data in pre-defined format. The embedded firmware associates the same definitions for all data. Thus an external programmer does not have to know, or monitor, the file format and output format of the disk drive to write an external software application.

Referring to the drawings more particularly by reference numbers,FIG. 1shows an embodiment of a data retrieval system10. The system includes a hard disk drive12and an external source14. By way of example, the external source14can be a host computer and associated DMA controller of a personal computer system. In general, the external source14can be any device that retrieves data from the disk drive.

FIG. 2shows a process for retrieving data from the disk drive to the external source. In block20the external source request data from the disk drive. The disk drive reads the data from the disk(s) of the drive in block22. In block24embedded firmware of the disk drive associates and adds definitions to the data.

Alternatively, the definitions can be associated with and added to the data before being stored onto the disk of the drive. In the second embodiment, both the definitions and data are stored and subsequently read from the disk.

In block26the definitions and data are transferred to the external source. The external source14has an application that parses the definitions and data and provides an output of data in a format defined by the definitions in block28.

The definitions may include internal definitions “iDefinitions” and output definitions “oDefinition”. The internal definitions iDefinitions may define the format in which the data is stored within files of the disk drive. The following is an example, of an iDefinition file format.

The output definitions oDefinition provide the syntax and descriptors associated with the presentation of the data. For example, the oDefinition provides the presentation of the data as it would appear on a computer monitor or a printout. The following is an example of an oDefinition data descriptor.

As shown inFIG. 3the definitions and associated data can be provided to the external source in fields. The data stream provided to the external source may include an iDefinition field iDEF30that contains the internal definitions, an oDefinition field oDEF32that contains the output definitions and a data field DATA34that includes the data. Referring toFIG. 1, the external source14may have a parser36that can be programmed to identify the fields and extract the definitions and data.

FIG. 4shows an embodiment of a disk drive12may include one or more magnetic disks50that are rotated by a spindle motor52. The spindle motor52may be mounted to a base plate54. The disk drive12may further have a cover56that encloses the disks20.

The disk drive12may include a plurality of heads58located adjacent to the disks50. The heads58may have separate write and read elements (not shown). The write element magnetizes the disk12to write data. The read element senses the magnetic fields of the disks50to read data. By way of example, the read element may be constructed from a magneto-resistive material that has a resistance which varies linearly with changes in magnetic flux.

Each head58may be gimbal mounted to a suspension arm60as part of a head gimbal assembly (HGA). The suspension arms60are attached to an actuator arm62that is pivotally mounted to the base plate54by a bearing assembly64. A voice coil66is attached to the actuator arm68. The voice coil66is coupled to a magnet assembly70to create a voice coil motor (VCM)72. Providing a current to the voice coil66will create a torque that swings the actuator arm68and moves the heads58across the disks50.

The hard disk drive12may include a printed circuit board assembly74that includes one or more integrated circuits76coupled to a printed circuit board78. The printed circuit board78is coupled to the voice coil66, heads58and spindle motor52by wires (not shown).

FIG. 5shows an electrical circuit100for reading and writing data onto the disks50. The circuit50may include a pre-amplifier circuit102that is coupled to the heads58. The pre-amplifier circuit102has a read data channel104and a write data channel106that are connected to a read/write channel circuit108. The pre-amplifier102also has a read/write enable gate110connected to a controller112. Data can be written onto the disks50, or read from the disks50by enabling the read/write enable gate110.

The read/write channel circuit108is connected to the controller110through read and write channels114and116, respectively, and read and write gates118and120, respectively. The read gate118is enabled when data is to be read from the disks50. The write gate120is enabled when writing data to the disks50. The controller110may be a digital signal processor that operates in accordance with a software routine, including a routine(s) to write and read data from the disks50. The read/write channel circuit108and controller110may also be connected to a motor control circuit122which controls the voice coil motor72and spindle motor52of the disk drive12. The controller110may be connected to a non-volatile memory device124. By way of example, the device124may be a read only memory (“ROM”) that contains instructions that are read by the controller110.

The circuit100may also include a circuit126that contains embedded firmware that associates and attaches the definitions to the data. The circuit126may be an application specific integrated circuit (“ASIC”) designed to attach predefined definitions to the data. The circuit126may attach the definitions to the data before storage of data onto the disks50or after the data is read from the disks50. The circuit126may be coupled to an input/output buffer128that provides an interface between the disk drive12and the external source14. The buffer128can temporarily store the definitions and data before transfer to the external source14.