U.S. patent number RE31,069 [Application Number 06/210,631] was granted by the patent office on 1982-10-26 for apparatus and method for record reorientation following error detection in a data storage subsystem.
This patent grant is currently assigned to International Business Machines Corporation. Invention is credited to Henry K. Chang, Wolfgang H. Hausen.
| United States Patent |
RE31,069 |
| Chang , et al. |
October 26, 1982 |
Apparatus and method for record reorientation following error
detection in a data storage subsystem
Abstract
In an apparatus and method for record reorientation following
error detection in a data storage subsystem each data track is
subdivided into equal time-length recording cells which are
sequentially numbered past an index point with the beginning of
each field of each record coinciding with an initial cell for the
field. Upon detection of a retriable error within a given field,
the initial cell for the field is determined and stored, the
subsystem is disconnected from an interfacing channel, and
reorientation is attempted by advancing a transducer addressing the
track past the index point to a location which is a selected
distance upstream of the stored cell number. If a selected channel
command is then received within a given time interval, the
subsystem is reconnected to the channel and reorientation is
effected as the transducer enters the field the initial cell of
which was stored. If the selected channel command is received late,
the subsystem waits one revolution of the track and then reorients
without looking for further channel commands.
|
Inventors: |
Chang; Henry K. (San Jose,
CA), Hausen; Wolfgang H. (San Jose, CA) |
|
Assignee: |
International Business Machines
Corporation (Armonk, NY)
|
| Family
ID: |
26905348 |
| Appl.
No.: |
06/210,631 |
| Filed: |
November 26, 1980 |
Related U.S. Patent Documents
|
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
Issue Date |
|
| Reissue of: |
940949 |
Sep 11, 1978 |
04209809 |
Jun 24, 1980 |
|
|
| Current U.S.
Class: |
360/53; 714/16;
714/710 |
| Current CPC
Class: |
G11B
5/59655 (20130101) |
| Current International
Class: |
G11B
5/596 (20060101); G11B 005/09 () |
| Field of
Search: |
;371/2,32 |
References Cited
[Referenced By]
U.S. Patent Documents
Primary Examiner: Canney; Vincent P.
Attorney, Agent or Firm: Otto, Jr.; Henry E.
Claims
What is claimed is:
1. In a subsystem selectively attaching a channel interface and
responsive to channel command words, said subsystem storing records
on media in moving relation to a plurality of transducers, the
records being written on cyclically readable paths, each path being
subdivided into equal fixed length recording cells which are
sequentially numbered past an index point on said path, the
beginning of each field of each record coinciding with an initial
cell for the field, the method of reorienting a selected transducer
to the field of the record where a retriable error has occurred
comprising the steps of:
ascertaining the initial cell number of each field while
processing;
detecting retriable errors;
disconnecting the subsystem from the channel upon detection of a
retriable error;
selecting a reorientation cell number from the initial cell number
for the field in which the retriable error was detected as a
function of the type of field, error and an original channel
command word being executed;
moving the path relative to the selected transducer through the
index point and until the transducer is positioned a predetermined
distance before the reorientation cell;
reconnecting the subsystem to the channel and requesting repeat of
the original channel command word; and
moving the path relative to the selected transducer to the
reorientation cell upon the condition that the original channel
command word is repeated.
2. In a data storage subsystem that is selectively attached to a
channel interface, and responsive to channel command words, said
subsystem storing variable length records on cyclically movable
media for reading and writing by any of a plurality of transducers,
the records being written serially on tracks and each record
including count and data fields and in some instances a key field,
the fields being arranged serially and in predetermined order, in
any of which fields an error may occur, the tracks being disposed
relative to an index point, the method of reorienting a selected
transducer to recommence data transfer at a location on a track
proximate to where a retriable error has occurred, comprising the
steps of:
subdividing the tracks into equal fixed length recording cells
sequentially numbered past the index point;
detecting retriable errors as data transfer takes place;
determining and storing the initial cell number for the record in
which the error occurred;
disconnecting the subsystem from the channel upon detection of the
error;
correcting the portion of the record that was detected as in error,
while disconnected;
selecting a reconnection cell number from the initial cell number
for the record in which the error occurred as a function at least
of the location of the error;
reconnecting the subsystem to the channel to reobtain the original
channel command word;
completing a cyclic movement of the track relative to the selected
transducer past the index point to a region ahead of the selected
reconnection cell; and
reestablishing reconnection of the subsystem to the channel at a
time sufficiently prior to the reconnection cell location so that
data transfer can initiate at the reconnection cell location
beginning with the field at which the error occurred, so that
corrected data may be transferred for the field in which the error
occurred without the introduction of other error possibilities.
3. The method of reorienting a transducer to a location on a
recorded moving track in which an error is identified by error
detecting and correcting circuits, the track being one of a number
of data tracks, each of which have serial variable length records,
each including different fields, the method comprising the steps
of:
monitoring the track position relative to the transducer by
identifying equal length, successively numbered data cells
comprising successive equal groups of bytes following an index
point, as a data transfer try is effected;
detecting the existence of a retriable error;
determining the beginning data cell number for the last field in
which data transfer was to take place, upon detecting the existence
of a retriable error;
selecting a reconnection cell number for reorientation based upon
the beginning data cell number determined and the error
location;
attempting to reorient the transducer to the location on the track
on which the error was detected on a second passage of the track so
as to initiate data transfer beginning at the reconnection cell
without the passage of the previously correctly read portion of the
record; and
correcting the error previously detected concurrently with the
reorientation procedure.
4. The method as set forth in claim 3 above, wherein the data cell
numbers that are determined include count field, key field and data
field numbers, and wherein the step of selecting a reconnection
cell number includes selecting the beginning cell number of one of
each of said fields.
5. A method of reorienting a transducer within a cyclically
repeating track having a succession of different .Iadd.failure
independent .Iaddend.fields recorded therein, different groups of
the fields defining a succession of different records .Iadd.each of
which has a unique address independent of its physical location
.Iaddend.along the track, comprising the steps of:
providing an indication of the location of each .Iadd.failure
independent .Iaddend.field relative to a common reference location
on the track;
moving the transducer in a given direction along the track;
identifying the indication of the location of the last
.Iadd.failure independent .Iaddend.field presented to the
transducer upon the occurrence of an error;
storing the identified indication;
terminating data processing at the transducer upon the occurrence
of an error;
advancing the transducer relative to the track in the given
direction past the common reference location .[.to.]. g and any
failure independent fields in the record in error preceding the
.Iadd.precise .Iaddend.field the indication of which was stored;
and .Iadd.only thereafter .Iaddend.attempting to continue data
processing at the transducer.
6. A method of reorienting a transducer within a cyclically
repeating track having a succession of different groups of
.[.the.]. .Iadd.failure independent .Iaddend.fields defining a
succession of different records along the track, comprising the
steps of:
providing an indication of the location of each .Iadd.failure
independent .Iaddend.field relative to a common reference location
on the track;
identifying the indication of the location of the last
.Iadd.failure independent .Iaddend.field presented to the
transducer upon the occurrence of an error;
terminating data processing at the transducer upon the occurrence
of an error;
advancing the transducer relative to the track past the common
reference location to the .Iadd.precise failure independent
.Iaddend.field the indication of which was identified; and
attempting to continue data processing at the transducer, including
the steps of seeking an external command to commence data
processing before the transducer has advanced to the field the
indication of which was identified, commencing data processing
.Iadd.only .Iaddend.when the transducer is advanced to the field
the indication of which was identified if an external command to
commence data processing is received early enough to permit data
processing to commence as the transducer is advanced to the field
the indication of which was identified, and again advancing the
transducer relative to the track past the common reference location
to the field the indication of which was identified and commencing
data processing if an external command to commence data processing
is received too late to permit data processing to commence as the
transducer is advanced to the field the indication of which was
identified.
7. In a system in which a data storage device responds to commands
from a channel to carry out data processing operations, the data
storage device including at least one transducer capable of
addressing at least one cyclically repeating track which has a
plurality of fields recorded therealong and is divided into a
plurality of cells of equal time-length which are numbered
consecutively from a common index point on the track, each field
having a cell coincident with the start thereof, a method of
reorienting the transducer to a selected field within the track
comprising the steps of:
determining and storing the number of the cell coincident with the
start of the last field addressed by the transducer upon the
occurrence of an error;
disconnecting the data storage device from the channel upon the
occurrence of an error;
advancing the transducer to the index point on the track;
advancing the transducer from the index point to a cell the number
of which equals the stored cell number minus a first number;
advancing the transducer from the cell the number of which equals
the stored cell number minus a first number to a cell the number of
which equals the stored cell number minus a second number smaller
than the first number and simultaneously looking for a particular
channel command from the channel during a selected time
interval;
advancing the transducer from the cell the number of which equals
the stored cell number minus the second number to the cell the
number of which is stored and connecting the data storage device to
the channel if the particular channel command is received from the
channel during the selected time interval; and
connecting the data storage device to the channel and advancing the
transducer from the cell the number of which equals the stored cell
number minus the second number past the index point to a cell the
number of which equals the stored cell number minus the second
number and then to the cell the number of which is stored if the
particular channel command is received from the channel after the
occurrence of the selected time interval.
8. The invention set forth in claim 7, wherein the first number is
16 and the second number is 8.
9. In a subsystem in which at least one transducer is positioned
relative to a plurality of data tracks on a record member to effect
data processing in response to commands from a channel to which the
subsystem is selectively coupled, the data tracks moving relative
to the transducer in cyclic, repeating fashion and each being
divided into a plurality of cells numbered consecutively along the
length thereof from a reference point and having a succession of
fields arranged along the length thereof so that the boundaries
thereof coincide with the boundaries of the cells, an arrangement
for reorienting the transducer to the location of a detected error
in a track being addressed by the transducer comprising the
combination of:
means responsive to detection of an error in the data processing
for storing the cell number of the cell at the beginning boundary
of the last field addressed by the transducer before detection of
the error;
means responsive to detection of the error in the data processing
for disconnecting the subsystem from the channel;
means responsive to detection of the error in the data processing
for sensing the occurrence of the reference point at the
transducer;
means responsive to sensing of the occurrence of the reference
point at the transducer for sensing the occurrence at the
transducer of a first location following the occurrence of the
reference point having a cell number equal to the difference
between the stored cell number and a first number;
means responsive to sensing of the occurrence at the transducer of
the first location for initiating a timed interval of predetermined
length;
means responsive to sensing of the occurrence at the transducer of
the first location for sensing the occurrence at the transducer of
a second location having a cell number equal to the difference
between the stored cell number and a second number;
means responsive to the occurrence of a predetermined command from
the channel during the timed interval of predetermined length and
to the occurrence at the transducer of the second location for
reconnecting the subsystem to the channel prior to the occurrence
of the stored cell number at the transducer; and
means responsive to the occurrence of a predetermined command from
the channel after termination of the timed interval of
predetermined length for reconnecting the subsystem to the channel
and advancing the transducer past the second location, the stored
cell number, the reference point and then the second location.
.Iadd. 10. In a subsystem comprising a controller and at least one
disk file in which at least one transducer is positioned relative
to a plurality of data tracks on a record member to effect data
processing in response to commands supplied to the subsystem, the
data tracks moving relative to the transducer in cyclic, repeating
fashion and each being divided into a plurality of cells numbered
consecutively along the length thereof from a reference point and
having a succession of failure independent fields arranged along
the length thereof so that boundaries of the fields are related to
the boundaries of the cells, apparatus for reorienting the
transducer to the location of a detected error in one of the fields
in the track comprising the combination of:
means responsive to detection of an error in one of the fields
during reading of the track for storing the cell number of the
initial cell of the last failure independent field addressed by the
transducer before detection of the error; and
means operative, after detection of the error and while the
transducer is being moved relative to the track past the reference
point, to defer rereading of the field in error until the
transducer is positioned at said initial cell of said last failure
independent field addressed by the transducer before detection of
said error. .Iaddend. .Iadd. 11. In a subsystem of the type wherein
at least one transducer is positioned relative to a cyclically
movable data track on a record member to effect data transfer to
and from said track, said track having a succession of command
addressable records whose addresses are independent of their
physical location along the track, each such record having a
plurality of failure independent fields of at least a predetermined
minimum number of byte positions arranged along the length of said
track, the improvement comprising apparatus for insuring that only
that field of a record containing a detected error is reread during
reorientation of the transducer to the location of the detected
error to avoid generating two independent errors in the same record
when the record is reread, during a subsequent revolution said
apparatus comprising:
means for establishing cell pulses at equal time intervals to
effectively divide the track into a plurality of equal fixed length
cells, each cell having a length at least equal to said
predetermined number of byte positions so that the start of each
field is relatable to only one respective specifically identifiable
cell;
means responsive to detection of an error in a record for storing
the number of a cell related to the last failure independent field
read by the transducer before detection of said error; and
means operative after detection of the error to defer rereading of
the record in error until the transducer has passed all failure
independent fields in the record in error read prior to the field
in error. .Iaddend. .Iadd. 12. In an apparatus for recording and
reading data from a cyclic magnetic recording track on which data
is recorded as a plurality of separately addressable records whose
addresses are independent of the physical location of said record
on said track, and wherein each record comprises a plurality of
failure independent fields each including at least a predetermined
minimum number of byte positions, and wherein on detection of an
error in one of said fields, the field in error is reread by a
transducer during reorientation of the transducer on a subsequent
revolution to the location of the detected error, the improvement
comprising:
means for generating a plurality of timing pulses at a frequency
related to the data rate of said magnetic recording track, said
timing pulses being spaced apart a distance not more than said
predetermined minimum number of byte positions;
means for controlling the recording and reading of each of said
failure independent fields to insure that only one field is started
between any two successive timing pulses;
means for storing an identification of a field in error upon the
occurrence of an error; and
means including means responsive to the timing pulse associated
with the start of the field in error to initiate rereading of the
field in error in the revolution following that during which the
error occurred, thereby to insure that when an error has occurred
in one of the fields, previously read fields of the record in error
will not be reread. .Iaddend.
Description
TECHNICAL FIELD
The present invention relates to data storage subsystems used in
data processing systems, and more particularly to methods and
apparatus for detecting retriable errors and thereafter
establishing exact record reorientation in cyclically repeating
data tracks such as are contained in a magnetic disk file or
similar subsystem storage device.
BACKGROUND ART
In data processing systems a data storage device such as a magnetic
disk file is frequently coupled via a channel to a central
processing unit (CPU) to provide stored data to and to receive for
storage data from the CPU. In a common system of this type the disk
file is coupled to the channel through a controller and a director.
The director responds to channel command words (CCWs) communicated
over the channel from the CPU by temporarily storing and
communicating data and by issuing commands to the controller. The
commands control storage and communication of data within the
controller and effect desired operations within the magnetic disk
file. The director, controller and disk file together comprise a
subsystem of the data processing system with its included CPU and
channel.
Cyclic storage devices such as those employing magnetic disks or
drums include one or more transducers, each of which is capable of
addressing one or more essentially endless tracks which
periodically repeat as a result of relative motion of the disk,
drum or other storage medium relative to the transducer. Each track
is typically organized so as to comprise a succession of sectors
along the length thereof. A sector which includes one and sometimes
two records is headed by a three byte address marker which
identifies the beginning of the sector. Each record is begun by a
count field headed by a sync byte, ending with several bytes of
error correction code (ECC) and including a series of bytes
therebetween which identify the record location in terms of disk
and track or cylinder. The count field within each record is
sometimes followed by a key field containing user data and like
information and which is spaced apart from the count field by a
short gap. Finally, each record contains a data field downstream of
the count field and the key field where present. The data field
begins with a sync byte, ends with ECC bytes and has various bytes
of data therebetween.
As a transducer moves along a track so as to address successive
ones of the records in conjunction with execution of various
channel command words, orientation of the transducer to the desired
records is maintained by processing the data comprising the
beginning of each record in a selected way. First of all, the
address marker is located. Following that, the sync byte at the
beginning of the count field is located. Upon location of the sync
byte, the controller sends the count field to the director which
compares portions of the data thereof with channel data. At the end
of transfer the controller provides certain ending conditions
indicating such things as whether the count field was sent in
timely fashion for the comparison and whether an error was detected
in the count field. Thereafter, the transducer continues through
the key field if one is present and then the data field by locating
the sync byte at the beginning of each field, reading or writing
the various bytes within the field and then noting the ECC bytes at
the end of the field.
As the transducer moves relative to the track and the system
executes various channel command words, errors are occasionally
detected. The detected errors may be of different types and include
those in which the data read from a particular field is determined
to be in error and those in which for reasons of timing data from a
given field could not be read, compared or otherwise processed in
time to provide complete execution of the channel command word. As
errors occur they may be classified in terms of whether they are
retriable or not. If they are retriable the subsystem is typically
upcoupled from the channel shortly after detection of the error and
is then again coupled to the channel during the next occurrence of
the error location in the cyclic movement of the track relative to
the transducer in an attempt to reorient and successfully execute
the channel command.
Where a retriable error consists of data from a field which is
timely read but determined to be in error the error correction code
(ECC) or other measures may be employed during the next revolution
in an attempt to correct the error upon reorientation. In other
instances, retriable errors result from the inability of the
subsystem to detect a particular byte of groups or bytes or to
timely compare or transfer a group of bytes. A common error of this
type, referred to as Command Overrun, occurs when the subsystem is
unable to timely complete the execution of a channel command word.
Thus, a typical Command Overrun may occur where the subsystem is
unable to transfer a count field to the director so that a
successful comparison with channel data can be timely made. When
such a condition occurs data transfer is not begun. Instead the
subsystem attempts to reorient and achieve a successful comparison.
Another common type of error which may occur prior to data transfer
is when a sync byte is not detected. This condition is commonly
referred to as Sync Byte Missing. Common retriable errors which
occur during data transfer include Data Overrun and Data Check.
Data Overrun typically occurs where reading or writing of data
within a given field cannot be completed in time. Data Check is an
error condition usually detected at the end of data transfer.
One successful scheme for providing reorientation in response to
retriable errors in a data storage subsystem is described in U.S.
Pat. No. 3,725,861 of Hancock, issued Apr. 3, 1973 and commonly
assigned with the present application. In the Hancock arrangement
sectors along each track are successively numbered such that the
sector number can be detected and temporarily stored as the count
field of one or more records in the sector are processed. Upon
detection of an error the sector number identifying the sector
containing the error is saved. The subsystem then advances to the
next occurrence of the sector containing the error under the
control of a one revolution counter. The particular location of the
error within the sector is then determined using a phase locked
oscillator which creates a timing window.
The arrangement described in Hancock operates in accurate and
successful fashion for most applications thereof. However, there
are certain applications or situations in which problems may arise.
One such problem stems from the length of the sectors. While most
sectors typically include only one record, some may include two
records. Complex apparatus may therefore be required to more
accurately identify the exact location of an error to prevent the
subsystem from erroneously reorienting to the wrong record within a
noted sector. A more serious problem, known as "nested error", may
occur in situations where the detected error occurs in the latter
part of a record such as in the data field and upon reorientation
to the beginning of the record a different error is detected before
the original error is reached. For example, if an error is detected
in the data field of a given record, the sector number of the count
field of this given record is stored and the subsystem is
reoriented to the beginning of the sector. If the subsystem then
detects a different error in the address marker or the count field
which results in a Command Overrun, a Data Overrun or the like, the
later error must be corrected before the subsystem can advance to
the data field where the earlier error was detected. Another
serious problem may arise such as where at the conclusion of
processing a count field it is determined that there is a Command
Overrun or a Sync Byte Missing prior to detection of the sync byte
at the beginning of the next field. Because the Hancock arrangement
records the sector number at the sync byte of a count field, the
number of the sector being recorded may be that where the previous
count field resides instead of the number of the sector
encompassing the field in which the error occurred. The subsystem
then reorients to the count field of a record prior to the one in
which the error occurred. This problem is even further complicated
if a different error is detected before again detecting the
original error.
DISCLOSURE OF INVENTION
.[.Subsystems in accordance with the invention reorient to the
exact field where an error was detected by determining and saving a
beginning cell number for the field upon detection of an error
within the field. Each.]. .Iadd.
The nested error problem and others above-described are eliminated
by use of the apparatus and method embodying the invention. It
takes advantage of a count-key-data (CKD) format, heretofore
proposed, in which each .Iaddend.track is divided into a succession
of cells of equal length which are consecutively numbered from an
index point. The various fields are recorded within the track so
that their beginning and ending boundaries coincide with cell
boundaries. .Iadd.In other words, the distance between successive
cell boundaries is related to the length of a field such that no
two fields will start within the same cell. .Iaddend.As the
transducer enters each new field the number of the cell at the
beginning of the field is noted.[., and is thereafter saved if an
error is detected in the field.].. .Iadd.
In accordance with the invention, the subsystem is reoriented to
the exact field where an error was detected by determining and
saving a beginning cell number for the field upon detection of an
error within the field. .Iaddend.Upon detection of an error and
subsequent uncoupling from the channel, the subsystem allows the
transducer to advance past the index point to a cell which is
upstream by a selected number of cells from the cell the number of
which was temporarily stored upon detection of the error. The
subsystem then looks to the channel for a command indicating that
reorientation should occur. If such a command is received within a
predetermined time interval defined by advancement of the
transducer through a selected number of cells, the subsystem is
reconnected to the channel and reorientation occurs as the
transducer reaches the cell the number of which was stored. If such
a command is received after termination of the predetermined time
interval, the subsystem reconnects to the channel and advances the
transducer through the error location to the index point and then
to a cell upstream of the cell the number of which was stored. If a
command dictating reorientation is not received by the subsystem,
the subsystem advances to the index point and to the predetermined
time interval before the stored cell number and repeats the process
of waiting for the channel command again.
BRIEF DESCRIPTION OF DRAWINGS
The invention may be better understood by referring to the best
mode for carrying out the invention and its industrial
applicability, taken in conjunction with the accompanying drawings,
in which:
FIG. 1 is a block diagram of a preferred arrangement of a subsystem
in accordance with the invention for effecting record reorientation
following error detection;
FIG. 2 is a diagrammatic plot along a portion of the length of a
data track of the various fields of a typical record;
FIG. 3 is a diagrammatic plot along a portion of the length of a
data track of certain of the fields of FIG. 2 illustrating the
manner in which the subsystem addresses and responds to the fields
in accordance with the invention;
FIG. 4 is a diagram representing several revolutions of a data
track and illustrating the various alternative steps of effecting
reorientation;
FIG. 5 is a generalized block diagram of the different processing
codes of the subsystem of FIG. 1;
FIG. 6 is a detailed block diagram of the successive steps of the
function processor code of FIG. 5;
FIG. 7 is a detailed block diagram of the successive steps of the
exception processor code of FIG. 5;
FIG. 8 is a detailed block diagram of the method of reorientation
in accordance with the invention in the event of a Command
Overrun;
FIG. 9 is a detailed block diagram of the method or reorientation
in accordance with the invention in the event of a Data Check;
and
FIG. 10 is a detailed block diagram of a portion of the method of
reorientation in accordance with the invention in the event of a
Data Overrun.
BEST MODE FOR CARRYING OUT THE INVENTION, AND INDUSTRIAL
APPLICABILITY
FIG. 1 is a block diagram of a preferred arrangement of a subsystem
in accordance with the invention. The subsystem 10 of FIG. 1
includes a storage director 12, a storage controller 14 and a
magnetic disk file 16. The storage director 12 which is coupled to
a central processing unit 18 through a channel interface 20
receives and decodes channel command words from the central
processing unit 18 in addition to temporarily storing and
transmitting certain data. The director 12 generates commands in
response to the decoded channel command words and provides the
command to the storage controller 14. The controller 14 which is
also capable of temporarily storing and transmitting data
translates the commands from the director 12 into read, write or
repositioning operations at the magnetic disk file 16.
The particular magnetic disk file 16 shown in the arrangement of
FIG. 1 includes four different magnetic disks with only the top
disk 22 being shown in its entirety for reasons of clarity. An
access mechanism 24 responds to signals from the controller 14 to
laterally position a plurality of magnetic transducers relative to
the magnetic disks. The transducers include a transducer 26
positioned adjacent the top surface of the top magnetic disk 22.
Each of the transducers including the transducer 26 is coupled to
read/write circuits 28 within the storage controller 14 to receive
data to be recorded on the disks and to provide data read from the
disks by the transducers to the controller 14.
As is well known in the art, one of the disks of the magnetic disk
file 16 comprises a servo disk and has a plurality of tracks
thereon having pulse trains recorded along the lengths thereof to
provide timing information. The time lengths between pulses are
equal and correspond to an 8 byte time interval. As described
hereafer the pulses in the servo tracks define cells of equal
time-length which determine where the leading and trailing edges of
the various fields are to be located and which provide a convenient
and accurate reference for reorienting upon detection of a
retriable error.
Each of the magnetic disks including the disk 22 is provided with a
plurality of data tracks 30 on the surface thereof. Each data track
30 is of circular, endless configuration such that it cyclically
repeats itself when addressed by one of the transducers. Each
magnetic disk is provided with a separate index transducer 32 (only
one of which is shown in FIG. 1 for simplicity of illustration) for
repetitively sensing the occurrence of an index mark recorded on an
adjacent one of the tracks 30. The index mark presents itself to
the index transducer 32 so as to provide a convenient reference to
an index and cell location circuit 34 within the controller 14 upon
each revolution of the magnetic disks.
The magnetic disk file 16 is shown and described herein for
purposes of illustration only, and it will be understood by those
skilled in the art that other forms of data storage devices that
have repeating data tracks such as magnetic drums can also be used
in the arrangement of FIG. 1.
The storage director 12 transfers data between the storage
controller 14 and the channel interface 20 by data transfer
circuits 36. The storage director 12 also includes channel
connection circuits 38 for communicating control and interface
signals between the director 12 and the channel interface 20. The
channel connection circuits 38 control the unconnecting and
reconnecting of the storage director 12 to the channel interface 20
in response to signals from a reorientation control circuit 40. In
addition, the channel connection circuits 38 are coupled to track
selection controls 42 within the storage controller 14. The track
selection controls 42 are coupled to the access mechanism 24 to
control positioning of the magnetic transducers at selected data
tracks on the magnetic disks in response to signals from the
channel connection circuits 38.
Each of the data tracks 30 on the magnetic disks is comprised of a
succession of records disposed along the length thereof and headed
by an index mark. FIG. 2 depicts a portion of a typical data track
30 including the index mark 44, a home address (HA) 46, an address
marker (AM) 48, and a first record which includes a count field 50,
a key field 52 and a data field 54. The following portions of the
data track 30 consists of a succession of additional records, each
of which is headed by address marker which is followed by a count
field and a data field and in some instances a key field between
the count and data fields.
The arrangement of the data track 30 as shown in FIG. 2 is a
conventional one. The index mark 44 provides a convenient record
for each revolution of the magnetic disk and thus each reoccurrence
of the data track 30 at the addressing magnetic transducer. The
home address 46 which closely follows the index mark 44 helps to
identify the track. The address marker 48 is a signal of three
bytes duration marking the beginning of the record which includes
the count field 50, the key field 52 and the data field 54. The
count field 50 identifies the location of the record in terms of
the location of the track and disk or "cylinder" within the
magnetic disk file 16 and the location of the record within the
track 30. The key field 52 which is present in some but not all
records contains such things as customer data. The data field 54
contains the data of interest within the record and is typically
much greater in length than the count field 50 or the key field 52.
Although not shown in FIG. 2 the data field 54 would be followed by
the address marker of the following record, and then the count,
then key and then data fields of the following record. As described
hereafter in connection with FIG. 3 each of the fields 50, 52 and
54 is headed by a sync byte one byte in length providing a
convenient reference in the form of a indication to the magnetic
transducer that the beginning of a field is occurring. As also
described hereafter in connection with FIG. 3 each of the fields
50, 52 and 54 terminates in a three byte long error correction code
(ECC). The error correction code when communicated to the storage
controller 14 can be used to correct errors in data in the
field.
As previously noted the storage director 12 decodes channel command
words received from the central processing unit 18 via the channel
interface 20 and in turn provides commands to the storage
controller 14 to control data transfer to and from the magnetic
disk file 16. The central processing unit 18 continually monitors
the status of the subsystem 10 and send channel command words in
accordance with the status to effect desired data processing
operations within the subsystem 10. For example, when it is desired
to position a magnetic transducer such as the transducer 26 at a
particular one of the data tracks 30 a "Seek" channel command word
is provided to the director 12. The channel connection circuits 38
within the director 12 respond by decoding the "Seek" channel
command word and providing appropriate commands to the track
selection controls 42 within the storage controller 14 to cause the
access mechanism 24 to position the transducer 26 at the desired
data track 30. No reading or writing occurs during the "Seek"
channel command word, and therefore the data transfer circuits 36
within the director 12 and the read/write circuits 28 within the
controller 14 are inactive.
With the transducer 26 positioned at a desired data track 30 the
next channel command word might typically be a "Search ID" word
indicating that the transducer 26 is to locate a particular record
within the data track 30. The transducer 26 under the control of
the controller 14 locates the next address marker and then the sync
byte at the beginning of the following count field, at which point
the count field as read by the transducer 26 is temporarily stored
in the data transfer circuits 36 within the director 12. The count
field is then compared with data presented by the channel interface
20. If the compared data are equal, the desired record has been
found, and a further channel command word is issued to effect
reading, writing or another desired operation within the record. If
the data temporarily stored in the data transfer circuits 36 does
not compare with the data presented by the channel interface 20,
the transducer 26 is instructed by the controller 14 to skip
through the remaining portions of the record including the data
field. In the meantime a new "Search ID" channel command word is
presented, and the process is repeated by detecting the address
marker and count field sync byte and then comparing the count field
in the next record. This procedure is typically repeated until the
desired record is found within the data track 30 or until a
different channel command word is presented. When the desired
record is located as indicated by a favorable comparison of the
count field, a "Read Data" channel command word is typically
provided so that the following data field within the desired record
is read.
During execution of a "Search ID" channel command, it sometimes
happens that the count field cannot be compared with the data
presented by the channel interface 20 in time to determine the
results of the comparison as the end of the count field is reached
and the following gap is entered. This results in the storage
director 12 indicating a "Command Overrun" condition. A Command
Overrun condition is a retriable type of error in that the error
may be usually recovered by reorienting to the same count field on
the next revolution and again attempting to effect a comparison of
the count field with the data presented by the channel interface 20
in timely fashion. A "Command Overrun" condition can occur in other
situations such as where channel turnaround cannot be completed on
time. As illustrated in FIG. 3 the count field 50 which is begun
with a sync byte 56 and ended with three bytes of error correction
code 58 is followed by a G2 gap which precedes the occurrence of
the following data field 54. Each count field such as the count
field 50 is separated from the data field of the preceding record
by a G3 gap which includes the address marker 48.
In the illustration of FIG. 3 the key field 52 has been eliminated
for simplicity. The first portion of the G2 interval comprises a
channel turnaround interval 60 of predetermined duration. If it is
assumed that the comparison of the count field with the data
presented by the channel interface 20 is completed and the G2 gap
is entered into commencing the channel turnaround interval 60 the
subsystem then examines the next channel command word. If a new
channel command word cannot be ascertained within the interval 60
so that the subsystem can prepare for further processing within the
gap G2 and the following data field 54, a "Command Overrun"
condition is again signaled, indicating that a retriable error has
occurred and that the magnetic transducer should be advanced
through one revolution of the data track so as to again locate the
count field and then search for a channel command word within the
following channel turnaround interval 60.
Other retriable error conditions may occur such as where the
subsystem fails to detect a sync byte at the beginning of a field.
As shown in FIG. 3 the count field 50 is headed by the sync byte 56
and the data field 54 is headed by a sync byte 62. If the subsystem
fails to detect a sync byte at the beginning of a field being
scanned, a "Sync Byte Missing" condition is indicated by the
read/write circuits 28 within the storage controller 14, dictating
that a retry should be made.
A further type of retriable error condition known as "Data Overrun"
may occur in situations where the count field 50 has been read and
properly identified, a channel command word is presented during the
following channel turnaround interval 60, the sync byte at the
beginning of the data field is properly detected but the data
within the data field cannot be communicated to the data transfer
circuits 36 within the storage director 12 in time to be processed
in accordance with the latest channel command word from the channel
interface 20. In the event of a "Data Overrun" as signaled by the
storage director 12, the subsystem should be reoriented to the same
data field on the next revolution of the data track so that another
attempt can be made to properly process the data from the data
field.
A still further type of retriable error known as "Data Check" can
occur as the consequence of the inability of the controller 14
which has detected an error in a field being read to correct the
error using the ECC bytes at the end of the field. As shown in FIG.
3 the count field 50 terminates the ECC bytes 58 and the data field
54 terminates with three ECC bytes 64. Upon the occurrence of a
Data Check condition, the system should be reoriented to the field
where the error occurred upon the next revolution.
As shown in FIG. 2 .Iadd.and proposed prior to this invention to
prevent positional tolerance accumulations, .Iaddend.each data
track 30 is divided into a plurality of cells 66 of equal length.
The cells 66 begin at the index mark 44 and advance along the
entire length of the track so as to terminate back at the index
mark 44. The cell 66 are consecutively numbered beginning with the
index mark 44 so that different cell numbers for a given track and
for particular fields within the records of the track can be stored
and processed by the storage director 12 and the storage controller
14. The home address 46 and the various fields throughout the track
such as the count field 50, the key field 52 and the data field 54
are recorded in such a way that the beginning and ending boundaries
thereof coincide with cell boundaries. Each field is filled in or
padded as necessary so that the boundaries coincide, using an
appropriate technique such as that described in U.S. Pat. No.
3,629,860 of A. J. Capozzi, commonly assigned with the present
application. .[.The.]. .Iadd. In accordance with the present
invention, the .Iaddend.cell number at the beginning of each field
is recorded in a place where it can be identified and used to
effect reorientation upon detection of a retriable error. As seen
in FIG. 2 the count field 50 has a cell 68 at the beginning
thereof. The number of the cell 68 is stored as a part of the data
in the count field 50 when the count field 50 is recorded on the
data track 30. In similar fashion the number of the cell at the
beginning of each of the other count fields on the data track 30 is
recorded as part of the data within the count field. The key field
52 has a cell 70 coincident with the beginning thereof, and the
data field 54 has a cell 72 coincident with the beginning thereof.
The numbers of the cells 70 and 72 are stored in a cell location
storage circuit 74 shown in FIG. 1 which forms part of the storage
director 12. In like fashion the numbers of the cells at the
beginning of all other key and data fields within the data track 30
are stored in the cell location storage circuit 74.
The cell location storage circuit 74 which stores the number of the
cells denoting the beginning of each key and data field within the
various data tracks makes the various cell numbers available for
use in the event a retriable error is detected within or
immediately following a key or data field. As each count field is
read, the data thereof which includes the beginning cell number is
stored in the data transfer circuits 36 within the director 12 for
comparison with channel presented data. At the same time the
beginning cell number is temporarily stored in the cell location
storage circuit 74 where it may be frozen for later use in the
event a retriable error is detected.
In the present example the boundaries and numbers of the various
cells 66 are not actually recorded in the data tracks 30 but
instead occur as timing signals provided to the controller 14 from
the pulses recorded along the length of a corresponding track on
the servo disk. The cells are conventionally chosen to be 32 bytes
in length so that 4 of the 8 byte-long pulses from a servo track
are necessary to define one cell. The cell numbers are determined
by the cell location storage circuit 72 from the cell numbers
stored as part of each home address and each count field.
When a track or portion thereof is being recorded on one of the
magnetic disks, the storage director 12 provides data to the
controller 14 in 32 byte groups together with commands for the
recordation thereof in synchronism with the cell boundaries as
defined by every fourth pulse from the servo disk. The timing is
such that upon the occurrence of each pulse defining a cell
boundary, the next 32 byte group of data is recorded. In composing
the 32 byte groups of data the director 12 pads as necessary so
that the beginning and the end of each field coincide with cell
boundaries. The director 12 keeps track of cell numbers by counting
cells as they occur and recording the leading edge cell number of
each home address as a part of the home address and recording the
leading edge cell number of each count field as part of the count
field. Thereafter, as the tracks are read the cell location storage
circuit 74 temporarily stores the cell number carried by each home
address as the home address is read and compared by the director 12
with data from the channel interface 20. If an error is detected in
the home address the leading edge cell number therefore is frozen
in the cell location storge circuit 74. Similarly, as each count
field is read and compared with channel data, the leading edge cell
number therein is temporarily stored in the cell location storage
circuit 74 where it can be saved in the event an error is detected.
Although the leading edge cell numbers for the key and data fields
are not stored as part of the fields, they are readily determined
and saved by the cell location storage circuit 74 in the event an
error is detected by keeping a record of the number of cells that
occur following each home address or count field cell number which
is temporarily stored in the cell location storage circuit 74.
Upon the occurrence of a retriable error such as a Command Overrun
or a Data Overrun, such condition is noted by error detection
circuits 76 coupled to the read/write circuits 28 within the
storage controller 14. The error detection circuits 76 provide a
detected error signal to the reorientation control circuit 40
within the storage director 12. The reorientation control circuit
40 in turn provides a signal to the channel connection circuits 38
which results in the director 12 and the remainder of the subsystem
10 being disconnected from the channel interface 20 pending
evaluation of the error and attempting to reorient on the next or
subsequent cycles of the data track. The error detection circuits
76 are also coupled to the read/write circuits 28 through error
correction circuits 78. In cases where the error occurs in the data
being read in a given field, the error correction bits at the end
of the field may be applied to the error correction circuits 78 in
an attempt to correct the data by the end of the next or subsequent
revolutions of the data track. Such operation may be as described
in U.S. Pat. No. 3,622,984 of H. P. Eastman, commonly assigned with
the present application.
After determining and saving the beginning field cell number in the
cell location storage circuits 74 and uncoupling the subsystem from
the channel interface 20 by means of the channel connection
circuits 38 upon detection of an error, the reorientation control
circuit 40 issues a space-to-index command to the read/write
circuits 28 of the controller 14 so as to advance the magnetic
transducer from the location of the error to the next occurrence of
the index mark at the transducer. The occurrence of the index mark
at the transducer 26 is determined by the index transducer 32 in
conjunction with the index and cell location circuit 34. When the
index point is reached, the reorientation control circuit 40 issues
a space-to-cell location command to the read/write circuits 28 of
the controller 14. This causes the controller 14 to advance the
transducer from the index mark to a cell located upstream from the
cell number frozen in the cell location storage circuit 74 by a
predetermined first number of cells (16 cells in the present
example). The relocation of the magnetic transducer to a location
16 cells upstream of the beginning cell for the field in which the
error occurred allows the subsystem to look for a channel command
word from the channel interface 20 instructing a retry and to
reconnect the subsystem to the channel interface in the event such
a channel command word is received. The reorientation control
circuit 40 causes the magnetic transducer to advance downstream to
a location which is upstream of the frozen cell number by a second
selected number of cells (8 cells in the present example) while
requesting a channel command word from the channel interface 20
which dictates that the error be retried. If such a channel command
word is received within a fixed time interval, the reorientation
control circuit 40 causes the channel connection circuits 38 to
reconnect the subsystem 10 to the channel interface 20 and reorient
to the location where the error occurred. If a channel command word
directing retry is received too late so as to fall outside of the
time interval, the channel connection circuits 38 will reconnect
the subsystem 10 to the channel interface 20 and the reorientation
control circuit 40 responds by issuing a space-to-index command to
advance the magnetic transducer to the index mark. Upon reaching
the index mark the reorientation control circuit 40 issues a
space-to-cell location command which causes the transducer to
advance to a point upstream of the frozen cell number and to the
location where the error occurred. If a channel command word
dictating retry is not received within a predetermined time period
following the selected time interval, the reorientation control
circuit repeats the reorientation procedure by issuing a
space-to-index command. When the subsystem advances the magnetic
transducer to the index mark, a space-to-index location command is
issued to move the transducer to a predetermined cell upstream of
the frozen cell number, at which point the storage director awaits
the next channel command word again.
The various reorientation operations just described can be better
understood by referring to FIG. 4 which depicts several revolutions
of the data track 30. It is assumed that an error has occurred
within or immediately following a field the beginning cell number
for which is X. The cell number X is frozen in the cell storage
location circuit 74 and the space-to-index command issued by the
orientation control circuit 40 causes the magnetic transducer to
space to the next occurrence of the index mark 44. The
reorientation control circuit 40 then issues a space-to-cell
location command which causes the magnetic transducer to space to
cell number X-16. At X-16 a 60 microsecond time interval is begun
during which time a channel command word dictating a retry is
looked for. At the same time the reorientation control circuit 40
issues a space 8 cells command so as to advance the magnetic
transducer to cell number X-8. If a channel command word dictating
retry is received within the 60 microsecond time interval, the
reorientation control circuit 40 issues a command to space 8 cells
to the X cell, and at the same time the channel connection circuits
38 are prepared to reconnect the subsystem 10 to the channel
interface 20 as cell X is reached. When cell X is reached the
subsystem has reoriented to the error location where a retry is
effected. If a channel command word dictating retry is achieved
within a 20 microsecond interval following the 60 microsecond time
interval, the reorientation control circuit 40 issues another
space-to-index command causing the magnetic transducer to space to
the next occurrence of the index mark 44 as shown by a dashed line
80 in FIG. 4. Upon reaching the index mark 44 the reorientation
control circuit 40 issues a command causing the transducer to be
spaced to cell number X-8 as shown by the dashed line 82 in FIG. 4.
Since a channel command word dictating retry was received during
the prior revolution and channel connection has been established,
the transducer may be advanced to X-8 instead of X-16. Upon
reaching cell number X-8, the reorientation control circuit 40
issues a command to space 8 cells to the X cell.
If upon detecting the error and freezing cell number X, then
spacing to the index mark 44 and then spacing to X-16, a channel
command word dictating retry is not received either within the 60
microsecond time interval or the following 20 microsecond interval,
the reorientation control circuit 40 issues a space-to-index
command causing the magnetic transducer to be advanced to the next
occurrence of the index mark 44 as shown by a line 84 where the
subsystem attempts reorientation and reconnection again.
It will be seen that systems in accordance with the invention avoid
many problems present in prior art systems by always reorienting to
the field where the error occurred. This avoids the problem of
reorienting to the wrong record such as where reorientation is
based on sector number. It furthermore avoids the nested error
problem present in many prior art arrangements by eliminating the
possibility of detecting a subsequent error upon reorientation to a
location just upstream of the location where the original error
occurred. Systems of the invention still further avoid the problems
which arise in those prior art systems that sometimes erroneously
record the prior sector number as the site of the error simply
because a sync byte within the sector where the error took place is
missing and such sector number is therefore not frozen.
Various portions of the storage director 12 and the storage
controller 14 shown in FIG. 1 can be implemented using conventional
control units employing an appropriate microcode. Control units of
this type are well known and examples thereof are provided by U.S.
Pat. No. 3,544,966 of J. J. Harmon and U.S. Pat. No. 3,623,022 of
R. C. Day, both of which are commonly assigned with the present
application. The Harmon patent described a microprogrammed control
unit subsystem with a read only storage. The Day patent describes a
microprogrammed storage control unit subsystem having a writable
control storage unit. A block diagram of an appropriate basic
arrangement of microcodes for use with such control units so as to
implement the invention is shown in FIG. 5. When in an "idle" code
represented by a block 86 the storage controller 14 idles in
preparation for a command from the director 12. The code may change
to a selection code 88 upon selection of the subsystem to execute
one or more channel command words. When a selection by the channel
interface dictates execution of a particular channel command word,
a function processor code 90 is used. The subsystem uses the
function processor code 90 so as to execute the channel command
word until execution of the channel command word is completed,
whereupon the subsystem reverts to the idle code 86. If an error is
encountered during execution of the channel command word, the
subsystem switches to an exception processor code 92. While using
the exception processor code 92 the subsystem determines whether
the error is retriable or not retriable. If the error is not
retriable the subsystem reverts to the idle code 86 where it awaits
the next command. If the error is determined to be retriable, the
subsystem continues to use the exception processor code 92 long
enough to achieve reorientation and reconnection of the subsystem
to the channel, at which point the function processor code 90 is
again restored to.
FIG. 6 is a block diagram depicting the successive steps of the
function processor code 90 of FIG. 5. In a first such step 94 the
subsystem is set up to read or write a home address or a count
field. This is accomplished by providing a command from the
director 12 to the controller 14. In the next step 96 the home
address or the count field is actually processed. In the case of a
count field, the field is read and transferred to the director 12
for comparison with channel data. In the next step 98 certain
end-of-field decisions are made. If an error has been detected the
exception processor code 92 is entered. If all the operations
required by the current channel command have been completed,
channel turnaround may take place at the beginning of the gap
following the field. In the absence of exception processing the
next step 100 of gap processing is performed. The subsystem checks
for any defects in the gap, and is spaced or padded to the next
field in preparation for processing of the next field. Returning
from channel turnaround, during the following command decode step
102 the director 12 decodes a new channel command word from the
channel interface 20 and issues commands to the controller 14.
During the next step 104 the subsystem is set up to process the key
field or the data field of the record. If the set up cannot be
accomplished in time a Command Overrun is indicated and the
subsystem changes to the exception processor code 92. Assuming the
subsystem can be set up to process the key field or the data field,
the field is next processed in the step 106. If the record has a
key field, the key field is processed during the step 106 and the
step 98 is again performed for end-of-field decisions following the
key field. The steps 100, 102, 104, 106 and 98 are then repeated
for the data field. After processing the data field and making
in-the-field decisions the subsystem returns to step 94 in
preparation for processing of the home address or the next count
field.
The successive steps of the exception processor code 92 of FIG. 5
are shown in FIG. 7. When an error is detected such as in the
end-of-field decisions step 98 of the function processor code 90 of
FIG. 6 the subsystem changes to the exception processor code and a
first step 108 of error analysis is performed. During this step the
subsystem determines whether the error detected is retriable or not
retriable. If the error is determined to be non-retriable the
subsystem assembles the sense bytes during the next step 110. The
sense bytes contain information regarding the error. In the next
step 112 the status of the subsystem is presented to the channel
such as by providing a "Unit Check" status to indicate detection of
an error which is not retriable. The subsystem then exits to the
idle code 86 shown in FIG. 5 during the next step 114 where it
awaits the next command from the channel.
If the error analysis of step 108 results in a determination that
the error is retriable then the next step 116 is to temporarily
store information regarding the retriable error so that information
on individual retries is available. The subsystem then attempts to
reorient during the next step 118. If the error occurred in the
home address the subsystem prepares to reorient to the home
address. Otherwise, the subsystem prepares to reorient to the field
the beginning cell number of which has been frozen. During the next
step 120 the subsystem reorients by spacing the transducer based on
such things as the timely receipt of a new channel command word
dictating a retry. Upon reorientation, the subsystem exits to the
function processor code 90 during the next step 122.
The exception processor code 92 of FIG. 7 depicts in relatively
general fashion the steps that are carried out when a retriable
error is detected. FIG. 8 depicts the successive steps in detail of
a method in accordance with the invention for reorienting in
response to a Command Overrun condition. In the first or error
breakout step 124 the subsystem analyzes the error to determine if
it is retriable. If the error is determined to be retriable, then
during the next step 126 which involves error and retry counter
analysis a counter keeping a record of the number of times
different types of errors are encountered is incremented. During
the next step 128 a decision is made as to whether the subsystem
has already presented a retry status to the channel. If retry
status has not been presented, then such status is presented to the
channel and the subsystem disconnects from the channel during the
next step 130. If in step 128 it is determined that the retry
status has already been presented such as where the magnetic
transducer was spaced past the index mark to cell number X-16 and a
channel command word dictating retry was then received after the
predetermined time interval so as to dictate again skipping past
the index mark to cell number X-8, the step 130 is skipped. During
the next step 132 the appropriate frozen cell number is examined
and used to begin reorientation. If the error occurred within the
home address so that reorientation is to occur there, then during
the next step 134 reorientation to the home address is begun by
reconnecting the subsystem to the channel 21 cells upstream of the
index mark. This allows enough time and space to reorient to the
home address which occurs just after the index mark. If
reorientation is to other than the home address, then during the
next step 136 commands are issued to space the transducer to the
index mark, then to cell number X-16, then to cell number X-8 and
the subsystem is reconnected to the channel. After performing step
134 or 136 the next step 138 is accomplished by spacing eight more
cells to the point where actual reorientation occurs. During the
next step 140 control is passed back to the function processor code
90.
FIG. 9 depicts the successive steps in a method in accordance with
the invention of reorientation upon the occurrence of a Data Check
condition. During a first step 146 the error is analyzed as to type
and whether it is retriable. During a Data Check analysis
comprising the next step 148 the error is again analyzed to
determine if it is correctable or not. During the next step 150 the
error is checked to determine if it is of the retriable type. If
the error is determined to be not retriable it is handled
separately from the rest of the method. If it is determined to be
retriable, then the next step 152 and the following step 154 which
correspond to the steps 128 and 130 respectively in the method of
FIG. 8 involve the determination of whether a retry status has
already been presented to the channel and the presentation of such
status and the disconnecting from the channel if it has not. During
the next step 156 the error is checked to determine if it is
correctable.
If the check performed during step 156 determines that the error is
correctable then a counter analysis is performed during a next step
158 to update counters keeping a record of the number of times the
type of error has occurred and has been retried. The remaining
steps 160, 162, 164, 166 and 168 correspond respectively to the
steps 132, 134, 136, 138 and 140 in the method of FIG. 8. Thus, the
frozen cell number is examined, the reorientation space commands
are issued depending upon whether it is a home address or non-home
address error, final spacing is carried out, reorientation is
accomplished and the subsystem exits to the function processor
code.
If the check performed in step 156 of the method of FIG. 9
determines that the error is not correctable, then during the next
step 170 analysis of the error is performed and several counters
are updated. One counter keeps a record of the number of times this
particular Data Check has been retried. Another counter keeps a
record of the number of times the uncorrectable Data Check has
occurred. Following that, a head offset mechanism step 172 is
employed in which the magnetic transducing head is moved slightly
to see if this will correct the problem. During the following step
174 a decision is made as to whether a device interrupt is pending.
Such interrupt is normally presented when the magnetic transducing
head is finished seeking. If it is determined that a device
interrupt is pending, then the interrupt is reset during the next
step 176 prior to moving on to step 160. Otherwise the system moves
on to step 160 and then sequences through the steps 162 or 164,
then 166 and then 168.
FIG. 10 depicts a portion of a preferred method of reorientation in
accordance with the invention when a Data Overrun condition occurs.
The first three steps of the method of FIG. 10 correspond to the
steps 124, 126 and 128 of FIG. 8 and have been eliminated from FIG.
10 for simplicity. After analyzing the error and determining
whether a retry status has already been presented, the step 130 is
performed so as to present the retry status and disconnect from the
channel if the status has not already been presented. During the
next step 180 an uncorrectable Data Check is simulated, and that is
followed by the step 170 corresponding to the step 170 in FIG. 9
where counters are updated to keep a record of the number of
occurrences of the data overrun and the number of retries. The
remaining steps in the method of FIG. 10 correspond to the steps
following the step 172 in the method of FIG. 9.
While the invention has been particularly shown and described with
reference to a preferred embodiment thereof, it will be understood
by those skilled in the art that various changes in form and
details may be made therein without departing from the spirit and
scope of the invention.
* * * * *