Method of encoding

Abstract: A tape drive subsystem uses variable length symbols to identify reliably data stored on the tape, in particular, serial numbers of tape cartridges having different track densities. A variable length symbol code is encoded on the tape in a plurality of groups G1 to G48 with each group having a first logical state or "1" being represented as an erase gap signal (ERG) covering the first two units of a group, or a second logical state or "0" represented as an ERG signal covering the first unit of the group, both followed by an inter-block gap signal (IBG) covering four units of the group.

Description: This invention relates generally to dynamic storage devices and more particularly to a format for encoding, sensing and correcting data representing an identifier for a volume of data information and to a process for controlling a data processing system to accomplish same to permit the reliable sensing of encoded data encoded on media having different track densities. Modern tape drive systems use a reel-to-reel drive to move a tape back and forth in close proximity to one or more read and/or write transducing heads. Upon insertion of a single reel tape cartridge into a tape drive, a leader block attached to the longitudinal end of the tape is automatically threaded through the tape path and the tape is spooled upon the take-up reel. During such threading and spooling, the length of tape wound upon the supply reel (the single reel tape cartridge inserted into the tape drive) is determined using tachometers on the supply and take-up reels. The tachometers are used to measure the amount of rotation of such reels during a specified period. The amount of rotation of the supply reel during one or more rotations of the take-up reel is inversely related to the length of tape on the supply reel. Thus, the length of tape wound upon the supply reel can be determined using well known mathematics. The length of tape measurement is used to properly adjust the tape velocity and tape tension for the most reliable system operation, and for rejecting out of specification tape cartridges. Upon threading of the tape in a tape system, a step is formed in the tape as it wraps upon itself on the take-up reel. Depending upon the conditions, the step may become embossed in the tape. Reliable reading and/or writing may not be possible at or near such a step. The IBM 3480 and 3490 tape systems record user data in 18 parallel tracks, as is known, including two 8-bit bytes and two parity bits (one parity bit for each byte) across the tape width. Because each bit is recorded at a single tape location, the lack of a smooth recording surface at the head-tape interface can result in the irreparable loss of one or more bits. Fortunately, the step decreases with each successive wrap of the tape upon the take-up reel. The amount of tape required to be wrapped upon the take-up reel to decrease the step to a size small enough to permit reliable read/write activity can be determined experimentally. Thus, enough tape is spooled upon the take-up reel to ensure that the recording of data does not begin until such can occur reliably. In the IBM 3480 and 3490 tape systems, the point on a tape at which the recording of user data is first permitted is referred to as the logical beginning of tape (LBOT). The LBOT is defined in the tape system control unit as a specified distance from the tape leader block. In the IBM 3480 and 3490 tape systems, the first user data recorded after a physical beginning of tape (PBOT) is a format identifier (FID). A volume is a physical data unit for convenient handling. In a tape system, the data recorded on a single tape cartridge is considered to be a volume as it can be conveniently mounted in a tape drive. The format identifier (FID) is a pattern recorded on a tape prior to the LBOT. The specific pattern used, also referred to as the "type" of FID, is indicative of the format of data recorded (or to be recorded) after the LBOT. The point on a tape where the FID begins is referred to in the IBM 3480 and 3490 tape systems as the physical beginning of tape (PBOT). The PBOT is defined in the tape device, not the tape system control unit, as a specified distance from the tape leader block. Although a FID is a form of recorded data, it is not user data, and can be reliably written to and read from the tape prior to the LBOT, even in proximity to a step, because of the uniqueness of the recorded pattern. The type of FID is therefore determined by the tape system, upon tape cartridge mounting, prior to the LBOT being positioned in proximity to the transducing head. By identifying the type of FID, a tape system can signal an operator to remove a tape cartridge therefrom if the format of data recorded on the tape is not compatible therewith. The lack of a FID normally indicates a blank volume. When no FID is detected in the IBM 3480 and 3490 tape systems, the tape is rewound from the LBOT to the PBOT and a FID is recorded therebetween upon receiving a command from the host processor to write the data that may include a volume serial identification data (VOLSER). Upon subsequent mounts of the tape, the proper FID should be located. Should the host processor command that a new VOLSER be written (or that the same VOLSER be rewritten), the system writes the FID again. Should the host processor command that the tape be rewound, such an operation occurs under the control of the tape device, not the tape system control unit. Tape device control permits the control unit to logically disconnect from the tape device to direct other tape system operations. Because the PBOT, and not the LBOT, is known to the tape device, such tape device control results in the tape being rewound to the PBOT. To access user data on the tape, the tape must subsequently be advanced past the LBOT. The aforementioned tape movement between the PBOT and the LBOT significantly impacts tape system performance. The IBM 3490E Magnetic Tape Subsystem records data in 36 parallel tracks using a 36-track interleaved read/write transducing head. Data is written in two sets of 18 interleaved tracks, including the same number of bits and bytes per set as in the 18-track format. Beginning at a first longitudinal end of a tape, the first set of 18 tracks of data, the odd set, are written in a first direction of tape movement until the opposite end of the tape is approached. The direction of tape movement is then reversed and the second set of 18 tracks, the even set, are written, interleaved among the first set of tracks, until the first end of the tape is again approached. All IBM tape drive systems currently employ the same magnetic tape cartridge which includes a single reel containing a length of 1/2 inch (12.7mm) wide magnetic tape. To achieve the increased number of tracks, a track written by the IBM 3490E tape system is significantly narrower than a track written by the IBM 3480 and 3490 tape systems. Data written by the IBM 3480 and 3490 tape systems can be read by the IBM 3490E tape system because the tracks are wider than the read/write elements of the IBM 3490E tape system transducing head. However, user data written on the cartridge by the IBM 3490E tape system cannot be read by the IBM 3480 and 3490 tape systems because the tracks are too narrow to be reliably sensed by the read/write elements of its transducing head. A different type of FID is written by the IBM tape systems to distinguish data written in the 18-track format from data written in the 36-track format. The FID information is used by the IBM 3490E tape system to sense and reject operations incompatible with its 36-track format, thereby ensuring that all data written on a tape is in the format compatible with its track density. The IBM 3490E tape system writes a FID in a such a way as to enable the 18-track systems to read such 36-track FID. The IBM 3490E tape system writes the FID tones for the 36 track format on the odd set of 18 tracks as does the previous IBM tape systems. In addition, the IBM 3490E tape system writes logical zeroes on the even set of 18 tracks (with the direction of tape movement reversed) between the PBOT and the LBOT. The logical zeroes on the other set of 18 tracks are recognized as mere noise by the 18 track transducing head during reading of the 36-track FID. In certain situations it is desirable that an 18 track tape drive be capable of reading the serial number of a tape cartridge that is formatted by a 36 track tape drive. The volume serial identification data (VOLSER) is encoded as a string of variable length binary symbols. Conventional error control schemes such as an error correction control ECC or a cyclic redundancy code CRC are not efficient enough to detect and/or correct errors because of the variable nature of the symbols. If a symbol is not detected correctly then the reference of the symbols is lost and all subsequent symbols may be decoded incorrectly. Consequently, an ECC or CRC may not be sufficient to correct all of the errors that may result from the loss of the reference point. What is needed is the ability to write an identifier to the data volume stored on the tape in any track density subsystem that can be readable on any other track density device. In particular, what is needed is a format for a volume serial identifier signal which is written by a 36 track tape drive device and can be reliably read by both an 18 and a 36 track tape drive. In view of the foregoing, it is the principal object of this invention to provide an enhanced tape system. Another object of this invention is to provide a tape system which can distinguish between different media track densities yet provide an error sensitive volume serial identification for varied track density systems. Yet another object is to provide a novel error correction and look-ahead polling procedure that, in addition to detecting the serial number, also detects and corrects error patterns by using the inherent characteristics of the variable nature of the code. A method for encoding and for decoding according to the present invention is defined in appended claims 1 and 6 respectively. A storage system in which a medium having a signal encoded according to the invention is defined in appended claim 14. Machine controlling procedures are disclosed to code and decode data for the reliable sensing of the serial number of a media, especially tape cartridges, having different track densities. Both 18-track and 36-track tape cartridges must be capable of being dependably identified by either drive. The encoding permits decoding that will detect the serial number of the media and correct or at least detect error patterns. A variable length symbol code volume serial identification number (VOLSER) of the Volume ID (VOLID) is encoded with a one ("1") being represented as a "high level" or erase gap signal (ERG) covering the first two units of a group, that is, a one is represented as two units of a high level signal, an ERG, and a zero ("0") being represented as one unit of a high level signal, an ERG, covering the first unit of the group, that is, a zero is represented as one unit of an ERG. The symbols, whether a one or a zero, are separated by an Inter Block Gap (IBG) signal which is a "low level" (IBG) covering four units of the VOLSER group. In the first algorithm, units two and an additional four units later are sampled and the decoder decodes them into a "1" or a "0" or an indeterminate ("?") symbol. An error can be detected or corrected if a single error occurred. If the symbols read are the same, either both a one, both a zero, or both indeterminate, an uncorrectable error is detected. The next symbol sampling is at the eighth unit if the group is detected as a one or at the seventh unit if the group is detected as a zero. VOLID decoding continues after the detected error is corrected. In the second algorithm, an uncorrectable error of the first algorithm can be corrected by sampling the first two "nits of the next group. A decoding table in the flow of the procedure is consulted to determine the symbols of the first and second group. The symbols are assumed to be a certain state when the status of the second group are determined to be in one certain sequence. A parity symbol is added to determine whether the symbols assumed from the certain sequence are correct as determined by the parity count, or whether the symbols should be reversed if the parity count is different from that accompanying the VOLSER. The scope of this invention is defined by the appended claims, and how it can be carried into effect is hereinafter particularly described with reference to the accompanying drawings in which: FIG. 1 is a schematic block diagram of a tape system according to the invention; FIGS. 2A and 2B are a schematic block diagram of the control unit of FIG. 1 in greater detail; FIGS. 3A, 3B and 3C show a section of magnetic tape prepared according to the present invention; FIG. 4 shows a flow chart for the encoding of a serial number in the section of tape shown in FIG. 3C; FIG. 5 shows an encoding of a serial number according to the flow chart of FIG. 4; FIG. 6 shows a flow chart for the decoding of the serial number in the section of tape as encoded in FIG. 4; and FIGS. 7A and 7B show a flow chart for the decoding of the serial number according to an error correction procedure from FIG. 6. The present invention can be used with any processing device that uses a rewritable and erasable media where a volume identifier or any critical subset of data is needed that can be encoded and decoded reliably in different track density devices. It may be used in the recording of data using a very high track density magnetic head (36 tracks in the preferred embodiment) that is readable by a lower track density magnetic head (18 tracks in the preferred embodiment). Preferably, it is used with a magnetic media and, in particular, with a magnetic tape media stored in a casing, such as a cartridge or cassette. The described embodiment is for use in an IBM 3490E tape subsystem. It should be evident that any other type of subsystem may be used with the present invention. The invention will be described as embodied in magnetic tape systems for use in data processing environments. In the preferred embodiment, the tape systems discussed are the IBM 3480, the IBM 3490, and the IBM 3490E Magnetic Tape Subsystems upgraded as described according to the present invention. A data processing system is controlled by at least one host central processing unit (CPU) 10 (FIG. 1) to store, retrieve and manipulate data. The data processing system includes at least one control unit 12 and at least one device, in this case a magnetic tape recording device 14. The control unit 12 accepts the commands and data from the CPU 10 via channel adaptors 16, and controls itself and the devices accordingly. The device may be a magnetic disk or optical recorder. The magnetic tape recording device 14 includes means for controlling the handling of media in the form of tape 22, a motion control 18 connected by a cable 19 to a command unit 30 in the control unit 12, a drive 20 for transporting the tape 22 past a magnetic head 24 for writing and reading data to and from the tape, and a data control 26 providing read and write circuits to operate the head 24 and connected by a cable 27 to a format control 28 in the control unit 12. The format control 28 is connected by a data cable 29 to the channel adapter 16. The command unit 30 takes commands transmitted to the channel adaptors 16 by the hosts 10 and controls the operation of the drive 20 via the motion control 18 and the flow of data to and from the channel adaptors 16 through the format control 28 and the data control 26. The command unit 30 includes a status store 40 (FIG. 2A), a microprocessor 42, a control store 44 and a device adapter 46. The format control 28 (FIG. 1) includes a buffer control 48 (FIG. 2A) which operates under control of the microprocessor 42 to store the data to be written on tape 22 by a write formatter 50 connected by cable 51 to a write circuit 52 (FIG. 2B) which, in turn, is connected to the head 24. The buffer control 48 (FIG. 2A) also controls the data flow on a read cycle to store the data processed by a read circuit 54 (FIG. 2B) from the head 24 and transmitted to a read detect circuit 56 (FIG. 2A) over a connecting cable 58. The read detect circuit 56 is connected to a read formatter 60 which in turn is connected to the buffer control 48. The drive 20 (FIG. 1) is under control of the motion control 18 to accomplish the controlled transporting of the tape 22 past the head 24 to accomplish the reading and writing of the magnetic transitions form and to the tape 22. The tape recording device 14 includes a supply reel motor 62 (FIG. 2B), a tachometer control 64, a carriage 66, and a carriage control 68, a take-up reel 70, a take-up reel motor 72, tachometer control 74, a threading mechanism 76, an idler wheel 80, compliant tape guides 82, and a tape tension control 84 along a tape path 78. The tape 22 is contained in a cartridge 86 placed into the carriage 66. The cartridge 86 includes a supply reel 88 and a leader block 90 for threading by the threading mechanism 76. In the drawings, like reference numbers indicate like parts and structural features in the various figures of the drawing. Additional description of the tape system may be found in US-A-4,125,881, US-A-4,435,762, US-A-4,467,411, US-A-4,334,656, US-A-4,339,936, US-A-4,389,600, US-A-4,406,425, US-A-4,685,005, US-A-4,452,406, US-A-4,454,282, US-A-4,525,424, US-A-4,568,611. The head 24 may be an 18-track magnetic transducing head or a 36-track interleaved magnetic transducing head, depending upon the particular tape system. Each type of head writes a unique type of FID on the tape 22 to indicate the recording format (18-track or 36-track) of data written thereby. After the leader block 90 (FIG. 3A), a first portion of the tape 22 does not contain any data or any signals which can be used to identify the tape 22 and its cartridge 34. This 'no data' section is the portion of the tape 22 that is wrapped over the takeup reel 70 to cushion the succeeding length of tape from any takeup reel irregularities. In the IBM 3490E Tape Drive the data is placed onto eighteen odd and eighteen even tracks, the odd tracks being recorded at one time in the direction of arrows 100, and the even tracks being recorded in the opposite direction, that of the arrows 102. The recording starts at the physical beginning of tape (PBOT) with a format identifier mark (FID) (FIG. 3B). The remainder of the tape length to a logical beginning of tape (LBOT) is set by a tape volume label standards ANSI X327-1978 level 4 for the IBM 3480/3490 Tape Drives, as updated to include a volume identifier as the volume ID (VOLID) section. The FID mark is recorded at the beginning of the tape 22 after the PBOT when a write command is issued while the tape is positioned at either the beginning of the tape or the logical beginning of the tape. When the tape is positioned at the LBOT, the control unit 12 repositions the tape so that the FID mark begins at the PBOT. The FID mark provides the subsystem with an indication of which format is being used to record the data on the tape. The subsystem uses the mark to determine if it is capable of reading the data or adding data to the end of the previously written data. The VOLID format (FIG. 3C) includes a volume serial number (VOLSER) section 104, an accessibility byte section 105, a label standards level section 106, an ASCII flag section 107, a cyclic redundancy checking (CRC) section 108 which is an error checking section, and a termination symbol section 109. The termination symbol of section 109 is a totally different symbol from any standard one or zero symbol. Generally, the termination symbol is a standard ERG followed by an IBG. The termination symbol is used as a "loss of synch" indication which is an error determination showing that whatever was read previously in the VOLID is incorrect. The VOLID region is written as the first record on the volume recorded on the tape. The volume identifier, the VOLSER, is used by the host operating system to determine the disposition of the data recorded on the tape. The customer data in step 0 according to the afore-mentioned tape volume label standards contains a VOL1 section which is the first four bytes, bytes 0 to 3, encoded in either ASCII or EBCDIC. This section starts the recording of the identification of the data recorded on the tape. The VOLSER covers bytes 4 to 9 with each byte corresponding to a character in the VOLSER recorded in either ASCII or EBCDIC. Once the VOLID region is written it is not changed by the control unit unless block zero is rewritten for the entire cartridge. With the present invention, the VOLID region will be capable of being sensed by all tape drive devices using the cartridge of this design. If the cartridge mounted on the drive does not have a valid tape format ID in the FID region, it is considered to be a void tape. The VOLID region is recorded immediately following the FID mark and precedes the LBOT. According to the present invention the VOLID and especially the VOLSER is composed of a set of specially defined patterns of marks which encode the volume identification information. The 18-track format data written on the tape 22 may be read by a 36-track tape system. The problems arise when it is necessary to read the VOLID information from a 36-track tape system in an 18-track tape system. The tape cartridge 34 is designed to be inserted into either an 18-track tape system or a 36-track tape system. All tape systems must be able to distinguish between track density and tape recording formats to minimize attempts to access data on tapes incompatible therewith. It is necessary to be able to identify the volume serial (VOLSER) information from either density track system on either track system. The difficulty arises when a 36-track tape with its very narrow tracks needs to have its VOLSER information sensed by the 18-track magnetic head. Reference is made to the aforementioned tape volume label standards for a more complete description of the accessibility byte and the label level standards section. The description of the present invention proceeds with the description of the advantages of the features now included in the VOLSER and the termination symbol sections. The encoding of the VOLSER information for the host is a machine executed procedure which starts by checking in step 110 (FIG. 4) whether VOL1 is encoded in ASCII. If it is, the procedure continues along the Y line to step 112 which sets the ASCII flag equal to a one "1" symbol for the sixty fifth symbol 64 in section 107 (FIG. 3C). If not, the procedure continues along the N line to step 114 where the procedure checks whether VOL1 is instead encoded in EBCDIC. If VOL1 is not encoded in either ASCII or EBCDIC, the N line is taken to step 116 which shows that a VOLID region will not be written on this tape. If the VOL1 information is encoded in EBCDIC rather than ASCII, the ASCII flag symbol in section 107 is set to a zero "0" symbol in step 118. The procedure continues from step 112 or step 118 to write the VOLSER information in section 104 and information in sections 105 and 106 into a VOLID table in memory using the first sixty four symbols 0-63 in step 120. The pattern used is shown in FIG. 5. The encoding procedure continues in step 122 where the error checking symbols of the CRC system are built and occupy symbols 65 to 72 in section 108 (FIG. 3C). The data information to be placed on the tape is encoded next in step 124. The importance of this invention is shown in the format that the VOLSER information is recorded on the tape. In the format symbolically shown in FIG. 5, the pattern is 1011001111 for the first ten symbols of the 48 symbol VOLSER. The VOLSER is a variable length identifier signal in that the symbols for "1" and "0" cover different numbers of units and thus the number of units covered by the 48 symbols varies with the mix of the ones and zeros. Referring now to FIG. 5, a variable length symbol code group volume serial number VOLSER of the Volume ID (VOLID) is encoded with a one ("1") being symbolically represented as a high level covering a first two units of a group, that is, a one is represented as two units of an erase gap signal ERG, and a zero ("0") is represented as a high level signal covering a first one unit of a group, that is, a zero is represented as one unit of an ERG. Successive symbols, whether a one or a zero, are separated by an Inter Block Gap (IBG) signal which is symbolically shown as a low level covering four units of the VOLSER group. The high level and low level signal represented in FIG. 5 are in actuality tones recorded. The even tracks are not used the VOLID region and are written with a high frequency signal that causes erasure of even tracks so that when the 18 track drive reads the 36 track drive, it senses the data on the odd tracks only. The odd tracks are used in encoding the VOLSER. The 18 odd tracks of the 36 tracks are divided in six groups of three tracks each when the VOLSER is recorded. The ERG and IBG symbols are represented by different active tones in the different groups. For instance, The IBG mark is an inactive tone in zones A, D and F and an active tone in zones B, C and E. The ERG mark is represented by an active tone for zones A, D and E. Zone A covers tracks 1, 13 and 25 for instance. Zone B covers tracks 3, 15 and 27. The other zones cover other tracks. The tracks covered by each zone does not form a part of this invention and thus will not be completely described herein. The information is given to show the implementation in an IBM 3490E Tape Drive. In FIG. 5, one symbol appears in one group of units. The first symbol is a "1" and therefore a first group G1 covers six units, two units of an ERG signal shown as a high level in FIG. 5 and four units of an IBG signal shown as a low level. The second group is a "0" and therefore a second group G2 covers five units, one unit of an ERG signal followed by four units of an IBG signal. All of the groups G1 to G10 cover a variable number of units depending upon the symbols of the VOLSER. The first embodiment of a decode procedure for decoding the VOLSER signal is shown in FIG. 6. The first step 140 in the decode procedure is to sample the second unit of the group for a first status determination. The first status determination is then obtained in step 141. The next step 142 is to sample the fourth unit after the first status determination. Next, in step 144, the second status determination is obtained. A decision step 146 then determines whether the first status is equal to the second status determination. If the first and second status are both equal to an IBG, or both are equal to an ERG, or both are equal to an indeterminate status, i.e. cannot be sensed correctly, an error has occurred. If an error correction procedure is not included, step 150 follows which terminates the process. If an error correction procedure follows, decision step 148 is included to carry the process to FIG. 7A. If the first status determination is not equal to the second status determination, the process continues in a decision step 152 where whether the first status is equal to ERG is determined. If it is not, the first status is either an IBG or is of indeterminate status, and a further decision step 156 follows, in which a determination is made whether the second status is equal to an IBG or not. If the second status is not an IBG, i.e. is either an ERG or of indeterminate status, then the symbol is determined or corrected to be a "0" in step 154. The process then continues to step 160 of the sampling of the next group. If the first status sensed is an ERG, step 158 follows where the symbol is determined to be a "1". If the second status is an IBG, and the first status was of indeterminate status, i.e., not an ERG, then step 158 also follows and the symbol must be a "1". After the step 158, the process continues to step 160 where the next group unit is sampled. The next group starts after the ending of the IBG signal which, after a symbol equal to a "1" determination, is at the seventh unit. Two units are added and the first status determination is made for the next group in step 161. The process continues to a decision step 162 where the presence of the last group is determined. If this is the last symbol to be determined and there is no error correction procedure, the decode will end the procedure in step 164. If an error correction procedure is included, decision step 163 will be included in the process to carry the process out to FIG. 7B. If it is not the last symbol to be determined, the flow continues from the decision step 162 to the step 142 for the second status determination of the next group. If the symbol "0" is determined in step 154, step 160 follows. In step 160, after a "0" symbol is sensed, the next group of units will start at the sixth unit so one unit must be added and the first status determination made for the next group in step 161. The process then continues in the decision step 162 for either the return to the step 142 if more symbols are to be sensed or to the step 164 to end the decode procedure unless the error correction procedure of FIG. 7B is included as determined in the decision step 163. Using the symbols of the VOLSER as shown in FIG. 5 in the decode procedure of FIG. 6, the first status determination of steps 140 and 141 will find an ERG status at unit 2 of the first group G1. At the fourth unit after the first status determination in steps 142 and 144, the sixth unit status is an IBG status, a low level shown at unit six in FIG. 5. The first status is not equal to the second status, so no error is detected in the decision step 146 and the no line is taken to decision step 152. The first status is an ERG signal so the yes line is taken to the step 158. The step 158 shows that the symbol sensed is a one "1" symbol. The process continues to the step 160 where the next group G2 is to be determined. Two units are added to the sixth unit which was sensed for the second status determination as an ERG status was found at the second unit of the group. The first status determination of an IBG is made on the eighth unit (FIG. 5) in the step 161. This is not the last group, so the no line is taken to the step 142. The fourth unit after the eighth unit, the twelfth unit, is sensed in step 142 and the second status determination is an ERG signal (FIG. 5) for the step 144. No error has occurred as the first status is not equal to the second status as is determined in the decision step 146. The first status is not an ERG signal so the no line is taken from the decision step 152 to the decision step 156 where whether the second status determination is equal to IBG is questioned. The second status has been determined to be an ERG so the no line is taken from the decision step 156 to the step 154 which shows that a '0' symbol has been determined to be the symbol of the second group G2. The process continues to the step 160 where the next group G3 is sampled by sampling the first status determination of the plus one unit or the thirteenth unit of FIG. 5. The thirteenth unit, the second unit of group G3 is an ERG status, see FIG. 5. Again this is not the last group and the procedure continues from the decision step 162 to the step 142 to sample the fourth unit of group G3 after the second unit of Group G3, which is the seventeenth unit. The seventeenth unit has an IBG status. The procedure continues until the last group G48 is sampled and the decision step 162 yes line is taken to the step 164, ie, no correction procedure of FIGS. 7A and 7B is present, to end the decode process. It should be evident that any other number of groups could be included for the VOLSER representation shown in FIG. 5. A lesser number of groups would occur for a lesser number of symbols in the VOLSER. More units could be added to create more groups and thereby increase the number of symbols in the VOLSER. The number shown in FIG. 5 should not be taken as a limitation of the VOLSER symbols. The decode embodiment of FIG. 6 includes some error correction as is discussed. The addition of the procedures of FIGS. 7A and 7B corrects the errors when the first and second status determinations of one group are equal. The addition of the error correction is shown in the decision steps 148 and 163 of FIG. 6. If the procedures of FIGS. 7A and 7B is included, the yes line will be taken from the decision step 148 to a first step 169 (FIG. 7A) in which the group number under consideration for the correction of an error is stored. The process then continues to step 170 which states that the unit of the second status determination plus one should be sampled in a step 172 where a third status determination is made. The second status determination of the first group G1 is at unit six. Thus the third status determination for group G1 is at unit seven. The third status determination unit plus one is then sensed in a step 174 and a fourth status determination of unit eight is done as called for in a step 176. If either of the third and fourth status determinations is indeterminate (?), as queried in a decision step 177, the procedure terminates in step 175. The error cannot be corrected. If neither of the third and fourth status determinations is indeterminate, the procedure continues to a decision step 178 where it is determined whether the third status is an ERG. If the third status determination is not an ERG, the procedure continues in a step 180 where it is determined if the fourth status is an IBG. Then, if the fourth status is not an IBG, the procedure continues to a step 182 which shows that this status sequence cannot be corrected and continues to a step 184 where the process is terminated because the error cannot be corrected by this sequence. If, however, the fourth status is determined to be an IBG, the procedure goes to a step 186 where the stored group symbol is determined to be a '0' symbol. As the third status has already been determined through this flow, the third status being the status of the second group which is the group following the error group, the status of the second symbol is already determined also to be a '0' symbol in step 188. From the step 188, the procedure returns to the step 160 (FIG. 6) where the next, or third, group status is sampled by going to the group following the stored group plus one unit for the first status determination of the third group in step 161. The procedure of FIG. 6 can be continued for the remaining symbols of the VOLSER. If the third status determination in decision step 178 (FIG. 7A) is an ERG, the procedure continues to a decision step 190 where the fourth status is questioned. If the fourth status is not an ERG after the third status was determined to be an ERG, the procedure leads to a step 187 where the stored group symbol is assumed to be a zero "0", and the stored group plus one symbol is assumed to be a one "1" in step 189. The symbols are set to the determination, because the parity status will be checked later and if the assumption is incorrect, the symbols will be reversed as the parity will show that the assumption was incorrect and the opposite is in fact correct. This parity check is shown in FIG. 7B. The group number of the stored group and the stored group plus one will be the groups that have their symbols reversed. A one is added to the error signal in step 192. The procedure continues to a decision step 194 which determines whether more than one such error has been corrected. If so, the procedure goes to a step 196 where too many errors have occurred, i.e., more than one, and the procedure is terminated in step 198. If more than one error is sensed in the decode procedure, the reading of the VOLSER cannot be determined to be reliable and any further decoding may lead to an incorrect VOLSER. If not more than one error is sensed in step 194, the procedure goes back to step 160 (FIG. 6). If in the decision step 190, the determination is that the fourth status is an ERG, the procedure goes to a step 200 and a step 202 where the first and third status determination are found to be ERGs and thus the symbols of the first stored group and the group following the stored group are both a "1". The procedure then continues back to the step 160 (FIG. 6). The step 160 provides for the sampling of the next group of units and the step 161 determines the first status determination of the second unit of the next group. The decision step 162 determines whether the last group is having its status determined and ends the procedure if it is, or returns the procedure to the step 142 to sample the status of the next group of units. The last group G48 (FIG. 5), cannot be corrected using the flow procedure of FIGS. 7A and 7B as there is no "group following the stored group" to assist in the correction process as is necessary in that flow procedure. This can be solved by adding another group of units, not for its symbol, but to assist only in the correction procedure. After the last group has its symbol determined by the procedure (FIG. 6), the decision step 162 determines that this is the last group and the procedure goes to the decision step 163. If the error correction procedure (FIGS. 7A and 7B) is included in the subsystem, the procedure continues to decision step 220 (FIG. 7B) where the procedure checks whether an error symbol was checked using the error correction procedure of FIG. 7A. If there is no error symbol, ie, the error symbol is zero, the procedure goes to a step 222 to end the procedure. If there has been one and only one error corrected, the procedure goes to a step 224 to compute a parity P1 from the received, that is, just read, groups of units. The symbols of the odd groups are used to compute the received parity P1. A step 226 then checks the parity that accompanied the received groups, a received parity P2, the parity in symbol 64. The procedure continues to a decision step 228 where P1 is checked for its status relative to P2. If P1 is equal to P2, then the symbols found in the correction procedure for the stored group and the stored group plus one are correct, the stored group symbol is equal to "0" and the stored group plus one, the group following the stored group, symbol is equal to "1". The procedure goes on to end in step 222. It the parity status of P1 is not found to be equal to that of P2, the procedure goes to a step 232 where the stored group symbol is reversed and set equal to a "1" and then to a step 234 where the stored group plus one symbol is also reversed and set equal to a "0". The procedure then ends in step 222. The symbols are reversed because the procedure of FIG. 7A made an incorrect assumption and the status of the parity read as compared to the status of the parity accompanying the symbols should be that the opposite symbols are the correct symbols because the opposite symbols would make the parity of both P1 and P2 the same. A decoding table of the nine possibilities that arise from the decoding procedure of FIGS. 6, 7A and 7B will now be discussed. The output symbols as a result of the sampling of units two and six of the first group G1 are equally applicable to the second and sixth units of any succeeding group (FIG. 5). If the status of the first status determination of the procedure of FIG. 6 is determined to be an ERG status, then whether the status of the second status determination of FIG. 6 is an IBG status or an indeterminate status, i.e., cannot be read, then the output symbol is a "1". If the status of the first status determination is indeterminate but the status of the second determination is an IBG, then the output symbol is also a "1". If the first status determination is an IBG status, the output symbol is a "0", whether the second status is determined to be an ERG status or an indeterminate status. If the first status determination is indeterminate but the second status determination is found to be an ERG status, then the output symbol is a "0". As stated in the description of FIG. 6, if the first and second status determinations are the same, the outcome of the embodiment of FIG. 6 is indeterminate. However, using the error correction procedure of FIGS. 7A and 7B, the third and fourth status determinations of succeeding units of the next group can provide outputs of all but one status reading by sampling the status of the following group. The output of the decoding procedure of FIGS. 7A and 7B uses the status determinations of the group following the group where the error is detected to correct the error and also determine the status of the following group. The group number of the group that has the error is stored. If the third and fourth status determinations are both ERG status, then the output symbol of the stored group is a "1" as is also the output of the group following the stored group. If the third and fourth status determinations are both an IBG status, then both the stored group and the group following the stored group have output symbols equal to "0". If the third status determination is an ERG status and the fourth status is an IBG, then the output symbol is first assumed to be a "0" for the stored group and the group after the stored group is assumed to be a "0". The final symbol of the stored group and its group following the stored group is determined by the status of the parity symbol which is the required extra symbol for the error correction procedure of FIG. 7B. The parity system reads all the ERG status of the odd groups of the VOLSER. The parity system adds a one if the count is odd and a zero if the count is even. If the computed parity count P1 is the same as the received parity P2, the symbol output of the first stored group is a "0" and the symbol of the group following the stored group is a "1". The symbol outputs are reversed if the parity found in the count as read in the decoding is not the same as that stored from the encoding of the VOLSER and stored in the symbol 64. If the third status determination is an IBG and the fourth status determination is an ERG, then the output is not correctable and decoding must be terminated. Even when multiple errors occur, error detection is still possible because the code of the present invention is of a variable length. The only exception is that the procedure is terminated when a second error occurs of the type where the status determinations are equal, the error as determined in the decision step 146 of FIG. 6. A serial number generally includes a fixed number of symbols and the subsystem can count the number of symbols read and compare with the number of symbols of the recorded serial number. The present invention provides a format that produces a reliable serial number decoding together with error detection and correction. There is an encoding dependency for the error correction decode of the embodiment shown in FIGS. 7A and 7B. The last group with the encoded symbol is not correctable, refer to the symbolic encoding of a VOLSER as is shown in FIG. 5. If an error occurs in the last group, there is no further group to be used in the correction procedure of FIGS. 7A and 7B. If an error occurs, for instance, in group G48 of FIG. 5, there is no "group G49" to assist in the correction of the error in group G48. To solve this, a boundary group (group G49) can be added of a known symbol, either a one or a zero. Then the error correction procedure of FIGS. 7A and 7B can be entered to correct the group G48 error. In this instance, the error correction can occur over the entire data stream. The symbol of the last group G48, for instance, could be repeated in the boundary group G49. The invention has been described for use in a magnetic tape system, but could be embodied in any applicable peripheral storage system employing removable, multitrack, sequentially recorded storage media. Also, different types of FIDs, VOLSERs, transducers, recording formats, means for determining the characteristics of the storage media, etc. may be used.

