Abstract:
Apparatus and method for storing magnetic tape format data separately stores the tape data from the tape-related information, such as file markers and interblock gap signals. The data and data-related signals are stored in separate finite length buffer memories, which when filled to a predetermined capacity are transferred to a write-once read-many (WORM) optical disk, and stored in contiguous locations beginning at one end of the addressable space on the optical disk. A separately generated tape record map list, including the WORM optical disk address of the aforementioned tape data and tape-related signals is created and stored on the optical disk in sequentially contiguous locations corresponding to sequential tape reel numbers beginning at the opposite end of the addressable space on the optical disk. The data thus recorded on the WORM optical disk is recoverable in the original magnetic tape format by recomposing the data stored in the WORM optical disk in the original magnetic tape data format. Furthermore, the conversion of data according to the present invention can be adapted to a variety of other formats to be stored to and recovered from the WORM optical disk format.

Description:
FIELD OF THE INVENTION 
     The present invention relates to data conversion methods and apparatus and, in particular, to methods and apparatus for converting data from a magnetic tape format to the optical disk format. 
     BACKGROUND OF THE INVENTION 
     The write-once read-many (WORM) optical disk, having storage capacities in the order of gigabytes, offers a high storage capacity medium which provides ideal archival storage. Previously used archival storage media, such as magnetic tape medium allowed the system to erase or otherwise modify the data previously stored on the tape medium. However, the non-erasable nature of the WORM optical disk creates a basic incompatibility with the erasable characteristic of the magnetic tape, or other similar erasable medium. Therefore, the software operating system which must transfer information to and receive information from the archival storage medium must be significantly modified to incorporate the non-erasable WORM optical disk in place of an erasable storage medium. However, in view of technical or economical factors, the adaptation of existing operating systems to accommodate the new WORM storage media may not be practical without replacing either or both system hardware and software. Therefore, due to technical and economic constraints existing systems typically could not incorporate the advantages offered by the higher storage capacity WORM optical disk system. 
     SUMMARY OF THE INVENTION 
     The apparatus and method according to the present invention, when connected to a computer system or an existing magnetic tape drive, permits the data, in magnetic tape data format, to be stored on the WORM optical disk system without imposing any hardware or software modifications in the systems to which it is attached. The disclosed apparatus responds to host computer systems as would a conventional 7- or 9-track magnetic tape drive. The data stored in and read from the WORM optical disk as seen by the host computer is in the same format as magnetic tape data. Data from the host is received in the magnetic tape format and is stored in a data buffer having a finite length, typically 128K bytes. The non-data, related information, such as file marks, interblock gaps and block length information, is separately stored in an associated buffer and formatted to form a tape record map (TRM), whereupon it too is stored, typically interspersed between with 32 megabyte long blocks of the data from the 128K byte data buffer to the WORM optical disk. The TRM and data information is stored on the WORM disk beginning at the innermost end of the addressable space on the WORM optical disk storage medium. Furthermore, a tape record map list (TRML) is created, specifying the addresses of the TRM stored on the optical disk, and beginning at the outer end of the space addressable on the WORM optical disk. Data stored on the WORM may be read from the WORM disk and reformatted into the magnetic tape data format by reversing the above-described process perfectly. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     These and other features will be better understood from the following detailed description, taken together with the drawing, wherein: 
     FIG. 1 is a block diagram of one embodiment of the present invention; 
     FIG. 2 is a block diagram of one embodiment of a tape record map list; 
     FIG. 3 is a block diagram of one embodiment of a tape record map header information packet (IP) according to the embodiment of FIG. 1; 
     FIG. 4 is a block diagram of one embodiment of a file mark IP in accordance with the present invention; 
     FIG. 5 is a block diagram of one embodiment of an inter-block gap IP in accordance with the present invention; 
     FIG. 6 is a block diagram of one embodiment of a data block relocation IP in accordance with the present invention; 
     FIG. 7 is a block diagram of one embodiment of a corrupt data IP in accordance with the present invention; 
     FIG. 8 is a block diagram of one embodiment of an erase IP in accordance with the present invention; 
     FIG. 9 is a first illustration of a TRM in accordance with the present invention; 
     FIG. 10 is a second illustration of a TRM in accordance with the present invention; 
     FIG. 11 is a third illustration of a TRM in accordance with the present invention; 
     FIG. 12 is a fourth illustration of a TRM in accordance with the present invention. 
     FIG. 13 is a flow chart of one embodiment of the disc write process according to the present invention; and 
     FIG. 14 is a flow chart of one embodiment of the disc read process according to the present invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The block diagram 50 of one embodiment of the present invention is shown in FIG. 1 and generally operable to the flow chart 200 of FIG. 13, wherein the magnetic tape format data is provided by a magnetic tape drive 52 or by a host computer system 54 at step 202. The magnetic tape drive is typically known in the computer art as a nine or seven track unit such as models TU-80 manufactured by DEC. The information in the magnetic tape format is transmitted by the host computer 54 over signal leads 56 and is received by a data buffer 62, having a predetermined capacity selected in the present embodiment to be 128 kilobytes. The information in the magnetic tape format includes data and non-data information, such as a file mark (FM), inter-block gap (IBG) having a specific gap length and record size information and including specific coding of the information, such as file marker (FM) codes as illustrated by FIGS. 3-8, which are assembled to form a tape record map (TRM) illustrated in FIGS. 9-12, at step 204. The TRM information is stored and forms a &#34;pseudotape&#34;  in the buffer 64 which, in the present invention, has a capacity of 1 kilobyte. The storage capacities of the data buffer 62. The data stored may comprise a block length of 128 kilobytes (128K bytes) and the related non-data information stored in the &#34;pseudotape&#34; buffer 64 may comprise from 2 to 22 bytes of information, as illustrated by FIGS. 3 through 8, such that a TRM created in the buffer 64 (at step 204) corresponding to a particular block of data in the data buffer 62 will be less than 100 bytes. As succeeding blocks of data are transferred from the magnetic tape drive 52 or the computer 54 to the data buffer 62, the data buffer 62 and the pseudotape buffer 64 begin to fill up, eventually reaching their respective maximum capacity as determined at steps 206 and 212. When each reaches its capacity, the reformatter controller 66 causes the data to be transferred from either the data buffer 62 (at step 208) or the pseudotape buffer 64 (at step 214) to a write-once read-many (WORM) optical disk drive 70 on data path 68. Data from the data buffer 62 and pseudotape buffer 64 are contiguously and sequentially stored by the WORM disk drive 70 on a WORM disk 72, beginning at the first free (unwritten) data location on inside end of the sequentially accessed data area. Thus, on the WORM disk 72 the 1K blocks of data from the pseudotape buffer are interspersed among the larger, 128K blocks of data from the data buffer 62. The WORM drive 70 in the present embodiment is a model 1000 manufactured by Optimem, Sunnyvale, Calif., wherein the related manufacturers&#39; information is incorporated herein by reference. 
     Each side of the optical disk 72 typically has storage capacity equal to many reels of magnetic tape. A directory including identifiers for each tape (reel) stored in the WORM disk 72 is provided for each &#34;volume&#34; or reel in a sequentially written directory 74 and identifiers are stored contiguously (step 220) at the opposite end, in this instance the outer edge of the WORM disk, beginning with the first free (unwritten) location. Stored within each directory, provided at step 218, is a tape record map list (TRML) 76 created by the reformatter controller 66 previously generated at step 216, which provides the WORM address of the stored TRM(s) relative to that &#34;reel&#34; of tape. A typical TRML is illustrated in FIG. 2 and discussed in more detail below. 
     Concurrent with the transfer of data on data leads 56, control signals on lead 58 are provided to the controller 66 which controls the data transfers to and from buffer 62 and 64 as well as generating specific data-related codes stored in the Pseudotape buffer 64, illustrated by FIGS. 3-8 from the magnetic tape drive commands illustrated by Table 1 below. The commands are illustrative of typical magnetic tape drive 52 commands. A typical magnetic tape drive comprises a DEC model TU-80, whose related manufacturers&#39; information is incorporated herein by reference. 
     
                       TABLE 1______________________________________COMMAND      LOOP    REV    WRT   WFM   ERASE______________________________________Read Forward*        L       L      L     L     LRead Reverse*        L       H      L     L     LWrite*       L       L      H     L     LWrite File Mark        L       L      H     H     LErase (Variable)        L       L      H     L     HErase (Fixed)        L       L      H     H     HData Security Erase        H       L      H     H     HSpace Forward        L       L      L     L     HSpace Reverse        L       H      L     L     HControlld Backspace        L       H      H     L     HFile Search Forward        L       L      L     H     LFile Search Reverse        L       H      L     H     LFile Search Forward        L       L      L     H     H(Ignore Data)File Search Reverse        L       H      L     H     H(Ignore Data)Read Sense   H       H      L     L     HData Loopback        H       H      H     H     H______________________________________ L = Low = False H = High = True *FLGAP is also strobed during these command transfers, indicating the setting of a Long Gap Length 
    
     The reformattor controller 66 code generator 65 generates the codes illustrated in FIGS. 3-8, the address generator 67 generates the above-mentioned TRML and the buffer control 63 providing WORM disk drive 70 control signals, illustrated below in Table 2, representing the command signals on signal paths 69 for a model 1000 WORM disk, drive manufactured by Optimem, wherein the related manufacturer&#39;s information is incorporated by reference. 
     
                       TABLE 2______________________________________BITBYTE  7       6      5     4    3    2    1    0______________________________________0     Operation Code1     Logical Unit Number                RESERVED2     Logical Block Address if required (MSB)3     Logical Block Address if required4     Logical Block Address if required5     Logical Block Address if required (LSB)6     RESERVED7     Transfer Length if required (MSB)8     Transfer Length if required (LSB)9     Control Byte______________________________________ 
    
     As illustrated in the flow chart 250 of FIG. 14, data stored on disk 72 is returned at step 266 to the host computer 54 or magnetic tape drive in the magnetic tape data format as follows. The computer 54 sends a reel number request which is received by the reformatter controller 66, which in turn searches at step 252 for a disk directory corresponding to the reel number. The search occurs by sequentially reading the directory from the directory end (outer edge) backwards until the last written directory is found, and then reading in the opposite direction to find the last directory code corresponding to the selected reel number. According to the present invention, reels of data which have been erased, rewritten or otherwise modified have been assigned a new reel directory which is written, in sequence, after any previous directory (the original modified reel). Therefore, the reformatter controller 66 will only read true (last) copy of the reel in the directory. The previous directories (for the same reel) are regarded as having been &#34;erased.&#34; 
     Having located the directory corresponding to the requested reel of data, the TRML, illustrated in FIG. 2, is then located at step 254, which provides the optical disk address of the TRM block at step 256. Since the TRM information is stored on the disk 72 as the pseudotape buffer 64 fills to its capacity (1K byte), there may be several blocks of TRM stored on the disk 72 for a particular reel at step 264. Therefore, the TRML 76 provides a sequence of addresses for each respective TRM. Two exemplary TRM block addresses are herein illustrated as addresses 102 and 104, and again at the opposite end of the TRML as blocks 116 and 118, wherein each comprise two bytes of data wherein one byte is non-zero. Also present on the TRML 76 is the present disk volume number 110 and the next disk volume 112, relating to a reel of data which may be partially stored on one disk and partially stored on a second (subsequent) disk. Separating the disk volume number and the TRM block address are markers 106 and 114, each comprising two bytes of information having a numeric value of zero. According to the Present invention, except for the markers such as 106 and 114, and later with regard to the TRM information of FIGS. 3-8, there exists no address of code information comprising two contiguous bytes having a value of zero. 
     Having recovered the TRM address from the TRML 76, the information of the TRM is recovered and is accessed as a pseudotape without actual data according to the instructions of Table 1 from the computer 54. The data will be retrieved from the disk 72 at step 256, 258 and 260, when it is required, according to the disk block address stored in TRM. 
     As discussed above, the data received from the magnetic tape drive 52 or computer 54 in the magnetic tape data format is initially stored in a 128K byte data buffer 62. The reformatter controller 66 constantly reviews the status of the data buffer 62. When either one of the following conditions occurs, the reformatter empties the data buffer to the disk 72. 
     Condition 1. There are less than 64K bytes of space left in the buffer. 
     Condition 2. The size of the accummulated data is greater than 1K and the number of accumulated records is more than 1. 
     When the external control signals on signal path 58 comprise tape write commands from the host computer 54 or the magnetic tape drive 52, the pseudotape buffer 64 is created by reformatter controller 66 utilizing the TRM data information packets discussed in detail with respect to FIGS. 3-8 below. In particular, the non-data information relating to the magnetic tape format includes the control illustrated by Table 1, as well as additional information such as erroneous, or corrupt, data, erased and relocated data is reflected by specific information sequences which are stored in the TRM. The encoded information of FIGS. 3-8, referred to as information packets (IP), comprise a particular sequence of codes, each comprising two bytes in the present embodiment although alternate embodiments may adopt a different data structure. Furthermore, according to the present invention, all recorded information, except for particular markers indicated as &#34;.0.&#34; have a nonzero value. Otherwise, a data segment indicated as &#34;.0.&#34; comprise two bytes, each having a binary value of zero. All information packets (IP), except TRM header, have symmetrical structure to allow the pseudotape being accessed from both directions. 
     Each TRM stored includes a TRM header 120, shown in FIG. 3, which provides information for locating the first record mapped by the TRM within a 128K byte block stored on the disk 72. Included is a record block address 122, the offset of the record block within the block 124, a contiguous byte count 126, indicating the number of contiguous bytes in the record block and a disk volume I.D. 128. The contiguous byte count field facilitates the data retrieval process. One or more two byte record entries 130 follow the TRM header which indicate the size of the record data block transferred by the host computer (in magnetic tape format). The number of records stored in the record size entry fields correspond to the actual record size minus one, e.g., an actual record size of 1024 will be stored as 1023. Each data block is locatable on the disk by an address stored in the TRML 76. 
     The magnetic tape data format command indicated as write file mark translates into the information packet 140 of FIG. 4. The information packet 140 comprises a selected two-byte file marker code 142 separated from adjoining information packets with zero markers 144 and 126. 
     The write command listed in the magnetic tape format command list of Table 1 corresponds to the storage of data on a magnetic tape after a selected inter-block gap (IBG) which indicates the end of one data block and the beginning of another data block on the magnetic tape. The inter-block gap and the particular length of the inter-block gap represents non-data related information which is stored as a separate information packet illustrated in FIG. 5, which begins and ends with the zero markers 151 and 155. A selected IBG code 152 indicates that the information package 150 of FIG. 5 corresponds to the inter-block gap. The information packet 150 also provides the indication of a change in inter-block length, wherein the old length is specified by marker 153 and the new length is specified by marker 154. The IBG code 151 is repeated at 155 adjacent to the zero marker 156. 
     When a bad disk block is encountered on the optical disk 72 as signalled to the reformatter controller 66 according to control signals 69 provided by the WORM drive 70, the data (a part of the 128K transfer from data buffer 62) is relocated, and indicated by a block relocation information packet (IP) 160 shown in FIG. 6. The block relocation information packet begins with a zero marker 161 and ends with a zero marker 172. In block relocation code 162 and 171, located adjacent to zero markers 161 and 172, respectively, is provided to indicate that the marker 160 provides block relocation information. The address of the last block is provided at 163 and 169, which corresponds to the address for the last block of good data. The address of the next good data is provided in the next block marker 164 and 170. The value for the data offset in the last data block is provided at 165 and the offset for the next good data is provided with marker 166. The previous byte count is indicated with marker 167 and the number of bytes in the next block of data is indicated at 168. 
     An information packet 180 identifies records which were corrupted by a magnetic tape format erase command, as illustrated in Table 1, or particularly by other data alteration or corruption, such as shown in FIG. 7. The corrupted data information packet 180 begins and ends with the zero bytes 181 and 186, respectively. A selected code 182 serves to indicate that this information packet, delineated by the zero byte markers 181 and 186 indicates the existence of corrupt data. The total number of data entries, or record size is indicated as a combination of the size of corrupted data, indicated by the value of bytes 183 plus the size of the good data indicated by the value of bytes 184. The corrupt code 182 is repeated at 185 before the zero bytes 186. 
     The magnetic tape format erase command of Table 1 is translated into an erase information packet 190 in FIG. 8. The erase information packet begins and ends [with zero bytes 191 and 195, respectively. A selected erase code is provided by bytes 192 and 194. The number of bytes erased is indicated by the size of erase quantity in bytes 193. 
     The TRM, discussed above, is created by a combination of the above-discussed information packets to reflect the magnetic tape format commands and the data transfers effected between the buffers 62 and 64, and the WORM disk drive 70. The data to be written on the WORM disk 72 is sent by the host computer 54 and stored in the data buffer 62 and the record size 130 is recorded in the TRM following the header 120. An example is provided in FIG. 10. The various informational packets are used to record the non-data information sent by the host computer 54 and the action during the data storage process, as discussed above. The example provided in FIG. 10 illustrates an application of the various information packets of FIGS. 3-8 discussed above. When the TRM data buffer contains enough data to fill the minimum disk drive 70 block (typically 1K byte), the data is written from the pseudotape buffer to the disk. If a bad disk 72 block is encountered by the disk drive 72, the reformatter controller will cause the data block to be relocated to a good disk block and the block relocation information marker illustrated in FIG. 9 as 160, will mark the relocation in the TRM before it is written to the optical disk 72. When the TRM fills to the capacity of one disk block, it is then written to the disk, and the block address is recorded in the TRML 76 as part of the directory 74. 
     When an &#34;editing&#34; function takes place, a new TRM is necessary. The changed data needs to be located in a non-contiguous block and the block relocation information packet 160 is used to provide data continuity as illustrated in FIG. 10. When a magnetic tape format read or search command is received by the host computer 54, an address pointer is used to move forward or backward in the pseudotape buffer (TRM). As the record sizes are stored in the TRM itself, the current record address on the disk 72 is calculated as an offset from the last known block address in the TRM. Any alteration of the pre-written data requires a new TRM. However, the new TRM address needs to be updated in the TRML. Therefore, a new TRML and a new directory is created. 
     Illustrations of the application of a corrupt data information packet 180 and an erase information packet 190 in the TRM is provided in FIGS. 11 and 12, respectively. 
     Therefore, according to the data structures generated by the system and apparatus of the present invention, all data and information corresponding to a magnetic tape data format is retained and stored on a storage medium which can be returned to the host system in the same magnetic tape format by reconfiguring the stored information in the magnetic tape data format without loss of information. Moreover, in the above-described embodiment, the storage medium comprises a permanent, non-erasable optical disk, which in combination with the other elements of the present invention, emulates the erasability of a conventional magnetic tape. Furthermore, it is envisioned that the present invention can be applied to other computer output and storage media formats which will be provided to an erasable or non-erasable medium. Therefore, modifications and substitutions to various components of the present invention, and to the particular codes and the storage device (70), are within the scope of the present invention, which is not to be limited except by the claims which follows.