Abstract:
A storage uses a memory device with a continuous transfer function as typified by an SRAM (Synchronous Random Access Memory) or a DRAM (Dynamic RAM) with an EDO (Extended Data Out). As for the detection/correction of data errors, the storage reduces, the ratio of the number of check bits to the number of data bits by effectively using a burst transfer function available with the memory device This allows a single memory device to recover from faults. This can be done with a device for dividing an ECC unit into a plurality of parts in a continuous transfer direction and writing one of them in the memory device at a time, and detecting/correcting the errors of data read out of the memory device while buffering them on an ECC basis.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to storage using a memory device having a continuous transfer function as typified by an SRAM (Synchronous Random Access Memory) or a DRAM (Dynamic RAM) with EDO (Extended Data Out). More particularly, the present invention is concerned with a storage including means for generating a single ECC (Error Correcting Code) particular to data error control technologies for N read/write units and controlling error correction/detection. 
     2. Description of the Related Art 
     Semiconductor memory devices typified by DRAMs have customarily been used in computers and peripherals thereof for storing programs and/or computation data as needed. To store accurate data in a semiconductor memory device, it is a common practice to use an ECC system adding a preselected number of check bits necessary for an ECC to data bits, writing them in the memory device together, and detecting or correcting, based on the data bits and check bits, errors with an error detecting circuit at the time of data reading. Also, the ratio of the number of check bits to the number of data bits should preferably be reduced from the standpoint of the amount of hardware, i.e., the number of memory devices. In light of this, an ECC system generally referred to as SEC-DED (Single-bit Error Correction Double-bits Error Detection) is predominant over the other ECC systems. 
     Today, in parallel with the progress of semiconductor technologies, the capacity of a memory device is increasing while even personal computers are required to have a huge storage capacity. However, the unit storage capacity to be extended should preferably be as small as possible from the market needs and product standpoint Moreover, a current trend is toward a DRAM having multiple bits, e.g., four bits or eight bits, as distinguished from a single bit, for reducing the space and cost to be allocated to the DRAM. Fast data transfer to a memory device is another prerequisite in consideration of the increasing operation speed of a processor. To meet this requirement, a DRAM or an SDRAM with EDO capable of transferring data at a higher speed than the conventional DRAM has recently been developed. 
     However, when the number of bits of the memory device is increased, the conventional SEC-DED ECC system cannot recover a single memory device from all faults It is therefore necessary to increase the number of check bits for remedying aft the faults of a plurality of bits or to physically spread data via software such that the faults of a plurality of bits do not overlap in a single ECC. The data spreading scheme is taught in Japanese Patent Laid-Open Publication No. 61-177559. However, the former scheme is not practicable without resorting to a prohibitive number of bits in the error correction theory aspect, resulting in an increase in hardware (number of memory devices) for storing data consisting of data bits and check bits. 
     Why the number of memory devices increases with an increase in the number of check bits (ECC) is as follows. A relation between the number of data bits and the number of check bits necessary for an ECC function, as determined by the ECC code theory, is as follows. Every condition shown below is well known in the art. 
     
       
         
               
               
               
               
             
           
               
                   
               
               
                   
                 Number of 
                 Number of 
                   
               
               
                 Item No. 
                 Data Bits 
                 Check Bits 
                 ECC Function 
               
               
                   
               
             
             
               
                 1 
                 32 bits 
                  7 bits 
                 1 bit for error correction/2 
               
               
                   
                   
                   
                 bits for error detection 
               
               
                   
                   
                   
                 (SEC-DED) 
               
               
                 2 
                 64 bits 
                  8 bits 
                 same as above 
               
               
                 3 
                 64 bits 
                 12 bits 
                 nearby 2 bits for error 
               
               
                   
                   
                   
                 correction/4 bits for error 
               
               
                   
                   
                   
                 detection (S2ED-D2ED) 
               
               
                 4 
                 128 bits  
                 16 bits 
                 nearby 4 bits for error 
               
               
                   
                   
                   
                 correction/8 bits for error 
               
               
                   
                   
                   
                 detection (S4EC-D4ED) 
               
               
                   
               
             
          
         
       
     
     As listed above, although the number of check bits necessary for implementing the same ECC function increases with an increase in the number of data bits, the ratio of the number of check bits to the number of data bits decreases (compare item Nos.  1  and  2 ). Even when the number of data bits and the ECC correcting function are doubled or quadrupled, the number of check bits is less than double or quadruple, respectively. As a result, efficiency is improved with respect to the error detecting/correcting function (compare item Nos.  1 ,  3  and  4 ). 
     However, the above conventional technologies have the following problems left unsolved. To detect or correct the errors of a plurality of bits with an ECC, there must be increased the amount of hardware (number of memory devices) to be allocated to the check bits. Specifically, the detection/correction of the errors of a plurality of bits is not practicable without resorting to check bits, i.e., hardware (number of memory devices) great enough to accommodate such a number of check bits. On the other hand, when the physical spreading of data using software is used to detect the faults of a plurality of bits with SEC-DED, the transfer ability of the storage falls while the hardware of an error control circuit increases. This is because overhead occurs at the time of data transfer due to the intermediary of software and because exclusive hardware is necessary for the data to be spread. 
     SUMMARY OF THE INVENTION 
     It is therefore an object of the present invention to provide a storage using an SDRAM, DRAM with. EDO or similar memory device having a continuous transfer function. 
     It is another object of the present invention to provide a storage capable of reducing, in the correction/detection of errors of data with an ECC, the ratio of check bits to data bits and thereby reducing the required number of memory devices as far as possible white remedying the fault of a single memory whose number of bits is increasing. 
     In accordance with the present invention, in a storage capable of generating an ECC for data and adding the ECC to the data to thereby form a read/write unit, an ECC is generated for each N of the data, equally divided into N ECC code parts and then respectively added to the N data to thereby constitute read/write units, The read/write units are continuously written and read out of N continuous addresses of a memory device. 
     Also, in accordance with the present invention, a storage capable of generating an ECC for data and adding the ECC to the data to thereby form a read/write unit includes a writing circuit for generating an ECC for N of write data received from a host, adding Nequally divided ECC code parts to the Nwrite data, respectively, to thereby form Nwrite units, and writing the N write units to N continuous addresses of a semiconductor memory device, respectively. A reading circuit gathers the Nequally divided ECC code parts contained in read data units read out of the N continuous addresses of the semiconductor memory device to thereby reconstruct the ECC, and corrects errors of the N read data units with the reconstructed ECC. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The above and other objects, features and advantages of the present invention will become apparent from the following detailed description taken with the accompanying drawings in which: 
     FIG. 1 is a block diagram schematically showing a conventional system; 
     FIG. 2 is a block diagram schematically showing a storage embodying the present invention; 
     FIGS. 3 and 4 are timing charts respectively showing a reading procedure and a writing procedure unique to the illustrative embodiment; 
     FIG. 5 shows a specific arrangement of data stored in a memory device included in the illustrative embodiment (one time of continuous transfer); 
     FIG. 6 shows a specific arrangement of data stored in the memory device (two times of continuous transfer); and 
     FIG. 7 shows a specific arrangement of data stored in the memory device (four times of continuous transfer) 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 1 of the drawings shows the conventional system taught in Japanese Patent Laid-Open Publication No. 61 -177539 mentioned earlier, i.e., the system physically spreading stored data with a software scheme in order to prevent the faults of a plurality of bits from overlapping in a single ECC. As shown, the system includes data spreading means  14  and data reconstructing means  15  each being implemented by a ROM (Read Only Memory). The two means  14  and  15  each stores a table listing address data designating the physical storage locations of data. 
     Referring to FIG. 2, a storage embodying the present invention is shown and generally designated by the reference numeral  1 . As shown, the storage  1  includes write data registers  101 - 10   n  for holding, for a preselected period of time, N of write data  100  input from a&amp;host to the storage  1 . The data output from the write data registers  101 - 10   n  are applied to an ECC circuit  2 . The ECC circuit  2  generates an ECC for implementing an ECC function while holding the ECC for a preselected period of time. A selector  3  receives the data output from the write data registers  101 - 10   n  and Nequally divided ECC parts output from the ECC circuit  2 . In response, the selector  3  outputs write data  31  in accordance with a continuous writing function available with a memory device  4 . The memory device  4  stores Ncontinuous write data  31 , one at a timer in its “first time”  41  to “Nth time”  4   n , respectively. Read data registers  201 - 20   n  receives data  40  read out of the memory device  4  and hold Nread data  40  for a preselected period of time. An error detection  5  gathers the Nequally divided ECC parts present in the data output from the read data registers  201 - 20   n  to thereby reconstruct a single ECC. The error detection  5  detects error bits out of the Nread data by using the above reconstructed ECC and holds error bit information for a preselected period of time. The error bit information is fed to an error correction  6  together with the data bits of the read data registers  201 - 20   n . In response, the error correction  6  corrects the data bit on the basis of the error bit information and then outputs Nread data  200 . 
     A specific operation of the illustrative embodiment will be described with reference to FIGS. 3 and 4. As shown in FIG. 3, a sequence of write data  100  (WD 01 -WD 0   n ) received from the host are sequentially input to the write data registers  101 - 10   n . The write data registers  101 - 10   n  respectively hold the input data WD 01 -WD 0   n  for a preselected period of time. 
     When the data written to the write data registers  101 - 10   n  reach a preselected number of data bits corresponding to a single ECC allocated to Ndata, the ECC circuit  2  generates an ECC covering all of the data bits for executing the ECC function. The ECC circuit  2  holds ECC check bits for a preselected period of time. At this instant, all the data bits and check bits to be written to the memory device  4  are determined. The ECC circuit  2  therefore equally divides all of the data and check bits into Nparts to thereby form Nunits to be written. The ECC circuit  2  sequentially writes the Nunits, one at a time, to the “1st time”  41  to the “Nth time”  4   n  of the memory device  4  via the selector  3  by using the continuous transfer function. 
     As soon as a single ECC is generated by the ECC circuit  2 , the write data registers  101 - 10   n  can start storing the next write data  100  corresponding to another ECC By repeating such a procedure, the storage  1  is capable of continuously inputting write data in the memory device  4 . 
     FIG. 4 demonstrates a data reading procedure. As shown, a sequence of data  40 , labeled  411 - 41   n  in FIG. 4, read out of the memory device  4  one by one are sequentially written to the read data registers  201 - 20   n , respectively. Specifically, the data  411 - 41   n  respectively consist of N equally divided data bit parts  411 - 41   n  and Nequally divided ECC parts in the same manner as at the time of data reading. The registers  201 - 20   n  store the data bit parts  411 - 41   n  and ECC parts for a preselected period of time. 
     The error detection  5  determines, with the preselected ECC function, whether or act any error exists in the data bits or the check bits output from the read data registers  201  and  20   n . If any correctable error exists in the data bits or the check bits, then the error detection  5  holds bit information relating to the error for a preselected period of time. The error correction  6  corrects, based an the error bit information held in the error detection  5 , an erroneous data bit and then sends Ndata RD 01 -RD 0   n  to the host as read data  200 . 
     The principle of error correction particular to the illustrative embodiment is as follows. Data are continuously transferred to a memory device on an ECC basis and stored in the continuous addresses of the memory device. With this procedure, it is possible to reduce the ratio of the check bits to the ECC-based data bits which has been clarified in the code theory aspect. A specific reduction of hardware (number of memory devices) achievable with the illustrative embodiment is shown below, taking SEC-DED as an example. 
     
       
         
               
               
               
               
               
             
           
               
                   
               
               
                   
                   
                   
                   
                 Number of 
               
               
                   
                   
                   
                   
                 Memory Cells 
               
               
                 Read/Write 
                 Number of 
                 Number of 
                   
                 for Unit Read/ 
               
               
                 System 
                 Data Bits 
                 Check Bits 
                 ECC system 
                 Write Length 
               
               
                   
               
             
             
               
                 1 Time of 
                 32 bits 
                  7 bits 
                 SEC-DED*1 
                 39 
               
               
                 Continuous 
               
               
                 Transfer 
               
               
                 2 Times of 
                 64 bits 
                 12 bits 
                 S2EC-D2ED*2 
                 38 
               
               
                 Continuous 
               
               
                 Transfer 
               
               
                 4 Times of 
                 128 bits  
                 16 bits 
                 S4EC-D4ED*3 
                 36 
               
               
                 Continuous 
               
               
                 Transfer 
               
               
                   
               
             
          
         
       
     
     Why the ECC system changes in accordance with the number of times of continuous transfer is as follows. Assuming one time of continuous transfer particular to the conventional system * 1 , the fault of a single memory device has influence on only one bit. By contrast, the influence of the above fault extends over two bits in the case of two times of continuous transfer * 2  or even over 4 bits in the case of four times of continuous transfer * 3 . Therefore, to preserve an ECC function (recovery of a Single memory device from a fault) equivalent to one available with one time of continuous transfer, two consecutive bits and four consecutive bits must be fully corrected in the case of two times of transfer and in the case of four times of transfer, respectively. This will be described more specifically hereinafter with reference to FIGS. 5,  6  and  7 . 
     FIG,  5  shows a specific arrangement of data in a memory device for the one time of continuous transfer. As shown, data bits D 000 -D 031  are thirty-two bits constituting a unit data length. Seven check bits (C 00 -CO 6 ) of an ECC are added to the above thirty-two data bits D 000 -C 031 , constituting an ECC unit for the SEC-DED system As FIG. 5 indicates, seven check bits are necessary for the SEC-DED ECC system. FIGS. 6 and 7 respectively show a specific data arrangement for the two times of continuous transfer and a specific data arrangement for the four times of continuous transfer. As shown in FIG. 5, when continuous transfer is effected only once, the fault of a single memory device may destroy one bit of stared data. By contrast, in the case of two times of continuous transfer (FIG.  6 ), data are written twice to the same memory device, so that two bits of data are possibly destroyed by the fault of a single memory device. Likewise, in the case of four times of continuous transfer (FIG.  7 ), four bits of data are possibly destroyed by the fault of a single memory device. 
     When the error detection/correction scheme of the above embodiment is used, it is necessary to adaptively change the ECC system, i.e., up to which bit correction/detection is allowed in accordance with the number of times of ECC-by-ECC continuous transfer. While the memory device  4  is assumed to have a single bit, it will be apparent that even when the device  4  has a plurality of bits, the present invention is practicable if an adequate ECC system is selected by taking account of the range to which the error of a single memory device extends. 
     In summary, in a system for detecting or correcting the errors of data stored in a storage using an SDRAM, DRAM with EDO or similar memory device leaving a continuous transfer function, the present invention is capable of reducing hardware (number of memory devices) for a single ECC without degrading the transfer ability of the storage, while preserving an error detecting/correcting function for the full recovery of a single memory device from faults. Specifically, when an ECC is written to the continuous addresses of a memory device by the continuous transfer function of the device, the number of check bits is reduced relative to the number of ECC-based data bits due to an increase in the number of data bits, as apparent from the code theory aspect. This successfully reduces a unit data length to be written and read and including N equally divided ECC code parts. In addition, read/write addresses can be controlled without the intermediary of software, so that the transfer function of the storage is preserved. For example, when thirty-two bits are continuously written twice, then an ECC for 32×2=64 bits has twelve bits. When an ECC is added to each thirty-two bits sequence, the resulting ECC has fourteen bits or two bits greater than twelve bits. 
     Moreover, in a system for detecting/correcting the errors of data stored in a storage using a memory device with multiple bits, the present invention is capable of remedying the faults or a single memory device without increasing the number of memory devices, compared to the conventional technology of the type spreading data to different ECC units. Specifically, when the number of ECC-based data bits is small, it has been customary to noticeably increase the number of check bits for the error detection/correction of a plurality of bits. By contrast, in accordance with the present invention, an ECC is written to the continuous addresses of a memory device by the continuous transfer function of the device, as stated above. This successfully increases the ratio of the number of data bits to the number of check bits for a single ECC. 
     Various modifications will become possible for those skilled in the art after receiving the teachings of the present disclosure without departing from the scope thereof.