Abstract:
A memory system comprises a plurality of semiconductor memories with some bad bits, a substitution memory and a mapping logic to redirect external memory accesses to bad-bit locations in the semiconductor memories to good storage cells within the substitution memory.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The invention relates generally to system-level computer memory devices and more specifically to memory modules with almost-good dynamic random access memories. 
     2. Description of the Prior Art 
     Dynamic random access memory (DRAM) devices have now advanced beyond storing one million bits of information in a single semiconductor chip. Each bit takes at least one transistor to implement not counting the support circuitry, so the number of things that can be flawed in a single chip during its manufacture can exceed a million. So even an exceedingly good manufacturing fab line will produce thousands of bad parts per millions of parts started. It used to be that bad memories were just thrown away, a total loss. Later, some redundancy was built in to repair the bad bits, but the required die sizes got too large to make repairing every bit practical. It was recognized that DRAM devices that were not perfect, and therefore not suited to computer data storage, could be useful as video or audio memory because an occasional bad bit was not fatal in such applications. 
     Such &#34;mostly good&#34; DRAM devices can nevertheless be successfully used in computer data storage applications when a second, repair memory is wired in tandem to respond when a faulty bit is being accessed in the mostly-good DRAM. Siu Tsang describes such a memory system in U.S. Pat. No. 4,376,300, issued Mar. 8, 1983. A redundant memory chip is used to store data intended for the defective addresses in the mostly-good memories. A programmable read only memory (PROM) is illustrated as controlling a switch that steers data to either a single redundant memory device or several mostly-good memories. Whole rows addressed by a system address bus in the mostly-good memories are substituted by equivalent whole rows in the redundant memory, even when only one bit in a row of bits is bad. In a one megabit memory, there are a thousand rows and a thousand columns. Each row therefore comprises a thousand bits. Because of this, the embodiments described by Tsang are very wasteful because good memory is substituted along with the bad. The mostly-good memories must all be of the same type, e.g., with the same row and column organization, and have the same access modes. The systems described require that no two mostly-good memories have bad bits in the same row, due to the simple way that the redundant memory is connected directly to receive the address bus alongside the mostly-good memories. 
     In his FIG. 2, Tsang proposes the use of a content addressable memory (CAM) in front of the redundant memory address inputs. But, such a method is expensive and the throughput of most CAMs is very poor, compared to the access times of the DRAMs of interest. With microprocessor clock speeds now exceeding one hundred megahertz, such access delays are totally unacceptable. 
     SUMMARY OF THE PRESENT INVENTION 
     It is therefore an object of the present invention to provide a memory system that uses semiconductor memories with defective bits and nevertheless provides good memory storage at every memory location at a systems level. 
     It is another object of the present invention to provide a method of correcting bad bits within semiconductor memories and not significantly impact the overall data access times of the system. 
     Briefly, a memory system embodiment of the present invention comprises a plurality of dynamic random access memories with bad bits, a static random access memory and a mapping logic to redirect external memory accesses to bad-bit locations in the dynamic random access memories to good storage cells within the static random access memory. 
     An advantage of the present invention is that a memory system is provided for large memory storage with relatively inexpensive near-perfect, but still defective dynamic random access memories. 
     A further advantage of the present invention is that a memory system is provided in which redundant memory cells are available for on-line substitution after an initial installation. 
     Another advantage of the present invention is that a method is provided in which defective dynamic random access memories that would otherwise be discarded during manufacture can be used successfully at the memory system level. 
     These and other objects and advantages of the present invention will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiment which is illustrated in the drawing figures. 
    
    
     IN THE DRAWINGS 
     FIG. 1 is a block diagram of a memory system embodiment of the present invention; 
     FIG. 2 is a timing diagram related to the redundant memory storage cell array in the memory system of FIG. 1; 
     FIG. 3 is a schematic diagram of the X-address latch in the memory system of FIG. 1; 
     FIG. 4 is a schematic diagram of the Y-address latch in the memory system of FIG. 1; 
     FIG. 5 is a schematic diagram of the storage memory cell array in the memory system of FIG. 1; 
     FIG. 6 is a schematic diagram of the X-address decoder in the memory system of FIG. 1; 
     FIG. 7 is a schematic diagram of the Y-address decoder in the memory system of FIG. 1; 
     FIG. 8 is a schematic diagram of the sense amplifier in the memory system of FIG. 1 for reading data from the redundant memory storage cell array to substitute for defective data from the almost good DRAM&#39;s that would otherwise appear on the databus; 
     FIG. 9 is a schematic diagram of the data buffer in the memory system of FIG. 1 for writing data to the redundant memory storage cell array for later substitution of good data when a defective bit in the almost good DRAM&#39;s is accessed from the databus; and 
     FIG. 10 is a schematic diagram of the read/write unit in the memory system of FIG. 1 for steering data through the sense amplifier and data buffer. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 1 illustrates a memory system embodiment of the present invention referred to herein by the general reference numeral 10. The system 10 receives a row address strobe (RAS) 12, a column address strobe (CAS) 14, a system memory access address (ADDR) 16, and a read/write (R/W) control 17 from an external computer system. A memory repair unit (MRU) 18 receives the RAS, CAS and ADDR, and translates and splits the ADDR into X and Y address buses 20 and 22, e.g., row and column, to address a redundant memory storage cell array 24 comprising thousands of static random access memory (SRAM) elements, each at an intersection of the row and column lines. The X-address bus 20 is latched by an X-address latch 26 and decoded to single lines by an X-address decoder 28. The Y-address bus 22 is latched by a Y-address latch 30 and decoded to single lines by a Y-address decoder 32. A sense amplifier 33 and a data buffer 34 are switched between reading and writing by a R/W unit 35. Data is communicated between the redundant memory storage cell array 24 and a databus 36 according to the rows selected by the decoders 28 and 32 and the corresponding sense amplifier 33 and data buffer 34. A memory system output enable control, a chip decoder 38 and a bad addresses record (BAR) 40 select which of a plurality of dynamic random access memories (DRAM&#39;s) 41-48, or the sense amplifier 33 and data buffer 34, will be selectively enabled to the databus 36 according to an address present on the ADDR 16. 
     The DRAM&#39;s 41-48 may each have one or more bad bits, e.g., hard errors. The BAR 40 functions to enable the sense amplifier 33 and data buffer 34 instead of one of the DRAM&#39;s 41-48 when the value on ADDR 16 indicates that a known bad bit at particular address in a particular DRAM 41-48 is being accessed by the external computer system. The BAR 40 is programmed with the location of the known bad bits in the DRAM&#39;s 41-48 and the corresponding X and Y address in array 24 to substitute. In such an event, the BAR 40 also supplies a substitute address on the X and Y address buses 20 and 22 that has been mapped-over from the ADDR 16. The storage size of array 24 that is needed to provide substitute access for the DRAM&#39;s 41-48 is a function of how many bad bits exist in each DRAM 41-48. An arbitrary limit can be imposed to settle how large the array 24 must be consequently. 
     FIG. 2 illustrates the basic timing for system 10, especially MRU 18. In a first cycle, both the X and Y address buses 20 and 22 change. In the second cycle, only the Y address bus 22 changes. Sometime after the X-address becomes valid, the word line and then the bit lines in array 24 become valid. This then permits the sense amplifier 33 to have valid data, and data can then be output to the databus 36 in a first access time (t acc1 ) for the for cycle and a second access time (t acc2 ) for the second cycle. For DRAM&#39;s 41-48 that have access times of sixty nanoseconds, t acc1  is preferably thirty nanoseconds and t acc2  is preferably ten nanoseconds. 
     FIG. 3 shows an exemplary latch 50 that is repeated many times in the X-address latch 26 in more detail. A delay line 51 receives the not-RAS signal and produces a delayed version, signal Φ RAS . A delay line 52 receives the Φ RAS  signal and produces a delayed signal Φ RAH . The system addresses &#34;A i  &#34;, e.g., A 0  -A 11  for a 4M×8 DRAM system, are latched through to produce complementary &#34;row&#34; address signals not-A Ri  and A Ri . 
     FIG. 4 shows an exemplary latch 60 that is repeated many times in the X-address latch 30 in more detail. A delay line 61 receives the not-CAS signal and produces a delayed version, signal Φ CAS . A delay line 62 receives the Φ CAS  signal and produces a delayed signal Φ RAH . The system addresses &#34;A i  &#34;, e.g., A 0  -A 11  for a 4M×8 DRAM system, are latched through to produce complementary &#34;row&#34; address signals not-A Ci  and A Ci . 
     FIG. 5 shows an exemplary memory cell 70 with memory elements 71 and 72 that are repeated many times in the redundant storage memory cell array 24. The X-address decoder 28 produces many &#34;word lines&#34; (WLi) that respectively control the connection of &#34;H&#34; and &#34;L&#34; lines 74 and 76 to the memory elements 71 and 72. The Y-address decoder 32 produces many &#34;Y-select lines&#34; (Y-SELECT) that respectively control the connection of the &#34;H&#34; and &#34;L&#34; lines 74 and 76 to a pair of not-I/O and I/O lines 78 and 80. During write cycles, e.g., when &#34;WE&#34; is true, the internal clock &#34;WE&#34; precharges and equalizes the I/O and not-I/O lines 78 and 80, then a pair of switches 82 and 84 connect a pair of data input lines &#34;not-DI&#34; and &#34;DI&#34; 86 and 88 to the not-I/O and I/O lines 78 and 80. 
     FIG. 6 shows an exemplary word line driver 90 that is repeated many times in the X-address decoder 28. The line driver 90 is enabled when Φ RAH  goes true, switching on a pair of transistors 92 and 94. The row address inputs A R1  -A R11  control which of a set of transistors 96 will control the word line output &#34;WLi&#34;. 
     FIG. 7 shows an exemplary word line driver 100 that is repeated many times in the Y-address decoder 32. The line driver 100 is enabled when Φ RAH  goes true, switching on a pair of transistors 102 and 104. The row address inputs A R1  -A R11  control which of a set of transistors 106 will control the Y-select output &#34;Y-SELECT&#34;. 
     FIG. 8 shows an exemplary sense amplifier 110 that is repeated many times in the sense amplifier 33. The not-I/O, I/O, and not-WE signals are all input and combined to produce a data output signal &#34;Dout&#34;. The data buffer 34 is disabled during write cycles which are indicated by not-WE being false. 
     FIG. 9 shows an exemplary data buffer 120 that is repeated many times in the data buffer 34. The Dout is gated and buffered through when the not-WE is false, e.g., during a read cycle, to produce a data input/output signal &#34;I/O PAD&#34; for connection to the external computer system. 
     FIG. 10 shows an exemplary read/write controller 130 that is repeated many times in the R/W unit 35. The I/O signal, e.g., I/O signal 80 (FIG. 5), is gated and buffered through when an external read/write control is true for writing. This produces &#34;DI&#34; and &#34;not-DI&#34; signal, e.g., 88 and 86 (FIG. 5). 
     A system memory module may thus be constructed using inexpensive slightly-defective DRAM devices connected to a data bus. Each DRAM can have at least one bad memory bit cell, e.g., that is externally accessible. A substitution memory is also connected to the data bus. A timing and control unit intercepts each external memory access signal from an address bus connected to the slightly-defective DRAM devices. A latched-address bus output is connected to the substitution memory. Comparator logic and mapping memory receive the external memory access signals and select whether the substitution memory or one of the DRAM devices should respond to the external memory access. An external programmer can be used for selecting, on an address-by-address basis, which of a plurality of system memory module address inputs cause the substitution memory to respond instead of any of the slightly-defective DRAM devices. A memory access cycle to a defective memory bit is programmably redirected to access the substitution memory for both read and write memory cycles. 
     Preferably, the substitution memory comprises a static random access memory with access times faster than that the slightly-defective DRAM devices. The comparator logic and mapping memory, e.g., BAR 40, includes an electrically erasable and programmable read only memory (EEPROM) with external connections for programming of mapping addresses corresponding to addresses within the defective memory storage by an external module test unit. 
     As exemplified by the MRU 18 (FIG. 1), substitution memory, the timing and control unit and the comparator logic and control unit can all be integrated on a single integrated circuit with connections provided for externally connected ones of the plurality of slightly-defective DRAM devices. 
     Alternatively, such substitution memory, the timing and control unit, the comparator logic and control unit, and the plurality of slightly-defective DRAM devices can all be constructed on one single-in-line memory module (SIMM) with external connections provided for interfacing through printed circuit board memory module connectors to a personal computer. 
     Initially, a memory module test and programming unit is used for locating the defective bits by their corresponding system addresses in the DRAM&#39;s 41-48. Any of a number of conventional means may be used for this purpose. The bits that are to be substituted are allocated within redundant memory, e.g., array 24. To do this, the tester sequences through the DRAM memory addresses. Such addresses are registered in a programmable read only memory. The defective memory location addresses in groups can be mapped according to the particular addresses&#39; row position in a memory array. A row and column organization of memory cells can be used to preserve the access timing of page-mode type DRAMs. 
     Programming a combination dynamic random access memory (DRAM) and static random access memory (SRAM) memory module to respond with SRAM rather than with DRAM for memory locations in the DRAM with bad bits, comprises writing a test pattern to the DRAM at a first address, reading back data from the DRAM at the first address, comparing the data read with the data written, and programming a means for permanently selecting the SRAM to respond instead of the DRAM at the first address if the step of comparing indicates a faulty memory cell within the DRAM. Such method can further comprise mapping any defective memory location addresses that are detected in the step of comparing in groups according to the particular addresses&#39; row position in a memory array. A row and column organization of memory cells can be used to preserve the access timing of page-mode type DRAMs. 
     A memory module can respond to a memory access by memory array 24 rather than by DRAM&#39;s 41-48 for memory locations in the DRAM with bad bits by inputting an address to the memory module for a memory access cycle. Then, comparing the address to a list of addresses previously identified as having bad bits in the DRAM. And substituting-in a location in the SRAM for each previously identified bad-bit DRAM address. 
     Although the present invention has been described in terms of the presently preferred embodiment, it is to be understood that the disclosure is not to be interpreted as limiting. Various alterations and modifications will no doubt become apparent to those skilled in the art after having read the above disclosure. Accordingly, it is intended that the appended claims be interpreted as covering all alterations and modifications as fall within the true spirit and scope of the invention.