Disk drive unit 100 further includes one or more read/write heads 104 that are coupled to arm 106 that is moved by actuator 108 over the surface of the disk 102 either by translation, rotation or both. A disk controller 130 is included for controlling the read and write operations to and from the drive, for controlling the speed of the servo motor and the motion of actuator 108, and for providing an interface to and from the host device.
The controller circuitry 117 further includes a host interface module 150 that receives read and write commands from the host device 50 and transmits data read from the disk 102 along with other control information in accordance with a host interface protocol. In one possible embodiment, the host interface protocol can include any one of the following: Advanced Technology Attachment (ATA)/Integrated Development Environment (IDE), Serial ATA (SATA), Fibre channel ATA (FATA), Small Computer System Interface (SCSI), Enhanced IDE (EIDE), MultiMedia Card (MMC), and Compact Flash (CF) or any number of other host interface protocols, either open or proprietary that can be used for this purpose.
The controller circuitry 117 further includes a processing module 132 and memory module 134. The processing module 132 can be implemented using one or more microprocessors, micro-controllers, digital signal processors, microcomputers, central processing units, field programmable gate arrays, programmable logic devices, state machines, logic circuits, analog circuits, digital circuits, and/or any devices that manipulate signals (analog and/or digital) based on operational instructions that are stored in a memory module 134. When the processing module 132 is implemented with two or more devices, each device can perform the same steps, processes or functions in order to provide fault tolerance or redundancy. Alternatively, the function, steps and processes performed by the processing module 132 can be split between different devices to provide greater computational speed and/or efficiency.
The memory module 134 may be a single memory device or a plurality of memory devices. Such a memory device may be a read-only memory (ROM), random access memory (RAM), volatile memory, non-volatile memory, static random access memory (SRAM), dynamic random access memory (DRAM), flash memory, cache memory, and/or any device that stores digital information. It is noted that when the processing module 132 implements one or more of its functions via a state machine, analog circuitry, digital circuitry, and/or logic circuitry, the memory module 134 storing the corresponding operational instructions may be embedded within, or external to, the circuitry comprising the state machine, analog circuitry, digital circuitry, and/or logic circuitry. It is further noted that, the memory module 134 stores, and the processing module 132 executes, operational instructions to control the operation of drive devices 109, to arbitrate the execution of read and write commands and the flow of data between the host interface module 150 and the channel circuit 115, to gather trace data and to perform other functions of the drive.
Likewise, the channel circuitry 115 further includes a processing module 122 and a memory module 124. The processing module 122 can be implemented using one or more microprocessors, micro-controllers, digital signal processors, microcomputers, central processing units, field programmable gate arrays, programmable logic devices, state machines, logic circuits, analog circuits, digital circuits, and/or any devices that manipulate signals (analog and/or digital) based on operational instructions that are stored in memory module 124. When processing module 122 is implemented with two or more devices, each device can perform the same steps, processes or functions in order to provide fault tolerance or redundancy. Alternatively, the function, steps and processes performed by processing module 122 can be split between different devices to provide greater computational speed and/or efficiency.
The memory module 124 may be a single memory device or a plurality of memory devices. Such a memory device may be a ROM, RAM, volatile memory, non-volatile memory, static random access memory (SRAM), dynamic random access memory (DRAM), flash memory, cache memory, and/or any device that stores digital information. Note that when the processing module 122 implements one or more of its functions via a state machine, analog circuitry, digital circuitry, and/or logic circuitry, the memory module 124 storing the corresponding operational instructions may be embedded within, or external to, the circuitry comprising the state machine, analog circuitry, digital circuitry, and/or logic circuitry. Further note that, the memory module 124 stores, and the processing module 122 executes operational instructions to control the execution of read and write commands and the flow of data between the channel circuitry 115 and controller circuitry 117, to gather trace data from the channel that is provided to trace module 136 and to perform other functions of the drive.
The host interface module 150, as a whole, converts incoming data and commands from the host device 50 in its corresponding host interface protocol, into data and commands in a format used by disk controller 130. Conversely, data from read from disk drive unit 100 is converted by host interface module 150 from the format used by disk drive unit 100 into the particular host interface protocol used by the host device 50. In one embodiment, the format used by the disk controller 130 can be a standard format such as Direct Memory Access (DMA), including the corresponding control capabilities of DMA, that is further implemented to support transfers of read and write data between the channel circuit 115 and the controller circuit 117 via channel interface 128.
In particular, channel circuit 115 includes a channel register 92 and controller circuit 117 includes a controller register 94, that, in conjunction with channel interface 128, are operable to support DMA protocol data transfers and DMA control between the channel circuit 115 and the controller circuit 117. While the channel register 92 is shown as a memory location of the memory module 124, the channel register 92 can be implemented as a register or memory that is either stand-alone, or implemented as part of another device, such as a processing module 122. Similarly, while the controller register 94 is shown as a memory location of memory module 134, the controller register 94 can be implemented as a register or memory that is either stand-alone, or implemented as part of another device, such as a processing module 132.
The disk controller 130 includes a plurality of modules, in particular, device controllers 105, the trace module 136, the processing module 122, the processing module 132, memory modules 124 and 134, the read/write channel 140, the disk formatter 125, the servo formatter 120, and the host interface module 150 that are interconnected via channel interface 128 and buses 126, 136 and 137. Each of these modules can be implemented in hardware, firmware, software or a combination thereof. While a particular bus architecture is shown in
In one possible embodiment, channel circuitry 115 and controller circuitry 117 are each implemented with an integrated circuit (IC) such as a system on a chip integrated circuit (SoC IC). If desired, such a SoC IC includes a digital portion that can include additional modules such as protocol converters, linear block code encoding and decoding modules, etc., and an analog portion that includes additional modules, such as a power supply, disk drive motor amplifier, disk speed monitor, read amplifiers, etc. In a further embodiment, the various functions and features of channel circuitry 115 and/or controller circuitry 117 are implemented using two or more IC devices that communicate and combine to perform the functionality of channel circuitry 115 and/or controller circuitry 117 in conjunction with channel interface 128. Further details regarding various embodiment of a channel interface (sometimes referred to a physical layer interface) including additional novel features and functions are described in conjunction with the figures that follow.
Referring to the apparatus 399 of the
The channel interface 328 includes a bidirectional transmission path 316 between the controller circuitry 117 and the channel circuitry 115 that is operable to transfer disk read data and disk write data, to provide the controller circuit access to read from, and write to, a channel register (e.g., such as the channel register 92 of
However, other data transfers, for interface management or for other control and signaling purposes are likewise possible with the broader scope of the present invention. Providing the channel circuitry 315 access to read from, and write to, the controller register, and providing the controller circuit access to read from, and write to, the channel register, allows the channel interface 328 to support certain data transfers, such as DMA transfers of blocks of data corresponding to, for instance, one or more sectors of data, or fractions thereof, from the drive. In operation, these data transfers are formatted with a command code, such as: a code for a channel register write, channel register read, controller register write, or controller register read, etc; command specific data, such as the register address, write data, data size, etc; and other control information, headers footers, error detection and/or correction codes, etc. In an embodiment of the present invention, the bidirectional transmission path 316 includes separate forward and reverse transmission paths that allow bidirectional transactions that optionally include requests for transfer, transfers and/or acknowledgement or transfers, to be split between the forward and reverse paths based on the direction of command and data flow.
In addition, the channel interface 328 includes a unidirectional transmission path 318 that is operable to transfer data from the channel circuitry 315 to the controller circuitry 317 such as servo data, interrupt requests for a processing module (e.g. such as the processing module 132 of the
Referring to the apparatus 400 of the
The channel circuitry 410 is operable to perform a first plurality of operations that includes operations corresponding to read and write access to a disk within the HDD via a channel interface 401, and the controller circuitry 460 is operable to perform a second plurality of operations that includes operations corresponding to host interfacing via a host interface 402.
As opposed to many prior art approaches that seek to use a 2 circuitry implementation of a channel circuitry and a controller circuitry, by implementing the disk management capability on the channel circuitry, as described with reference to the
For example, many prior art approaches sought to employ the disk management operations on a controller circuitry, and when a 2 circuitry approach was desired, then the physical interface employed therein had to accommodate all of the disk related access commands and functions across the interface. Much of problem associated with this prior art approach was simply due to legacy architectures and earlier designs to which later designs needed to comply. The novel and improved approach of making the physical layer interface 440 between the controller circuitry 460 and the channel circuitry 410 such that the disk manager module 412 now resides on the channel circuitry 410 provides for numerous benefits when compared to the prior art approaches. Generally speaking, in a 2 circuitry implementation, the physical layer interface 440 can be viewed as being on a different side of the physical layer interface 440 than is existent within prior art approaches.
Referring to the apparatus 500 of the
The controller circuitry 560 includes a host manager module 570, and the channel circuitry 510 includes a disk manager module 512. Each of the host manager module 570 and the disk manager module 512 has an embedded protocol processor. Specifically, a disk protocol processor 514 is implemented within the disk manager module 512 and a host protocol processor 572 is implemented within the host manager module 570. To facilitate inter-processor communication, a shared data cache 564 is included in the apparatus 500. The shared data cache 564 is shown as being implemented within the controller circuitry 560, and it is operable to communicate with the disk protocol processor 514 implemented within the channel circuitry 510 via the physical later interface 540.
Each of the 3 processors (a centralized, general purpose processor 562, the disk protocol processor 514, and the host protocol processor 572) can read and write shared data structures (stored in the buffer) to help manage the real-time functions performed by the two protocol processors (disk protocol processor 514 and the host protocol processor 572). The shared data cache 564 provides for hardware-enforced coherency of these shared accesses.
The host interface 502 is controlled with the host manager module 570 that is operable to move data between the host interface 502 and a buffer 590 through a buffer manager module 567. The disk manager module 512 controls many of the various components that eventually couple to a channel interface 501 and moves data between the channel and the buffer 590 through the buffer manager module 567 (after appropriately negotiating the physical layer interface 540). The buffer manager module 567 arbitrates access to the shared buffer 590, which can be implemented in the DRAM.
The host manager module 570 also includes a host personality module 576 that is operable to perform and enable host interfacing with various types of hosts via the host interface 502. The host protocol processor 572, implemented within the host manager module 570, is operable to support soft key mapping which allows the host personality module 576 to emulate more than one type of host compatible interface. For example, the soft key mapping employed therein allows the host personality module 576 to interface properly with a first type of host device and to interface properly with a second type of host device, depending on which soft key is employed. This way, a singular piece of hardware can be employed across a wide range of platforms.
A host first-in/first-out (FIFO) buffer 574 is implemented within the host manager module 570 as well, and it interacts with the host personality module 576. The host FIFO 574 interfaces with the buffer manager module 567 in the manner as described above, in that, the host manager module 570 is operable to move data between the host interface 502 and the buffer 590 through the buffer manager module 567 via the host personality module 576 and the host FIFO 574.
The disk manager module 512 can also be implemented to include a servo formatter module 531 that is operable to format commands and functions into the appropriate format for execution within a servo control loop. The disk manager module 512 also includes a disk datapath module 536 that is operable to interface with the buffer manager module 567. The disk datapath module 536 employs a first error correction code (ECC) 535, shown as being implemented within ended module 537, when encoding or decoding information provided to and received from the buffer manager module 567.
It is noted that the type of channel that couples to the disk of the HDD is sometimes referred to as an iterative channel when an iterative ECC is employed to encode/decode the information written to and read from the disk. In some embodiments, the type of interface employed for the channel (i.e., a disk interface) is a first interface type, and the type of interface employed for the physical layer interface 540 that couples the controller circuitry 560 and the channel circuitry 510 is a second interface type. In other words, these interface types need not be the same. It is sometimes desirable to select the particular code employed for the ECC based on the interface type and/or channel type of the disk interface employed for the channel. An appropriately selected ECC, based on the characteristics of the channel and/or the disk interface, may provide for better error correcting capability.
The disk manager module 512 also includes a disk formatter module 534 that is operable to perform the appropriate formatting for information to be written to the disk via a write path and de-formatting of information that is read from the disk via a read path.
The path for writing into to the disk from the disk formatter module 535 is shown as first passing through an encoder 516 that employs a second ECC, shown as endec2. In some instances, this second ECC can be implemented using an LDPC (Low Density Parity Check) code. The encoded information is then provided to a parity encoder 517, whose output couples to a write precompensation module 518 that eventually couples to an analog front end (AFE) 531, that is operable to perform any of a variety of analog processing functions including digital to analog conversion, scaling (e.g., gain or attenuation), digital filtering (before converting to continuous time domain), continuous time filtering (after converting to continuous time domain), or other signal processing functions required to comport the signal into a format compatible with the channel interface 501. The AFE 531 also includes a preamp 532 that is often implemented as part of the read head assembly.
The path for reading from the disk is the converse of the write path to the disk. For example, when coming from the channel interface 501, the signal is provided initially to the AFE 531, in which the converse of many of the signal processing operations within the write process is performed. For example, an analog to digital conversion is performed, scaling, and/or filtering, among other signal processing operations.
After passing from the AFE 531 during a read process, the signal passes through a finite impulse response filter (FIR) 528, a Viterbi decoder 527 that is operable to employ the soft output Viterbi algorithm (SOVA) to determine a soft output that is indicative of the reliability of the information within the digital signal. For example, the Viterbi decoder 527 is operable to determine whether the digital signal provided to it is reliable or not. In addition, the Viterbi decoder 527 can be viewed as performing the parity decoding processing in the read path in response to the parity encoding processing (that is performed by the parity encoder 517) in the write path. The output from this Viterbi decoder 527 as provided to a decoder 526 that employs the same code as the encoder 516, namely, the second ECC, shown as endec2. The output from this decoder 526 is provided to the disk formatter module 534.
Referring to the apparatus 601 of the
The serializer 612 of the channel circuitry 610 is operable to convert parallel type data into a serial format for transmission across one of the wires of the 2 wire SERDES physical layer interface 640 to the de-serializer 664 of the controller circuitry 660, where the data can then be re-converted back to parallel type formatted data.
Analogously, the serializer 662 of the controller circuitry 660 is operable to convert parallel type data into a serial format for transmission across one of the wires of the 2 wire SERDES interface 640 to the de-serializer 614 of the channel circuitry 610, where the data can then be re-converted back to parallel type formatted data.
Referring to the apparatus 602 of the
However, because of the implementation of the 1 wire SERDES physical layer interface 650 over which data is transmitted in both directions, each of the channel circuitry 620 and the controller circuitry 670 includes a corresponding arbitrator, namely 626 and 676, respectively. Each of the arbitrators 626 and 676 is operable to arbitrate the transmission and receipt functionality of the channel circuitry 620 and the controller circuitry 670, respectively, when using the 1 wire SERDES physical layer interface 650. For example, when the serializer 622 of the channel circuitry 620 desires to transmit serial formatted information across the 1 wire SERDES physical layer interface 650 to the de-serializer 674 of the controller circuitry 670, then the arbitrators 626 and 676 need to ensure that such a transmission is timely and can be performed without losing any other data or information.
Analogously, when the serializer 672 of the controller circuitry 670 desires to transmit serial formatted information across the 1 wire SERDES physical layer interface 650 to the de-serializer 624 of the channel circuitry 620, then the arbitrators also 626 and 676 need to ensure that such a transmission is timely and can be performed without losing any other data or information.
Referring to the apparatus 701 of the
Referring to the apparatus 702 of the
The channel circuitry 720 includes a plurality of pins 721, and the controller circuitry 770 also includes a plurality of pins 771 such that the number of paths within the parallel physical layer interface 750 corresponds to the number of pins 721 and the number of pins 771.
Clearly, the number of pins within any of the previous embodiments can be selected as desired for use is any of a variety of various applications. It is also noted that some combination of parallel/serial type physical layer interface may be implemented between a channel circuitry and a controller circuitry, such as would be implemented within a HDD. For example, a 16 bit wide signal could be converted down to 4 separate serialized signals containing the information of 4 of the bits of the 16 bit wide signal, and the 4 separate serialized signals could be transmitted across the physical layer interface as well.
Referring to the apparatus 899 of the
In one possible embodiment, the bidirectional transmission path 816, and unidirectional transmission path 818 form a plurality of parallel arranged paths that are part of a serializer/de-serializer (SERDES) interface. In particular, bidirectional transmission path 816 contains two differential line pairs and the unidirectional transmission path 818 includes one differential line pair. Parallel data is serialized for high-speed transfer over a physical layer interface 804. The transmitter 834, primary transmitter 822, and secondary transmitter 820 encode the incoming data using signaling such as low voltage differential signaling (LVDS) that is transferred across the parallel paths by differential line drivers 836, 823 and 821 operating in conjunction with differential line amplifiers 826, 833, and 831. The receiver 824, primary receiver 832 and secondary receiver 830 operate to convert the LVDS back into its corresponding data.
In addition to the bidirectional transmission path 816 and unidirectional transmission path 818, the physical layer interface 804 includes unidirectional transmission path 814 that couples a clock signal 838 from a controller circuitry and a channel circuitry (e.g., such as the controller circuitry 117 and the channel circuitry 115 of the
In this configuration, the physical layer interface 804 includes eight signal lines that make up four parallel signal paths. In this fashion, the physical interface can include eight circuit board traces, wires or other connections that couple eight pins of a channel circuit to eight pins of a controller circuitry. However, other configurations are likewise possible. For instance, fewer than eight signal lines can be used to implement the physical layer interface 804 by employing one or more common ground connections. In other alternatives, the physical interface may omit the transfer of clock signal 838 and the unidirectional transmission path 814, or provide a clock signal in the opposite direction, from a channel circuitry to a controller circuitry.
In a possible embodiment, wireless communication device 953 is capable of communicating via a wireless telephone network such as a cellular, personal communications service (PCS), general packet radio service (GPRS), global system for mobile communications (GSM), and integrated digital enhanced network (iDEN) or other wireless communications network capable of sending and receiving telephone calls. Further, wireless communication device 953 is capable of communicating via the Internet to access email, download content, access websites, and provide steaming audio and/or video programming. In this fashion, wireless communication device 953 can place and receive telephone calls, text messages such as emails, short message service (SMS) messages, pages and other data messages that can include attachments such as documents, audio files, video files, images and other graphics.
Then, because of the location in which the disk management operations are supported and performed within the first circuitry, the method 1000 is operable to perform supporting direct memory access (DMA) protocol data transfers and control between the first circuitry and the second circuitry, as shown in a block 1030. Because the disk management operations are supported within the first circuitry, as opposed to the second circuitry, then the disk management operations need not necessarily comply with an interface between the first circuitry and the second circuitry. This allows for better control of the disk management operations as well as a much broader range and type of interface that can be employed for the interface between the first circuitry and the second circuitry.
It is also noted that the methods described within the preceding figures may also be performed within any appropriate system and/or apparatus designs without departing from the scope and spirit of the invention.
In view of the above detailed description of the invention and associated drawings, other modifications and variations will now become apparent. It should also be apparent that such other modifications and variations may be effected without departing from the spirit and scope of the invention.
The following U.S. Utility Patent Application is hereby incorporated herein by reference in its entirety and is made part of the present U.S. Utility Patent Application for all purposes: 1. U.S. Utility patent application Ser. No. ______, entitled “Disk controller, channel interface and methods for use therewith,” (Attorney Docket No. BP5369), filed concurrently on Thursday, Jun. 1, 2006 (Jun. 1, 2006), pending.