Removal of precompensation in a write data signal

Abstract: A method for removing precompensation in a Write Data signal from a flexible disk controller (100). A timer (302) measures the time between consecutive transitions. Numerical values (304) from the timer are delayed in a buffer (306). Numerical times (308) from the buffer are compared to numerical ranges (310) by an array of parallel numerical comparators (312). Numerical times corresponding to precompensation ranges are numerically compensated (314). The compensated values are then used to control the time between transitions in a regenerated Write Data signal (320).

Description: This invention relates to a method of and apparatus for converting a precompensated time interval to an ideal time interval for use, for example, with tape drives and flexible disk drives and more specifically to a magnetic head thereof requiring non-standard precompensation of write data. In general, in digital recording, information is encoded in the spacing of magnetic polarity transitions. During the reading process, the polarity transitions are converted into voltage pulses, so that the information in the read signal is encoded in the spacing of pulse peaks. Therefore, for data integrity, the accuracy of the timing of the peaks in the read signal is critical. There are, however, inherent distortions of the read signal that must be accommodated. Binary information on magnetic flexible disks is stored by magnetizing small areas of the magnetic surface with one of two polarities. For most flexible disk drives used in personal computers, the small magnetized areas are recorded primarily longitudinally (in the plane of the surface). Although the magnetized areas are primarily longitudinal, they also have an unavoidable partial vertical component (perpendicular to the surface). During reading, a magnetic coil in a read head intersects magnetic fields from the small magnetized areas. As the head passes through the fields, a transition from one polarity to the opposite polarity results in a changing field that in turn induces a changing current in the coil of the read head. The changing current typically drives a resistive load to provide a voltage signal. Ideally, for purely longitudinal magnetization, an isolated transition from one polarity to the opposite polarity results in a perfectly symmetrical voltage pulse. Ideally, for purely vertical magnetization, an isolated transition from one polarity to the opposite polarity results in a perfectly symmetrical dipulse (a pulse of one polarity followed by a pulse of the opposite polarity). The combined longitudinal and vertical components result in an asymmetrical voltage pulse. The asymmetry is sometimes referred to as a peak shift. As bit densities increase, the transitions are no longer isolated. In particular, if two adjacent write transitions are very close together, the combined effects of peak shift and adjacent pulses make the time between read pulses on read-back longer than the time between the transitions during writing. Given a particular digital pattern in the write waveform, it is possible to predict some of the resulting distortion in the read waveform. It is then possible to distort the writing signal to "precompensate" for distortion in the read process. For example, if two adjacent write transitions are very close together, then the first transition may be written "late" and the second transition written "early." As a result, the time between transitions during writing is shorter than the "ideal" time and the time between pulses during read back is equal to the "ideal" time. In many flexible disk controllers, this is done only on inner tracks where bit densities are highest. Within a personal computer, the flexible disk controller may be used to control not only multiple flexible disk drives but also may be used to control a data recording tape drive. Precompensation by advancing and delaying polarity transitions is appropriate for flexible disk drives but may not be appropriate for tape drives sharing the same controller. As hard disk capacity increases, there is a need for tape back-up drives having substantially higher bit densities than flexible disks. For these higher bit densities, precompensation designed for flexible disks has a substantial negative effect on data integrity. In many computer systems, however, precompensation is permanently enabled in hardware and cannot be turned off by software drivers. If a high density tape drive is used with a flexible disk controller with automatic precompensation that cannot be turned off, the tape drive needs to be able to detect the precompensation and remove it. The present invention seeks to provide an improved conversion method and apparatus. According to an aspect of the present invention, there is provided a method of converting a precompensated signal as specified in claim 1. According to another aspect of the present invention, there is provided conversion apparatus as specified in claim 2. The preferred embodiment detects the presence of precompensation in a Write Data signal from a flexible disk controller and removes the precompensation. First, the time between Write Data transitions is measured. Numerical time measurements falling within any of thirteen different ranges are modified by fixed increments or decrements. The modified numerical values are then used to time transitions during generation of a new Write Data signal that has no precompensation. An embodiment of the present invention is described below, by way of example only, with reference to the accompanying drawings, in which: Figure 1 is a block diagram schematic of a computer mass memory system. Figure 2A is a timing diagram of a clock signal for a flexible disk controller and example binary data in conjunction with the clock signal Figure 2B is a timing diagram of an ideal Write Data signal from the flexible disk controller in conjunction with the clock and data of Figure 2A. Figure 2C is a timing diagram of a precompensated Write Data signal in conjunction with the Write Data signal of Figure 2B. Figure 3 is a block diagram schematic of a precompensation removal system. Figure 1 is a block diagram illustrating a flexible disk controller 100 connected to a flexible disk drive 104 and a tape drive 106. The Write Data signal 102 from the flexible disk controller has precompensation as described below. The tape drive 106 has precomp removal 108 that removes the precompensation. The resulting modified Write Data signal 110 goes to tape write circuitry 112 that controls a magnetic write head 114. Binary data in magnetic recording is encoded in the spacing of magnetic polarity reversals. The particular encoding used by most "double density" personal computer flexible disks is called the Modified Frequency Modulation (MFM) code or Miller code. Figure 2A is a timing diagram illustrating a clock signal 200 and a series of bits 202. Figure 2B is a timing diagram illustrating a MFM encoded waveform 204 corresponding to the data bits 202. Each half-period of the clock signal 200 is a cell. For FM encoding (not illustrated) there is a transition at the edge of each cell. There is a transition only at the edge of the cell if the bit is a "zero," and there is an additional transition in the center of the cell if the bit is a "one." Modified FM encoding 204 removes the transitions at the cell edges if the bit is a "one". In figure 2B, note that the time between transitions in the resulting MFM waveform can be one of three different time periods. If half the clock period is designated as a unit of time T, then the time between transitions can be T (206), 1.5T (208) or 2T (210). In many personal computer flexible disk controllers, the clock signal 200 is 250 KHz, T is 2 µS, 1.5T is 3 µS and 2T is 4 µS. For precompensation, the flexible disk controller (figure 1, 100) can advance or delay a polarity transition by .125 µS. If a particular transition is separated from one adjacent transition by time T, and is separated by another transition by a time greater than T, then the particular transition is either advanced or delayed as appropriate to move it closer to the transition, separated at time T. This is illustrated in figure 2C. In figure 2C, transition 212 is separated from transition 214 by time T and is separated from an earlier transition (not illustrated) by a time greater than T. Therefore, transition 212 is delayed to move it closer to transition 214. Transition 214 is separated from transition 212 by time T and is separated from transition 216 by time greater than T. Transition 214 is advanced to move it closer to transition 212. Similarly, transitions 216 and 218 are moved closer together and transitions 220 and 222 are moved closer together. Transition 224 is not separated from any other transition by time T so transition 224 is not moved. Transition 226 is moved toward transition 228. Transition 228 is separated from transition 226 by time T and from transition 230 by time T so transition 228 is not moved. Figure 2C illustrates all the possible net time changes between consecutive transitions resulting from advances and delays of individual transitions. Designating Δ = 0.125 µS, a transition time of T may be changed to become T-Δ (232) or T-2Δ (234) after precompensation. A transition time of 1.5T may be changed to become 1.5T+Δ (236) or 1.5T+2Δ (238). Finally, a transition time of 2T may be changed to become 2T+Δ (240) or 2T+2Δ (242). Transition times may also remain unchanged (not illustrated in figure 2C). Figure 3 illustrates a block diagram schematic of a system for removing precompensation (figure 1, 108). The system illustrated in figure 3 receives a binary input waveform 300 as illustrated by figure 2C and generates a binary output waveform 320 as illustrated by figure 2B. The functional blocks illustrated in figure 3 may be implemented in microprocessor firmware or in hardware as appropriate. A timer 302 generates a numerical value 304 representing the time between consecutive transitions of the binary input waveform 300. The numerical value 304 goes to a queue 306 discussed in more detail below. Delayed outputs 308 from the queue 306 go to a parallel array of numerical range comparators 312. Each range comparator 312 compares the numerical value 308 from the queue 306 to a numerical range R (310). The total aggregation of comparator ranges 310 covers the total possible numerical range of the output 304 of the timer 302 so that each output 304 of the timer 302 must fall within the range 310 of one of the comparators 312. If the delayed numerical value 308 from the queue 306 falls within the range R (310) then a corresponding arithmetic compensation 314 is computed. The arithmetic compensation 314 may be an addition of a constant, a subtraction of a constant or no change. Each numerical value 316 from the arithmetic compensation blocks 314 controls the time between two consecutive transitions from a binary output waveform generator 318. Since a relatively long transition time may be followed by a relatively short transition time, the numerical outputs 304 from the timer 302 must be delayed and queued before the output generator 318 generates a new output waveform 320. For example, consider the two consecutive transition times 236 and 240 in figure 2C. At the trailing edge of time 236, a numerical value corresponding to 1.5T is generated and the output generator waits 1.5T seconds to generate the next transition. The output generator must have a new numerical value in place before 1.5T seconds have transpired. Without a queue, however, a new numerical time is not in place until the trailing edge of time 240 (2T+Δ seconds later). Without a queue, this new numerical time is too late. The queue 306 buffers and delays multiple transition times for the output generator 318. Note that the queue 318 may be placed between the arithmetic compensation blocks 314 and the output generator 318 instead of between the timer 302 and the range comparators 312 as illustrated. If it were possible for the precompensation to add times to all transition times, the system output would always generate a shorter transition time than the incoming transition time, requiring an infinite queue to avoid emptying the queue. Alternatively, if all output transition times must be longer than incoming times, an infinite queue would be required to avoid overflowing the queue. Fortunately, as illustrated in figures 2A and 2C, on average, the precompensated waveform must remain synchronized to the data clock (figure 2A). A queue of four numbers is adequate to prevent emptying or overflow. In a specific embodiment, the queue 306 is a first-input-first-output (FIFO) buffer, capable of storing four 8-bit numbers. Appendix 1 is a table illustrating specific values for the comparator ranges (figure 3, 310) and arithmetic compensation (figure 3, 314) for a specific embodiment of the precompensation removal system (figure 3). The numerical values in Appendix 1 are for a system in which half the clock period (figure 2B, 206) is 2.0 µS and the timer (figure 3, 302) has a 24 MH z clock (not illustrated). The numerical output (figure 3, 304) of the timer (figure 3, 302) is an 8-bit value with 7 bits used for times (range=0-127) and an 8th overflow bit indicating that no Write Data is present. If the timer (figure 3, 302) is synchronized to the clock in the flexible disk controller (figure 1, 100), a transition time of 2.0 µS results in exactly 48 counts of a 24 MH z clock and a delay or advance of 0.125 µS results in exactly 3 counts of a 24 MH z clock. If the clocks are not synchronized, the timer count may be off by one. This is illustrated in Appendix 1. For example, a time period of T (2.0 µS) corresponds to a timer range of 47-49 counts. As an additional example, a time period of T-2Δ (1.75 µS) corresponds to a timer range of 41-42 counts. As illustrated in Appendix 1, an input corresponding to figure 2C is converted into an output corresponding to figure 2B. That is, precompensation is removed and the ideal waveform without precompensation is regenerated. The disclosures in United States patent application no. 08/152,113, from which this application claims priority, and in the abstract accompanying this application are incorporated herein by reference. INPUT RANGE (310) COMPENSATION (314) OUTPUT (316) 0-40 No change 0-40 41-43 (T-2Δ) Add 6 47-49 (T) 44-46 (T-Δ) Add 3 47-49 (T) 47-49 (T) No change 47-49 (T) 50-70 No change 50-70 71-73 (1.5T) No change 71-73 (1.5T) 74-76 (1.5T+Δ) Subtract 3 71-73 (1.5T) 77-79 (1.5T+2Δ) Subtract 6 71-73 (1.5T) 80-94 No change 80-94 95-97 (2T) No change 95-97 (2T) 98-100 (2T+Δ) Subtract 3 95-97 (2T) 101-127 (2T+2Δ) Subtract 6 95-97 (2T) 104-127 No change 104-127 APPENDIX 1