Claims: A method for the encoding of a critical subset of data stored on a medium, characterised in that the critical subset of data includes a plurality of units with a first logical state being represented as a first special signal (ERG) covering the first two units of a group (G) of six units, and a second logical state being represented as the first special signal (ERG) covering the first one unit of a group (G) of five units, both followed by a second special signal (IBG) which covers four units. A method according to claim 1, wherein the critical subset is an identification signal (VOLSER). A method according to claim 1 or 2, wherein the first logical state is that of "1", and the second logical state is that of "0". A method according to any preceding claim, wherein the critical subset of data includes a plurality of successive groups, of either six or five units. A method according to claim 4, wherein each group identifies a symbol. A method for decoding a symbol for a group encoded by the method according to any preceding claim, including the steps of sampling a first status of the second unit of the group, sampling a second status of a unit four units following the second unit of the group, and decoding a symbol of the group using the first status and the second status. A method of according to claim 6, including the step of preparing for the sampling of a symbol from a succeeding group by adding two units to the unit sampled for the second status of the preceding group if the symbol sampled in the preceding group is the first logical state, or adding one unit to the unit sampled for the second status of the preceding group if the symbol sampled in the preceding group is the second logical state. A method according to claim 6 or 7, including, after the sampling step to obtain the second status, the step of determining whether an error occurred because the first status is equal to the second status, and if they are, terminating the process. A method according to claim 6 or 7, including, after the sampling step to obtain the second status, the step of determining whether the first status is equal to the second status, and if they are, storing a group number of the group where the first status is equal to the second status and sampling the status of the first and second units of the following group to determine the symbols of the stored group and the group following the stored group. A method according to claim 9, wherein, if the third and fourth status sampled the second special signal, the process is terminated and the symbols of the stored group and the next group to the stored group are not determined. A method according to claim 9 or 10, wherein the stored group symbol is assumed to have a second logical state and the group following the stored group is assumed to have a first logical state if the third status is found to include the first special signal, and the fourth status is found to include the second special signal. A method according to any of claims 6 to 11, including the step of encoding a parity symbol with the encoding of the critical subset of data, the parity sampling the symbols of the odd groups of the critical subset. A method according to claim 12, including the steps of determining whether the first status has been determined to be equal to the second status in a preceding step, computing a parity from the symbols of the odd groups, determining whether the computed parity is equal to the encoded parity, and terminating the process if the computed parity is equal to the encoded parity, otherwise setting the stored group symbol equal to a first logical state and setting the symbol of the group following the stored group equal to a second logical state. A peripheral storage system for reading data on a removable data storage medium (22) mounted therein, the data storage medium having a critical subset of data stored on the medium in one of a plurality of locations thereon, characterized in that the critical subset of data (VOLSER) includes a plurality of units in a group (G) with each group identifying a symbol and a first logical state being represented as a first special signal (ERG) covering the first two units of a group of six units, and a second logical state being represented as the first special signal (ERG) covering the first one unit of a group of five units, both followed by a second special signal (IBG) which covers four units of the group. A system according to claim 14, wherein the first logical state is that of "1", and the second logical state is that of "0". A system according to claim 14 or 15, wherein the critical subset of data is an identification signal. A system according to claim 14, 15 or 16, wherein the critical subset of data includes a plurality of groups, each having a symbol. A system according to any of claims 14 to 17, wherein the data is read by a sequential access method.

Inventors: BASHAM ROBERT BEVERLEY, KISER JONATHAN MASON, PARAPOURIAN ARA SARKIS, BASHAM, ROBERT BEVERLEY, KISER, JONATHAN MASON, PARAPOURIAN, ARA SARKIS
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1992
Main classification: G11B20
IPC codes: G06F3, G11B27, G11B20, G11B15