Technical Field
This invention relates generally to data recovery from optical data disks, and more particularly to data recovery from sectors of disks having missing or defective sector marks.
Background Art
Optical disk media are capable of storing a considerable amount of data in the form of small marks or holes in the surface of the disk, each representing a bit of data. The marks, burned into the surface of the disk by a laser, are arranged along spiral tracks, each divided into a number of sectors.
FIG. 5 is a diagram of an apparatus 10 for reading data prerecorded on an optical disk 12. The disk 12 is rotated by a disk servo 14 comprising a precisely controllable DC motor. A laser 16 irradiates the surface of the disk 12, and light reflected from the disk impinges on the surface of a detector 18. An optical head 20, located between the disk 12 and laser-detector 16, 18 is positioned by another servo (not shown) to read data from a desired track. Writing is carried out using similar optics, with the optical medium being preheated to enable light from laser 16 to form surface marks corresponding to data. The servos and laser/detector are controlled by a microprocessor 22.
The components comprising apparatus 10 shown in FIG. 5 typically are arranged with a common housing, such as provided by SCSI (Small Computer System Interface) resident at a personal computer or other computer requiring storage of a large quantity of data. The data storage capacity of the disk 12 is enhanced in some systems by utilizing both sides of a disk such as a 130 mm (51/4 inch) optical disk.
Data read and write logic, implemented by microprocessor 22 in the representative illustration of FIG. 5, has been carried out by commercially available special function integrated circuits, such as the AM95C96 optical disk controller (ODC), manufactured by Advanced Micro Devices of Sunnyvale, Calif. A system implementing the AM95C96, shown in FIG. 1, comprises ODC 24 reading data through an encoder/decoder (ODE) 28 and a phase locked loop (PLL) 30 off the optical disk and writing to the optical disk. A CPU 32 controls seeking to the desired location on the disk. The ODC/ODE 24, 28 interfaces with CPU 32, working memory 34 and a disk interface 36 to process the applied data signals and transfer commands for compliance with particular specifications such as the X3B11 continuous composite servo (CCS), WORM/ERASABLE optical format developed by ANSI.
The ODC 24 is interfaced to a system bus by host interface unit 38, and is supported by buffer memory 40 and error processor 42. General operation of the system shown in FIG. 1, being known to the prior art, is not described in detail. An improvement integrating the ODC/ODE 24, 26 as a single functional element is described in my copending application Ser. No. 07/813,275, filed concurrently herewith.
FIG. 4 depicts the layout of tracks on an optical disk. The tracks are arranged along a spiral path on the surface of the disk 12, with each turn of the spiral being treated as a separate track. In one example, the optical disk may be 90 mm in diameter, and may contain 10,000 tracks (numbered 0-9999 FIG. 7); each track is divided into twenty-five (25) sectors. Each sector in turn will carry 725 bytes of unformatted data. The optical disk in this example is capable of storing 181,250,000 bytes of data, or about 100,000 pates of text. Modifications include implementing more densely packed sectors, larger diameter disks and/or double-sided storage for enhanced information storage capacity.
FIG. 2 is a field diagram of the X3B11 format, comprising a header area that is "pre-stamped", followed by a data area for receiving data for storage. The first field of the header is a sector mark (SM) having a special redundant pattern. This field identifies the start of a sector. The SM field as well as the other fields constituting the X3B11 format is summarized below in Table I.
During both reading and writing operations, ODE 26 detects sector mark (SM) once within each sector. Referring to Table I, the sector mark comprises 80 bits arranged as a long burn followed by a transition pattern. Sector mark decoding is carried out by monitoring the long burn pattern of the track, and identifying a pattern characteristic of the sector mark. A particularly robust algorithm that this purpose is described in my copending application Ser. No. 07/810,574, entitled "Sector Mark Detection in Long Burn Pattern for Optical Data Disks," filed concurrently herewith and incorporated by reference.
Detection of the sector mark pattern is a prerequisite to recovery of data from the corresponding sector. It provides synchronization to the region of each sector from which data is to be recovered or is to be written. The data field of each sector resides at a predefined distance, in bytes, from the end of the sector mark pattern. The number of bytes depends on the particular standard involved. For example, in the conventional X3B11 format, shown symbolically in FIG. 2, the pre-stamped, or read only (RO), region extends 47 bytes beyond the sector mark field SM, followed by a magneto-optic region (MO) upon which data can be written once (the MO region is also termed a "WORM", or write once-read many, region). The data region of a 90 mm, 512 byte sector size by convention follows the RO region by ODF and GAP bytes. The next sector mark field follows the data field by a suffer region of 13 bytes for timing margins.
If the sector mark pattern for a sector is not detected because the sector mark pattern is obscured by dirt or is defective for another reason, the data field for that sector cannot be accessed. Prior art optical data disk controllers improve data recovery from optical disks by searching the track of an optical data disk for the presence f sector mark patterns in the appropriate fields, and applying a pseudo sector mark pattern to each sector in which a sector mark pattern is not detected. Upon detection of either a sector mark pattern or generation of a pseudo sector mark, a "sector mark found" signal is issued. In response to this signal, a data recovery routine is initiated to access data from the data field of the current sector. Data recovery from a sector having a defective sector mark field thus is achieved.
However, if the disk has a considerable number of sectors with defective sector marks, the disk itself may be defective, and should not be used. The user should be appraised of the possibly defective quality of a disk before data is written to it.
A feature of the present invention not only recovers from optical data disks having sectors with defective sector marks, but also limits the amount of such data recovered while identifying the user of the presence of an excessive number of sectors with defective sector marks. Another feature inhibits writing to the data field of a sector deemed possibly defective as a result of a defective sector mark field.
Optical data disks are supplied in any of several formats. The format of a new, unmarked disk may have to be ascertained by the user in a procedure termed "certification." However, it is desirable to implement media certification without imposing a requirement for additional equipment. Another feature of this invention, therefore, implements sector mark detection as a mechanism for media certification of an optical data disk.
Disclosure of the Invention
In accordance with one aspect of the invention, an optical data disk controller optically detects bits from a track of an optical data disk adapted to contain data arranged in sectors. A predefined region of the track is searched for the presence of a pattern of bits corresponding to a sector mark identifying the beginning of each sector from which data is to be recovered. If no sector mark is found, a pseudo sector mark signal is generated to recover data from the sector. Optionally, writing to the data field of a sector for which a pseudo sector mark signal has been generated is inhibited. The pseudo sector mark found signals are counted, and no pseudo sector mark found signals are generated in excess of a predetermined number.
In accordance with another aspect of the invention, using a wide open search window the track of an optical disk is searched for the presence of a normal sector mark pattern. Following detection of the pattern, a predefined region of the next sector where the sector mark pattern is expected is searched using a window of programmable width. A pseudo sector mark signal is generated for each sector in which no sector mark is detected. The search repeats until either a predetermined number of pseudo sector mark signals are generated, a normal sector mark pattern is detected or an exit command is received.
In accordance with still another aspect of the invention, in a constant sector mark mode the disk is searched, with the window wide open, to detect sector mark patterns continuously for media certification.
Still other objects and advantages of the present invention will become readily apparent to those skilled in this art from the following detailed description, wherein only the preferred embodiment of the invention is shown and described, simply by way of illustration of the best mode contemplated of carrying out the invention. As will be realized, the invention is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawing and description are to be regarded as illustrative in nature, and not as restrictive.
Brief Description of the Drawings
FIG. 1 is a block diagram of an optical disk controller of a type to which sector mark detection and generation of the present invention may be applied.
FIG. 2 is a diagram showing X3B11 data format used in the preferred embodiment.
FIG. 3 is a simplified flow chart depicting the sequence of steps for implementing the invention in accordance with the preferred embodiment.
FIG. 4 is a diagram showing the track format of an optical data disk.
FIG. 5 is a simplified diagram of a conventional optical disk read/write system within which the invention may be implemented.
FIG. 6 is an improvement to the conventional system of FIG. 5, with the ODE and ODC units integrated into a single element.
FIGS. 7 is a timing diagram of signals developed during implementation of the invention.
Best Mode for Carrying Out the Invention
Sector mark pattern detection and pseudo sector mark signal generation is preferably carried out, in accordance with the invention, by programming CPU 32 of the prior art system of FIG. 1 or by the preferred implementation of FIG. 6 described in my copending application. Programming, identified by the numeral 60 in FIG. 3, is characterized by two principal routines or loops, a "normal loop" 66 and a pseudo sector mark (PSM) loop 76. The normal loop 66 is continuously executed while normal sector mark patterns are detected in the sector mark field of successive sectors. The PSM loop 76 is executed to generate pseudo sector mark signals for sectors within which no sector mark pattern has been detected. The program 60 jumps between one loop and the other, dynamically, depending upon the outcome of a sector mark pattern search for each sector of an optical data disk. Another routine, implemented by step 86, carries out media certification by searching for and reporting sector mark patterns continuously.
Referring now to FIG. 3 in more detail, the program 60 first carries out system initialization including a hardware reset routine and setting of initial command states (step 62). The program then enters a first sector mark loop 64, searching for the sector mark pattern with a wide open "search window". The term "wide open" refers to a pattern search without consideration of any predefined region within which the desired pattern or a portion of the pattern is expected to be found. Once a first sector mark pattern is detected anywhere in the medium, a sector mark found (SMF) signal is issued, and program 60 advances to normal loop 66, where the position of the next sector mark field is ascertained by counting down in succession (1) the number of bytes comprising the RO region (step 68), (2) the number comprising the MO region (step 70) and (3) a remainder (step 72) depending upon the format of the standard involved.
For example, assume that the standard is X3B11, and the disk format comprises a 90 mm disk with a 512 byte sector format. Referring to FIG. 7 and Table II, the pre-formatted region (RO) extending beyond the sector mark field is 47 bytes in length. Accordingly, the RO count for step 68, preprogrammed by the user, is preset to 47 bytes. The magneto-optic region MO, from the beginning of the ODF/GAP/FLAG field to the middle of the buffer field BUFF, is 667 bytes in length. The MO count for step 70 thus is preset to 667. When the RO count and MO count are successively counted down to zero, the remainder of the buffer region, 6 bytes, is counted down to the beginning of the next sector mark field.
The program 60 next searches for a sector mark pattern in the field by opening a search window to a width preprogrammed by the user (step 74). The size of the window establishes the robustness of the search, and in the preferred embodiment the window is programmable between a minimum of 1 byte and a maximum of seven bytes in width. The size of the sector mark window is programmed in accordance with sector format. The size of the window, in accordance with the preferred embodiment, is preprogrammed to have the widths shown in the following Table II.
A narrow window will identify a sector mark pattern that occurs in the expected position. A wider window, on the other hand, examines a larger portion of the sector for a sector mark pattern that may be displaced in the sector due to disk rotation speed.
Upon detection of a sector mark, an SMF signal is generated by step 74, and the program returns to step 68 where another sector mark pattern in the next sector mark field is searched. A sector identification sequence is initiated in response to the SMF signal to identify the desired sector. Hence, when the desired sector is identified, data in the data field of the sector is read in the usual manner.
On the other hand, if no sector mark pattern is found, the program jumps from step 74 to the PSM loop 76, where a pseudo sector mark signal is generated. Step 78 issues a PSM found signal and generates an SMF, if preprogrammed. Optionally, an interrupt with status also is supplied. The pseudo sector mark signal initiates the desired sector identification, and hence, data field read.
With the search window wide open (step 80), the RO region is counted down. Upon a countdown to zero, writing to the data field optionally is inhibited, a feature that prevents writing to a sector having a defective sector mark. If this option is not preselected, writing to the data field of a sector having a defective sector mark pattern is carried out. With the search window still wide open, the MO count is next counted down in Step 82. If a sector mark pattern is detected during step 80 or 82, an SMF signal, together with optional interrupt/status signal, is generated, indicating that the sector may possibly be defective (a sector mark pattern should reside only in the sector mark field). However, following step 82, and counting down further by the remainder count in the buffer field BUFF, the presence of the sector mark in the next sector mark field is searched with a wide open window until the remainder count is counted down (step 84).
If a sector mark pattern is detected in step 84, the program returns to step 68 of the normal loop 66 to search for another normal sector mark pattern. If no sector mark pattern is detected, the program returns to step 78 of the PSM loop, another pseudo sector mark signal is generated, and steps 78-84 are repeated. These steps can be repeated indefinitely or a preselected number of times, for example, four times.
The number of pseudo sector mark signals is counted during execution of the PSM loop 76, and if more than the preselected number (e.g., 4) has been generated, the disk is deemed to be possibly defective, and the program exits the PSM loop to return to the first SM loop at step 64, where a normal sector mark is searched with the window wide open. Preferably, an interrupt signal is generated indicating that the preselected count has been exceeded. The data previously read may optionally be discarded as being unreliable.
In accordance with another aspect of the invention, the program may optionally exit the PSM loop if a "forced exit" is pre-programmed. In this case, the program will exit the PSM loop immediately, as shown at step 84 of FIG. 3.
If a medium certification mode was originally selected, following hardware initialization in step 62 the program jumps directly to step 86, where the medium is searched for sector mark patterns with the search window wide open. In this mode, a sector mark found SMP signal is generated each time a sector mark pattern is detected using a wide open detection window. The frequency of sector mark pattern during detection can be monitored by observing the SMF signal to ascertain the format of a disk under test or confirm that the disk is functional. This mode can also be used for customized or any non-X3B11 formats. In this disclosure, there is shown and described only the preferred embodiment of the invention, but, as aforementioned, it is to be understood that the invention is capable of use in various other combinations and environments and is capable of changes or modifications within the scope of the inventive concept as expressed herein.