Claims: A method of converting an ideal time interval having been modified to a precompensated time interval back to an ideal time interval in a data storage system which can generate a Write Data signal comprising consecutive binary transition, with an ideal time interval between two consecutive binary transitions; the method comprising the steps of: a. timing (302) the precompensated time interval to generate a numerical time (304); b. comparing (312) the numerical time to a plurality of numerical time ranges (310); c. selecting from the plurality of numerical time ranges the numerical time range which includes the numerical time; d. performing on said numerical time a compensation calculation (314) corresponding to the selected numerical time range to generate (318) a compensated numerical time having removed said precopmensation; e. waiting from a last generated binary waveform transition an amount of time corresponding to the compensated numerical time; and f. generating a binary waveform transition. Conversion apparatus for converting an ideal time interval having been modified to a precompensated time interval back to an ideal time interval in a data storage system which can generate a Write Data signal comprising consecutive binary transmissions, with an ideal time interval between two consecutive binary transitions; the apparatus comprising: a. timing means (302) for timing the precompensated time interval to generate a numerical time; b. comparator means (312) for comparing the numerical time to a plurality of numerical time ranges (310); c. selection means (314) for selecting from the plurality of numerical time ranges the numerical time range which includes the numerical time; d. calculation means (314) operable to perform on said numerical time a compensation calculation corresponding to the selected numerical time range to generate a compensated numerical time having removed said precompensation, and generating means (318) being adapted to wait from a last generated binary waveform transition an amount of time corresponding to the compensated numerical time and then generating a binary waveform transition.

Inventors: CURRAN DANIEL J, CURRAN, DANIEL J.
Applicants: HEWLETT PACKARD CO, HEWLETT-PACKARD COMPANY
Application year: 1994
Main classification: G11B20
IPC codes: G11B20, G11B5