Direct access compact disc, writing and reading method and device for same6112324
Abstract
A system that redefines how data is distributed on a conventional writable compact disc (CD-R/E). A rearrangement of the data on the disc provided during the writing operation preserves eight-to-fourteen channel frames and the control and display (C&D) channel and burst error mitigation while providing a direct access storage device (DASD) format and capability. The CD-DASD format is suitable for preformatting the CDs and has constant size sectors recorded contiguously along the spiral track. Each sector is independently addressable and synchronous with the C&D data word and ATIP channel words on the CD-R disc. The system uses the components of a conventional CD device and a mapping controller address translator to encode and decode the data bytes using a conventional CIRC encoder/decoder. A rectangular product code of C1 and C2 CIRC subcodes is provided that is interleaved to mitigate the effects of handling. The system provides for locking in on the changing data frequency that occurs when moving between spirals of the CD allowing reading and writing to occur while the CD is coming to the proper speed.
Claims
What is claimed is:
1. A compact disc, comprising:
a compact disc storage media; and
data stored on said media with a compact disc encoding and physical marking in a direct access storage device format comprising independently addressable sectors, wherein said disc is preformatted with sector headers which are produced separately and prior to any subsequent writing of information onto the disc using a CD-DASD drive.
2. A disc as recited in claim 1, wherein said data comprises user data encoded in a rectangular product code.
3. A disc as recited in claim 2, wherein said product code comprises C1 and C2 Reed-Solomon codes.
4. A disc as recited in claim 2, wherein the rectangular product code is interleaved at an interleave depth.
5. A disc as recited in claim 2, wherein user defined data includes bytes usable for one of additional error correction, synchronization, sector addresses, sector boundary location, sector mode type and disc type.
6. A disc as recited in claim 2, wherein all symbols of the code are stored contiguously within a single sector on said disc.
7. A disc as recited in claim 2, wherein the user data includes a preamble, a buffer, user defined data and parity.
8. A disc as recited in claim 7, wherein sectors are spliced together in the buffer.
9. A disc as recited in claim 1, wherein said format includes an eight-to-fourteen modulation.
10. A disc as recited in claim 1, wherein said format includes control and display data.
11. A disc as recited in claim 1, wherein the data contained in the sector headers is one of directly accessible upon reading of the disc and optionally accessible after only C1 decoding in performed.
12. A disc as recited in claim 1, wherein said format includes eight-to-fourteen modulation and the headers include interleaving of header data and zero value bytes within eight-to-fourteen modulation frames of the headers.
13. A disc as recited in claim 1, wherein the headers end with a mark and are followed by a preamble with a space bit sequence.
14. A disc as recited in claim 13, wherein the space bit sequence comprises eleven bits.
15. A disc as recited in claim 1, wherein the headers include a cyclic permutation of a variable frequency oscillator signal yielding a minimum digital sum variation channel data stream.
16. A disc as recited in claim 1, wherein said data is logically mapped between the compact disc encoding and marking and the direct access storage device format.
17. A disc as recited in claim 1, wherein a direct access storage device operating system process can access said data.
18. A disc as recited in claim 1, wherein said format includes a header area having eight-to-fourteen modulation frames and header data is repetitively encoded in separate C1 codewords each written in separate ones of the eight-to-fourteen modulation frames of the header area.
19. A disc as recited in claim 1, wherein each header on the disc is written with constant offset relative to synchronization bits of codewords of absolute time in a pregroove information stream encoded in a wobble pregroove of an unwritten compact disc.
20. A disc as recited in claim 19, further comprising a disc substrate having a spiral pregroove, wherein the headers on the disc are formed by molding, or embossing, pits and intervening land areas at regular length intervals along the spiral pregroove of the disc substrate.
21. A disc as recited in claim 1, wherein further comprising a header area storing plural instances of data which is read using a majority logic voting process.
22. A compact disc comprising:
a compact disc storage media; and
data stored on said media with a compact disc encoding and physical marking in a direct access storage device format comprising independently addressable sectors, wherein the data includes information stored in a preamble, such information being one of directly accessible upon reading the disc and optionally accessible after only C1 decoding is performed.
23. A disc as recited in claim 22, wherein the preamble includes a gap.
24. A disc as recited in claim 22, wherein the preamble includes a virtual field adapted to allow recording of eight-to-fourteen modulation frames of constant size.
25. A disc as recited in claim 22, wherein said disc includes a data synchronization field, wherein the relationship between the recovered instance of the data synchronization field and a replica of the data synchronization field which is stored in a register in a drive indicates the synchronization quality of the data recovered from the disc.
26. A compact disc, comprising:
a compact disc storage media; and
data stored on said media with a compact disc encoding and physical marking in a direct access storage device format comprising independently addressable sectors, wherein said format includes sectors with a pre-recorded header area, a preamble area, a data area including address/identification data, user defined data and reserved bytes together with corresponding parity data, and a buffer area.
27. A disc as recited in claim 26, wherein each of said sectors are recoverable distinctly from reading/writing any other of the sectors.
28. A compact disc, comprising:
a compact disc storage media; and
data stored on said media with a compact disc encoding and physical marking in a direct access storage device format comprising independently addressable sectors, wherein said data is recorded, using eight-to-fourteen modulation, as a succession of eight-to-fourteen modulation frames which each include the eight-to-fourteen modulation representation of a Compact Disc control and display byte.
29. A disc as recited in claim 28, wherein said eight-to-fourteen modulation frames include an eight-to-fourteen modulation channel bit synchronization field.
30. A method of writing data to a compact disc, comprising:
forming a rectangular product code using the data producing encoded data; and
writing the encoded data into contiguous locations on the compact disc in a single sector of plural independently addressable sectors of the disc.
31. A method as recited in claim 30, wherein said forming comprises:
encoding the data into Reed-Solomon C2 codewords;
forming a rectangular array of the C2 codewords; and
encoding the rectangular array into Reed-Solomon C1 codewords.
32. A method as recited in claim 31, said forming further comprising:
adding control and display information to the rectangular array C1 codewords; and
concatenating seven product codewords.
33. A method as recited in claim 32, further comprising interleaving the product code words at a depth of interleave.
34. An apparatus for writing data to a compact disc, comprising:
a system forming a rectangular product code; and
a compact disc writer writing the product code into contiguous locations of a disc sector among a plurality of independently addressable sectors of the disc, wherein said disc is preformatted with sector headers which are produced separately and prior to any subsequent writing of information onto the disc using a CD-DASD drive.
35. An apparatus, comprising:
a CD cross interleaved Reed Solomon decoder including a demodulator demodulating eight-to-fourteen modulated channel data read from a compact disc, a Reed-Solomon C1 decoder and a Reed-Solomon C2 decoder;
a memory storing data transferred between the demodulator, the C1 decoder and the C2 decoder; and
an address translator remapping storage and retrieval addresses enabling a rectangular C1/C2 product code that is contiguously written on the disc to be decoded by the C1 and C2 decoders when only the information comprising the rectangular product codeword currently being decoded has been read from the disc.
36. An apparatus as recited in claim 35, wherein said remapping performs reorganization of a data sequence read from the disc into C1 and C2 code words at the input of the C1 and C2 decoders.
37. A method of reading data from a compact disc, comprising:
demodulating the data from the disc;
storing the data in a memory in data-0 out locations;
retrieving the data from data-1 in locations in the memory;
Reed-Solomon C1 decoding the data from the memory;
storing the data that has been C1-decoded in the memory in data-1 out locations;
retrieving the data that has been C1 decoded from data-2 in locations in the memory; and
Reed-Solomon C2 decoding the data retrieved from the data-2 in locations.
38. A computer system, comprising:
a computer requesting a direct access storage device data transfer; and
a compact disc system performing the direct access storage device transfer using a CD storage format by independently addressing disc sectors, wherein said disc is preformatted with sector headers which are produced separately and prior to any subsequent writing of information onto the disc using a CD-DASD drive.
39. A compact disc, comprising:
a storage media; and
data stored on the media in a direct access storage device compact disc encoding, modulation and physical marking format comprising independently addressable sectors, wherein said disc is preformatted with sector headers which are produced separately and prior to any subsequent writing of information onto the disc using a CD-DASD drive.
40. A compact disc, comprising:
a storage media; and
data stored on the media in a direct access storage device--compact disc (CD-DASD) format comprising independently addressable sectors, wherein said disc is preformatted with sector headers which are produced separately and prior to any subsequent writing of information onto the disc using a CD-DASD drive.
41. A compact disc system, comprising:
a compact disc storage media;
a compact disc writer forming independently addressable, constant size, contiguously stored sectors on said media, each sector including a header, a preamble with a virtual gap, user specifiable data and a buffer, the users data including an address, variable data, parity and system data, with adjacent sectors spliced together in the buffer, the user data being encoded into rectangular product codes using C1 and C2 codes with the codes being interleaved at an interleave depth, the media having control and display information and eight-to-fourteen modulation of frames; and
a compact disc reader including a CD CIRC (Cross Interleaved Reed Solomon Code) decoder and an address translator outputting the user data of said media, wherein said disc is preformatted with the sector headers which are produced separately and prior to any subsequent writing of information onto the disc using a CD-DASD drive.
42. A system, comprising:
a computer initiating a direct access storage device request; and
a compact disc drive connected to said computer, receiving the request and including a C1/C2 decoder, said drive accessing a compact disc, decoding contents of the disc using the decoder and providing decoded contents to said computer, the disc comprising data formatted using eight-to-fourteen modulation frames including control and display information, the data being divided into individually addressable sectors, each sector comprising a header, a preamble with a virtual gap, user specifiable data, parity and a buffer, with adjacent sectors spliced together in the buffer, each sector being parsed into logical sub-blocks encoded into contiguously stored, interleaved, C1/C2 rectangular product codes, the header comprising header data interleaved with zero value bytes, the header ending with a mark, and the preamble starting with an eleven bit space sequence.
43. A compact disc, comprising:
a compact disc storage media; and
data stored on said media with a compact disc encoding and physical marking in a direct access storage device format comprising independently addressable sectors, wherein said data is recorded, using eight-to-fourteen modulation, as a succession of eight-to-fourteen modulation frames which each include the eight-to-fourteen modulation representation of a Compact Disc control and display byte.
44. An apparatus for writing data to a compact disc, comprising:
a system forming a rectangular product code; and
a compact disc writer writing the product code into contiguous locations of a disc sector among a plurality of independently addressable sectors of the disc, wherein data is recorded, using eight-to-fourteen modulation, as a succession of eight-to-fourteen modulation frames which each include the eight-to-fourteen modulation representation of a Compact Disc control and display byte.
45. A computer system, comprising:
a computer requesting a direct access storage device data transfer; and
a compact disc system performing the direct access storage device transfer using a CD storage format by independently addressing disc sectors, wherein data is recorded, using eight-to-fourteen modulation, as a succession of eight-to-fourteen modulation frames which each include the eight-to-fourteen modulation representation of a Compact Disc control and display byte.
46. A compact disc, comprising:
a storage media; and
data stored on the media in a direct access storage device compact disc encoding, modulation and physical marking format comprising independently addressable sectors, wherein said data is recorded, using eight-to-fourteen modulation, as a succession of eight-to-fourteen modulation frames which each include the eight-to-fourteen modulation representation of a Compact Disc control and display byte.
47. A compact disc, comprising:
a storage media; and
data stored on the media in a direct access storage device--compact disc (CD-DASD) format comprising independently addressable sectors, wherein said data is recorded, using eight-to-fourteen modulation, as a succession of eight-to-fourteen modulation frames which each include the eight-to-fourteen modulation representation of a Compact Disc control and display byte.
48. A compact disc system, comprising:
a compact disc storage media;
a compact disc writer forming independently addressable, constant size, contiguously stored sectors on said media, each sector including a header, a preamble with a virtual gap, user specifiable data and a buffer, the users data including an address, variable data, parity and system data, with adjacent sectors spliced together in the buffer, the user data being encoded into rectangular product codes using C1 and C2 codes with the codes being interleaved at an interleave depth; and
a compact disc reader including a CD CIRC (Cross Interleaved Reed Solomon Code) decoder and an address translator outputting the user data of said media, wherein said data is recorded, using eight-to-fourteen modulation, as a succession of eight-to-fourteen modulation frames which each include the eight-to-fourteen modulation representation of a Compact Disc control and display byte.
Description
MICROFICHE APPENDIX
1 sheet of microfiche containing a total of 20 frames is included herein.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention is directed to a compact disc (CD) system of the optical or optomagnetic type capable of reading discs recorded in the standard CD-Audio and CD-Read Only Memory (CD-ROM) formats, reading and writing discs in the CD-recordable (CD-R) format and/or the newly proposed CD-erasable (CD-E) format, as well as reading/writing in a direct access storage device (DASD) format, and, more particularly, to a system that uses the typical components of a CD-Audio/ROM system and low cost additional components to write/read data on a disc in both the CD-Audio/ROM and CD-DASD formats.
2. Description of the Related Art
The Compact Disc.TM. (CD) optical data storage system was originally designed as a consumer product that would read (playback) digitized audio information in a sequential fashion, much like a tape, from unprotected plastic discs that would be extensively handled. Accordingly, the recording format (i.e., the precise manner in which the data stored on the disc is mapped to the trail of physical marks written on the disc's surface) of this system is optimized for the continuous retrieval of data from the disc and also to mitigate the affects of relatively large defects (such as scratches and fingerprints) on the reliability of the data recovered from the disc. The CD-Audio recording format therefore handles (during reads & writes) input and output data (i.e., user digital audio data) in small, contiguous 24-byte blocks called "frames" and further causes the data that comprises a single frame to be widely distributed on the surface of the disc when it is recorded. Moreover, there is no provision in the recording format for the precise addressing of an individual frame (i.e., allowing the CD playback device to determine the exact physical location of any of the constituent bytes in a frame on the disc). In fact, the only means of locating information on the disc is via the information carried by a separate control & display (C&D) channel that is multiplexed with the main (digital audio) data channel.
The specific item of information carried by the C&D channel that provides the vehicle for locating information on the disc is the "absolute-time-on-disc" which is the elapsed disc playing time relative to the beginning of the recorded disc information area. Absolute time information is updated with a granularity of 1/75th of a second. Since exactly ninety-eight 24-byte frames of audio data are played each 1/75th second, the C&D channel can be used to "segment" the contiguous audio data stream channel on the disc into data blocks that contain 98.times.24=2352 bytes. A main (audio) data channel block that consists of 98 contiguous frames, or 2352 bytes of digital audio data, is called a "C&D Section". However, a given 2352-byte C&D Section cannot be precisely located on a disc; this is due to the fact that the CD-Audio disc recording standards provide for a tolerance of .+-.1 second between the start of the C&D channel's absolute-time-on-disc information and the start of audio program data on the disc. (Note: The absolute time value is specified to be 0 minutes, 0 seconds and 0 seventy-fifth seconds at the start of the first data (audio) track of the disc, which immediately follows the disc's lead-in track. The lead in track is the first track in the disc's information area: absolute time increases from some negative value during the lead-in track such that it becomes zero exactly at the end of the lead-in track)
In 1984, or thereabouts, a new version of the CD system known as Compact Disc Read-Only-Memory (CD-ROM) was introduced. CD-ROM was designed as a playback-only computer peripheral and CD-ROM drives connected to a computer could be used to retrieve files of data from a prerecorded disc in response to commands from a requesting application program. To control the cost of the CD-ROM drives and to provide them with the capability to "play" CD-Audio discs, the recording format of the CD-Audio system was fully retained in the CD-ROM system. This enables CD-ROM discs, which each may hold over 600 Mbytes of data, to be produced on the same manufacturing line as CD-Audio discs and allows CD-ROM drives to share components with CD-Audio players. The CD-ROM system has proven to be a commercially successful, low cost means of distributing very large data sets and application programs to computer users.
Computer operating systems (i.e., the programs that, among other things, manage the storage and retrieval of data needed by application programs that are running on a computer) are designed to move data between the central processing unit (CPU) and the computer's storage peripherals in units, or blocks, called "data clusters". Clusters always contain 2.sup.n bytes, where n is an integer (usually n.gtoreq.10). Computer peripherals, such as hard disk drives, therefore, are designed to handle data in blocks called sectors that each contain 2.sup.m bytes of arbitrary-valued data that could be assigned to a specific cluster that belongs to some user data file (usually m is an integer .gtoreq.8). Because of the way that information on a compact disc is segmented by the timing information in the C&D channel, the CD-ROM system employs sectors that contain 2352 bytes and, in the most widely used embodiment of CD-ROM, each sector holds 2048 "user bytes", or arbitrarily valued bytes that could belong to a user data file.
The 2352 byte CD-ROM sectors are logically defined by exactly mapping them. i.e., assigning their contents to, 98 contiguous 24-byte frames. However, as was mentioned previously, the data in each of these frames is widely distributed along the disc's spiral data track. In fact, data stored on the disc data track is organized as contiguous 33-byte blocks called "eight-to-fourteen modulation (EFM) frames." Each EFM-frame contains one byte of (multiplexed) C&D channel information, eight bytes of error correction code (ECC) parity data and 24-bytes of user data. Each byte of user data in a given EFM-frame is obtained from twenty-four different 24-byte data frames that are distributed over 106 contiguous data frames. Thus, the 24 bytes of a given data frame are distributed over 106 consecutively recorded EFM-frames on the disc. But, in order to recover the 24 bytes of a single data frame from the disc, 111 consecutive EFM-frames have to be retrieved (the additional 5 EFM-frames contain all the ECC parity data needed to complete, and thereby render decodable, the ECC codewords that protect the specific 24-byte data frame).
Recall that the C&D channel's absolute-time-on-disc information segments the main data channel on the disc into 2352-byte C&D Sections (this is true for CD-ROM discs as well as CD-Audio discs because their low-level recording formats are exactly the same). Unfortunately, this segmentation cannot be used to precisely define where (on a CD-ROM disc) the boundaries, or start, of a given sector resides. This is due to the fact that the control & display (C&D) and main data channels are not aligned (as noted previously). Thus, since a sector may start in (that is, the first byte of the recorded sector may occur in) any arbitrary 33-byte EFM-frame on the disc, the "offset" between the boundaries of CD-ROM sectors and the C&D Sections on the disc will be <.+-.98 EFM-frames (or equivalently, <.+-.1/75 second since EFM-frames are synchronous with data-frames; one EFM-frame is formed for each data frame that is input to the CD-Audio/ROM encoder). To facilitate locating information on a CD-ROM disc each sector contains "address" data, which is used by the CD-ROM drive's controller to identify specific sectors (the computer operating system also uses a translation of this address data, together with the disc directory and file allocation tables, to identify how the user data in the sectors relates to the files on the disc). Thus, to retrieve a specific sector from a disc the CD-ROM drive must first read approximately 300 sequential 33-byte EFM-frames from the disc and then deliver the data contained in them to the drive's controller which "finds" the 98 sequential 24-byte data frames that comprise the sector and extracts the desired user data. Even if the offset between sectors and C&D Sections is zero, more than 200 contiguous EFM-frames still must be read to retrieve a single sector. This is because entire or complete error correction codewords must be recovered before decoding of the ECC words can be accomplished; the data needed to complete all of the error correction codewords that protect data that resides in the sector of interest is distributed over 208 contiguous EFM-frames. The underlying CD-Audio recording format specifies this wide scattering of the data that comprise individual codewords to enable the correction of long data error bursts that may be caused by large defects on the disc caused by handling.
In 1990, the Compact Disc-Recordable (CD-R) system was introduced. A CD-R "writer" can write digital audio data or logical CD-ROM sectored data to recordable discs that can subsequently be read in any CD-Audio player or CD-ROM drive (and in the CD-R writer as well). CD-R writers can write entire discs at once, or they can write a portion of a disc called a "session". In addition, the CD-R standards provide for the writing of small segments of data, e.g., a single CD-ROM sector, in one writing operation; this is called "packet writing". When appending any new information to a disc (i.e., when performing session or packet writing), however, a CD-R writer must always add the new information directly to the end of the already written portion of the spiral data track on the disc. Moreover, in packet writing, at least four "link sectors" (and usually seven to eight sectors, in practice) that contain useless (padding) data must be appended to the sectors of user data that one wants to record. These recording characteristics (i.e., sequential appending to the previously written portion of the data track and link sector overhead) result directly from the nature of the CD-ROM recording format and the underlying CD-Audio recording format.
High performance computer data storage peripherals, otherwise known as Direct Access Storage Devices (DASDs.), have recording formats that enable them to operate in a manner that is consistent with the way computer operating systems handle files. In particular, the recording formats used by DASDs cause all bytes that comprise a specific sector to be contiguously recorded along a continuous segment of the data track on the storage medium and further cause sectors to synchronously occur along the data track so that DASDs know the exact physical location of every sector recorded on their storage medium. Moreover, a DASD storage medium is subdivided into sectors prior to writing file data to it (this is done via a process known as "formatting"). Thus, a DASD can write, or read, a single sector as an independent unit and it can locate a sector anywhere on its storage medium, regardless of how much of, or what portion of, the medium is already written. These operational features allow fast file access (e.g., only a single sector might have to be rewritten if only a small part of a file is to be updated) and they are critical to overall data reliability (sectors that begin to experience data recovery errors, as reported by the DASD error correction sub-system, are retired and their contents rewritten to a new location on a portion of the storage medium that is known to be error-free).
The use of CD-writers to produce small numbers of discs that can be distributed to business and/or consumer computer users (who have a CD-ROM drive installed in their computers) is an important emerging application. However, the incorporation of CD-writers into personal computers and work stations is being impeded by the fact that they cannot perform DASD-like operations, i.e., the limited usefulness of a CD-writer makes it a very expensive peripheral from the perspective of a general user. One attempt at solving this problem is the Power Disc (PD) optical disc system recently introduced by Panasonic, which can read any compact disc (i.e., a disc that conforms to the standards for CD Audio/ROM discs) and which, in addition, will operate as a DASD. When operating as a DASD, the PD drive uses a proprietary recording format. Two drawbacks of the PD system is that it cannot use standard recordable CD discs when operating in the DASD mode and it cannot write compact discs that can be read on standard CD-Audio or CD-ROM players. The PD drive uses a proprietary disc and recording format when operating in DASD mode, i.e., it cannot write at all using a standard CD-R disc, nor can it write using the soon-to-be available CD-erasable, or CD-E disc.
An important problem to be solved, therefore, is to provide a CD-device that can write/read information in all standard CD recording formats and which has the additional capability of operating as a direct access storage device (DASD), and to do this using common CD components (i.e., conventional CD hardware and discs).
SUMMARY OF THE INVENTION
It is an object of the present invention to provide a compact disc (CD) with direct access storage device (DASD) capability (i.e., a CD that has information recorded using a CD-DASD recording format) and to provide the system for reading and writing such a CD.
It is another object of the present invention to provide a system compatible with prior CD standard formats.
It is also an object of the present invention to provide a system that uses existing standard CD-audio/CD-ROM components and a small number of additional low cost components in providing the CD-DASD capability.
It is a further object of the present invention to use the basic Reed Solomon (RS) error correction codes of the CD-Audio format in a DASD format.
It is also an object of the present invention to utilize the eight-to-fourteen (EFM) modulation scheme and the 588-channel bit frames utilized in the CD-Audio format in the CD-DASD format (that is, the low-level physical manifestation of the CD-Audio format is not altered).
It is another object of the present invention to accommodate variance in switching times between modes among different CD-DASD drives.
It is an additional object of the present invention to provide a system that improves the access time to recorded data by allowing reading or writing while the disc is changing speed.
It is an object of the present invention to preserve the Control and Display Subcode channel in CD-DASD format.
It is another object of the present invention to provide a means of decoding the RS error correction codes that will provide high recovered data reliability and enable fast access to certain recorded information fields (such as sector ID fields).
The above objects can be accomplished by a system that redefines how logical data is distributed on the compact disc (CD). The redistribution produces a DASD-like format that features a writable (or re-writable) CD that is formatted. The system uses the components of a conventional CD reader/writer (including conventional writable/re-writable CD discs) and a mapping or translation controller to alter the data byte interleaving employed in the conventional Cross Interleaved Reed Solomon Code (CIRC) coding used in the CD-Audio format. A rectangular product code is formed using the C1 and C2 CIRC subcodes. This product code can be interleaved to mitigate the effects of user handling of the disc. The system also provides synchronous voltage-frequency oscillator (VFO) fields for locking a write/read channel clock to the changing data frequency that may occur when radial disc seeks are performed. This feature will assist data reading and writing while the CD is acquiring proper rotational speed (assuming a constant linear velocity system).
These, together with other objects and advantages which will be subsequently apparent, reside in the details of construction and operation as more fully hereinafter described and claimed, reference being had to the accompanying drawings forming a part hereof, wherein like numerals refer to like parts throughout.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 depicts a typical system in which the present invention is used;
FIG. 2 illustrate conventional CIRC coding and interleaving;
FIG. 3 illustrates a conventional CIRC decoder;
FIG. 4 illustrates a product code according to the present invention;
FIG. 5 illustrates the format of the present invention without interleaving;
FIG. 6 illustrates one form of interleaving according to the present invention;
FIG. 7 depicts a structure of a CD-DASD sector;
FIG. 8 depicts user definable data and parity in a sector;
FIG. 9 depicts the steps of a read process according to the present invention;
FIG. 10 illustrates a write process;
FIG. 11 depicts a circuit for reading the data written by the process of FIG. 10;
FIGS. 12 and 13 depict the addressing scheme of the circuit of FIG. 3;
FIG. 14 depicts a circuit that separates write data from other data;
FIG. 15 depicts a C1 write--read scheme according to the present nvention;
FIGS. 16 and 17 depict a C2 write--read according to the present invention; and
FIG. 18 illustrates a circuit for realizing a bit clock which tracks rotation speed during reading and writing.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention is directed to methods and apparatus for using a CD-writer/reader as a direct access storage device (DASD) within the confines and context of the physical (recorded marks and lands) and logical (eight-to-fourteen modulation, CIRC error correction coding, multiplexed data/control and display channels, 588-channel bit EFM frames, etc.) data recording format that is used in all currently defined CD systems (e.g., CD-Audio, CD-ROM, CD-i, CD-R). The present invention defines a recording format that (i) enables full support of DASD operation and (ii) which is realized by redefining how the logical 33-byte EFM-frames (i.e., the frames that are created by the CIRC block encoding process that is defined in the CD-Audio recording format) are distributed on the disc. The invention redefines which physical marks on the disc will represent each of the data in these logical 33-byte EFM-frames. For convenience, this recording format is referred to as the CD-DASD recording format, or simply the CD-DASD format. The present invention allows reading of a CD containing CD-DASD formatted information via a CD-ROM player that has had only minor modifications made to. The present invention also allows recording of information using the CD-DASD format on conventional writable-CD discs (CD-R or CD-E discs) that are formatted prior to their use. During the formatting operation sector headers are written globally over the entire disc (or over an annular portion that is allocated to CD-DASD use). Formatting a disc is accomplished using a CD-DASD-writer; this writer writes headers in alignment with the "absolute-time-in-pregroove" (ATIP) information channel that is extant on standard CD-R discs. Alternatively, the sector headers could be embossed (or otherwise formed) on the disc during its manufacture. The physical marks on the disc that constitute the sector headers are formed using channel data sequences that maintain the 2,10 run-length constraints that characterize the physical marks of the low level CD recording format. The present invention organizes the data into the CD-DASD format and incluaes remapping of the 33-byte EFM-frames to physical marks on the disc, reorganization of the C1 and C2 subcodes that comprise the CIRC code into a rectangular product code that can be interleaved to depth seven or less, specification of a 4,704-byte CD-DASD sector and the identification of the various data fields contained in the CD-DASD sector.
The present invention is applicable to the typical computer system, as illustrated in FIG. 1, that includes a processor 10 having the appropriate disk and RAM storage, a display 12 and an input/output device 14, such as a keyboard, although all of these components may not be necessary in a particular application. In such typical systems one of the important mass storage components is a compact disc (CD) drive 16 that is capable of reading (CD-ROM) and/or writing (CD-E, CD-R) data on an optical or optomagnetic compact disc 18. The present invention is involved in the operation of the disc drive 16.
Current compact disc systems, such as the conventional CD-Audio or CD-ROM systems, use a Cross Interleaved Reed-Solomon Code (CIRC) to encode the user data bytes. This error-correcting code employs two distance 5, Reed-Solomon codes: C1(n1, k1) and C2(n2, k2) with n1=32, k1=28, n2=28, k2=24 bytes. The encoding process creates 33-byte Eight-to-Fourteen Modulation (EFM) frames which each have the format of:
F.sub.0,D.sub.1,D.sub.2,D.sub.9,D.sub.10,D.sub.17,D.sub.18,D.sub.3,D.sub.4, D.sub.11,D.sub.12,C2.sub.0,C2.sub.1,C2.sub.2,C2.sub.3,D.sub.5,D.sub.6, D.sub.13,D.sub.14,D.sub.21,D.sub.22,D.sub.7,D.sub.8,D.sub.15,D.sub.16,D.su b.23,D.sub.24,C1.sub.0,C1.sub.1,C1.sub.2,C1 (where F is a Control and Display byte, D are user data bytes, C2 are C2 code parity bytes and C1 are C1 code parity bytes. The conventional encoding and recording process performs the following steps (cf., FIG. 2):
step 1: User information (i.e., input data to be recorded) is first parsed into 24-byte blocks or user-data frames.
step 2: The 24-byte user data frames are scrambled and then 24 bytes (comprised of a first group of twelve contiguous bytes and a second group of twelve additional contiguous bytes that occur 48 bytes later in the sequential stream of scrambled data) are C2-encoded, that is, 4 parity bytes are calculated and provided to each block of 24 scrambled and delayed bytes to form a 28-byte C2 codeword 30.
step 3: The individual bytes of every C2 codeword are delayed for a variable number of words. These variable length delay lines provide the "cross-interleave" feature of the encoding.
step 4: Next, 28-byte groups (one byte from each of 28 different C2 words) are sent to a C1 encoder which generates 4 additional parity bytes and appends them to the 28-byte groups. The result is 32-byte C1 codewords 32 at the output of the C1 encoder.
step 5: The odd bytes of every C1 codeword are delayed for one C1 codeword to produce an additional interleave of depth 2. Next, one byte 34 of Control and Display (C&D) information is added to every 32-byte group appearing at the output of the depth-two interleaver to form the 33-byte EFM (Eight-to-Fourteen modulation) frames.
step 6: Channel data of the Compact Disc must obey the (2,10) Run-Length constraints, that is, there must be at least 2 and at most 10 zeroes between two consecutive 1's in the stream of channel data bits. EFM modulation coding accomplishes this by converting each of the EFM frame bytes into 14 channel bits that conform to the (2,10) RLL constraints. In addition, 3 link bits are added between pairs of such 14-bit words before they are merged. These link bits are necessary to ensure that the run-length conditions continue to be satisfied and to keep the DC content of the NRZ pulse read/write waveform, formed from the channel data stream, as low as possible.
step 7: Finally, 27 synchronization bits are added to the beginning of each EFM-encoded EFM-frame before the channel bit stream is recorded on the disc sequentially, frame by frame, as shown in the dataflow 36. This modulation scheme converts every 33-byte EFM-frame into 588 channel bits: [(33 bytes/EFM frame.times.17 channel bits/byte)+27 Sync. bits]=588 channel bits/EFM frame
step 8: The 588 channel bit representations of the EFM-frames are sequentially recorded on the disc. This is accomplished by using the nonreturn to zero (NRZ) pulse waveform that corresponds to the channel data stream to turn the writing laser on/off, thereby causing the sequence of marks/spaces. (or pits/lands) which comprise the disc data track to be formed.
The CIRC encoding process is shown in FIG. 2. In this encoding scheme, contiguous user data frames are not organized into groups of bytes that are stored together on the disc. In fact, the 24 bytes of a specific single user data frame are distributed over 106 sequential EFM-frames. Moreover, the CD-ROM uses 2352 byte sectors that consist of 98 contiguous 24-byte user data frames; CIRC encoding of 98 contiguous 24-byte user data frames causes these to be dispersed over 208 consecutive EFM-frames. In addition, individual C1 and C2 codewords can be comprised of data that belong to different CD-ROM sectors.
To recover a single 24-byte user data frame from the data stored on a conventional CD in the format shown in FIG. 2, a) 111 contiguous EFM frames must be read from the disc, b) the C1 words contained in the EFM frames must be decoded to obtain three consecutive C2 codewords, and c) two of these C2 codewords must be decoded to recover the 24-byte user data frame of interest. Once the first user data frame has been recovered, subsequent user frames may be obtained by reading additional EFM-frames one at a time; the recovery of every additional EFM-frame enables the recovery of one more C1 word, one more C2 word and one more user data frame. Thus, at least 111.times.33=3663 bytes of data, mostly unrelated to the user data frame of interest, must be read from the disc before the first 24-byte user data frame can be recovered. It should also be noted that if the user frame contains the initial 24 bytes of the recorded information, an additional 100-200 EFM frames of pad data (usually all zeroes) must be recorded immediately prior to the first EFM frame to "prime" the C1 and C2 decoders. This pad data is necessary to produce complete codewords at the input of the decoders when the disc is being read.
A conventional decoder 50, such as the Signetics SAA7310 Decoder, along with a conventional RAM 52, as illustrated in FIG. 3, is used to perform the CIRC (CD-Audio) decoding (i.e., invert the encoding process described above). The input to the EFM demodulator 54 consists of (2,10)-constrained RLL digital data in the form of 14-bit symbols grouped together as 33-symbol frames as previously described. (The 27 channel synchronization bits and thirty-three groups of 3 link bits contained in each 588-channel bit representation of an EFM-frame have been removed by an earlier processing step). These frames contain 32 information (user data) and parity symbols plus one Control and Display (C&D) symbol. After eight-to-fourteen (EFM) demodulation is performed, the subcode processors (not shown) strip off the C&D byte 34 to extract the C&D section timing/address information. The remaining 32 bytes of the frame plus erasure flag information are written to the RAM 52 during the "Write 1" cycle. The EFM-demodulator flags each output byte that occurs in correspondence with a 14-channel bit word that contains a (2,10) RLL-constraint violation; such flagged bytes are treated as being erroneous (i.e., they are erased) by the C1 decoder. The internal processor 56 of the decoder 50 provides the address locations as well as Read/Write timing control for the data written to the RAM 52. The C1 codewords are formed and fed into the C1 decoder 58 during the "Read 1" cycle. The internal processor 56 provides the address values for individual bytes that are retrieved from the RAM 52 during the "Read 1" process. These addresses are different from those that were accessed during the "Write 1" cycle and effectively, by writing the EFM frame bytes into one set of RAM locations and reading the C1 frame bytes in a different order, i.e.; from different locations, the required depth of 2 C1-word de-interleaving is accomplished. The C1 decoder 58 performs error correction/detection on the incoming 32-byte frames (C1 codewords) and discards 4 parity bytes before writing the remaining 28 bytes and new flag information to the external RAM during the "Write 2" cycle. The "new" flags are assigned by the C1-decoder to each byte at its output; the flags indicate the reliability of the decoding operation that the C1-decoder performed when the specific bytes were processed by it. This new flag information is subsequently utilized by the C2 decoder. The C2 codewords are then input to the C2 decoder 60 by reading 28 bytes from the external RAM during the "Read 2" cycle. The address values generated during the "Write 2" and "Read 2" cycles provide the cross de-interleaving that is necessary for extracting the C2 codewords.
There are two features of interest associated with the above decoding/de-interleaving architecture which are relevant to the present invention:
a) C1 and C2 codeword bytes are written into an external RAM and the data values as well as locations (addresses) of the read/written bytes within the RAM can be monitored. Thus, it is possible to intercept and modify the address values as they appear across the RAM bus.
b) The external RAM is logically divided into two parts. One half of the RAM is exclusively used for C1 de-interleaving and the other half is dedicated to C2 de-interleaving. This makes it possible to modify the addressing scheme in one half of the RAM without affecting the performance of the other half.
One aim of the present invention is to adapt the above de-interleaving architecture to provide the proper block retrieval of the data recorded in the CD-DASD format described below.
The present invention, as previously mentioned, provides a CD recording format that organizes related user data frames into groups (sectors) and stores them sequentially and contiguously on the disc 18, exactly as in a DASD recording format. This format is realized by restructuring the CIRC coding scheme (i.e., by changing its interleaving and scrambling scheme) such that the C1 and C2 codewords form a distance 25, rectangular product code. One such product codeword 68 is shown schematically in FIG. 4. In this figure, C1 codewords 70 are shown in columns and C2 words 72 occupy the rows. The product codeword shown in FIG. 4 belongs to a 28.times.28 product code type such that the twenty-eight columns are comprised of twenty-eight individual 32-byte C1 codewords while the upper twenty-eight rows are comprised of twenty-eight 28-byte C2 codewords. We note that the bottom four rows, which contain only the parity check bytes of the twenty-eight C1 codewords are not encoded as C2-words in FIG. 4. Thus, only the upper 28 rows of FIG. 4 contain actual C2-parity bytes.
The CD-DASD format of the present invention enables data to be written/read in blocks of fixed size and encoded/decoded accordingly. Much like the current magnetic disk recording formats, each block (sector) can have a pre-recorded sector header and defect management techniques such as, sector retirement/relocation, can be used to enhance the reliability and prolong the life of the storage media. The present invention essentially uses the same circuitry to write/read either the CD-DASD or conventional CIRC-CD recording formats on a given disc 18. It is also possible to make the format session-specific when a multi-session disc is being used. That is, part of the disc 18 can be written in one format and a different part in a different format. Since the same C1 and C2 distance 5, Reed-Solomon codes are used in both the CD-Audio/ROM and the CD-DASD recording formats, at least some decoders (chipsets) that exist in current CD drives, (cf., the previous discussion), can be modified via external logic to accomplish the decoding of data recorded in the CD-DASD format.
It is the intention of the present invention to take advantage of the standard read/write equipment that is implemented in the current CD drive systems. This means the format of the physical information written on the disc 18 will remain the same. More specifically, the same 33-byte structure of the EFM frames is implemented in the new block encoding format and each EFM frame is represented by 588 channel bits. The present invention does all that is necessary to realize a product error correction code (ECC) based, DASD recording format via logical remapping of (repositioning) the 33-bytes that comprise each of the EFM frames during writing and reading of the disc. At a higher logical level, the content of some of the user data which occur in one or more of the 24-byte input data frames will also be defined. For example, some of these data bytes may carry synchronization or sector address information.
The implementation of the DASD recording format at the logical level(s) makes it possible to use the current writable CDs for DASD recording. In a conventional disc (which uses the ATIP time code for addressing), the minimum addressable length along a data track is 98 EFM frames (or, 98.times.588=57,624 channel bits). Each C1/C2 product codeword, as depicted in FIG. 4, occupies an equivalent of 28 EFM frames. Thus, 98/28=3.5 product codewords can be placed in a 98-EFM frame track segment of the disc 18 track and 7 product codewords can occupy exactly two contiguous 98-EFM frame track segments. It is, therefore, possible to use 7 C1/C2 product codewords to define the preferred read/write sector size. Such a sector contains 2.times.98=196 EFM frames that carry all sector synch, address, CRC, etc., fields, as well as user data. This information is logically mapped into 24.times.196=4,704 data bytes. If, in compliance with the logical sector layout of the CD-ROM Mode 01 recording format, 2.times.2048=4096 user data bytes are placed in such a sector (equivalent user data content of two logical Mode 01 CD sectors), 608 "extra" bytes will be available to carry the synch, address, etc., fields. In addition, a third level of ECC can be implemented and the parity bytes for such a code can also be incorporated in the remaining "extra" bytes. As an example, if the 4096 user data bytes are encoded as 32 interleaves of a (144,128) distance 17 Reed-Solomon code on GF(256), there will be [(144-128).times.32]=512 parity bytes generated for the resulting 32 codewords. This leaves 608-512=96 of the "extra" bytes for sector synch, address, etc. The implementation of such a third level ECC could provide the ultimate reliability for the data retrieved from the disc 18. Note: Only a few, if any, of the 608 "extra" bytes will be needed to implement sector resynch fields since resynch is already provided by the 27-channel bit synchronization fields that start each 588-channel bit EFM frame written on the disc.
Overhead is not increased by switching from the conventional CIRC recording format to the CD-DASD format. This can be shown by calculating the user-to-gross total byte utilization ratio's for the two formats: ##EQU1## Selection of the Block format sector layout in the above manner, dictates the above utilization ratio's to be always equal. The fact that the invention places 7 C1/C2 product codewords in one such sector, makes it possible to implement product code interleave depths of up to 7 product codewords.
The features of the CD-DASD recording format of the present invention are summarized below:
Physical recording format (marks written to the disc 18) is unchanged--588 channel bit structure used to represent each EFM frame.
Disc addressing structure (C&D channel and 98-frame C&D Blocks) is preserved--conventional means such as the "absolute time on disc" information contained in the control and display subcode q-channel may be used to physically locate sectors.
The entire contents of a sector are contiguously recorded on the disc track--DASD-like read/write, etc., operations are enabled.
Overhead is identical to that of CD-ROM.
Use of multiple decoding of C1/C2 subcodes and powerful third level RS ECC may provide increased data reliability compared to CD-ROM.
Conventional CD-R discs and write/read electronics (and perhaps unmodified CIRC decoding chips) can be used--modified CIRC decoders are necessary if multiple pass decoding is required.
The ATIP signals located on conventional writable CDs may be used to "format" (i.e., write sector headers onto) CD-DASD discs. Random writing of sectors is enabled if "formatted" CD-DASD discs are used.
FIG. 4, previously discussed, shows a product code 68 with distance 5.times.5=25 which contains 32.times.28=896 bytes (24.times.28=672 user bytes). In this figure, no interleaving has been indicated for the C1 words. In the case where various depths of interleave are utilized, the data block of interest would contain n.times.896 bytes where n=2, 3, 4, . . . is the possible depths of interleave for the C1 words. The depth of interleave is 32 bytes for the C2 words in the product code illustrated in FIG. 4 (33 bytes if the C&D byte is taken into consideration) when the 896 bytes that comprise a code word are written to the disc in a column by column fashion. The recording format which employs the FIG. 4 product code 68 is illustrated in FIGS. 5 and 6. In FIG. 5 the product code 80 is implemented without interleaving, or equivalently, with depth 1 interleaving. FIG. 6 shows interleaving of two product ECC codewords by alternating the recording of their columns, or equivalently, depth 2 interleaving. The result is a block of 56 EFM frames that contain the data from two product codewords. Adjacent EFM frames of this block contain the data from one complete column of each product codeword. Other schemes for interleaving the product codewords are possible.
The CIRC deinterleaving required by the present invention, as will be discussed in more detail later, is accomplished by writing the data bytes to an external RAM and reading them from RAM locations in a different sequential order than that used by the conventional decoding process previously discussed with respect to FIG. 3. It is also possible to bypass the RAM deinterleaving cycle and use a secondary RAM chip to read/write the bytes in the specific sequential order that is required for the block decoding (i.e., to construct product codewords) of the present invention.
The present invention is also suitable for multiple-pass decoding. Recall that one user data frame, in CIRC format, is spread over 106 EFM frames. This long depth of interleave reduces C2 decoding failures that are due to relatively long bursts of error. This protection against error bursts can be accomplished in the CD-DASD format by using product codeword interleaving and the ability to handle long error bursts can be further improved via multiple-pass decoding. In the multiple-pass decoding which is performed in the present invention, after the initial C1 and C2 decoding stages, C1 decoding is repeated. This may be followed by another C2 decoding and the cycle may continue until the decoding performance consistent with a distance 25, 32.times.28 product code is achieved. The data reliability achievable from such a code may be equivalent to, or greater than, that achievable via the conventional CIRC depending on the nature of the errors which contaminate the data. The cooperation between the C1 and C2 decoders is conventionally accomplished by passing information flags which are generated after each level of decoding. The multiple C1 and C2 decoding requires the implementation of decoding strategies which dictate the number of errors and erasure corrections in each decoding pass. Various conventional decoding/flagging strategies and product codeword interleave combinations can be used to optimize the decoding performance.
The error handling capability of conventional CIRC decoders is also enhanced by supplying erasure information from an outside source. Specifically, in many current compact disc read channel implementations, the EFM demodulator flags (i.e., erases) all output data bytes that are derived from channel data that violates the 2,10 run-length constraints that are inherent in the EFM modulation code. (The C1 decoder can correct 2.times. the number of erased erroneous bytes as non-erased errors, so long as the erasures are determined by a source external to the decoder.) This feature is fully retained by the decoder of the CD-DASD product code. However, due to the different interleaving structure of the product code that is defined herein for the CD-DASD recording format, and because decoding strategies different from those employed by the C1 and C2 decoders of conventional CIRC decoders may be used in the implementation of CD-DASD product code decoders (especially if multiple-pass decoding is used), the CD-DASD format may take advantage of other external (to the decoder) erasure-flagging mechanisms. As an example, if the 27-channel bit synchronization field of an EFM frame is detected to be skewed, or decentered relative to the channel synchronization field detection window, the 32 bytes corresponding to that EFM frame might be flagged as of low quality (and such flags may be different from those set by the EFM demodulator if "new" decoder circuits that recognize such differences are provided).
Another feature of the CD-DASD recording format is its enablement of a "fast read" access to data. This feature is implemented by allowing the controller to access data bytes that appear at the output of the C1 decoder before any C2 decoding takes place. Referring to FIG. 4, fast read would allow access to the 24 data bytes in each column of the product codeword immediately after C1 decoding of the column. This feature would allow the CD-DASD drive controller to access information recorded in the sector header prior to reading or writing the remainder of the sector (this feature would allow determination/verification the sector ID, for example). The information contained in the non-header portion of the sector would pass through both C1 and C2 decoding (or through multiple C1/C2 decoding when implemented) before being passed to the controller.
Before describing the steps required record to information on a standard CD using the CD-DASD recording format, we must describe the structure of the CD-DASD data sector 88. This is necessary because the details of the encoding process that is used to write information to a CD-DASD disc will depend on this structure. It must be appreciated that the sector described below is a representative CD-DASD sector in the sense that it contains the various data fields needed to insure reliable data recovery under the constraint of maintaining the a high degree of compatibility with the logical and physical CD-Audio/ROM recording formats; the actual content of the some of the data fields within this sector may be somewhat changed in order expand functionality, or increase the appeal of the CD-DASD recording format as a standard for future CD systems.
We will first describe the physical channel structure. A typical example CD-DASD sector 88 is preferably comprised of four major sections or areas, namely a header 90, a preamble 92, data/ECC parity 94 and a buffer 96 areas as shown in FIG. 7. The total sector is physically recorded in a segment of disc track that holds 196 contiguous EFM frames. The number of EFM frames allocated to each sector area is also indicated in FIG. 7. The actual contents of each of the 196 EFM frames which physically represent (constitute) the recorded sector on the disc track are described below.
The four EFM frames which comprise the header 90 are written when the disc is formatted. Formatting is a separate process which prepares the disc for use in the CD-DASD storage system (in effect, the formatting process converts a standard CD-R/E disc into a CD-DASD disc). The header areas 90 of all sectors 88 of the disc (or in the annular region of the disc that is to be used for CD-DASD recording) are written and optionally verified during the formatting process. Some specific disc directory and file management information (e.g., the disc's Volume Descriptor field and Boot Record) is also written into the data/ECC parity areas 94 of appropriate disc sectors when the disc is formatted. The header portion of sectors 88 are never partially written; those sectors which have any information written into their data/ECC parity areas during the formatting operation are completely written when the disc is formatted, i.e., the entire header 90, preamble 92, data/ECC parity 94 and buffer 96 areas are written, according to the rules described in the sequel, when the disc is formatted. Note also that CD-DASD formatting could occur as a two stage process. Low level formatting would cause only sector headers and perhaps physical disc information such as a bad sector map and manufactures identification to be written. Subsequent high level formatting would cause information to be written into particular sectors that specializes the disc for use via a particular operating system.
When writing a header area 90 during the disc formatting process, the actual physical marking of the disc occurs in synchronism with the absolute-time-in-pregroove (ATIP) information that is carried in the spiral groove of a conventional writable-CD disc. That is, the location on the disc of the start of the 27-channel bit EFM frame sync pattern that begins the first EFM frame of every header will have a constant offset from the start of the sync pattern of the nearest ATIP word contained in the disc groove. The recording of the header 90 shall start by writing the second of the two EFM frames that comprise the buffer area 96 of the previous sector, that is, the sectors are spliced together.
We have defined that the splice between sectors occurs in the middle of the buffer area, i.e., at the point where the first EFM frame of the buffer 96 ends and the second frame of the buffer 96 begins. The splice at this point maximizes the tolerance that specifies where the splice must occur. For example, having the splice occur in the middle of the buffer area 96 means that the exact location of the splice can be in error by +/-0.95 EFM frames and the splice will still occur within the buffer (and thus will not contaminate the data/ECC parity area 90 of the sector 88 or the header area 90 of the next sector). With the location of the splice held to <+/-0.45 EFM frames, then we can define the position of the splice to be in the center of the first EFM frame of the buffer (without the danger of contaminating the data/ECC parity or header areas' data). Locating the splice in the center of the first EFM frames of the buffer 96 would prevent the splice from contaminating the EFM sync field of the second EFM frame of the buffer 96 (and thus will insure that all 196 EFM sync fields (one for each EFM frame) of the sector 88 will be found. That increases the robustness of the channel sync maintenance. In addition, by placing the splice in the center of the first EFM frames of the buffer, the CD-DASD drive will have 1.5 EFM frames (instead of 1.0) of sync field that is phased with the header to read prior to encountering the header. With the splice defined to occur in the center of the first buffer EFM frame, then the formatter writes 1.5 frames of the buffer 96 together with the header 90 of the next sector when the disc is formatted.
To maintain compatibility with the "incremental recording" linking rules described in the CD-Write-Once specifications (i.e. in the publicly available Sony/Phillips "Orange Book"), which state that the initial EFM frame that is written in any new instance of disc recording shall be the 26th EFM frame of a 98 frame C&D block, the specific C&D byte value to be recorded in the second buffer EFM frame shall be that of the 26th byte of the "current" 98-byte C&D channel word. The current C&D word is the one that contains the absolute-disc-time (ADT) value which is the same as the ADT value of the most recently read ATIP word (this will usually be the ADT of the previous ATIP word on the disc groove since the entire disc will generally be formatted in one sequential operation). The start locations of the second EFM frames of all buffer areas (i.e., the start of the 27-channel bit EFM frame sync patterns of these frames) on a CD-DASD disc shall be (TBD) EFM frames .+-.0.5 EFM frame from the end of the sync field of the nearest previous ATIP word (this normally is the ATIP word that has an ADT value that is 1/75th second higher than the ADT of the current C&D word). A description of the actual content of the second buffer EFM frame is given below.
The four EFM frames that constitute the header 90 shall begin with a 27-channel bit EFM sync pattern that is directly followed by the 17-channel bit sequences (including the 3 merging channel bits) that correspond respectively to the 27th, 28th, 29th and 30th Control & Display (C&D) bytes of the current C&D word. The contents of the remainder of each of the four header EFM frames shall be as follows:
HEADER FRAME 0 (last 32 bytes/544 channel bits):
14 replications of the 17-channel bit
pattern...00100000000001001...;
6 replications of the 3-byte pattern..47h; F2h; A8h.
We note that the channel data sequence obtained by EFM modulation of the repetitive 3-byte pattern 47h; F2h; A8h is:
....001001001001001001001001001001001001001001001001...
.vertline. .rarw. 47H .fwdarw. .vertline. .vertline. .rarw.
F2h .fwdarw. .vertline. .vertline. .rarw. A8 .fwdarw. .vertline.
That is, this 3-byte pattern, or any cyclic permutation of it, represents a data pattern that is most useful for establishing the frequency and phase of the write/read channel clock. That is, the pattern is a voltage frequency oscillator (VFO) field. The initial 14 bits of the first pattern recorded in the header EFM frame #0 (i.e., 00100000000001001) is not in the 8-bit byte 14-bit EFM sequence coding table, i.e., it is not one of the 2,10 constrained, 14-channel bit sequences assigned to any of the 256 possible byte values. This sequence is, however, the sequence that is used to represent the first of the two sync characters that define the start of a C&D channel word. Thus, the sequence is undefined as far as the main data channel is concerned, but it is recognized by standard EFM demodulators. We use the fourteen replications of this sequence as defined above to construct a unique Sector Mark, or flag, that unambiguously defines the start of a sector 88.
HEADER FRAME 1 (last 32 bytes/544 channel bits):
4 replications of the 3-byte pattern . . . 47h; F2h; A8h;
1 zero value byte; 1st byte of 3-byte sector ID field;
1 zero value byte; 2nd byte of 3-byte sector ID field;
1 zero value byte; 3rd byte of 3-byte sector ID field;
1 zero value byte; 1st byte of 3-byte ADT field;
1 zero value byte; 2nd byte of 3-byte ADT field;
1 zero value byte; 3rd byte of 3-byte ADT field;
1 zero value byte; 1 sector mode byte;
1 zero value byte; 1 reserved byte;
4 bytes of C1 ECC parity.
HEADER FRAME 2 (last 32 bytes/544 channel bits):
4 replications of the 3-byte pattern . . . 47h; F2h; A8h;
1st byte of 3-byte sector ID field; 1 zero value byte;
2nd byte of 3-byte sector ID field; 1 zero value byte;
3rd byte of 3-byte sector ID field; 1 zero value byte;
1st byte of 3-byte ADT field; 1 zero value byte;
2nd byte of 3-byte ADT field; 1 zero value byte;
3rd byte of 3-byte ADT field; 1 zero value byte;
1 sector mode byte; 1 zero value byte;
1 reserved byte; 1 zero value byte;
4 bytes of C1 ECC parity.
HEADER FRAME 3 (last 32 bytes/544 channel bits):
This frame is identical to header Frame 1.
The 3-byte sector ID fields in header frames 1 through 3 carry numerical values which identify the position of the sector 88 on the disc, i.e., along the disc's spiral groove. The 3-byte ADT fields carry the ADT value of the current C&D word (using the minutes; seconds; 1/75th second format). The Mode byte is set to a value which indicates a CD-DASD disc. The recorded C1 parity byte values in header EFM frames 1 through 3 are calculated by C1 encoding (in the normal or conventional way) the 28-byte block comprised of 12 zero value bytes followed by the 16 byte values that occur immediately after the 12-byte VFO sequence in each of the header EFM frames 1 through 3. When the sector header 90 is read, received C1 codewords are formed for each of header EFM frames 1, 2 and 3 by inserting the corresponding three sector ID byte values, the corresponding three ADT byte values, the corresponding sector mode byte values, the corresponding reserved byte values and the corresponding parity byte values that are read from the disc into their respective codeword locations while zero value bytes are placed in all remaining codeword locations (i.e., 20 zero value bytes are placed in each of these C1 codewords). The correctness of the recovered sector ID, ADT, mode and reserved byte fields can thus be checked simply by inspecting the syndrome of the corresponding received C1 codewords. Alternatively, at the drive manufacturer's option, these received codewords can be subjected to C1 error correction (or erasure correction in the event flagged bytes are found in the codeword). Note that, due to the interleaving of data and zero value bytes in header EFM frames 1 through 3, double-byte error bursts cannot contaminate the received C1 codewords formed from the data stored in the header EFM frames. Finally, we note that the cyclic permutation of the 3-byte VFO sequence (47h; F2h; A8h) which yields the minimum digital sum variation channel data stream should be used in header frames 1 through 3.
The buffer 96 includes two 588-channel bit EFM frames. The actual writing of each sector 88 begins and ends in the buffer area 96. Specifically, sector recording begins by writing the second of the two buffer frames (during the disc formatting process) and ends with the complete writing of the first of the two buffer frames (when the sector is entirely written by a CD-DASD drive). Both of the buffer area EFM frames begin with the standard 27-channel bit EFM sync pattern. As mentioned previously, in the second of the two buffer EFM frames, the EFM frame sync pattern is directly followed the 26th byte of the current C&D s word, i.e., the C&D word that has the same ADT values as the ATIP word that was most recently acquired by the disc formatter. The byte directly following the EFM sync pattern in the first buffer EFM frame, which is the last written EFM frame of a sector, will be the 25th byte of the C&D word that is current when the remainder of the entire sector (i.e., the sector areas other than the header 90) is written by the CD-DASD drive. Because the value of this byte will be computed from the absolute-disc-time (ADT) information contained in the header 90 of each sector, which in turn corresponds to the ADT value found in the ATIP channel of the disc, the C&D bytes of the two EFM frames that comprise the buffer 96 should be the 25th and 26th Bytes of the same C&D word.
The last 32 bytes/544 channel bits of the two buffer EFM frames are identical; they consist of the long VFO sequence obtained by EFM modulation of the 32-byte sequence:
F2h;A8h;47h;F2h;A8h;47h;F2h; . . . ;A8h;47h;F2h;A8h.
We note that the buffer area 96 represents a 2-EFM frame segment of the disc where the written disc track (groove) can overlap, or where a gap in the written track may exist. The maximum length of a recording overlap or gap should be about .+-.0.5 of an EFM frame although different gaps can be provided. This overlap, or gap, of the written track in the buffer area 96 may be caused by fluctuations in the rotational velocity of the disc, or by fluctuations in the time taken by individual CD-DASD drives to terminate a sector header 90 read operation and commence the sector write process.
The last EFM frame of the header 90 written on the disc shall end with a recorded mark (or pit). This can be realized by determining the total number of "ones" contained in the stream of channel data that corresponds to the last EFM frame in the buffer 96 and all of the EFM frames of the header 90 (recall that the first channel bit of every EFM frame, i.e., the first bit of the 27 channel bit EFM frame sync pattern is a "one"); if the number of "ones" is odd then the header 90 can be made to terminate with a mark by starting the last EFM frame of the buffer 96 with a (eleven channel bit long) space--if the number of "ones" is even then the header 90 can be made to terminate with a mark by starting the last EFM frame of the buffer 96 with a (eleven channel bit long) mark. Causing the header 90 to end with a mark will allow the preamble 92 to start with an eleven channel bit long space, which will minimize the possibility of overwriting the end of the header when the CD-DASD drive writes the preamble portion of a sector.
A CD-DASD drive writes information to a CD-DASD disc in units of complete sectors 88. That is, when the drive writes any sector 88 of the disc, it records the single-EFM frame preamble 92, the 189-EFM frame data/parity area and first of the two buffer area EFM frames in their entirety. After reading the preformatted header 90 (and establishing bit clock synchronization via the VFO and EFM frame synch fields contained therein, as well as determining the sector ID and ADT values from the appropriate header fields), the CD-DASD drive is switched to write mode and begins recording the single-EFM frame preamble 92. Thus, the single EFM frame that comprises the preamble 92 is the first frame of the sector 88 that is written by the CD-DASD drive. This EFM frame begins with the standard 27-channel bit EFM frame sync field followed immediately by the appropriate C&D byte value (namely, the value corresponding to the 31st byte of the current C&D word). Thereafter, the frame is a 16-byte VFO pattern, a 12-byte sector sync field and four C1 parity bytes as follows:
PREAMBLE EFM FRAME (last 32 bytes/544 channel bits):
16 bytes of VFO (F2h; A8h; 47h; F2h; . . . , A8h; 47h; F2h);
4 repetitions of the 3-byte sequence 9Ch; 64h; 79h;
4 C1 parity bytes.
When the preamble 92 is written the drive's write clock will be have the frequency and phase that was established by reading the header area's VFO and EFM frame sync fields. However, due to variations in the time taken by different drives to switch from header reading to preamble writing and/or slight differences in the spindle RPMs of the drives that write and read the sector, a data clock discontinuity may occur when a given CD-DASD drive reads across the boundary between the header and preamble areas of a fully written sector. The long (16-byte/272-channel bit) VFO field in the preamble 92 can enable a CD-DASD drive's read channel clock to adjust to any phase slippage between data clocks that were used to write the VFO fields in the header and the reminder of the sector. However, it is still possible that the tolerance to the variation in read/write mode switching times that would be exhibited by different CD-DASD drives would be exceeded. A solution to this problem is to provide a "gap" between the header 90 and the preamble 92 with a size equivalent to 0.5 to 1.5 user bytes (8 to 25 channel bits) that could be a field of the sector preamble 92 in which no information is written. When a CD-DASD sector 88 is recorded, the CD-DASD drive would switch from reading (its mode of operation while the header area 90 of the sector 88 is traversed) to writing (its mode of operation during traversal of the preamble, Data/ECC Parity and first part of the buffer area 96 of the sector) during traversal of the gap. If a gap field having a particular length is specified, a CD-DASD drive that reads a sector (that may have been written by some other CD-DASD drive) will know when to expect the preamble 92 to start (within some tolerance, e.g. .+-.0.5 channel bit).
One approach to providing a gap would be to define a gap field of length, say G.+-..DELTA. channel bits, at the start of the preamble area 92 of the sector 88. However, this would cause the length of a CD-DASD sector to be increased, on average, to 196 EFM frames+G channel bits. Thus, if the sector headers 90 are written synchronously with the ATIP channel words during the CD-DASD disc formatting operation (a very desirable feature of the CD-DASD recording format that should not be compromised), then there would be an overlap of written information in the Buffer area 66 of the sector, i.e., the end portion of the first EFM frame of the buffer 96 would overlap the first G channel bits of the second EFM frame of the buffer 96. This overlap could be avoided by specifying that the first EFM frame of the buffer be shortened by G channel bits.
Although the above described obvious solution to the problem is viable, it has the disadvantage of causing the recorded CD-DASD disc to exhibit reduced compatibility with the established Compact Disc recording format. This goes against the goal of causing recorded CD-DASD discs to exhibit a very high level of compatibility with CD-Audio/ROM discs at the physical level (i.e., a recorded disc that is comprised of continuous 588-channel bit EFM channel frames). This goal should be maintained in order to minimize the alterations required to modify a standard CD playback channel such that it could read a recorded CD-DASD disc. A CD-DASD disc recorded using the obvious solution just described would have a discontinuity of G channel bits in the synchronous sequence of 588-bit EFM channel frames; unless a read channel that is designed to handle such discontinuities is used, such a discontinuity may present data recovery (channel bit synch) problems during playback of the CD-DASD disc.
A preferred solution to the problem is to provide a gap field at the start of the preamble area 92 of the CD-DASD recording format and cause sectors of length exactly 196 EFM frames to be recorded. This preferred solution can be realized by making use of the fact that the CD-DASD recording format, as described herein, provides that the preamble 92 (written on the disc) start with an eleven-channel bit long space (i.e., it cannot begin with a written mark, or pit). We shall consider this 11-channel bit long space to be a virtual gap (or field). When writing a sector, a CD-DASD drive will begin writing the preamble 90 exactly 11.+-..DELTA. (e.g., .DELTA.=0.5) channel bits after it has finished reading the header 90 and the length of the first EFM frame of the preamble 92 that is written is reduced by 11 channel bits (to 577 channel bits). Note that we allow for the possibility that the preamble 92 will have length of one or more frames here. In effect, the CD-DASD drive assumes that the first 11-channel bit space of the first EFM frame of the preamble 92 has already been written to the disc. This solution to the problem (i) implements an 11.+-..DELTA. channel bit gap at the start of the preamble 92 during a CD-DASD write operation and (ii) causes sectors of exactly 196 EFM frames, on average, duration to be written. The preferred solution to the problem thus causes a recorded CD-DASD disc to consist of a continuous sequence of synchronous 588-channel bit EFM frames, i.e., compatibility with the physical marking/timing of the recorded CD-Audio/ROM disc is maintained.
EFM modulation of the 3-byte sequence 9Ch; 64h; 79h yields the channel data sequence:
0100 0010 0100 0010 0010 0010 0100 0100 1000 0010 0100 1000 xxx,
where the three trailing x's indicate the terminating merging bits. This 48-channel bit pattern is the same pattern that is specified in the magneto optical (MO) disk drive standards as a sector sync field. This pattern is error tolerant, i.e., when parsed into twelve 4-bit nibbles as shown above, the auto correlation pattern of the twelve nibble pattern exhibits a high, narrow central peak. Thus, as the 48-bit pattern is fed, bit-by-bit, through a 12-stage autocorrellator the probability of determining its correct boundaries is high, even if the pattern contains a few erroneous channel bits. The EFM frames that comprises the preamble 92 of the sector preferably contain 4 repetitions of this 48-channel bit sector sync pattern in order to provide for extremely robust CD-DASD sector boundary detection as well as channel data (EFM) demodulator word synchronization.
The four C1 parity bytes that are recorded in the preamble EFM frame 92 are calculated in the normal or conventional way from the 28-byte data block that consists of sixteen zero value bytes followed by four repetitions of the 3-byte sequence 9Ch; 64h; 79h. When the disc is read, the corresponding received C1 codewords are constructed by placing the last sixteen bytes recovered from the corresponding preamble frames 92 recorded on the disc into their respective codeword locations and placing zero value bytes in the first sixteen locations of each codeword. This enables one to determine (via the computed syndrome of the received C1 codeword) whether any of the four recovered copies of the sector sync field were contaminated by errors.
Since the C&D byte of the first EFM frame of the sector (i.e., header EFM frame #0) is the 27th byte of a C&D word, C&D words will begin in (i.e., the first sync characters of C&D words will appear in) the 73rd and 171st EFM frames of each sector 88. (This follows because the data that comprises a single C&D word, which is multiplexed with the main data, spans 98 contiguous EFM frames.) The single-EFM frame preamble 92, which is the 5th frame of the sector 88, contains the 31st byte of the current C&D word as well as a 12-byte CD-DASD sector sync field. This CD-DASD sector sync field is therefore located at +31 frames from the start of a C&D block; this is within the -10/+36 EFM frame specification for C&D block/CD-ROM sector offset stated in the CD-ROM and CD-Write-Once standards (i.e., in the "Yellow Book" and "Orange Book").
Each of the 189 EFM frames that comprise the data/ECC parity area 94 of a CD-DASD sector 88 begin with the standard EFM frame sync pattern. The EFM sync pattern of each frame is followed immediately by a 17-channel bit, EFM encoded C&D byte. These C&D bytes preferably have sequential values, i.e., the first EFM frame of a given sector's data/ECC parity area 94 contains the 32nd byte of the current C&D word, the next EFM frame holds the 33rd byte of that C&D word, etc. Note that, since a complete C&D word is carried in 98 contiguous EFM frames, a new C&D word will start with the C&D byte that is contained in the 68th EFM frame of each data/ECC parity area 94 (which is the 73rd frame of the CD-DASD sector). The absolute-disc-time (ADT) values of these new C&D words will be 1/75th second higher than the ADT values of the C&D words that are current when the first frame of each data/ECC parity area 94 is written.
The last 32 bytes/544 channel bits of each of the 189 EFM frames that comprise the data/ECC parity area 94 of a given CD-DASD sector 88 are drawn from a pool of 189.times.32=6048 bytes that is comprised of 4508 bytes that constitute the "logical CD-DASD sector" and 1540 bytes of parity information for the seven C1/C2 product codewords that constitute the "disc level ECC" which is analogous to the cross-interleaved Reed Solomon (CIRC) error correction code (ECC) that is used in conventional CD-Audio/ROM/Writable systems. Which 32 of the total pool of 6048 available bytes is contained in a given EFM frame of the data/ECC parity area 94 depends on the schemes used to form the disc level C1/C2 product codewords and interleave them (disc level encoding of the logical sector data and interleaving of the disc level product codeword is done prior to writing the 189 EFM frames that comprise the data/ECC parity area 94 of the sector 88). The preferred construction of the CD-DASD logical sector is described later herein and disc level encoding/interleaving is also described later in this discussion. The 32-byte data sequences which are written as the last 32 bytes of the 189 EFM frames that comprise the data/ECC parity area 94 of a representative CD-DASD sector 88 also are described later herein.
It is to be recognized that the physical (EFM-frame contents specific) CD-DASD sector structure described above is an example (although preferred) structure and that substantial changes can be made within the spirit of the invention. For example, the number of bytes of VFO field information in any, or all of, the header, buffer and preamble areas can be altered. Even the channel data sequences that constitutes the VFO or sector sync patterns can be altered. Moreover, the number of EFM-frames that comprise the various sector areas could be changed, e.g., the header could be comprised of only 3 EFM frames if the preamble is expanded to 2 EFM frames in length (the simplest way to do this would be two let the last EFM frame of the header as described above become the first EFM frame of the two-frame preamble). Finally, if one is willing to eliminate the resemblance of the CD-DASD format to the current CD-audio/ROM format, the information content of the C&D bytes of each frame could be redefined or the nature of these bytes could be altered (e.g., the 17 channel bits used to represent the C&D byte of each EFM frame could be used as additional resynch field data which is added to the 27 channel bit EFM frame synch field that starts each EFM frame.
The preferred structure of the logical sector will now be described. The information written in the header 90, preamble 92 and buffer area 96 of the CD-DASD sector 88 is predetermined, i.e., the exact values of all data in these areas needs to be consistent with a predefined format such as previously described. The user has no control over what is recorded in these areas of the sector 88. The data/ECC parity sector area 94 holds a total of 189.times.32=6048 bytes, but 1540 of them are earmarked to carry the parity information of the disc level C1/C2 product ECC. Thus, the values of a total of 4508 bytes are not specified by the preferred CD-DASD recording format, i.e., the format provides that the user may or allows the user to specify these byte values. This block of 4508 bytes, which have values that are not specifically determined by the CD-DASD format constitute the CD-DASD "logical sector." We shall refer to a CD-DASD logical sector which allows the user to freely define (i.e., assign arbitrary values to) all 4508 logical sector bytes as a CD-DASD Mode 02 logical sector.
A second CD-DASD logical sector, the CD-DASD Mode 01 logical sector will also be defined.
An additional level of ECC and error detection coding is implemented in the Mode 01 logical sector. Thus, Mode 01 sectors provide a standardized means to insure the (high) reliability of data recovered from a CD-DASD disc. When Mode 01 CD-DASD sectors are used; the user can arbitrarily specify the values of 4096 (user data) bytes. Thus, 4508-4096=412 "extra" bytes are available in each CD-DASD Mode 01 sector to carry system information and "sector level ECC" parity data.
In order to emulate, to the maximum possible extent, the Mode 01 sector defined in the conventional CD-ROM specification, the 4508-byte CD-DASD Mode 01 logical sector 98 is preferably comprised of, in sequence, as illustrated in FIG. 8, a 4-byte address field 100 (which consists of three sector ID bytes and one reserved byte), a first 2048-byte user data field 102, a first 200-byte error detection/correction parity field 104, 8 bytes of reserved data 106, a second 2048-byte user data field 108 and a final 200-byte error detection/correction parity field 110. The 400 bytes of parity data comprise 8 parity bytes of a sector level cyclic redundancy check (CRC) code and 392 bytes of parity for a sector level Reed Solomon ECC. The sector level CRC code is meant to provide a final check of the reliability of the data recovered from a CD-DASD sector; its parity information must therefore be protected by the sector level Reed Solomon ECC.
Two sector CRC codewords, each having four parity bytes are formed from the user data 102, 108 and system data 106 that is contained in each Mode 01 CD-DASD sector. The four parity bytes of the first of these CRC words are computed by (i) organizing three bytes that constitute the sector ID, one reserved byte (the value of which can be determined during implementation and could specify the CD-DASD logical sector mode), 2048 user bytes (half of the 4096 user bytes to be written to the sector) and twenty "zero" bytes into the 28 columns shown in Table Ia of Table Appendix; (ii) adding (byte-by-byte XOR) the seventy-four byte values in each of these columns to obtain twenty-eight new byte values; (iii) C1 encoding these twenty-eight new byte values to obtain four CRC parity bytes. (We note that user data byte number nnn is denoted as Dnnn in Table Ia.) The four CRC parity bytes obtained via this process are denoted in the sequel as CRC1, CRC2, CRC3 and CRC4. Four additional CRC parity bytes are computed in the same way from 8 reserved byte values, the remaining 2048 user data bytes of the sector and 16 "zero" value bytes which are organized as shown in Table Ib of the Table Appendix for this purpose. These latter CRC bytes are denoted in the sequel as CRC5, CRC6, CRC7 and CRC8.
In our exemplary CD-DASD Mode 01 logical sector, we allocate 392 total bytes to carry the sector ECC parity information. At this time we shall only possibly specify a preferred sector ECC code. The rational for this is that a particular future implementation should specify a code that is compatible with decoders that will be widely available (and therefore inexpensive) in the near future. An example of such a target decoder is the one that will be employed in the second generation "high density" CD systems that will be commercially introduced in 1996, or soon thereafter. Since the specifications of the ECC that will be used in this high density CD system are not in the public domain at the present time, providing a "hard" specification the CD-DASD sector ECC in this document that will be compatible with such a future system is not possible. we will, however, describe two possible ECCs that could be used as the CD-DASD Mode 01 logical sector ECC in such future systems. Both of these codes should provide adequate reliability to data recovered from CD-DASD discs, and one of them is likely to be compatible with the decoders that will be employed in the next generation of CD systems, or with a slightly modified version of that decoder.
One potentially useful CD-DASD Mode 01 sector ECC can be defined by first organizing the information to be protected, namely the user data bytes, the sector ID bytes, the reserved bytes and CRC bytes, as the 147-row.times.28-column array shown in Table IIa of the Table Appendix. This information can be encoded as 28 words of a length 161-byte, distance 15 Reed Solomon code that uses the individual byte values as its basic code symbols, i.e., a [161, 147; 15] RS code on GF(256). Each of these 28 codewords have exactly 14 bytes of parity information. Thus, a total of 14.times.28=392 bytes of sector ECC parity data would be recorded in each sector 88. Alternatively, the 4116 bytes in Table IIa, together with 12 additional "zero" value bytes could be organized as a 172-row, 24-column array (with the 12 added "zero" value bytes placed as the leading twelve byte of the first row). This data could then be encoded as 24 codewords of a [188, 172; 17] RS code on GF(256), which would require a total of 24.times.16=384 bytes of parity information.
Eight additional bytes of reserved information could be added to the CD-DASD sector 88 if this latter sector ECC is used (these eight additional bytes would replace eight of the twelve "zero" value bytes that were placed in the first row of the 172-row.times.24-column array mentioned above).
Regardless of the sector ECC that is specified for use in the CD-DASD recording format, the individual codewords will be suitably interleaved to insure that no two bytes that belong to a given codeword are written to adjacent locations along the disc data track. For example, the [161, 147; 15] RS code would be interleaved to depth 28; individual bytes of any codeword would be separated by at least 27 bytes (one byte from each of the other 27 codewords) when they are recorded on the disc track. The method of assigning the bytes in the array shown in Table IIa to specific words of an interleaved code can be defined when the final sector ECC is selected.
As a precursor to disc level C1/C2 product coding, the 4508 bytes that comprise the CD-DASD logical sector can be organized into seven sub-blocks. Each sub-block is comprised of 644 bytes that are arranged into a 28-row.times.23-column array. The seven logical sector sub-blocks that correspond to a Mode 01 CD-DASD logical sector that employs a sector ECC that produces 392 bytes of parity information are shown in Tables IIIa through IIIg of the Table Appendix. Sector ECC parity byte number mmm is denoted as 3Pmmm in these tables. Note that the columns of the seven sub-blocks shown in these tables are numbered from 1 through 161.
The disc level error correction code (ECC) utilized in the CD-DASD recording format is implemented by (i) encoding the seven CD-DASD logical sector sub-blocks to form seven complete C1/C2 product ECC codewords, and (ii) interleaving these seven product codewords. The C1/C2 product ECC encoding and interleaving methods are defined hereinafter.
The C1 and C2 ECC codes referred to herein are preferably the same codes that together constitute the cross interleaved Reed Solomon (CIRC) ECC employed in all Compact Disc systems. C1 and C2 are (32, 28; 53 and [28, 24; 5] RS codes on GF(2.sup.8) respectively. C1/C2 product encoding is performed by (i) scrambling the contents of the seven CD-DASD logical sector sub-blocks to form seven new 28-row.times.23-column arrays; (ii) adding a single column that consists of 28 "zero" elements to the left of each of these new arrays to produce seven 28-row.times.24-column arrays which each have a column containing 28 "zero" elements as their first columns; (iii) C2 encoding the twenty-eight 24-element rows of each of these seven new arrays to obtain 28 four-tuples of C2 parity bytes for each array, one four-tuple corresponding to each row in each of the arrays; (iv) expanding each of the aforementioned 28-row.times.24-column arrays into a 28-row.times.28-column array by inserting the four parity bytes that correspond to each row at the center of the respective row, such that the center four columns (i.e., columns 13, 14, 15 and 16) of each of the seven 28-row.times.28-column arrays will contain only C2 parity bytes; (v) C1 encoding the twenty-eight 28-element columns in each of the seven 28-row.times.28-column arrays to obtain 28 four-tuples of C1 parity bytes for each array, one four-tuple corresponding to each column in each of the arrays; (vi) expanding each of the seven 28-row.times.28-column arrays into 32-row.times.28-column arrays by adding the four-tuples of C1 parity bytes that correspond to each column at the end of the respective column, such that the last four rows (i.e., rows 29, 30, 31 and 32) of each of the seven 32-row.times.28-column arrays contain only C1 parity bytes. The seven C1/C2 product codewords that result from C1/C2 product encoding (via the above prescription) each of the seven logical sector sub-blocks that appear in Tables IIIa through IIIg are given as Tables IVa through IVg in the Table Appendix. The ith parity byte of C1 codeword number jj and the ith parity byte of C2 codeword number kk are denoted respectively as 1Pjj-i and 2Pkk-i in these latter tables.
The scrambling that is referred to in item (i) of the C1/C2 product encoding prescription given directly above is done only to cause the C2 encoded rows of the C1/C2 product codeword to be such that they can be C2 decoded by existing conventional CIRC decoders that operate in CD-Audio mode. (It is desirable to design the C1/C2 product code in such a way that existing, low cost CIRC block decoder chips can be used to realize CD-DASD read channels. The architecture of these extant CIRC decoders is such that the data that is input to their incorporated C1 and C2 decoders can be manipulated via external circuitry, but the data output by the incorporated C2 decoder cannot be accessed until it appears at the output of the CIRC decoder chip. Since existing CIRC decoder chips perform a descrambling operation that is the inverse of the C2 codeword scrambling specified in the CD-Audio standards, i.e., in the "Red Book", after C2 decoding is performed--but before it is output, data that is processed by such CIRC decoders must be appropriately scrambled at the C2 codeword level. In other words, existing C1/C2 CIRC block decoder chips can be used to decode the C1/C2 product codewords given as Tables IVa through IVg such that the logical sector sub-blocks given as Tables IIIa through IIIg will essentially appear at the CIRC decoder chip output. We note that an alternative to implementing the CD-Audio C2 scrambling in the C1/C2 product definition is to (i) not include this scrambling when forming the C1/C2 product codeword, (ii) collect the data output by an existing CIRC decoder chip that decodes such a C1/C2 product codeword in a buffer and (iii) descramble this data by reading the buffer in an appropriate way.) The result of the scrambling referred to in item (i) of the C1/C2 product coding prescription can be seen by comparing the first 28 rows of the 2nd through 12th and 17th through 28th columns the arrays in Tables IVa through IVg with the arrays in Tables IIIa through IIIg of the Table Appendix.
Note that there are exactly 196 total columns and 196 total rows (ignoring the rows that contain only C1 parity data) in the seven C1/C2 product codewords. The numbers at the top of each array, and to the left of each array, in Tables IVa through IVg respectively indicate the relative order of each these columns and rows across all seven C1/C2 product codewords. The small numbers just below the column numbers in Tables IVa through IVg indicate the logical sector sub-block column(s) (cf., Tables IIIa through IIIg) that contain any data which appears in the respective C1/C2 product codeword column. Similarly, the small numbers immediately to the right of the row numbers in Tables IVa through IVg indicate the logical sector sub-block row(s) that contain any data which appears in the respective C1/C2 product codeword row. For example, the byte labeled D24 that appears at the 2nd row/17th column of the array in Table IVa is the byte that appears at the 3rd row/5th column of the logical sector sub-block shown in Table IIIa.
In order to provide robustness against long burst error events, the data contained in the seven C1/C2 product codewords is preferably interleaved prior writing the data onto the disc track. This interleaving is designed to insure that bytes that belong not only to a given product codeword, but also to a given C1 or C2 word, are well-separated when they are written onto the disc data track. Two separate and independent interleaving operations are performed.
First, the 196 columns that comprise the seven C1/C2 product codewords are interleaved to depth seven. This is illustrated in Table V of the Table Appendix, which shows the first 29 columns of the depth 7 column-interleaved C1/C2 product codeword that results when the seven product codewords shown in Tables IVa through IVg are column-interleaved to depth seven. We see that the first seven columns of Table V are precisely the first columns of each of the seven individual C1/C2 product codewords, arranged sequentially.
Similarly, the next seven columns of Table V are the sequential arrangement of the second columns of each of the seven individual C1/C2 product codewords, etc. We note that, if the data in Table V is written to the disc track column-by-column, i.e., the first byte of column 1 is written first, followed by the second byte of that column, etc., then individual bytes of any C2 codeword will be separated by at least seven columns of data (7.times.32=224 bytes) along the disc track; this is a depth 224 interleaving of the C2 code.
Next, the columns of the depth 7 column-interleaved C1/C2 product code are organized into 28 groups that each contain seven columns of data. This is done in an ordered way, such that the first group comprises the first seven columns of the depth 7 column-interleaved C1/C2 product codeword, the second group comprises its next seven columns, etc. The data in the seven columns that comprise each 7-column groups is then interleaved. One method of doing this is illustrated in Table VIa of the Table Appendix, which shows a cross-interleaving of the data contained in seven 32-element columns (all the "1s" in Table VIa were originally in column 1; all the "2s" were originally in column 2, etc.). Table VIb illustrates this seven column cross-interleaving scheme applied to the 7-column group which is the second group of seven columns that appears in the array depicted in Table V, i.e., the group comprised of columns 8 through 14 of the array in Table V. Here, the shaded elements in the array of Table VIb indicate the 32 data bytes that originally resided in column 11. We note that if each column in Table VIb were written to the disc data track as the last 32 bytes of an individual EFM frame, then (since each column of the array in Table V is a C1 codeword) the columnar cross interleaving under discussion would cause a depth 7 interleaving of the seven C1 codewords that encode the data bytes of Table VIb (we note that the depth 7 C1 interleave is maintained across the columns of Table VIb because a 27-channel bit EFM frame sync pattern and a C&D byte are recorded between the last C1 codeword byte of one of the columns and the first C1 codeword byte of the next column).
The C1/C2 product code interleaving just discussed provides a depth 7 interleave of the C1 code and a depth 238 interleave of the C2 code.
Regardless of whether we are dealing with Mode 01 or Mode 02 CD-DASD logical sectors, the first seven columns of the 32-row.times.196-column array that results from the encoding and interleaving processes just described will be all "zero" bytes (this is because the four parity bytes obtained by C1 encoding twenty-eight "zero" value bytes are all "zero" value bytes as well). Thus, we do not have to record these first seven columns. By discarding these columns we are left with a 32-row.times.189-column array; the 189 columns of this array are exactly the 32-byte data sequences which are sequentially written as the last 32 bytes of the 189 EFM frames that comprise the data/ECC parity area 94 of the CD-DASD physical (channel) sector 88.
When this data is recovered from a recorded sector on the disc (after EFM demodulation) it is first de-interleaved 112 and then formed 114 into the appropriate seven C1/C2 product codewords as illustrated in FIG. 9. The seven all "zero" value byte columns that were discarded prior to writing the data to disc are inserted as the first column of these seven product codewords when they are formed. These seven C1/C2 product codewords are then decoded 116 to obtain the CD-DASD logical sector data. If CD-DASD Mode 01 logical sectors are used, this logical sector data may be processed by the sector ECC and CRC decoders to correct errors before it is sent to the CD-DASD controller's output buffer.
The operation of encoding or writing a CD-DASD disc first involves formatting 118 the disc, as illustrated in FIG. 10. This process consists of converting a conventional CD-R/E disc to a CD-DASD disc by recording the 4-EFM frame headers for every CD-DASD sector (as well as the last EFM frame of the previous sectors' buffers) that will be located along the spiral disc groove in the annular area of the disc that will be dedicated to CD-DASD use. The headers are recorded at 196-EFM frame intervals and are synchronized with the disc's ATIP data channel. A low level formatting operation consists of only writing the sector headers (this may be done by the disc manufacturer). A high level formatting operation consists of writing operating system/file system information (e.g., volume descriptor, boot record, etc.,) into the data areas of specific CD-DASD sectors. High level formatting will be done by a CD-DASD drive when the disc is prepared for use (low level formatting by a CD-DASD drive may also be possible).
The next step is to form 120 the logical CD-DASD sector. The logical CD-DASD sector is a block of 4508 bytes of data which is written by a CD-DASD drive in the data/ECC parity area of CD-DASD sector. If Mode 02 CD-DASD sectors are being recorded, all 4508 bytes of the logical sector have user defined values. If Mode 01 sectors are being written, 4096 of the 4508 bytes have values that are defined by the user. The user defined bytes, parsed into the appropriate size blocks, will usually be provided to the CD-DASD drive's encoder by the file subsystem that is being used by the operating system that is controlling the CD-DASD drive. In the case of Mode 01 sectors, the CD-DASD encoder will use the 4096 user bytes, three appropriate sector ID bytes and the required number of reserved bytes to compute the CD-DASD sector level CRC and sector level ECC parity bytes. These parity bytes are subsequently added to the previously mentioned data to form the Mode 01 CD-DASD logical sector.
The next operation is to perform the CD-DASD disc level ECC encoding/interleaving. The CD-DASD "disc level ECC" is analogous to the CIRC code used in conventional CD-Audio/ROM systems. The CD-DASD logical sector is first parsed into 7 logical sub-blocks and then each of these is C1/C2 product code encoded 122. Next, the resulting 7 C1/C2 product codewords are depth 7 column-interleaved 124 to form 28 groups, each containing 7 C1 codewords (each C1 codeword in a given group belongs to a different C1/C2 product codeword). The seven C1 codewords in each of these groups are then interleaved 124, to a depth of 7. After this process is completed, the 4508 bytes that comprise the CD-DASD logical sector, together with 1540 parity bytes that result from C1/C2 product encoding, will be distributed as the last 32 bytes of exactly 189 EFM frames.
Next, each of the 189 32 byte blocks described above are conventionally EFM modulated and appended 126 as the last 544 channel bits of the 189 EFM frames that comprise the data/ECC parity area of the CD-DASD sector recorded on the disc. Prior to writing these 189 EFM frames to the disc, however, a one-EFM frame CD-DASD preamble is inserted 128 before the 189-EFM frame CD-DASD data/ECC parity sequence and a single CD-DASD buffer EFM frame is added after it. This group of 191 EFM frames is then recorded in a single contiguous write operation immediately after the header of the appropriate CD-DASD sector on the disc. This completes the recording of the CD-DASD sector.
To perform the reading of discs written using the above described procedure the circuit of FIG. 3 can be modified. FIG. 11 shows a block diagram of one possible modification which can accomplish the task of reading the data in the new format. First, the external RAM 52, or possibly one half of the external RAM dedicated to C2 de-interleaving, may be disabled by using a variety of techniques such as, physically removing certain pins of the integrated circuit or alternatively, producing a "disable signal" via a disable generator 148. Another approach is to detect the mode bits (i.e., bits which define the type of disc) of the disc and use those to control switching to a completely different set of external circuitry. Upon the disabling or switching, the external circuit 150 is enabled and switched into the bus and control signal paths for the decoder 50. The external CD-DASD decode circuitry 150 may contain two Random Access Memories 152 and 154 indicated as RAM 1 (holding at least 64 frames) and RAM 2 (holding at least 64 frames) or, one single memory module which is logically divided into two sections. An address translator/controller 156 intercepts the read/write control and address signals that are produced by the internal processor 58 of the decoder 50 and generates new address values and read/write enable signals for writing the data into RAM 1 and RAM 2. This address generation will be discussed in more detail later.
In the external circuitry 150, some parts of the C1 de-interleave mechanism, for example, the write-1 addressing scheme, can remain functionally intact even if no C1 codeword interleaving is used in the CD-DASD format. In this case, the address values and read/write control signals, generated by the internal processor 58, can be routed directly to RAM 1 without modification. If C1 codeword interleaving is utilized, the de-interleaving of the C1 words requires remapping of the address values. This is also done by the address translator/controller 156 during the "Read 1" and "Write 1" cycles.
In a similar fashion, the address translator/controller 156 can write the "Write 2" bytes into RAM 2 and retrieve them in a different order during the "Read 2" cycle. The basic idea behind the address translator/controller 156 is to remap the address values generated by the internal processor 58 to provide the proper de-interleaving required for the CD-DASD block retrieval of the information bytes. In summary, the function of the address translator/controller 156 is to: First, intercept the address values that appear on the external RAM bus. Thus, the "location" of the byte with respect to its neighboring bytes is determined. Second, produce a new address value that will write/read the byte to/from a new "location" of RAM 1 or RAM 2. The details of the control operation of the controller 156 are discussed below.
The SAA7310 decoder chip 50 (see FIG. 3) uses a 16K.times.4 external dynamic RAM 52, such as the NEC PD 41464, to initially store the data bytes that are sequentially retrieved from the disc 18. These data bytes are subsequently read from the RAM 52 in the sequential order that is required to form C1 codewords. Data output from the C1 decoder is also written to and read from this RAM using the two (different) address sequences that are required to form C2 codewords. This RAM is logically divided into two halves; one half is dedicated to C1 codeword storage, de-interleaving and retrieval while the other half performs the same tasks for the C2 codewords. The data bytes that appear on the SAA7310-RAM bus can be divided into four groups: write-1, read-1, write-2, and read-2 data cycles. Write-1 and read-1 operations accomplish the de-interleaving required to form C1 codewords and write-2 and read-2 performs the de-interleaving needed to form C2 codewords.
FIG. 12 is an interleave diagram array 160 that depicts one half of the dynamic RAM 52 used for performing the C1 de-interleaving (write-1 and read-1 operations) in the Philips CDD 461 CD-ROM drive that uses the SAA7310 decoder chip 50. Dynamic RAM architecture is such that individual memory cells are arranged in a row-column format. To access a memory location, the row address as well as the column address of the desired location must be specified. The 16K.times.4 RAM 52 external to SAA7310 decoder chip 50 has 54,536 individual 4-bit memory locations that are arranged as a 256 row.times.256 column grid. C1 and C2 storage and deinterleaving in the Philips CDD 461 player, however, is accomplished by utilizing only a 256 row by 48 column grid of memory locations. Every single read or write operation that is initiated by the decoder chip 50 accesses three nibbles (1 nibble=4 bits) of the external RAM 52; two nibbles contain the data byte value and the third nibble holds the EFM erasure/CIRC decoder flag information. For every write or read, a row address value is first placed on the RAM address lines followed by three column address values. The hex numbers in the first four columns of FIG. 12 represent all 128 possible row addresses that are used in write-1 and read-1 operations. For a given row address, the data and flag nibbles can be written to one of 16 trios of column addresses shown as hex numbers in top three rows of FIG. 12. Thus, every square in FIG. 12 (excluding the row and column address squares) represents a 3-nibble location of the dynamic RAM 52. For example, the three nibbles that are stored in the cross-hatched square near the center of FIG. 12 can be accessed by activating row address 98 (hex) followed by column addresses 0E, 2E, and 4E (hex).
The write-1 data (which is comprised of data bytes that are sequentially output by the EFM demodulator 54) are written into sequential locations of the RAM 52. FIG. 12 shows a typical write-1 cycle; the cells marked with the letter "W" indicate the RAM memory locations that hold the data corresponding to one 32-byte EFM frame and two partial EFM frames. A complete EFM frame is comprised of 33 bytes. The first byte of the recovered EFM frames (also known as the C&D byte), however, is extracted by the P and Q subcode processors and is not written to the external RAM 52. The first trio of bytes of the write-1 cycle is circled for clarity. A read-1 cycle is also indicated in FIG. 12 by the cells marked with the letter "R". The 32 data bytes and associated flag nibbles that are sent to the SAA7310 chip 50 via the read-1 operation constitute one complete C1 word. Note that sequential memory locations are not addressed during a read-1 cycle. The staggered arrangement of cells involved in a single read-1 cycle implements the depth 2 de-interleaving required to form a C1 codeword.
FIG. 13 shows an array diagram 162 similar to the one in FIG. 12 for the write-2 and read-2 operations of the decoder 50. In this figure, the write-2 and read-2 nibble trios are numbered in the sequence that they are written to or read from the RAM (i.e., the memory location identified by W7 is written after memory location identified as W6, etc.). The first bytes of the write-2 and read-2 operations are circled. Note that the row addresses are different from those in FIG. 12 and the write/read address values follow a more complex pattern. In this case, the 28 data bytes and associated flag nibbles that are sent to the SAA7310 chip 50 via the read-2 operation constitute one complete C2 word. Also note that read-2 byte #28 (not shown in the figure to avoid confusion) coincides with the last write-2 byte (w28) that was written during the write-2 cycle.
The address translator controller 156 performs the following tasks:
1) It recognizes (via monitoring the row address values and the read/write enable line of the existing dynamic RAM) the four different read and write operations discussed above.
2) It produces new address values to read/write the data and flag nibbles into new locations of RAM1 and RAM2 of FIG. 11.
A portion of task 1 can be accomplished by circuit 170 which is used to separ the write-1 data from the remaining data which is illustrated in FIG. 14. A similar circuit can be constructed for the read-1, write-2 and read-2 cycles by a person of skill in the art. The data and flag bytes that correspond to write-1, read-1, write-2 and read-2 operations do not occur sequentially on the bus of external RAM 52. For example, the 32 bytes of an EFM frame are not written in 32 consecutive write-1 operations to the RAM. The above four read and write operations are interleaved in a special format depicted in FIGS. 12 and 13 and circuit 170 is designed to extract the write-1 operation from the available data and address lines. The following is a description of circuit 170 which separates the "write-1" data from the remaining information that appear on the bus of RAM 52.
The signals on the left hand side of the circuit 170 are available on the bus of RAM 52 and are intercepted by the write-1 capture circuit 170. The write discriminator 172 separates the write operations from the read operations by monitoring the Read/Write Control signal and generating a signal to indicate the presence of a write operation. Write-1 selector 174 uses the signals that are generated by the write discriminator 172 to indicate the presence of a write-1 operation. Once the "write" operations are separated from the "read" operations (via the write discriminator 172), the "write-1" operations are further extracted by the write-1 sector 174. The write-1's can be uniquely recognized by the fact that some write-1's are preceded by either a read-1 or read-2 operation. But, a write-2 is never preceded by a "read" operation. The write-1 selector uses this property of the external RAM's Read/Write cycle to extract the write-1 operations. The row address of the first byte of an EFM frame can have one of four hexadecimal values: 00, 40, 80, C0. The row address values and the row address strobe line are used by the row address discriminator 176 to indicate the presence of one of the above four addresses. The write-1 frame detector 178 uses the column address strobe line to generate write-1 bytes ("Write-1 data") and the associated flags by intercepting the data and flag bits that correspond to one of above row addresses (i.e., 00,40,80,CO) followed by the subsequent 31 data bytes and the associated flags that are written to the external RAM 52 during the next 31 write-1 operations. The signal labeled "Write-1 Strobe" is normally low (0 volts) and becomes high only to indicate the presence of a write-1 trio (data byte plus the flag nibble). The signal labeled "New Frame Strobe" is normally low and becomes high to indicate the start of a new EFM frame.
Generation of the new address values (task 2 above) can be done with an address translation table using, for example, a ROM look-up table. It is also possible to describe the translation using a translation algorithm. However, because the translation needs to be fast and inexpensive a table look-up operation is preferred. The translation can be best illustrated by a simple example where 7 non-interleaved rectangular codewords (no C1 interleaving internal to a given codeword and depth twenty-eight C2 interleaving) are used to make up one complete sector on the disc 18. One such product codeword is depicted in FIG. 4. In the CD-DASD recording format, the addressing scheme for the recovery of C1 codewords does not require the staggered read-1 addressing arrangement (see FIG. 12). The row and column addresses for the write-1 operation may be routed directly to RAM (152), which itself can be a duplicate of the current 16K.times.4 RAM 152. The read-1 addresses, however, must be remapped by the address translator/controller 156 so that the read-1 trios are retrieved in the same sequential order that were written by the write-1 operations. The array 180 of FIG. 15 illustrates one complete C1 word retrieval sequence in the CD-DASD format. This figure is identical to FIG. 12 except for the modified read-1 addressing scheme.
The major modification required for the present invention, however, involves the remapping of write-2 and read-2 addresses. The CD-DASD format requires a write-2 addressing scheme which is similar to the write-1 cycle of FIG. 12. During a write-2 cycle the data are written in sequence into columns of 28 (3-nibble) trios of RAM2 (154). After 28 complete write-2 cycles have been completed, 28 C2 words are formed as 28 rows of 28 consecutive columns of RAM2 (154). A partial memory map 182 of RAM2 is shown in FIG. 16. Assume the data byte contained in the first write-2 trio of FIG. 13 (row address: E1; column addresses: 0C, 2C, 4C) is the first byte of a product codeword shown in FIG. 4. This trio may be placed by the address translator/controller 150 into row address: 01; column address: 00, 20, 40 of RAM2. The new address for write-2 trio #2 (row address: E3; column addresses: 0C, 2C, 4C) would then be row address: 03; column address: 00, 20, 40; etc. Write-2 #784 (the 28th trio of write-2 frame #28) is the last trio which needs to be remapped in order to complete the 28-row by 28-column rectangle. The new address for this byte will be row address: FB;
column addresses: 0C, 2C, 4C. The new write-2 frame locations are shown in the left half of FIG. 16. For example, a portion of the translation table would look like
______________________________________
Write 2
Input Address Output Address
______________________________________
E1; 0C, 2C, 4C 01; 00, 20, 40
. .
. .
. .
01; 1C, 3C, 5C FB; 0C, 2C, 4C
______________________________________
The C2 frames, for this example, are formed as the twenty-eight 28-byte rows depicted in the memory map 184 in FIG. 17. By providing these address translations in a ROM look-up table the controller 156 can perform the mapping needed for the direct access storage device--compact disc (CD-DASD) format.
The present invention, in addition to providing a new CD-DASD, also allows the access speed to the data to be improved, furthering the goal of providing a fast DASD device. The compact disc standards specify that the disc rotation is such that a uniform relative velocity must be maintained between the disk and the pickup. Thus, the angular velocity of the disc decreases as the read/write head moves to larger radii on the disc. This is known as a constant linear velocity disc rotation scheme, or simply as CLV. In the case where data must be retrieved/written in a random access fashion, such as in the CD-DASD format described herein, the optical head must suddenly move to a larger or smaller radius. If the system read channel uses a single (constant) frequency bit clock, the read head must remain idle until the proper linear velocity is achieved. This technique results in relatively long data access times. In the CD-DASD format much faster data access can be achieved by placing one or more variable frequency oscillator (VFO) fields in the pre-recorded sector headers. These fields for example, may consist of a long sequence of identical marks and spaces that each have the shortest length allowable by the 2,10 RLL channel constraints. The VFO fields may be used to establish the proper frequency and phase of the read/write channel clock without requiring the disc 18 to maintain a constant linear velocity. There may be one or more VFO fields in a given sector header and one or more additional VFO fields within the 4704-byte sector itself. VFO fields outside the sector header may be used to check/re-capture the instantaneous clock frequency and phase.
Once the optical read/write head has moved across the disc 18 to a new sector, a new channel clock frequency is determined by reading the VFO fields. The angular velocity of the disc 18 will eventually decrease or increase (depending on whether the head is moved to a larger or a smaller radius) to maintain the constant linear velocity. Therefore, the frequency of the channel clock will need to decrease or increase from the time the first byte of the sector is read to the time when the final sector byte (byte #6272) is retrieved. The block diagram of FIG. 18 illustrates a tracking circuit 190 for changing the initially acquired (via the VFO fields) frequency with two programmable divider circuits 192 and 194. This circuit also includes a phase locked loop circuit 196 for tracking the frequency. The output frequency, fo, obeys the following relationship:
fo=(N/M)fi
where, M determines the smallest incremental change in the output frequency (the output frequency can change in fr=fi/M increments) and N determines the range of output frequencies that can be achieved. For example, if fi=6 MHz and M=50, fo={5.88, 6.00, 6.12} MHz for N={49, 50, 51}. The difference between fi (which is the recovered clock frequency at the beginning of the sector) and the nominal channel frequency (4.3218 MHz) determines whether the angular velocity of the disc 18 will decrease or increase for the remainder of the sector. Accordingly, the value of N in divider 194 can be incremented or decremented in discrete steps to change the clock frequency for the remaining bytes of the sector. The initial bit clock frequency and its rate of change profile would ideally be established for each sector while the drive reads the sector's header. The frequency varying bit clock is then used to both write new information in a sector and to read a previously recorded sector. Alternatively, constant linear velocity writing and variable clock frequency reading could be used.
Random seek data access times can vary significantly from one CD-ROM drive to another, These data access times are strongly dependent on how quickly the drive spindle servo can change the disc rpm. Thus, the values of N and M and the rate at which N may be incremented or decremented will depend on the particular disc drive. The above parameters may change even if the same disc drive is used over time. To circumvent this limitation, each drive may be calibrated at regular intervals or even dynamically calibrated every time it is turned on. The results of the calibration can be stored in a calibration table 198 (RAM) as shown in FIG. 18. This calibration may consist of measuring some worst-case seek times as well as some intermediate seek times and determining the required rate of change in N as a function of the recovered frequency, fi.
The many features and advantages of the invention are apparent from the detailed specification and, thus, it is intended by the appended claims to cover all such features and advantages of the invention which fall within the true spirit and scope of the invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and operation illustrated and described, and accordingly all suitable modifications and equivalents may be resorted to, falling within the scope of the invention. For example, the |