APPARATUS FOR STORING DIGITAL DATA

Abstract: An apparatus for storing digital data which is applied to a PCM audio tape recorder comprises: a data input circuit to receive data blocks each having block address data identifying the block, main data, and redundancy data forming error detection/correction code together with data including the block address data for detecting the presence/absence of errors in the block address data; an error detector to detect the presence/absence of errors in the block address data by use of the redundancy data and to produce an error detection signal when any error is detected; a 1st write address generator to generate 1st write address data; a 1st RAM to store the main data among the data block according to the 1st write address data; a 2nd write address generator to generate 2nd write address data; a 2nd RAM to store the 1st write address data from the 1st write address generator according to the 2nd write address data when the address data is decided to have no error by the error detector; a 2nd read address generator to generate 2nd read address data, whereby the 1st write address data in the 2nd RAM is read out according to the 2nd read address data; and a 1st read address generator to generate 1st read address data according to the 1st write address data read out from the 2nd RAM, whereby the main data in the 1st RAM is read out according to the 1st read address data.

Description: The present invention relates to an apparatus for storing digital data and, more particularly, to an apparatus for storing digital data which is applied to a PCM audio tape recorder or the like. In PCM digital audio tape recorders, in general, data to be recorded is divided into a plurality of blocks every predetermined amount of data. For example, each block comprises: a block sync signal located at the beginning; a block address arranged at the next position; and audio data and the like locating after the block address. In the case where such a data train divided into blocks each having such a data constitution is reproduced from a magnetic tape, a time base fluctuation component is included in the reproduction signal due to a variation in running speed of the magnetic tape or the like. To eliminate such a time base fluctuation component, there is used a time base correction circuit which is constituted in a manner such that the reproduction data is written into a buffer memory in response to a write clock synchronized with the reproduction signal and the data is read out of the buffer memory in response to a read clock based on a clock of a constant frequency which is generated from a crystal oscillator or the like. When the reproduction data is written into the buffer memory, the block address in the reproduction data is referred to every block and the data in this block is written into the address in the buffer memory which is determined by this block address. Therefore, the block address needs to be correctly reproduced. At least the block address of each block is encoded using an error detection code such as a CRC code or the like and recorded. The presence or absence of an error of the reproduced block address is checked using the error detection code. If the reproduced block address has been determined to be erroneous, the data in this block is not written into the buffer memory or is written as erroneous data. An example of such a time base correction circuit has been disclosed in GB-A-2084363. In such a conventional time base correction circuit, when the reproduction data is written into the buffer memory, it is necessary that the result of the error detection by the CRC code has previously been known. However, the result of the error detection is unknown until all of the reproduced data of one block are obtained. Therefore, for example, as disclosed in GB-A-2084363 and JP-A-59-175011, there are drawbacks such that a delay circuit and a temporary memory to store at least the data of one block and a memory control circuit to control them are necessary, and a large amount of memory capacity is needed, and the circuit constitution becomes complicated. It is, therefore, an object of the invention to provide an apparatus for storing digital data which can solve the foregoing conventional drawbacks. According to the present invention, there is provided an apparatus for storing digital data comprising: data input means for receiving data blocks each including at least block address data identifying the block, main data, and redundancy data for forming an error detection or correction code including data for detecting presence or absence of any error in the block address data; error detecting means for detecting the presence or absence of an error in the block address data with use of the redundancy data and for producing an error detection signal when any error is detected in the block address data; first write address generating means for generating first write address data; first memory means for storing at least the main data among the data block according to the first write address data from said first write address generating means; characterized in that the first write address generating means generates new first write address data only when no error is detected in the block address data corresponding to the stored main data otherwise the first write address is maintained whereby the main data of a new data block overwrites said stored main data in the first memory means; and further characterized by; second write address generating means for generating second write address data; second memory means for storing the first write address data according to the second write address data second read address generating means for generating second read address data, whereby the first write address data stored in said second memory means is read out according to the second read address data; and first read address generating means for generating first read address data according to the first write address data read out from said second memory means, whereby the main data stored in said first memory means is read out according to the first read address data. The apparatus can have a simple circuit construction in which the memory capacity can be reduced. Furthermore, the control circuits of the memories can be reduced and simplified. The following description is given merely by way of non-limitative example, with reference to the accompanying drawings; in which: Fig. 1 is a schematic diagram showing an example of a recording format of a digital audio tape recorder to which the present invention is applied; Fig. 2 is a block diagram showing the main section in an embodiment of the digital audio tape recorder to which the invention is applied; Fig. 3 is a block diagram showing the main section of a time base correction circuit shown in Fig. 2; and Fig. 4 is a schematic diagram for explaining the operation of the time base correction circuits shown in Figs. 2 and 3. The present invention will be described in detail hereinbelow with reference to the drawings with respect to an embodiment in the case where the invention is applied to a memory apparatus of a multichannel digital audio tape recorder, particularly, to a time base correction circuit of a reproducing circuit. Fig. 1 shows a block constitution of data which is recorded or reproduced by the digital audio tape recorder. In each block, a block sync pattern of eleven bits is formed in the beginning, a block address of two bits is then arranged, reserved bits of two bits are subsequently arranged, and a flag bit of one bit is then arranged. The reserved bits correspond to the undefined area. In the block having the address "00", the flag bit indicates the information of emphasis on/off by "1" bit. In the other blocks, the flag bit is set to "0". A sync word of sixteen bits is constituted by the block sync pattern, block address, reserved bits, and flag bit. Subsequent to the sync word, the audio data of twelve words each consisting of sixteen bits and the parity data of four words are arranged. Finally, a redundancy code forming a CRCC (Cyclic Redundancy Check Code) of sixteen bits is arranged. The CRCC is assigned for the data of the sync word, audio data, and parity data after the block address of two bits. The details of these formats are disclosed in GB 2084363, although they are partially different. Therefore, its description is not repeated here. Fig. 2 shows a schematic diagram of a circuit constitution for extracting the data trains from the signals of four channels reproduced from a magnetic tape, performing time base correction to the data trains, and thereafter executing error correction. The reproduction data trains of channels A to D reproduced from the magnetic tape are respectively supplied to reproduction data input terminals 1A to 1D. A master clock MCK based on crystal oscillating accuracy is supplied to an input terminal 3. A block sync signal XB-SYNC synchronized with the master clock is supplied to an input terminal 2. Various kinds of timing signals are formed by timing generator 4 on the basis of the master clock and block sync signal. The reproduction data trains supplied to the input terminals 1A to 1D are input to digital PLL₅ 5A to 5D. A bit clock BCK is extracted from the reproduction data trains. The reproduction data train of each channel and the bit clock BCK are supplied for every two channels to circuit blocks 6A and 6B for performing the detection of synchronization, demodulation, error detection, and time base correction, which will be explained in detail hereinafter. Buffer memories 7A and 7B for the time base correction are connected to the circuit blocks 6A and 6B, respectively. The time base corrected data and error flags are supplied to an error correction circuit 8 to process the data of the four channels on a time sharing basis. A buffer memory 9 is also connected to the error correction circuit 8. The data which was error corrected by the error correcting circuit 8 is properly corrected by an error interpolating circuit (not shown) at the post stage by use of the error status information which is simultaneously output. Thereafter, it is D/A converted and output as analog audio signals. The circuit blocks 6A and 6B to perform the sync detection, demodulation, error detection, and time base correction will now be described in detail with reference to Fig. 3 (Figs. 3A to 3B). Only the circuit to perform the sync detection, demodulation, error detection, and the like is shown in the diagram with respect to only one channel. However, the same circuit is also actually provided for another channel. The time base correction circuit can time sharingly process the data of two channels. In respect of channel A (CH-A), the reproduction channel signal is supplied from an input terminal 11a to an edge detecting circuit 12. The bit clock BCK extracted from the reproduction channel signal by the digital PLL 5A shown in Fig. 2 is also supplied from an input terminal 11b to the edge detecting circuit 12. The edge detecting circuit 12 detects the code inversion included in the reproduction channel signal synchronously with the bit clock BCK and outputs a detection pulse at this detection timing. An output from the edge detecting circuit 12 is supplied to a sync separating circuit 13. The block sync pattern shown in Fig. 1 is detected and a block sync signal XB-SYNC is output. The block sync signal XB-SYNC is supplied to a clock generator 14 and a clock signal synchronized with the block sync signal XB-SYNC is formed. On the other hand, the detection pulse from the edge detecting circuit 12 is supplied to a demodulator 15 of the channel coding and the data train is demodulated from the reproduction channel signal. The channel coding and its demodulator are disclosed in detail in GB 2061055 and their descriptions are not repeated here. The demodulated data train is supplied to an error detecting circuit 16. The presence or absence of errors is checked every block by use of the CRCC and an error flag indicative of the presence or absence of errors is output. In this case, the error detection of the block address and data is particularly important. On the other hand, the data train from the demodulator 15 is supplied to a serial/parallel converter (S/P converter) 17 constituted by a shift register of eight bits and converted into the parallel data of eight bits. The data from the S/P converter 17 is supplied to an upper bit latch 18, a lower bit latch 19, and a flag latch 20. Latch timing pulses are supplied to the latches 18, 19, and 20 from a latch timing generator 21. The S/P converter 17 and latch timing generator 21 operate in response to clocks from the clock generator 14. The upper bit latch 18 latches the symbols of upper eight bits of the word data of one sample and sixteen bits such as audio PCM signals, check code of the error correction code, or the like. The lower bit latch 19 latches the symbols of lower eight bits of the word data. The flag latch 20 latches the block address, reserved bits, and flag bit in the reproduction data. Outputs of the upper and lower bit latches 18 and 19 are supplied to a word data selector 22 of the word data. Word data to be written into a memory for word data is output from the word data selector 22. By counting the clock pulses from the sync separating circuit 13, a lower address in the column direction of a memory for word data, i.e., for the symbols of an eight-bit unit is formed by an address generator 23 of the word data memory. An upper address in the row direction of the memory for word data, i.e., for the block is formed by an address generator 24 of the word data memory, which will be explained hereinafter. On the other hand, the block address, reserved bits, and flag bit from the flag latch 20 and the error flag from the error detecting circuit 16 are latched by a flag latch 25. The upper address from the address generator 24 is supplied to an address latch 26. The data in the flag latch 25 and address latch 26 of each channel are supplied to a directory data selector 29 through channel selectors 27 and 28, respectively. The directory data which is written into a memory for directory data is output from the selector 29. In this embodiment, the memory area in one RAM 7A or 7B (Fig. 2) is separately used as a memory area 7w for word data and as a memory area 7d for directory data as shown in Fig. 4. Therefore, the word data from the word data selector 22 and the directory data from the directory data selector 29 are supplied to a write data selector 31. Either one of the word data and the directory data which are written into the RAM 7A or 7B is selectively output from the write data selector 31. A write timing signal is formed by a write timing generator 33 on the basis of a timing clock which is generated from the timing generator 4 and supplied to an input terminal 32. This write timing signal and a latch timing signal which is generated from the latch timing generator 21 are supplied to a data write controller 34 consisting of a flip-flop and a data write control signal is formed. Together with the timing clock from the input terminal 32, the data write control signal is supplied to a memory read/write controller 35. A switching signal is output from the controller 35. A tri-state buffer 36 connected to the write data selector 31 is controlled so that the word data and directory data from a data input/output terminal 37 are output during a write timing signal. With respect to the directory data, the write timing signal which is formed by the write timing generator 33 and the error flag from the error detecting circuit 16 are supplied to a directory data write controller 38 consisting of a flip-flop. Only when the error flag indicates the absence of errors, a control signal is output and supplied to the memory read/write controller 35. Only if it is decided that there is no error as the result of the error detection by the error detecting circuit 16, the directory data is output to the data I/O terminal 37. Such a control method is also disclosed in GB 2084363 and JP-A-57-50308. The memory area 7w for word data is designated by, for example, the upper address of four bits of 0 to 14 indicative of the block, the lower address of five bits of 0 to 31 representative of 32 symbols each consisting of eight bits corresponding to 16 words per block, and the middle address of one bit indicative of the channel. The memory area 7d for directory data is designated by, for example, the upper address of four bits which are all "1", the lower address of four bits of 0 to 14 indicative of the block, and the middle address of one bit representative of the channel. A method of producing these addresses will now be explained. A sector sync signal XS-SYNC of crystal accuracy and the block sync signal XB-SYNC are input to an input terminal 39. A read address in the memory area for directory data synchronized with these sector sync and block sync signal is produced by a directory read address generator 40 and supplied to an address selector 41. In a directory write address generator 42, a write address in the memory area 7d for directory data is formed by the read address from the read address generator 40, a lock mode signal from an input terminal 43, a whole delay amount of the time base correction circuit from an input terminal 44, and a block address in the reproduction data from the flag latch 20. A predetermined offset is given to the read address. The write address is supplied to the address selector 41 through a channel selector 45. The locking mode is disclosed in EP-A-0086658 and its description is not repeated here. On the other hand, the write address in the memory area for word data is formed by the word write address generators 23 and 24 as mentioned above. A control signal is output from the directory data write controller 38 only when the error flag from the error detecting circuit 16 indicates the absence of error. The upper address of the write address is formed when the control signal from the controller 38 is supplied as a clock to the address generator 24 together with the control signal from the data write controller 34. Therefore, only when it is determined to have no error as the result of the error detection, the write address in the memory area for word data is increased. As described above, the write address for the word data memory consisting of the upper address from the address generator 24 and the lower address from the address generator 23, the directory read address from the address generator 40, and the directory write address from the address generator 42 are output as address signals of the RAM 7A or 7B to an address output terminal 46 through the address selector 41. The word data is written into the memory area 7w in the RAM 7A or 7B and the directory data is written into or read out from the memory area 7d in the RAM 7A or 7B in accordance with these address signals. Immediately after the data is read out of the memory area 7d for directory data, the error flag bit is written into the state indicative of the presence of errors with respect to the area in the address which was read out. Such a control method is disclosed in GB 2084363 and JP-A-57-50308. Therefore, it is not shown in the diagrams and its description is also not repeated here. The directory data which was read out of the memory area 7d in the RAM 7A or 7B is input from the data I/O terminal 37. The upper address of the write address in the word data memory area in the RAM 7A or 7B is taken into a word read address latch 48 by a latch signal which is formed by a read data latch timing generator 47 on the basis of the control signal which is output from the memory write/read controller 35. This upper address is supplied to the address selector 41 through a channel selector 49. The lower address is formed in response to timing clocks including various kinds of frequency dividing clocks from the input terminal 32. These upper and lower addresses are used as a word read address. On the basis of this read address, the word data is read out of the memory area 7w in the RAM 7A or 7B. The data read/write control from/to the RAM 7A or 7B is performed by a write enable signal which is output from the memory read/write controller 35 to an output terminal 50. The readout control of the word data from the RAM 7A or 7B is performed in the following manner. A control signal from a First/Latter output controller 52 is supplied to the memory read/write controller 35 and data latch timing generator 47 by a First/Latter (F/L) mode signal which is supplied to an input terminal 51. When the word data is time sharingly output, a selection is made with regard to whether the word data is output in the former half or in the latter half. This is because although the circuit block 6A or 6B processes the data of two channels, the error correction circuit 8 can process the data of four channels. The word data which was read out of the word data memory area 7w in the RAM 7A or 7B is supplied from an output terminal 54 to the error correction circuit 8 at the post stage through a data latch circuit 53 which is controlled by the latch signal from the read data latch timing generator 47. On the other hand, the error flag in the directory data which was read out of the memory area 7d for directory data is supplied from output terminal 56 to the error correction circuit 8 at the post stage through an error flag latch 55 which is controlled by the latch signal from the read data latch timing generator 47. Further, the flag bit including the emphasis information in the directory data is also output from an output terminal 58 through a flag latch 57 which is controlled by the latch signal from the generator 47. The operation in the foregoing construction will now be simply described with reference to Fig. 4. If it is determined that there is no error as a result of the error detection by the error detecting circuit 16, the word data of 16 bits of the relevant block is written into the memory area 7w for word data in the RAM 7A or 7B which is designated by the word write addresses generated from the address generators 23 and 24. Fig. 4 shows a state in which the word data is at present being written into the area in the upper address "13". At the same time, with regard to this block, the directory data is written into the memory area 7d for directory data which is designated by the directory write address generated from the address generator 41. This directory data includes: the error flag of one bit indicative of the absence of errors which is output from the error detecting circuit 16; the emphasis information of one bit included in the block sync word; another flag bit of one bit; the reserved bits of two bits; the block address of two bits; the data of one bit indicative of the channel information; and the upper address of four bits which is formed by the address generator 24. Fig. 4 shows a state in which the directory data corresponding to the word data written in the area in the upper address "13" has been written in the directory area in the address "14". When the directory data is written in this manner, the upper address of the word write address is increased by the control signal which is supplied from the directory data write controller 38 to the address generator 24. If it is decided that there are errors as the result of the error detection, the word data of this block is once written into the memory area 7w which is designated by the word write address which was increased. However, since no control signal is supplied from the directory data write controller 38 to the address generator 24, the upper address is not increased. Therefore, the word data of the block which was determined to have no error is further overlappingly written into the same address, so that the word data which has already been written into the block that was determined to have errors is erased. On the other hand, since the corresponding directory data is not written into the memory area 7d for directory data, the error flag indicative of the presence of errors which was written just after it had been read out before remains. The directory data is read out of the memory area 7d on the basis of the read address from the read address generator 40 which is locked to the oscillating accuracy of the crystal oscillator. If the error flag indicates the absence of errors, the word data address is latched into the read address latch 48 and at the same time, the error flag of the area which was read out is forcedly rewritten into the state indicative of the presence of errors as mentioned above. The latched read address is supplied as the read address to the memory area 7w and the word data is read out. Fig. 4 shows a state in which the directory data is read out of the area in the directory address "1" in the memory area 7d for directory data and the word data is read out of the area in the upper address "2" in the memory area 7w for word data by use of the word address written in the readout directory data. If the error flag of the directory data indicates the presence of errors, no word data is read out of the memory area 7w. Even in the buffer memory 9 connected to the error correction circuit 8 at the post stage, in a manner similar to the buffer memory 7A or 7B for time base correction, after the data was read out, it is soon rewritten into the data with errors and at the same time, the error flag is also rewritten to the state indicative of the presence of errors. Therefore, if no word data is output from the time base correction circuit 6A or 6B, the erroneous data which has already been written remains in the corresponding area in the buffer memory 9 of the error correction circuit 8. The address in the block when it is determined to have no error is written into the memory area for directory data and the word data is read out of the memory area for word data in accordance with this address, so that the reproduction data train of one block is stored. The temporary memory and its control circuit are unnecessary. Thus, the time base correction circuit with a simple constitution using one RAM can be realized. In addition to the foregoing embodiment, it is also possible to write the word data or directory data into the memory area for word data or into the memory area for directory data irrespective of the presence or absence of errors. On the other hand, not only the word data but also a sync word, a redundancy code of an error detection code, or the like can be written into the memory area for word data. The present invention is not limited to the time base correction circuit but can be widely applied to a memory circuit of an error correction circuit and other memory circuits.

Claims: An apparatus for storing digital data comprising: data input means (1) for receiving data blocks each including at least block address data identifying the block, main data, and redundancy data for forming an error detection or correction code including data for detecting presence or absence of any error in the block address data; error detecting means (16) for detecting the presence or absence of an error in the block address data with use of the redundancy data and for producing an error detection signal when any error is detected in the block address data; first write address generating means (23, 24) for generating first write address data; first memory means (7w) for storing at least the main data among the data block according to the first write address data from said first write address generating means; characterized in that the first write address generating means (23, 24) generates new first write address data only when no error is detected in the block address data corresponding to the stored main data otherwise the first write address is maintained whereby the main data of a new data block overwrites said stored main data in the first memory means (7w); and further characterized by; second write address generating means (42) for generating second write address data; second memory means (7d) for storing the first write address data according to the second write address data second read address generating means (40) for generating second read address data, whereby the first write address data stored in said second memory means is read out according to the second read address data; and first read address generating means (40) for generating first read address data according to the first write address data read out from said second memory means, whereby the main data stored in said first memory means is read out according to the first read address data.

Inventors: HIRAMATSU, AKIHIKO
Applicants: SONY CORPORATION
Application year: 1987
Main classification: G11B20
IPC codes: G11B20