Handle the data managing method and the CD-ROM drive of the readback data generation decoding error of CD
Technical field
The present invention relates to the method and apparatus of a kind of processing decoding error (decoding error), refer to a kind of data managing method and CD-ROM drive of handling the readback data generation decoding error of CD especially.
Background technology
Reading of conventional optical disc, be with a data section (sector) serve as the decoding unit, so in the time of must reading the not decoded data on the CD again when producing decoding error, only need read the data segments that makes a mistake again, and the described data segments of decoding again gets final product, no matter this mode is that to utilize hardware or software to implement all considerably simple.But at digital versatile disc (digital versatile disc, DVD) or follow-on Blu-ray Disc (Blu-ray disc, BD) or high analytical disc (High-definition DVD, HD-DVD) time, data be not with a data section serve as the decoding unit, but gather a data block (block) of being formed with several data segments is the decoding unit, so arbitrary data segments generation decoding error and need read not decoded data on the CD again the time, the complexity that can come than conventional optical disc.Known as industry, for digital versatile disc, it is to form a data block with 16 data sections, and wherein said block is known ECC block; For Blu-ray Disc, it is to form a data block with 32 data sections, and wherein said block is known gathering together (cluster); As for high analytical disc, it then is to form a data block with 32 data sections, and wherein said block is well known data section (data segment).
See also Fig. 1, Fig. 1 is the synoptic diagram of existing CD-ROM drive 100.CD-ROM drive 100 can be handled the decoding error that readback data took place (decoding error) of a CD 102, and it includes a storage device 110 (for example DRAM (Dynamic Random Access Memory)), a control circuit 120 and a decoding circuit 130.Storage device 110 stores the readback data that is read by CD 102 as a circular buffer (ring buffer), and as shown in Figure 1, the storage area of storage device 110 can be considered and is divided into a plurality of block (block) BK
1~BK
n, wherein each block includes a plurality of data segments (sector) SC
1~SC
mConcerning digital versatile disc, the m value was 16 (that is each ECC block includes 16 sections), and concerning Blu-ray Disc and high standard CD, the m value is 32 (that is each are gathered together and each data segment all includes 32 sections), known as industry, generally speaking, write the data processing of staggeredization of process (interleaving) earlier on the disc, therefore, before will depositing storage device 110 in by the data that disc read, can be earlier through the processing of deinterleaveization (de-interleaving), thus, same data segments in storage device 110 for depositing continuously, in addition, the data that also can adopt the another kind of practice and will be read on disc directly deposit storage device 110 in, and thus, what be stored in storage device 110 is still without the data of crossing the deinterleave processing, therefore, decoding circuit 130 just need have the function of deinterleaveization, that is decoding circuit 130 itself must comprise a deinterleave circuit, so that follow-up decoding action can be carried out smoothly.In addition, the n value then depends on the storage volume of storage device 110, and is therefore big if storage volume heals, then the quantity of 110 block that can note down of storage device also big more (that is the n value is bigger).Control circuit 120 is coupled to storage device 110, and control circuit 120 includes a buffer pointers (bufferingpointer) BP, one decoding pointer (decoding pointer) DP, and reading pointer (reading pointer) RP, be used for controlling the access of readback data in the storage device 110, in other words, control circuit 120 may command one read/write head (not shown) is from CD 102 reading of data, and readback data is stored to storage device 110, in addition, control circuit 120 also may command storage device 110 readback data that its inside has been finished decoding be passed to main frame 104.Decoding circuit 130 is coupled to control circuit 120 and storage device 110, stored readback data in the storage device 110 is used for decoding, in addition, when decoding, decoding circuit 130 is that unit decodes with the data segments, and decode procedure also comprises the action of known error correction (error correction), if decoding circuit 130 produces decoding error when decoding one data segments, then decoding circuit 130 can be informed processor 140 by output one signal S, and how processor 140 can further control circuit 120 decisions adjust buffer pointers BP, decoding pointer DP and reading pointer RP.Below sketch function and the association of all pointer BP, DP, RP in storage device 110 interior readback datas and the control circuit 120.
See also Fig. 2, Fig. 2 is the synoptic diagram of corresponding address in buffer pointers BP shown in Figure 1, decode pointer DP and the reading pointer RP sensing storage device 110.Readback data Data_1 includes readback data Data_3 (be decoding at present a certain data blocks) and oneself the readback data Data_4 that decodes that do not decode in readback data Data_2, the decoding.Buffer pointers BP is used to refer to (indicate) to desire to write to the start address of storage device 110 from the readback data of not decoding that CD 102 reads, that is and then the described readback data of not decoding is not decoded readback data Data_2 and write in the storage device 110; Decoding pointer DP is used to refer to the start address (that is start address of a certain data blocks) of readback data Data_3 on storage device 110 in the decoding; Reading pointer RP then is used to refer to present address of waiting for oneself the decoding readback data that is read by main frame 104 (a for example personal computer), is the start address of oneself decoding readback data Data_4 in storage device 110.In addition, (decoding error does not promptly take place) under normal operation, if the data reading speed of main frame 104 is faster than the data decode speed of decoding circuit 130, then may be when decoding circuit 130 be still decoded readback data Data_3, oneself decoding readback data Data_4 all is read to main frame 104, so readback data Data_1 only can include readback data Data_3 in do not decode readback data Data_2 and the decoding, this moment, reading pointer RP can rest on the end address of the last data section of readback data Data_3 in the decoding, and when readback data Data_3 successfully finishes decoding, decoding pointer DP just can shift to the start address of next data segments of readback data Data_3, and reading pointer RP promptly can point to the start address of readback data Data_3.
Known as industry, CD-ROM drive 100 can be handled the running of the readback data generation decoding error of CD 102 under three kinds of situations, first kind of situation is: when decoding error took place, the start address of readback data Data_3 (a corresponding data segments) on storage device 110 was the reference position of the pairing block of readback data Data_3 in the decoding just in the indicated decoding of decoding pointer DP; Second kind of situation is: when decoding error takes place, decoding pointer DP and the not corresponding same block of reading pointer RP, and the start address of readback data Data_3 (a corresponding data segments) on storage device 110 is not reference position for the pairing block of readback data Data_3 in decoding in the indicated decoding of decoding pointer DP; And the third situation is: when decoding error takes place, decoding pointer DP corresponding same block with reading pointer RP, and the start address of readback data Data_3 (a corresponding data segments) on storage device 110 is not reference position for the pairing block of readback data Data_3 in decoding in the indicated decoding of the pointer DP that decodes.
Please consult Fig. 1 and Fig. 3 simultaneously, Fig. 3 handles the synoptic diagram of first embodiment of decoding error for CD-ROM drive 100 application of known data managing methods shown in Figure 1.In time T
3The time, buffer pointers BP indication is data segments SC from the start address that readback data desires to write to storage device 110 of not decoding that CD 102 reads
yThe start address of next data segments of (numerical value of y is less than or equal to the numerical value of m), decoding pointer DP is the data segments SC in the instruction decoding then
1Start address (note that data segments SC
1Be block BK
I+3First data segments), reading pointer RP indicates the address of waiting for oneself the decoding readback data that is read by main frame 104 at present, that is data segments SC
xThe start address of (numerical value of x is less than or equal to the numerical value of m).As 130 pairs of data sections of decoding circuit SC
1Information decode and when decoding error took place, decoding circuit 130 can be informed control circuit 120 by output signal S because data segments SC
1Be block BK
I+3First data segments, therefore, time T '
3The time, control circuit 120 only need upgrade buffer pointers BP, so that it points to data segments SC
1Start address, therefore, CD-ROM drive 100 just can come according to the buffer pointers BP after upgrading again will be from block BK on the CD 102
I+3Play (data segments SC for example
1To data segments SC
y) the corresponding readback data of not decoding be loaded in the storage device 110.As mentioned above, at first kind of situation, CD-ROM drive 100 must be adjusted a pointer (that is buffer pointers BP).
Please consult Fig. 1 and Fig. 4 simultaneously, Fig. 4 handles the synoptic diagram of second embodiment of decoding error for CD-ROM drive 100 application of known data managing methods shown in Figure 1.In time T
4The time, the buffer pointers BP start address that readback data desires to write to storage device 110 of not decoding that to be indication read from CD 102 is data segments SC
yThe start address of next data segments of (numerical value of y is less than or equal to the numerical value of m), decoding pointer DP is the data segments SC in the instruction decoding then
zThe start address of (numerical value of z is less than or equal to the numerical value of m) (note that data segments SC
zBe not to be block BK
I+3First data segments), the address of oneself the decoding readback data that is read by main frame 104 is being waited in reading pointer RP indication at present, that is data segments SC
xThe start address of (numerical value of x is less than or equal to the numerical value of m).As 130 pairs of data sections of decoding circuit SC
zInformation decode and when decoding error took place, decoding circuit 130 can be informed control circuit 120 by output signal S because data segments SC
zBe not to be block BK
I+3First data segments, therefore, time T '
4The time, control circuit 120 need upgrade buffer pointers BP and decoding pointer DP in the lump, so that it points to block BK
I+3Start address, therefore, CD-ROM drive 100 just can come according to the buffer pointers BP after upgrading again will be from block BK on the CD 102
I+3The corresponding readback data of not decoding that rises is loaded in the storage device 110, and in addition, CD-ROM drive 100 also can come again to data block BK according to the decoding pointer DP after upgrading
I+3The follow-up data section that rises carries out decode operation.As mentioned above, at second kind of situation, CD-ROM drive 100 must be adjusted two pointers (that is buffer pointers BP and decoding pointer DP).
Please consult Fig. 1 and Fig. 5 simultaneously, Fig. 5 handles the synoptic diagram of the 3rd embodiment of decoding error for CD-ROM drive 100 application of known data managing methods shown in Figure 1.When time T 5, buffer pointers BP indication is data segments SC from the start address that readback data desires to write to storage device 110 of not decoding that CD 102 reads
yThe start address of next data segments of (numerical value of y is less than or equal to the numerical value of m), decoding pointer DP is the data segments SC in the instruction decoding then
zStart address (the data segments SC of (numerical value of z is less than or equal to the numerical value of m)
zBe not block BK
I+3First data segments); The address of oneself the decoding readback data that is read by main frame 104 is being waited in reading pointer RP indication at present, that is data segments SC
jThe start address of (numerical value of j is less than or equal to the numerical value of m).As shown in Figure 5, data segments SC
jWith data segments SC
zAll be positioned at same block BK
I+3In.As 130 pairs of data sections of decoding circuit SC
zInformation decode and when decoding error took place, decoding circuit 130 can be informed control circuit 120 by output signal S, so, time T '
5The time, control circuit 120 need upgrade buffer pointers BP, decoding pointer DP (reading pointer RP address pointed can't change) in the lump, so that it all points to block BK
I+3Start address, therefore, CD-ROM drive 100 just can come according to the buffer pointers BP after upgrading again on CD 102 block BK
I+3The corresponding readback data of not decoding that rises is loaded in the storage device 110, and comes again to data block BK according to the decoding pointer DP after upgrading
I+3The follow-up data section that rises carries out decode operation.On the other hand, because the pairing address of reading pointer RP is to surmount the pairing address of decoding pointer DP, therefore CD-ROM drive 100 can be passed to main frame 104 with the readback data of decoding in the storage device 110 by time-out, till the pairing address of decoding pointer DP surmounts reading pointer RP.As mentioned above, at the third situation, CD-ROM drive 100 must be adjusted two pointers (that is buffer pointers BP and decoding pointer DP), and need remember to prevent from the data read away by main frame to be repeated to read by main frame.
Extremely shown in Figure 5 as Fig. 3, as block BK
I+3In the decoding of a data segments produce (above-mentioned first, second, third kind of situation) when wrong, block BK
I+3If the operation that can decode again is block BK
I+3Always can't be successfully decoded, then existing CD-ROM drive 100 can be abandoned data block BK
I+3In do not finish the decode operation of the data segments of decoding, and when main frame 104 requires, with block BK
I+3In finished the data segments of decoding information be passed to main frame 104, if main frame 104 requires Data transmission block BK
I+3In when not finishing the information of data segments of decoding, then the response information of handling decoding error is given main frame 104.
In sum, because decoding pointer DP is the initial or end address of a certain block of fixed directional not, but can point to the interior any data segments of described block, when therefore just causing in case decoding error takes place, the existing data managing method of handling decoding error need come buffer pointers BP and decoding pointer DP are carried out suitable adjustment at different situations, because judgment mechanism is complicated, at last just can cause the complexity of whole CD-ROM drive 100 to increase, and CD-ROM drive 100 usefulness of handling decoding errors also can be subjected to certain influence and not remarkable.
Summary of the invention
One of purpose of the present invention is to provide a kind of data managing method and CD-ROM drive of handling the readback data generation decoding error of a CD, to address the above problem.
The present invention discloses a kind of data managing method of readback data generation decoding error of processing one CD, described readback data is stored in the CD-ROM drive in the storage device, described readback data includes a plurality of block, and each block includes a plurality of data segments.Described data managing method includes: a buffer pointers and a decoding pointer (a) are provided; (b) readback data of not decoding that uses described buffer pointers to indicate to read from described CD writes to the address of described storage device; (c) use described decoding pointer to indicate the start address of the block in the decoding in the described readback data, before wherein all data segments were all successfully decoded in described block, described decoding pointer pointed to the start address of described block constantly; And (d) certain data blocks and when decoding error takes place in the described block of decoding, upgrade described buffer pointers and correspond to the indicated address of described decoding pointer, to read the not decoding readback data of corresponding described block again from described CD with the address of indicating the described readback data of not decoding to write to described storage device.
The present invention also comprises: (e) after step (d) repeats a pre-determined number, only with in the described block the success data transfer of decoding to described main frame.
Step (a) also comprises provides an actual decoding pointer, described data managing method also comprises and uses described actual decoding pointer to indicate in the described block start address of data segments in the decoding, and step (e) data transfer of decoding according to described decoding pointer and described actual decoding pointer success described main frame extremely.
Described storage device is a DRAM (Dynamic Random Access Memory) DRAM.
Described CD is a digital versatile disc DVD, a high analytical disc HD-DVD or a Blu-ray Disc BD.
In addition, the present invention discloses a kind of CD-ROM drive in addition, it can handle the decoding error that readback data took place of a CD, described CD-ROM drive includes: a storage device, be used for storing described readback data, described readback data includes a plurality of block and described block includes a plurality of data segments; One control circuit is coupled to described storage device, is used for controlling the data access of described storage device; And a decoding circuit, be coupled to control circuit and described storage device.Described control circuit includes: a buffer pointers is used to refer to the readback data of not decoding that reads from described CD and writes to the address of described storage device; And a decoding pointer, be used to refer to the start address of the block in the decoding in the described readback data, wherein all data segments are by before the decoding successfully in described block, and described decoding pointer is indicated the start address of described block constantly; A certain data blocks in described decoding circuit is decoded described block and when decoding error takes place, described control circuit can upgrade described buffer pointers and correspond to the indicated address of described decoding pointer with the address of indicating the described readback data of not decoding to write to described storage device, to read the not decoding readback data of corresponding described block again from described CD.
When described control circuit repeats to upgrade after described buffer pointers reaches a pre-determined number, described control circuit only with in the described block the success data transfer of decoding to described main frame.
Described control circuit includes an actual decoding pointer in addition, be used to refer in the described block start address of data segments in the decoding, and the described control circuit data transfer of decoding according to described decoding pointer and described actual decoding pointer success described main frame extremely.
Described storage device is a DRAM (Dynamic Random Access Memory) DRAM.
Described CD is a digital versatile disc, a high analytical disc or a Blu-ray Disc.
Data managing method of the present invention provides a decoding pointer to replace the function of existing decoding pointer with the CD-ROM drive of using described data managing method in addition, and before all data segments are all successfully decoded in the block in a decoding, the disclosed decoding pointer of the present invention can be indicated the start address of block in the described decoding constantly always and can not changed to some extent, does not usually need to do different processing according to different situations when decoding error takes place so do not have prior art.Generally speaking, the CD-ROM drive of data managing method of the present invention and the described data managing method of application can reduce the complexity of total system, and the usefulness of CD-ROM drive processing decoding error also can promote significantly.
Description of drawings
Fig. 1 is the synoptic diagram of existing CD-ROM drive.
Fig. 2 is the synoptic diagram that buffer pointers, decoding pointer and reading pointer shown in Figure 1 points to corresponding address in the storage device.
Fig. 3 uses the synoptic diagram that the available data management method is handled first embodiment of decoding error for CD-ROM drive shown in Figure 1.
Fig. 4 uses the synoptic diagram that the available data management method is handled second embodiment of decoding error for CD-ROM drive shown in Figure 1.
Fig. 5 uses the synoptic diagram that the available data management method is handled the 3rd embodiment of decoding error for CD-ROM drive shown in Figure 1.
Fig. 6 is the synoptic diagram of an embodiment of CD-ROM drive of the present invention.
Fig. 7 uses the synoptic diagram that data managing method of the present invention is handled an embodiment of decoding error for CD-ROM drive shown in Figure 6.
CD-ROM drive 100,600
CD 102,602
Storage device 110,610
Control circuit 120,620
Decoding circuit 130,630
Main frame 104,604
Embodiment
See also Fig. 6, Fig. 6 is the synoptic diagram of an embodiment of CD-ROM drive 600 of the present invention.The function of CD-ROM drive 600 and class of operation are similar to CD-ROM drive shown in Figure 1 100, and it similarly can handle the decoding error that readback data took place (decoding error) of a CD (for example DVD) 602.In the present embodiment, CD-ROM drive 600 includes a storage device 610 (for example DRAM (Dynamic Random Access Memory)), a control circuit 620 and a decoding circuit 630.In the present embodiment, storage device 610 is to store the readback data that is read by CD 602 as a circular buffer (ring buffer), yet, please note, circular buffer only is a kind of embodiment of storage device 610, for the present invention, storage device 610 is not confined to the structure of circular buffer.As shown in Figure 6, the storage area of storage device 610 can be considered and is divided into a plurality of block BK
1~BK
n, wherein each block includes a plurality of data segments SC
1~SC
mConcerning digital versatile disc, the m value was 16 (that is each ECC block includes 16 sections), and concerning Blu-ray Disc and high standard CD, the m value is 32 (that is each are gathered together and each data segment all includes 32 sections), in addition, the n value then depends on the storage volume of storage device 610, therefore, it is big to heal as if storage volume, then the quantity of 610 block that can note down of storage device also big more (that is the n value is bigger).CD-ROM drive 600 of the present invention is control circuit 620 except including existing buffer pointers BP, decoding pointer DP and reading pointer RP with the main difference point of existing CD-ROM drive 100, it is provided with actual decoding pointer (actual decoding pointer) ADP in addition, in addition, control circuit 620 also provides a kind of new controlling mechanism to control decoding pointer DP, and its associative operation describes in detail in the back.Decoding circuit 630 is coupled to control circuit 620 and storage device 610, stored readback data in the storage device 610 is used for decoding, in addition, if decoding circuit 630 produces decoding error when decoding one data segments, then decoding circuit 630 can be informed control circuit 620 by output one signal S, and control circuit 620 just can determine how to adjust buffer pointers BP further, actual pointer ADP and the reading pointer RP of decoding.
The function of buffer pointers BP and reading pointer RP is identical with function mode and prior art, do not give unnecessary details in addition at this, and for decoding pointer DP, control circuit 620 is start addresses of controlling the block of decoding in its indication storage device 610, please note, what be different from prior art is, all data segments (SC in the block in described decoding
1~SC
m) all by before the decoding successfully, decoding pointer DP can indicate the start address of the block in the described decoding constantly always and can not change to some extent.In addition, control circuit 620 uses actual decoding pointer ADP to indicate the reference position of the data segments of just decoding at present in the block in described decoding in addition, its effect is then identical with existing decoding pointer DP, in other words, because being different from it in the present embodiment, the running of decoding pointer DP operates originally, so newly-increased actual decoding pointer ADP just is used for replacing the function of original decoding pointer DP.Please note, known as industry, under normal running (decoding error does not take place), moving of decoding pointer DP and the pairing address of reading pointer RP can't surmount the pairing address of buffer pointers BP, and moving of the pairing address of reading pointer RP can't surmount the pairing address of decoding pointer DP.
Please consult Fig. 6 and Fig. 7 simultaneously, Fig. 7 uses the synoptic diagram that data managing method of the present invention is handled an embodiment of decoding error for CD-ROM drive shown in Figure 6 600.In time T
71The time, the buffer pointers BP start address that readback data desires to write to storage device 610 of not decoding that to be indication read from CD 602 is data segments SC
cThe start address of next data segments of (numerical value of c is less than or equal to the numerical value of m), decoding pointer DP is the block BK in the instruction decoding then
I+2Start address, actual decoding pointer ADP is the data segments SC in the indication decoding
bThe start address of (numerical value of b is less than or equal to the numerical value of m), and reading pointer RP indicates address of waiting for oneself the decoding readback data that is read by main frame 604 at present that is data segments SC
aThe start address of (numerical value of a is less than or equal to the numerical value of m).As 630 pairs of data sections of decoding circuit SC
bInformation decode and when decoding error took place, decoding circuit 630 can be informed control circuit 620 by output signal S, therefore, in time T
72The time, control circuit 620 only need upgrade buffer pointers BP and actual decoding pointer ADP, so that it all points to block BK
I+2Start address, therefore, CD-ROM drive 600 just can come according to the buffer pointers BP after upgrading again on CD 602 block BK
I+2The corresponding readback data of not decoding that rises is loaded in the storage device 610, and in addition, CD-ROM drive 600 in addition can be according to the actual decoding pointer ADP after upgrading from block BK
I+2In first data segments SC
1Work the operation that begins to decode.Because block BK
I+2In all data segments successfully do not finish decoding as yet, so decoding pointer DP is corresponding data block BK constantly still
I+2Start address.
In time T
73The time, the buffer pointers BP start address that readback data desires to write to storage device 610 of not decoding that to be indication read from CD 602 is data segments SC
eThe start address of next data segments of (numerical value of e is less than or equal to the numerical value of m), decoding pointer DP then continues designation data block BK
I+2Start address, actual decoding pointer ADP is the data segments SC in the instruction decoding then
m(it is block BK
I+2Last data segments) start address, and reading pointer RP indicates address of waiting for oneself the decoding readback data that is read by main frame 604 at present that is data segments SC
dThe start address of (numerical value of d is less than or equal to the numerical value of m).When decoding circuit 630 successfully to data section SC
mInformation decode after, expression block BK
I+2In all data segments all successfully finish decoding, so, in time T
74The time, control circuit 620 is more new decoding pointer DP and actual decoding pointer ADP in the lump just, so that it all points to block BK
I+3Start address, therefore, CD-ROM drive 600 just can be according to the actual decoding pointer ADP after upgrading from block BK
I+3In first data segments SC
1Work the operation that begins to decode.As mentioned above, for CD-ROM drive 600, when its generation decoding error when decoding, CD-ROM drive 600 is only adjusted two pointers (that is buffer pointers BP and actual decoding pointer ADP).
In the present embodiment, if block can't successfully be finished the operation of decoding in a certain decoding always, then control circuit 620 can suitably be adjusted reading pointer RP, actual decoding pointer ADP directly abandons all information of described block and it is not passed to main frame 604 with decoding pointer DP, even that is existing partial data section is finished decoding in the described block, the readback data of decoding of corresponding described partial data section still can be rejected.In addition, if block can't successfully be finished the operation of decoding in a certain decoding always, then control circuit 620 also can send the readback data of decoding of the partial data section that can successfully decode in the described block to main frame 604 according to decode pointer ADP and decoding pointer DP of reality.
With respect to prior art, data managing method of the present invention provides a decoding pointer to replace the function of existing decoding pointer with the CD-ROM drive of using described data managing method in addition, and before all data segments are all successfully decoded in the block in a decoding, the disclosed decoding pointer of the present invention can be indicated the start address of block in the described decoding constantly always and can not changed to some extent, does not usually need to do different processing according to different situations when decoding error takes place so do not have prior art.Generally speaking, the CD-ROM drive of data managing method of the present invention and the described data managing method of application can reduce the complexity of total system, and the usefulness of CD-ROM drive processing decoding error also can promote significantly.
The above only is preferred embodiment of the present invention, and is all according to equalization variation and modification that the present invention did, all should be encompassed in protection scope of the present invention.