US7073099B1 - Method and apparatus for improving memory operation and yield - Google Patents

Method and apparatus for improving memory operation and yield Download PDF

Info

Publication number
US7073099B1
US7073099B1 US10/184,334 US18433402A US7073099B1 US 7073099 B1 US7073099 B1 US 7073099B1 US 18433402 A US18433402 A US 18433402A US 7073099 B1 US7073099 B1 US 7073099B1
Authority
US
United States
Prior art keywords
memory
address
circuit
data
ecc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime, expires
Application number
US10/184,334
Inventor
Sehat Sutardja
Saeed Azimi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cavium International
Marvell Asia Pte Ltd
Original Assignee
Marvell International Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Marvell International Ltd filed Critical Marvell International Ltd
Priority to US10/184,334 priority Critical patent/US7073099B1/en
Assigned to MARVELL SEMICONDUCTOR, INC. reassignment MARVELL SEMICONDUCTOR, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AZIMI, SAEED, SUTARDJA, SEHAT
Assigned to MARVELL INTERNATIONAL LTD. reassignment MARVELL INTERNATIONAL LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MARVELL SEMICONDUCTOR, INC.
Priority to US11/328,373 priority patent/US7962809B1/en
Priority to US11/327,933 priority patent/US7809998B1/en
Application granted granted Critical
Publication of US7073099B1 publication Critical patent/US7073099B1/en
Priority to US11/584,946 priority patent/US7818639B2/en
Priority to US11/589,368 priority patent/US7818636B1/en
Priority to US11/655,449 priority patent/US7814382B2/en
Priority to US11/655,603 priority patent/US7870331B2/en
Priority to US11/655,451 priority patent/US7823030B2/en
Priority to US12/903,606 priority patent/US8281191B2/en
Priority to US12/908,376 priority patent/US8103921B2/en
Priority to US13/632,547 priority patent/US8745450B2/en
Priority to US14/292,020 priority patent/US9158620B2/en
Assigned to CAVIUM INTERNATIONAL reassignment CAVIUM INTERNATIONAL ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MARVELL INTERNATIONAL LTD.
Assigned to MARVELL ASIA PTE, LTD. reassignment MARVELL ASIA PTE, LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CAVIUM INTERNATIONAL
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/26Accessing multiple arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0407Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals on power on
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1208Error catch memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/104Embedded memory devices, e.g. memories with a processing device on the same die or ASIC memory designs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/401Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C2211/406Refreshing of dynamic cells
    • G11C2211/4061Calibration or ate or cycle tuning
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports

Definitions

  • the present invention relates to memory circuits, and more particularly to methods and apparatus for improving the yield and/or operation of embedded and external memory circuits.
  • the area of a memory chip can be increased to accommodate a greater number of memory cells.
  • the density of the chip can be increased. Increasing the density involves reducing the size and increasing the quantity of memory cells on the chip, which leads to a proportional increase in defects.
  • a number of techniques may be employed to fix or to compensate for the defects.
  • a relatively expensive technique that is commonly used for repairing standard memory chips is a wafer test, sort and repair process.
  • the capital equipment costs for burn-in and test facilities are relatively high, which can be amortized when the standard memory chips are produced in sufficiently large quantities. For lower production quantities, the amortized capital equipment costs often exceed the cost of scrapping the defective chips.
  • Embedded memory devices also face problems with attaining sufficient chip yield. Embedded memory devices combine logic and memory on a single silicon wafer and are not usually manufactured in large quantities. The wafer sort/test fixtures, burn-in fixtures, and repair facilities that are typically used with large quantity standard memory devices are not economically feasible. When a defect occurs on an embedded device, the device is typically scrapped.
  • Embedded devices typically have more defects per unit of memory than standard memory. This is due in part to the fact that the processing technology that is used for the logic is typically not compatible with the processing technology that is used for the memory. The majority of defects in an embedded device occur in the memory since most of the chip area is used for the memory. Typically, the prime yield is about 20% for conventional logic devices.
  • systems on chip (SOC) 10 typically include both logic 12 and embedded memory 14 that are fabricated on a single wafer or microchip.
  • the SOC 10 may be used for a disk drive and include read channels, a hard disk controller, an Error Correction Coding (ECC) circuit, high speed interfaces, and system memory.
  • the logic 12 may include standard logic module(s) that are provided by the manufacturer and/or logic module(s) that are designed by the customer.
  • the embedded memory 14 typically includes static random access memory (SRAM), dynamic random access memory (DRAM), and/or nonvolatile memory such as flash memory.
  • low chip yield is due in part to the small size of the memory cells in the embedded memory 14 .
  • the small memory cells are used to reduce the chip size and lower cost.
  • Typical defects include random single bit failures that are depicted at 16 . For a 64 Mb memory module, on the order of 1000 random single bit failures 16 may occur.
  • Other defects include bit line defects that are depicted at 18 and 20 . While bit and word line defects occur less frequently than the random single bit failures 16 , they are easier and less costly to fix.
  • the embedded memory 14 typically includes a random data portion 24 and a cache data portion 26 . Bits that are stored in the random data portion 24 are accessed individually. In contrast, bits that are stored in the cache data portion 26 are accessed in blocks having a minimum size such as 16 or 64 bits.
  • an error correction coding (ECC) circuit 28 may be used.
  • ECC coding bits 30 are used for ECC coding. For example, 2 additional bits are used for 16 bits and 8 additional bits are used for 64 bits.
  • the ECC circuit 28 requires the data to be written to and read from the embedded memory 14 in blocks having the minimum size. Therefore, the ECC circuit 28 and error correction coding/decoding cannot be used for the random data portion 24 .
  • the ECC coding circuit 28 is disabled as is schematically illustrated at 32 .
  • ECC coding bits also increase the cost of fabricating the memory and reduce access times.
  • a system on chip according to the present invention has improved memory yield.
  • a logic circuit is fabricated on the chip.
  • Embedded memory is fabricated on the chip and communicates with the logic circuit.
  • the embedded memory includes a random data portion that provides access to individual bits and a cache data portion that provides access to groups of bits.
  • the cache data portion is divided into a plurality of memory blocks.
  • a swap circuit swaps a physical address of the random data portion with at least one of the memory blocks of the cache data portion if the random data portion has defects.
  • an error correction coding circuit communicates with the embedded memory and provides error correction coding and decoding for the cache data portion.
  • a memory circuit includes a first memory that stores data in a plurality of memory locations that are associated with memory addresses.
  • a memory interface communicates with the first memory.
  • a second memory communicates with the memory interface and stores memory addresses of defective memory locations that are identified in the first memory.
  • a memory test circuit tests the first memory to identify the memory addresses having the defective memory locations and writes addresses of the defective memory addresses to the second memory.
  • a first write address of first data that is to be written to the first memory is received by the second memory and is compared to the memory addresses stored in the second memory. If the first write address matches one of the memory addresses in the second memory, the data is written to the second memory in a memory location associated with the matching memory address.
  • a first read address of first data that is to be read from the first memory is received by the second memory and is compared to the memory addresses stored in the second memory. If the read address matches one of the memory addresses, data is read from the second memory at a memory location associated with the matching memory address.
  • the second memory is content addressable memory (CAM).
  • CAM content addressable memory
  • the memory circuit is implemented in a hard disk controller.
  • the write address matches one of the memory addresses in the second memory
  • the data is written to a new address in the first memory.
  • the new address is stored in the second memory in a memory location associated with the matching memory address.
  • the read address matches one of the memory addresses
  • the data is read from the first memory at a new address that is stored in the second memory in a memory location associated with the matching memory address.
  • Another memory circuit includes a memory interface and a first memory that receives a first write address that is associated with first data from the memory interface.
  • a second memory stores addresses of defective memory locations found in the first memory, receives the first write address from the memory interface, compares the first write address to the addresses stored in the second memory, and, if a matching address is found, writes the first data to the second memory.
  • the second memory writes the first data to a memory location in the second memory that is associated with the matching memory address.
  • the first memory writes the first write data to a memory location in the first memory corresponding to the first write address.
  • the memory circuit is implemented in a hard drive controller.
  • Another memory circuit includes a memory interface and a first memory that receives a first read address from the memory interface.
  • a second memory stores addresses of defective memory locations found in the first memory, receives the first read address from the memory interface, compares the first read address to the addresses stored in the second memory, and, if a matching address is found, reads first data from the second memory.
  • the second memory reads the first data from a memory location in the second memory that is associated with the matching memory address.
  • the first memory reads second data from a memory location in the first memory corresponding to the first read address.
  • a multiplexer receives the first and second data from the first memory and the second memory when the matching address is found. The multiplexer outputs the first data from the second memory to the memory interface.
  • FIG. 1 is a functional block diagram of a system on chip (SOC) including logic and embedded memory that are fabricated on a microchip according to the prior art;
  • SOC system on chip
  • FIG. 2 illustrates defects in the embedded memory of FIG. 1 ;
  • FIG. 3 is a functional block diagram of a SOC including an error correction coding circuit (ECC) according to the prior art
  • FIGS. 4A and 4B are functional block diagrams illustrating a first SOC according to the present invention.
  • FIG. 5 is a functional block diagram illustrating a memory circuit according to the present invention.
  • FIG. 6 is a flowchart illustrating a method for operating the memory of the SOC of FIGS. 4A and 4B according to the present invention
  • FIG. 7 is a functional block diagram of an embedded memory circuit according to the prior art.
  • FIG. 8 is a functional block diagram of an external memory circuit according to the prior art.
  • FIG. 9 is a functional block diagram of an embedded memory circuit according to the present invention.
  • FIG. 10 is a functional block diagram of an external memory circuit according to the present invention.
  • FIG. 11 is a flowchart illustrating steps performed by the memory circuit according to the present invention for identifying defective memory addresses
  • FIG. 12 is a flowchart illustrating steps of one exemplary method for identifying defective memory addresses
  • FIGS. 13A and 13B are flowcharts illustrating steps for operating a memory circuit according to the present invention.
  • FIGS. 14A and 14B are a functional block diagrams of memory circuits with a CAM, an ECC circuit and a second memory according to the present invention
  • FIG. 15 is a flowchart illustrating the operation of the memory circuits of FIG. 14 ;
  • FIGS. 16A and 16B are functional block diagrams of a memory circuit including a first memory and a second memory according to the present invention.
  • the SOC 50 includes logic 52 , embedded memory 54 , a swap circuit 56 and an error correction coding (ECC) circuit 58 that are fabricated on a single wafer or microchip.
  • the embedded memory 54 includes a random data portion 60 and a cache data portion 62 .
  • the cache data portion 62 is divided into a plurality of blocks 64 - 1 , 64 - 2 , . . . and 64 - n .
  • the size of the n blocks may be equal to, larger or smaller than the size of the random data portion 60 .
  • the random data portion 60 may also be divided into blocks.
  • the random data portion 60 of the SOC 50 may be positioned in a first or top location in the embedded memory 54 . If defects are detected in the random data portion 60 during initial testing or later in use, the random data portion 60 is swapped with one of the n blocks 64 in the cache data portion 62 . The defective block is preferably logically moved to the end of the cache data portion 62 so that it is used less frequently. If the random data portion 60 is larger than the blocks 64 , one or more blocks 64 may be used. Preferably, the size of the blocks 64 are an integer multiple of the size of the random data portion 60 .
  • the location of the random data portion 60 has been physically swapped with the first block 64 - 1 . If additional defects are subsequently detected in the random data portion 60 , the random data portion 60 can be physically swapped with other blocks in the cache data portion 62 .
  • the block of embedded memory 54 that contains the random data portion 60 is tested to determine whether a defect exists. The location of the defect is not important. If a defect exists, another block within the embedded memory is used.
  • the logic 52 generates a logical address (LA) that is output to the swap circuit 56 . If a swap has not been performed previously, the swap circuit 56 uses the LA. Otherwise, the swap circuit 56 substitutes a physical address (PA) for the LA. If the address corresponds to the random data portion 60 , the swap circuit 56 disables the ECC circuit 58 (the random data portion 60 does not employ ECC). If the address corresponds to the blocks 64 of the cache data portion 62 , the swap circuit enables the ECC circuit 58 and error correction coding (ECC) is performed.
  • a memory test circuit 68 can be provided to test the memory 54 during manufacturing, assembly, operation, and/or power up. Alternately, testing can be performed by logic circuit 52 . As can be appreciated, testing of the other memory circuits disclosed below can be performed in a similar manner.
  • a memory circuit 69 During read/write operations, address data from the logic circuit 52 and/or a memory interface is input to a CAM 70 and a multiplexer 72 . If the address matches an address stored in the CAM 70 , the CAM 70 signals a matched address via match line 74 . The CAM outputs a substitute address corresponding to the matched address. The multiplexer 72 selects the substitute address from the CAM for output to memory 80 . If there is no match, the multiplexer 72 outputs the address from logic 52 . As can be appreciated, the memory 80 can be similar to memory 54 in FIGS. 4A and 4B , standard memory, memory with ECC bits or any other electronic storage.
  • step 104 control determines whether the embedded memory 54 is being accessed by the logic 52 . If not, control returns to step 104 . Otherwise, control determines whether the logical address is in a swap table of the swap circuit 56 in step 106 . If it is, the swap circuit 56 sets the address equal to the PA in the swap table in step 108 . Otherwise, the address is set equal to the LA in step 110 .
  • Control continues with step 112 where control determines whether the address is part of the cache data portion 62 . If it is, control continues with step 114 where the ECC circuit 58 is enabled. If not, the ECC circuit 58 is disabled in step 116 . Data is returned in step 118 .
  • the embedded memory circuit 150 includes a memory interface 154 having address and control inputs 156 and 158 , respectively, data input 160 , and data output 162 .
  • the memory interface 154 is connected to memory 166 .
  • the memory interface 154 and the memory 166 are formed on a single wafer along with other logic (not shown).
  • the external memory circuit 170 includes a memory interface 174 having address and control inputs 176 and 178 , respectively, data input 180 , and data output 182 .
  • the memory interface 174 is connected to a memory 186 .
  • the memory interface 174 and the memory 186 are not formed on a single wafer as indicated by dotted lines 190 .
  • the memory interface 174 is connected to logic (not shown).
  • ECC Error correction coding
  • coding/decoding circuits must be added to the memory circuits 150 and 170 , which increases the cost of the memory circuits.
  • the coding/decoding algorithms also increase the read/write access times.
  • the embedded memory circuit 200 includes a first memory 202 , a memory interface 204 , and a second memory 206 .
  • the second memory 206 includes semiconductor memory such as SDRAM, NRAM, or any other suitable memory.
  • the first memory 202 includes first address and control inputs 206 and 208 , respectively, data input 212 , and data output 214 .
  • the memory interface 204 includes second address and control inputs 220 and 222 , respectively, data input 224 , and data output 228 .
  • the first memory 202 is coupled to logic 229 .
  • the embedded memory circuit 230 includes a first memory 232 , a memory interface 234 , and a second memory 236 .
  • the first memory 232 and the memory interface 234 are not formed on a single wafer or microchip as indicated by dotted lines 237 .
  • the first memory 232 includes first address and control inputs 236 and 238 , respectively, data input 242 , and data output 244 .
  • the memory interface 244 includes second address and control inputs 250 and 252 , respectively, data input 254 , and data output 258 .
  • the first memory 232 is connected to logic 259 .
  • the first memory 202 and 232 is preferably Content Addressable Memory (CAM) or associative memory.
  • CAM is a storage device that can be addressed by its own contents. Each bit of CAM storage includes comparison logic. An address input to the CAM is simultaneously compared with all of the stored addresses. The match result is the corresponding data for the matched address.
  • the CAM operates as a data parallel processor. CAMs have a performance advantage over other memory search algorithms. This is due to the simultaneous comparison of the desired information against the entire list of stored entries. While CAM is preferably employed, the first memory 202 and 232 can be standard memory, logic, or any other suitable electronic storage medium.
  • Control begins with step 270 .
  • step 272 control determines whether the memory circuit is powered up. If not, control loops to step 272 . Otherwise, control continues with step 274 where control determines whether a test of the second memory is requested.
  • step 274 control continues with step 275 where the second memory is placed in a stress mode or condition.
  • step 276 the first memory is disabled.
  • step 277 a memory location in the second memory is tested.
  • step 278 control determines whether the memory location is defective. If it is, control stores the address of the defective address and/or block in the first memory in step 280 .
  • step 284 control determines whether all memory locations in the second memory are checked. If not, control identifies a next memory location in step 286 and returns to step 276 . Otherwise, control sets the second memory to normal mode and enables the first memory in step 290 . Control ends in step 292 .
  • step 302 a special pattern/data is written to a memory location.
  • step 306 the special pattern/data is read from the memory location.
  • step 310 control determines whether the write data is equal to the read data. If not, control continues with step 312 where the memory location is flagged as defective. The address of the defective location(s) are stored in the first memory. Control continues from step 310 (if true) and step 312 with step 314 where control ends.
  • testing of the memory storing the data in the memory circuits according to the present invention may be performed during manufacture and/or assembly, when the second memory is first started up, every time the second memory is started up, periodically, or randomly during subsequent startups. Testing may be performed by logic such as the logic 229 and/or by an external testing device. As can be appreciated by skilled artisans, still other criteria may be used for scheduling testing. In addition, all or part of the second memory may be tested.
  • control begins with step 322 .
  • step 324 control determines whether data is being written to the second memory. If it is, control determines whether the write data address is equal to an address in the first memory in step 328 . If it is, the data is written to the address stored in the first memory. If the address is not in the first memory, control continues with step 334 where the data is written to the address in the second memory. In another alternate embodiment, data can also be written to the original address in the second memory (even if bad) to simplify the memory circuit.
  • control determines whether the read data address is equal to an address in the first memory in step 342 . If it is, control continues with step 344 and reads data from the address in the first memory. Otherwise control continues with step 346 and reads data from the address in the second memory.
  • FIG. 13B an alternate method is shown at 320 ′. If the write address is in the first memory as determined in step 328 , data is written to a new and non-defective location in the second memory using a new address specified by the first memory in step 330 ′. If the read address is in the first memory as determined in step 342 , data is read from the new location in the second memory using new address specified by the first memory in step 344 ′. In FIGS. 13A and 13B , data can be written to the original memory address (even if bad) to simplify the circuit.
  • the memory circuit 350 provides error correction coding (ECC) for defective memory locations found in a second memory 360 .
  • the memory circuit 350 includes logic 352 that is coupled to a memory interface 354 .
  • An address line of the memory interface 354 is coupled to CAM 356 and memory 360 .
  • the memory 360 includes memory locations 364 - 1 , 364 - 2 , . . . and 364 - n .
  • the CAM includes m memory locations. In a preferred embodiment, n>>m.
  • the CAM 356 is preferably less than 5% of the size of the second memory 360 . For example, the CAM 356 is approximately 1% of the size of the second memory 360 .
  • the CAM 356 is coupled to an ECC circuit 366 .
  • An output of the ECC circuit is coupled to a multiplexer 370 .
  • the CAM 356 compares the address to stored addresses. If a match is found, the CAM 356 outputs a match signal to the multiplexer 370 and ECC bits to the ECC circuit 366 .
  • the ECC circuit 366 and the multiplexer also receive the data from the second memory 360 .
  • the ECC circuit 370 uses ECC bits from the CAM 356 and outputs data to the multiplexer 370 .
  • the multiplexer 370 selects the output of the ECC circuit 370 when a match occurs.
  • the multiplexer 370 selects the output of the second memory 360 when a match does not occur.
  • the memory is 360 preferably CAM.
  • other types of memory such as SDRAM, DRAM, SRAM, and/or any other suitable electronic storage media can be used for the memory 360 instead of the CAM.
  • the first memory 360 may be fabricated on a first microchip with at least one of the logic circuit 352 , the memory interface 354 , and the ECC circuit 366 .
  • the second memory 360 can be fabricated on a second microchip or on the first microchip.
  • the memory interface 354 outputs a write address to the second memory 360 . If the address matches an address stored in the CAM 356 , the CAM 356 stores the ECC bits generated by the ECC circuit 366 in a location associated with the matched address.
  • step 402 control determines whether data is to be written from the logic 352 to the second memory 360 . If step 404 is true, control continues with step 405 where control determines whether the address is defective. In not, control continues with step 406 and reads the data from the address in the memory. If step 405 is true, control continues with step 407 where the ECC 366 generates ECC bits. In step 408 , the ECC bits are written to the CAM 356 . In step 410 , the data is written to the second memory 360 .
  • step 412 control determines whether data is to be read from the second memory 360 . If true, control continues with step 413 where control determines whether the address is defective. If not, control continues with step 414 and reads the data from the memory. Otherwise, control continues with step 416 where ECC bits are read from the CAM 356 . In step 418 , data is read from the second memory 360 . The ECC 356 performs error correction coding on the data using the ECC bits in step 420 . In step 422 , the data is output to the logic 352 . If step 412 is false, control returns to step 404 .
  • a memory interface 404 is coupled to a first memory 406 that includes a plurality of memory locations 414 - 1 , 414 - 2 , . . . , and 414 - n .
  • the memory interface 404 is typically connected to logic 408 .
  • a second memory 416 includes a plurality of memory locations 418 - 1 , 418 - 2 , . . . , and 418 - m .
  • the second memory 416 is coupled to an address line 422 .
  • the second memory 416 is also coupled to a multiplexer 424 .
  • the multiplexer 424 is connected to a read data line 428 from the first memory 406 .
  • a control line 430 or match line connects the second memory 416 to the multiplexer 424 .
  • the second memory 416 monitors addresses transmitted on the address line 422 to the first memory 406 . If the second memory 416 has a matching address, the second memory 416 generates a control signal via the control line 430 and outputs the corresponding data to the multiplexer 424 . The data is routed by the multiplexer 424 to the memory interface 404 .
  • the memory circuit 400 ′ is illustrated during a write data operation.
  • the second memory 416 monitors the address line 422 . If the address matches an address stored in the second memory 416 , the second memory 416 writes the data to a location corresponding to the matched address in the second memory 416 .
  • the data can be optionally written to the first memory as well.
  • the first memory 406 can be ECC memory with ECC bits.
  • the present invention contemplates using CAM for the memory 202 , 232 , 358 , and 416 to provide optimum memory access times.
  • any other suitable electronic storage medium may be used such as DRAM, SRAM, SDRAM, etc.
  • the ECC and control circuit 356 may be combinatorial ECC.
  • the memory that stores the data can be tested for defects at the time of manufacture, at the time of assembly, during operation, at power up or at any other suitable time.

Abstract

A memory circuit includes a memory interface and a first memory that receives a first write address that is associated with first data from said memory interface. A second memory stores addresses of defective memory locations found in said first memory, receives said first write address from said memory interface, compares said first write address to said addresses stored in said memory, and, if a matching address is found, writes said first data to said second memory.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application No. 60/384,371, filed May 30, 2002, which is hereby incorporated by reference.
FIELD OF THE INVENTION
The present invention relates to memory circuits, and more particularly to methods and apparatus for improving the yield and/or operation of embedded and external memory circuits.
BACKGROUND OF THE INVENTION
As the capacity of semiconductor memory continues to increase, attaining a sufficiently high yield becomes more difficult. To attain higher memory capacity, the area of a memory chip can be increased to accommodate a greater number of memory cells. Alternately, the density of the chip can be increased. Increasing the density involves reducing the size and increasing the quantity of memory cells on the chip, which leads to a proportional increase in defects.
To improve the yield, a number of techniques may be employed to fix or to compensate for the defects. A relatively expensive technique that is commonly used for repairing standard memory chips is a wafer test, sort and repair process. The capital equipment costs for burn-in and test facilities are relatively high, which can be amortized when the standard memory chips are produced in sufficiently large quantities. For lower production quantities, the amortized capital equipment costs often exceed the cost of scrapping the defective chips.
Embedded memory devices also face problems with attaining sufficient chip yield. Embedded memory devices combine logic and memory on a single silicon wafer and are not usually manufactured in large quantities. The wafer sort/test fixtures, burn-in fixtures, and repair facilities that are typically used with large quantity standard memory devices are not economically feasible. When a defect occurs on an embedded device, the device is typically scrapped.
Embedded devices typically have more defects per unit of memory than standard memory. This is due in part to the fact that the processing technology that is used for the logic is typically not compatible with the processing technology that is used for the memory. The majority of defects in an embedded device occur in the memory since most of the chip area is used for the memory. Typically, the prime yield is about 20% for conventional logic devices.
Referring now to FIG. 1, systems on chip (SOC) 10 typically include both logic 12 and embedded memory 14 that are fabricated on a single wafer or microchip. For example, the SOC 10 may be used for a disk drive and include read channels, a hard disk controller, an Error Correction Coding (ECC) circuit, high speed interfaces, and system memory. The logic 12 may include standard logic module(s) that are provided by the manufacturer and/or logic module(s) that are designed by the customer. The embedded memory 14 typically includes static random access memory (SRAM), dynamic random access memory (DRAM), and/or nonvolatile memory such as flash memory.
Referring now to FIG. 2, low chip yield is due in part to the small size of the memory cells in the embedded memory 14. The small memory cells are used to reduce the chip size and lower cost. Typical defects include random single bit failures that are depicted at 16. For a 64 Mb memory module, on the order of 1000 random single bit failures 16 may occur. Other defects include bit line defects that are depicted at 18 and 20. While bit and word line defects occur less frequently than the random single bit failures 16, they are easier and less costly to fix.
Referring now to FIG. 3, the embedded memory 14 typically includes a random data portion 24 and a cache data portion 26. Bits that are stored in the random data portion 24 are accessed individually. In contrast, bits that are stored in the cache data portion 26 are accessed in blocks having a minimum size such as 16 or 64 bits.
To improve reliability, an error correction coding (ECC) circuit 28 may be used. ECC coding bits 30 are used for ECC coding. For example, 2 additional bits are used for 16 bits and 8 additional bits are used for 64 bits. The ECC circuit 28 requires the data to be written to and read from the embedded memory 14 in blocks having the minimum size. Therefore, the ECC circuit 28 and error correction coding/decoding cannot be used for the random data portion 24. When accessing the random data portion 24, the ECC coding circuit 28 is disabled as is schematically illustrated at 32. ECC coding bits also increase the cost of fabricating the memory and reduce access times.
Because each of the bits in the random data portion 24 can be read individually, single bit failures in the random data portion 24 are problematic. During the wafer sort tests, if single bit failures are detected in the random data portion 24, repair of the SOC 10 must be performed, which significantly increases the cost of the SOC 10.
SUMMARY OF THE INVENTION
A system on chip according to the present invention has improved memory yield. A logic circuit is fabricated on the chip. Embedded memory is fabricated on the chip and communicates with the logic circuit. The embedded memory includes a random data portion that provides access to individual bits and a cache data portion that provides access to groups of bits. The cache data portion is divided into a plurality of memory blocks. A swap circuit swaps a physical address of the random data portion with at least one of the memory blocks of the cache data portion if the random data portion has defects.
In other features, an error correction coding circuit communicates with the embedded memory and provides error correction coding and decoding for the cache data portion.
A memory circuit according to the present invention includes a first memory that stores data in a plurality of memory locations that are associated with memory addresses. A memory interface communicates with the first memory. A second memory communicates with the memory interface and stores memory addresses of defective memory locations that are identified in the first memory.
In other features, a memory test circuit tests the first memory to identify the memory addresses having the defective memory locations and writes addresses of the defective memory addresses to the second memory. During a write operation, a first write address of first data that is to be written to the first memory is received by the second memory and is compared to the memory addresses stored in the second memory. If the first write address matches one of the memory addresses in the second memory, the data is written to the second memory in a memory location associated with the matching memory address.
In other features, during a read operation, a first read address of first data that is to be read from the first memory is received by the second memory and is compared to the memory addresses stored in the second memory. If the read address matches one of the memory addresses, data is read from the second memory at a memory location associated with the matching memory address.
In still other features, the second memory is content addressable memory (CAM). The memory circuit is implemented in a hard disk controller.
In still other features, if the write address matches one of the memory addresses in the second memory, the data is written to a new address in the first memory. The new address is stored in the second memory in a memory location associated with the matching memory address. If the read address matches one of the memory addresses, the data is read from the first memory at a new address that is stored in the second memory in a memory location associated with the matching memory address.
Another memory circuit according to the invention includes a memory interface and a first memory that receives a first write address that is associated with first data from the memory interface. A second memory stores addresses of defective memory locations found in the first memory, receives the first write address from the memory interface, compares the first write address to the addresses stored in the second memory, and, if a matching address is found, writes the first data to the second memory.
In other features, the second memory writes the first data to a memory location in the second memory that is associated with the matching memory address. The first memory writes the first write data to a memory location in the first memory corresponding to the first write address. The memory circuit is implemented in a hard drive controller.
Another memory circuit according to the present invention includes a memory interface and a first memory that receives a first read address from the memory interface. A second memory stores addresses of defective memory locations found in the first memory, receives the first read address from the memory interface, compares the first read address to the addresses stored in the second memory, and, if a matching address is found, reads first data from the second memory.
In other features, the second memory reads the first data from a memory location in the second memory that is associated with the matching memory address. The first memory reads second data from a memory location in the first memory corresponding to the first read address. A multiplexer receives the first and second data from the first memory and the second memory when the matching address is found. The multiplexer outputs the first data from the second memory to the memory interface.
Further areas of applicability of the present invention will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples, while indicating the preferred embodiment of the invention, are intended for purposes of illustration only and are not intended to limit the scope of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will become more fully understood from the detailed description and the accompanying drawings, wherein:
FIG. 1 is a functional block diagram of a system on chip (SOC) including logic and embedded memory that are fabricated on a microchip according to the prior art;
FIG. 2 illustrates defects in the embedded memory of FIG. 1;
FIG. 3 is a functional block diagram of a SOC including an error correction coding circuit (ECC) according to the prior art;
FIGS. 4A and 4B are functional block diagrams illustrating a first SOC according to the present invention;
FIG. 5 is a functional block diagram illustrating a memory circuit according to the present invention;
FIG. 6 is a flowchart illustrating a method for operating the memory of the SOC of FIGS. 4A and 4B according to the present invention;
FIG. 7 is a functional block diagram of an embedded memory circuit according to the prior art;
FIG. 8 is a functional block diagram of an external memory circuit according to the prior art;
FIG. 9 is a functional block diagram of an embedded memory circuit according to the present invention;
FIG. 10 is a functional block diagram of an external memory circuit according to the present invention;
FIG. 11 is a flowchart illustrating steps performed by the memory circuit according to the present invention for identifying defective memory addresses;
FIG. 12 is a flowchart illustrating steps of one exemplary method for identifying defective memory addresses;
FIGS. 13A and 13B are flowcharts illustrating steps for operating a memory circuit according to the present invention;
FIGS. 14A and 14B are a functional block diagrams of memory circuits with a CAM, an ECC circuit and a second memory according to the present invention;
FIG. 15 is a flowchart illustrating the operation of the memory circuits of FIG. 14; and
FIGS. 16A and 16B are functional block diagrams of a memory circuit including a first memory and a second memory according to the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The following description of the preferred embodiment(s) is merely exemplary in nature and is in no way intended to limit the invention, its application, or uses. For purposes of clarity, the same reference numbers will be used in the drawings to identify similar elements.
Referring now to FIGS. 4A and 4B, a system on chip (SOC) 50 according to the present invention is shown. The SOC 50 includes logic 52, embedded memory 54, a swap circuit 56 and an error correction coding (ECC) circuit 58 that are fabricated on a single wafer or microchip. The embedded memory 54 includes a random data portion 60 and a cache data portion 62. The cache data portion 62 is divided into a plurality of blocks 64-1, 64-2, . . . and 64-n. The size of the n blocks may be equal to, larger or smaller than the size of the random data portion 60. As can be appreciated, the random data portion 60 may also be divided into blocks.
Initially, the random data portion 60 of the SOC 50 may be positioned in a first or top location in the embedded memory 54. If defects are detected in the random data portion 60 during initial testing or later in use, the random data portion 60 is swapped with one of the n blocks 64 in the cache data portion 62. The defective block is preferably logically moved to the end of the cache data portion 62 so that it is used less frequently. If the random data portion 60 is larger than the blocks 64, one or more blocks 64 may be used. Preferably, the size of the blocks 64 are an integer multiple of the size of the random data portion 60.
For example in FIG. 4B, the location of the random data portion 60 has been physically swapped with the first block 64-1. If additional defects are subsequently detected in the random data portion 60, the random data portion 60 can be physically swapped with other blocks in the cache data portion 62. The block of embedded memory 54 that contains the random data portion 60 is tested to determine whether a defect exists. The location of the defect is not important. If a defect exists, another block within the embedded memory is used.
More specifically, the logic 52 generates a logical address (LA) that is output to the swap circuit 56. If a swap has not been performed previously, the swap circuit 56 uses the LA. Otherwise, the swap circuit 56 substitutes a physical address (PA) for the LA. If the address corresponds to the random data portion 60, the swap circuit 56 disables the ECC circuit 58 (the random data portion 60 does not employ ECC). If the address corresponds to the blocks 64 of the cache data portion 62, the swap circuit enables the ECC circuit 58 and error correction coding (ECC) is performed. A memory test circuit 68 can be provided to test the memory 54 during manufacturing, assembly, operation, and/or power up. Alternately, testing can be performed by logic circuit 52. As can be appreciated, testing of the other memory circuits disclosed below can be performed in a similar manner.
Referring now to FIG. 5, a memory circuit 69 according to the present invention is shown. During read/write operations, address data from the logic circuit 52 and/or a memory interface is input to a CAM 70 and a multiplexer 72. If the address matches an address stored in the CAM 70, the CAM 70 signals a matched address via match line 74. The CAM outputs a substitute address corresponding to the matched address. The multiplexer 72 selects the substitute address from the CAM for output to memory 80. If there is no match, the multiplexer 72 outputs the address from logic 52. As can be appreciated, the memory 80 can be similar to memory 54 in FIGS. 4A and 4B, standard memory, memory with ECC bits or any other electronic storage.
Referring now to FIG. 6, steps for operating the embedded memory 54 of the SOC 50 are shown generally at 100. Control begins with step 102. In step 104, control determines whether the embedded memory 54 is being accessed by the logic 52. If not, control returns to step 104. Otherwise, control determines whether the logical address is in a swap table of the swap circuit 56 in step 106. If it is, the swap circuit 56 sets the address equal to the PA in the swap table in step 108. Otherwise, the address is set equal to the LA in step 110.
Control continues with step 112 where control determines whether the address is part of the cache data portion 62. If it is, control continues with step 114 where the ECC circuit 58 is enabled. If not, the ECC circuit 58 is disabled in step 116. Data is returned in step 118.
Referring now to FIG. 7, an embedded memory circuit 150 according to the prior art is shown. The embedded memory circuit 150 includes a memory interface 154 having address and control inputs 156 and 158, respectively, data input 160, and data output 162. The memory interface 154 is connected to memory 166. The memory interface 154 and the memory 166 are formed on a single wafer along with other logic (not shown).
Referring now to FIG. 8, an external memory circuit 170 according to the prior art is shown. The external memory circuit 170 includes a memory interface 174 having address and control inputs 176 and 178, respectively, data input 180, and data output 182. The memory interface 174 is connected to a memory 186. The memory interface 174 and the memory 186 are not formed on a single wafer as indicated by dotted lines 190. The memory interface 174 is connected to logic (not shown).
As can be appreciated, problems arise when memory locations in the memory 166 and 186 become defective. Error correction coding (ECC) can be used when data is read from and written to the memory block in blocks of data such as 16 and 64 bits. However, additional ECC bits must be added to each block of memory, which significantly increases the size of the memory. Additionally, ECC coding/decoding circuits must be added to the memory circuits 150 and 170, which increases the cost of the memory circuits. The coding/decoding algorithms also increase the read/write access times.
Referring now to FIG. 9, an embedded memory circuit 200 according to the present invention is shown. The embedded memory circuit 200 includes a first memory 202, a memory interface 204, and a second memory 206. The second memory 206 includes semiconductor memory such as SDRAM, NRAM, or any other suitable memory. The first memory 202 includes first address and control inputs 206 and 208, respectively, data input 212, and data output 214. The memory interface 204 includes second address and control inputs 220 and 222, respectively, data input 224, and data output 228. The first memory 202 is coupled to logic 229.
Referring now to FIG. 10, an external memory circuit 230 according to the present invention is shown. The embedded memory circuit 230 includes a first memory 232, a memory interface 234, and a second memory 236. As can be appreciated, the first memory 232 and the memory interface 234 are not formed on a single wafer or microchip as indicated by dotted lines 237. The first memory 232 includes first address and control inputs 236 and 238, respectively, data input 242, and data output 244. The memory interface 244 includes second address and control inputs 250 and 252, respectively, data input 254, and data output 258. The first memory 232 is connected to logic 259.
The first memory 202 and 232 is preferably Content Addressable Memory (CAM) or associative memory. CAM is a storage device that can be addressed by its own contents. Each bit of CAM storage includes comparison logic. An address input to the CAM is simultaneously compared with all of the stored addresses. The match result is the corresponding data for the matched address. The CAM operates as a data parallel processor. CAMs have a performance advantage over other memory search algorithms. This is due to the simultaneous comparison of the desired information against the entire list of stored entries. While CAM is preferably employed, the first memory 202 and 232 can be standard memory, logic, or any other suitable electronic storage medium.
Referring now to FIG. 11, steps that are performed by the memory circuits illustrated in FIGS. 9 and 10 during startup are shown. Control begins with step 270. In step 272, control determines whether the memory circuit is powered up. If not, control loops to step 272. Otherwise, control continues with step 274 where control determines whether a test of the second memory is requested.
If step 274 is true, control continues with step 275 where the second memory is placed in a stress mode or condition. In step 276, the first memory is disabled. In step 277, a memory location in the second memory is tested. In step 278, control determines whether the memory location is defective. If it is, control stores the address of the defective address and/or block in the first memory in step 280. Control continues from steps 278 (if false) and step 280 with step 284. In step 284, control determines whether all memory locations in the second memory are checked. If not, control identifies a next memory location in step 286 and returns to step 276. Otherwise, control sets the second memory to normal mode and enables the first memory in step 290. Control ends in step 292.
Referring now to FIG. 12, one exemplary method for testing memory locations in the second memory is shown at 300. Control begins with step 302. In step 304, a special pattern/data is written to a memory location. In step 306, the special pattern/data is read from the memory location. In step 310, control determines whether the write data is equal to the read data. If not, control continues with step 312 where the memory location is flagged as defective. The address of the defective location(s) are stored in the first memory. Control continues from step 310 (if true) and step 312 with step 314 where control ends.
As can be appreciated, testing of the memory storing the data in the memory circuits according to the present invention may be performed during manufacture and/or assembly, when the second memory is first started up, every time the second memory is started up, periodically, or randomly during subsequent startups. Testing may be performed by logic such as the logic 229 and/or by an external testing device. As can be appreciated by skilled artisans, still other criteria may be used for scheduling testing. In addition, all or part of the second memory may be tested.
After identifying defective locations in the second memory and storing the corresponding memory addresses in the first memory, the memory circuit operates as depicted generally at 320 in FIGS. 13A and 320′ in FIG. 13B. In FIG. 13A, control begins with step 322. In step 324, control determines whether data is being written to the second memory. If it is, control determines whether the write data address is equal to an address in the first memory in step 328. If it is, the data is written to the address stored in the first memory. If the address is not in the first memory, control continues with step 334 where the data is written to the address in the second memory. In another alternate embodiment, data can also be written to the original address in the second memory (even if bad) to simplify the memory circuit. If data is to be read from the second memory as determined in step 340, control determines whether the read data address is equal to an address in the first memory in step 342. If it is, control continues with step 344 and reads data from the address in the first memory. Otherwise control continues with step 346 and reads data from the address in the second memory.
Referring now to FIG. 13B, an alternate method is shown at 320′. If the write address is in the first memory as determined in step 328, data is written to a new and non-defective location in the second memory using a new address specified by the first memory in step 330′. If the read address is in the first memory as determined in step 342, data is read from the new location in the second memory using new address specified by the first memory in step 344′. In FIGS. 13A and 13B, data can be written to the original memory address (even if bad) to simplify the circuit.
Referring now to FIG. 14A, a read operation in a memory circuit 350 according to the present invention is shown. The memory circuit 350 provides error correction coding (ECC) for defective memory locations found in a second memory 360. The memory circuit 350 includes logic 352 that is coupled to a memory interface 354. An address line of the memory interface 354 is coupled to CAM 356 and memory 360. The memory 360 includes memory locations 364-1, 364-2, . . . and 364-n. The CAM includes m memory locations. In a preferred embodiment, n>>m. The CAM 356 is preferably less than 5% of the size of the second memory 360. For example, the CAM 356 is approximately 1% of the size of the second memory 360.
The CAM 356 is coupled to an ECC circuit 366. An output of the ECC circuit is coupled to a multiplexer 370. When an address is output by the memory interface 354 to the second memory 360, the CAM 356 compares the address to stored addresses. If a match is found, the CAM 356 outputs a match signal to the multiplexer 370 and ECC bits to the ECC circuit 366. The ECC circuit 366 and the multiplexer also receive the data from the second memory 360. The ECC circuit 370 uses ECC bits from the CAM 356 and outputs data to the multiplexer 370. The multiplexer 370 selects the output of the ECC circuit 370 when a match occurs. The multiplexer 370 selects the output of the second memory 360 when a match does not occur.
As can be appreciated, the memory is 360 preferably CAM. However, other types of memory such as SDRAM, DRAM, SRAM, and/or any other suitable electronic storage media can be used for the memory 360 instead of the CAM. The first memory 360 may be fabricated on a first microchip with at least one of the logic circuit 352, the memory interface 354, and the ECC circuit 366. The second memory 360 can be fabricated on a second microchip or on the first microchip.
Referring now to FIG. 14B, the memory circuit 350 for a write operation is shown. The memory interface 354 outputs a write address to the second memory 360. If the address matches an address stored in the CAM 356, the CAM 356 stores the ECC bits generated by the ECC circuit 366 in a location associated with the matched address.
Referring now to FIG. 15, steps for operating the memory circuits 350 of FIGS. 14A and 14B are shown generally at 400. Control begins with step 402. In step 404, control determines whether data is to be written from the logic 352 to the second memory 360. If step 404 is true, control continues with step 405 where control determines whether the address is defective. In not, control continues with step 406 and reads the data from the address in the memory. If step 405 is true, control continues with step 407 where the ECC 366 generates ECC bits. In step 408, the ECC bits are written to the CAM 356. In step 410, the data is written to the second memory 360.
If the result of step 404 is false, control continues with step 412. In step 412, control determines whether data is to be read from the second memory 360. If true, control continues with step 413 where control determines whether the address is defective. If not, control continues with step 414 and reads the data from the memory. Otherwise, control continues with step 416 where ECC bits are read from the CAM 356. In step 418, data is read from the second memory 360. The ECC 356 performs error correction coding on the data using the ECC bits in step 420. In step 422, the data is output to the logic 352. If step 412 is false, control returns to step 404.
For referring now to FIG. 16A, a memory circuit 400 is illustrated. A memory interface 404 is coupled to a first memory 406 that includes a plurality of memory locations 414-1, 414-2, . . . , and 414-n. The memory interface 404 is typically connected to logic 408. A second memory 416 includes a plurality of memory locations 418-1, 418-2, . . . , and 418-m. The second memory 416 is coupled to an address line 422. The second memory 416 is also coupled to a multiplexer 424. The multiplexer 424 is connected to a read data line 428 from the first memory 406. A control line 430 or match line connects the second memory 416 to the multiplexer 424. As with the memory circuit in FIG. 14, n>>m.
In use, the second memory 416 monitors addresses transmitted on the address line 422 to the first memory 406. If the second memory 416 has a matching address, the second memory 416 generates a control signal via the control line 430 and outputs the corresponding data to the multiplexer 424. The data is routed by the multiplexer 424 to the memory interface 404.
Referring now to FIG. 16B, the memory circuit 400′ is illustrated during a write data operation. The second memory 416 monitors the address line 422. If the address matches an address stored in the second memory 416, the second memory 416 writes the data to a location corresponding to the matched address in the second memory 416. To simplify the memory circuit 400′, the data can be optionally written to the first memory as well. The first memory 406 can be ECC memory with ECC bits.
As can be appreciated, the present invention contemplates using CAM for the memory 202, 232, 358, and 416 to provide optimum memory access times. However, any other suitable electronic storage medium may be used such as DRAM, SRAM, SDRAM, etc. The ECC and control circuit 356 may be combinatorial ECC.
As can be appreciated, the memory that stores the data can be tested for defects at the time of manufacture, at the time of assembly, during operation, at power up or at any other suitable time.
Those skilled in the art can now appreciate from the foregoing description that the broad teachings of the present invention can be implemented in a variety of forms. Therefore, while this invention has been described in connection with particular examples thereof, the true scope of the invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, the specification and the following claims.

Claims (12)

1. A memory circuit comprising:
a memory interface;
a first memory that receives a first write address that is associated with first data from said memory interface;
a second memory that stores addresses of defective memory locations found in said first memory, that receives said first write address from said memory interface, that compares said first write address to said addresses stored in said second memory, and, if a matching address is found, writes said first data to said second memory.
2. The memory circuit of claim 1 wherein said second memory writes said first data to a memory location in said second memory that is associated with said matching memory address.
3. The memory circuit of claim 1 wherein said first memory writes said first write data to a memory location in said first memory corresponding to said first write address.
4. The memory circuit of claim 1 wherein said memory circuit is implemented in a hard drive controller.
5. The memory circuit of claim 1 wherein said second memory is content addressable memory (CAM).
6. The memory circuit of claim 1 wherein said first memory is error correction coding (ECC) memory that stores ECC bits.
7. A memory circuit comprising:
a memory interface;
first memory means for receiving a first write address that is associated with first data from said memory interface;
second memory means for storing addresses of defective memory locations found in said first memory means, for receiving said first write address from said memory interface, for comparing said first write address to said addresses stored in said second memory means, and, if a matching address is found, for writing said first data to said second memory means.
8. The memory circuit of claim 7 wherein said second memory means writes said first data to a memory location in said second memory means that is associated with said matching memory address.
9. The memory circuit of claim 7 wherein said first memory means writes said first write data to a memory location in said first memory means corresponding to said first write address.
10. The memory circuit of claim 7 wherein said memory circuit is implemented in a hard drive controller.
11. The memory circuit of claim 7 wherein said second memory includes content addressable memory (CAM).
12. The memory circuit of claim 7 wherein said first memory means is error correction coding (ECC) memory that stores ECC bits.
US10/184,334 2002-05-30 2002-06-26 Method and apparatus for improving memory operation and yield Expired - Lifetime US7073099B1 (en)

Priority Applications (12)

Application Number Priority Date Filing Date Title
US10/184,334 US7073099B1 (en) 2002-05-30 2002-06-26 Method and apparatus for improving memory operation and yield
US11/328,373 US7962809B1 (en) 2002-05-30 2006-01-09 Method and apparatus for improving memory operation and yield
US11/327,933 US7809998B1 (en) 2002-05-30 2006-01-09 Method and apparatus for improving memory operation and yield
US11/584,946 US7818639B2 (en) 2002-05-30 2006-10-23 Fully-buffered dual in-line memory module with fault correction
US11/589,368 US7818636B1 (en) 2002-05-30 2006-10-30 Method and apparatus for improving memory operation and yield
US11/655,451 US7823030B2 (en) 2002-05-30 2007-01-19 Fully-buffered dual in-line memory module with fault correction
US11/655,603 US7870331B2 (en) 2002-05-30 2007-01-19 Fully-buffered dual in-line memory module with fault correction
US11/655,449 US7814382B2 (en) 2002-05-30 2007-01-19 Fully-buffered dual in-line memory module with fault correction
US12/903,606 US8281191B2 (en) 2002-05-30 2010-10-13 Fully-buffered dual in-line memory module with fault correction
US12/908,376 US8103921B2 (en) 2002-05-30 2010-10-20 Fully-buffered dual in-line memory module with fault correction
US13/632,547 US8745450B2 (en) 2002-05-30 2012-10-01 Fully-buffered dual in-line memory module with fault correction
US14/292,020 US9158620B2 (en) 2002-05-30 2014-05-30 Systems and methods for testing pages of data stored in a memory module

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US38437102P 2002-05-30 2002-05-30
US10/184,334 US7073099B1 (en) 2002-05-30 2002-06-26 Method and apparatus for improving memory operation and yield

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US11/328,373 Division US7962809B1 (en) 2002-05-30 2006-01-09 Method and apparatus for improving memory operation and yield
US11/327,933 Continuation US7809998B1 (en) 2002-05-30 2006-01-09 Method and apparatus for improving memory operation and yield

Publications (1)

Publication Number Publication Date
US7073099B1 true US7073099B1 (en) 2006-07-04

Family

ID=36613914

Family Applications (12)

Application Number Title Priority Date Filing Date
US10/184,334 Expired - Lifetime US7073099B1 (en) 2002-05-30 2002-06-26 Method and apparatus for improving memory operation and yield
US11/327,933 Active 2024-10-23 US7809998B1 (en) 2002-05-30 2006-01-09 Method and apparatus for improving memory operation and yield
US11/328,373 Active 2026-01-30 US7962809B1 (en) 2002-05-30 2006-01-09 Method and apparatus for improving memory operation and yield
US11/584,946 Expired - Lifetime US7818639B2 (en) 2002-05-30 2006-10-23 Fully-buffered dual in-line memory module with fault correction
US11/589,368 Expired - Lifetime US7818636B1 (en) 2002-05-30 2006-10-30 Method and apparatus for improving memory operation and yield
US11/655,603 Expired - Lifetime US7870331B2 (en) 2002-05-30 2007-01-19 Fully-buffered dual in-line memory module with fault correction
US11/655,449 Expired - Fee Related US7814382B2 (en) 2002-05-30 2007-01-19 Fully-buffered dual in-line memory module with fault correction
US11/655,451 Expired - Lifetime US7823030B2 (en) 2002-05-30 2007-01-19 Fully-buffered dual in-line memory module with fault correction
US12/903,606 Expired - Lifetime US8281191B2 (en) 2002-05-30 2010-10-13 Fully-buffered dual in-line memory module with fault correction
US12/908,376 Expired - Fee Related US8103921B2 (en) 2002-05-30 2010-10-20 Fully-buffered dual in-line memory module with fault correction
US13/632,547 Expired - Lifetime US8745450B2 (en) 2002-05-30 2012-10-01 Fully-buffered dual in-line memory module with fault correction
US14/292,020 Expired - Fee Related US9158620B2 (en) 2002-05-30 2014-05-30 Systems and methods for testing pages of data stored in a memory module

Family Applications After (11)

Application Number Title Priority Date Filing Date
US11/327,933 Active 2024-10-23 US7809998B1 (en) 2002-05-30 2006-01-09 Method and apparatus for improving memory operation and yield
US11/328,373 Active 2026-01-30 US7962809B1 (en) 2002-05-30 2006-01-09 Method and apparatus for improving memory operation and yield
US11/584,946 Expired - Lifetime US7818639B2 (en) 2002-05-30 2006-10-23 Fully-buffered dual in-line memory module with fault correction
US11/589,368 Expired - Lifetime US7818636B1 (en) 2002-05-30 2006-10-30 Method and apparatus for improving memory operation and yield
US11/655,603 Expired - Lifetime US7870331B2 (en) 2002-05-30 2007-01-19 Fully-buffered dual in-line memory module with fault correction
US11/655,449 Expired - Fee Related US7814382B2 (en) 2002-05-30 2007-01-19 Fully-buffered dual in-line memory module with fault correction
US11/655,451 Expired - Lifetime US7823030B2 (en) 2002-05-30 2007-01-19 Fully-buffered dual in-line memory module with fault correction
US12/903,606 Expired - Lifetime US8281191B2 (en) 2002-05-30 2010-10-13 Fully-buffered dual in-line memory module with fault correction
US12/908,376 Expired - Fee Related US8103921B2 (en) 2002-05-30 2010-10-20 Fully-buffered dual in-line memory module with fault correction
US13/632,547 Expired - Lifetime US8745450B2 (en) 2002-05-30 2012-10-01 Fully-buffered dual in-line memory module with fault correction
US14/292,020 Expired - Fee Related US9158620B2 (en) 2002-05-30 2014-05-30 Systems and methods for testing pages of data stored in a memory module

Country Status (1)

Country Link
US (12) US7073099B1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060015768A1 (en) * 2004-07-16 2006-01-19 Valine Craig M Method, system, and apparatus for tracking defective cache lines
US20070168812A1 (en) * 2002-05-30 2007-07-19 Sehat Sutardja Fully-buffered dual in-line memory module with fault correction
WO2008018989A2 (en) * 2006-08-04 2008-02-14 Marvell World Trade Ltd. Fully- buffered dual in-line memory module with fault correction
US20090049267A1 (en) * 2007-08-16 2009-02-19 Martin Perner Buffer circuit for a memory module
US7984358B1 (en) 2004-01-06 2011-07-19 Marvell Israel (M.I.S.L) Ltd. Error-correction memory architecture for testing production errors
US20110296276A1 (en) * 2010-06-01 2011-12-01 Silicon Storage Technology, Inc. Dynamic Buffer Management In A NAND Memory Controller To Minimize Age Related Performance Degradation Due To Error Correction
US8370705B1 (en) * 2009-09-23 2013-02-05 Nvidia Corporation System and method for calculating a checksum address while maintaining error correction information
US8510635B2 (en) 2010-12-28 2013-08-13 United Microelectronics Corp. Method for evaluating failure rate
EP2095234B1 (en) * 2006-11-21 2014-04-09 Freescale Semiconductor, Inc. Memory system with ecc-unit and further processing arrangement
TWI453751B (en) * 2006-08-04 2014-09-21 Marvell World Trade Ltd Fully-buffered dual in-line memory module with fault correction
US20180262198A1 (en) * 2015-09-01 2018-09-13 Flex Logix Technologies, Inc. Block Memory Layout and Architecture for Programmable Logic IC, and Method of Operating Same
CN117457048A (en) * 2023-12-20 2024-01-26 长鑫存储技术(西安)有限公司 Signal processing circuit and memory

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052598A1 (en) * 2006-08-09 2008-02-28 Aksamit Slavek P Memory multi-bit error correction and hot replace without mirroring
US8122322B2 (en) * 2007-07-31 2012-02-21 Seagate Technology Llc System and method of storing reliability data
US8429329B2 (en) * 2007-10-17 2013-04-23 Micron Technology, Inc. Serial interface NAND
JP2009266258A (en) 2008-04-22 2009-11-12 Hitachi Ltd Semiconductor device
US7962887B2 (en) * 2008-06-16 2011-06-14 International Business Machines Corporation Self-learning of the optimal power or performance operating point of a computer chip based on instantaneous feedback of present operating environment
KR20100097454A (en) * 2009-02-26 2010-09-03 삼성전자주식회사 Memory module having a plurality of phase change memory, buffer ram and nand flash memory
US11119857B2 (en) * 2012-09-18 2021-09-14 Mosys, Inc. Substitute redundant memory
US20120110411A1 (en) * 2010-10-29 2012-05-03 Brocade Communications Systems, Inc. Content Addressable Memory (CAM) Parity And Error Correction Code (ECC) Protection
US9477597B2 (en) * 2011-03-25 2016-10-25 Nvidia Corporation Techniques for different memory depths on different partitions
US8701057B2 (en) 2011-04-11 2014-04-15 Nvidia Corporation Design, layout, and manufacturing techniques for multivariant integrated circuits
US9529712B2 (en) 2011-07-26 2016-12-27 Nvidia Corporation Techniques for balancing accesses to memory having different memory types
US9798654B2 (en) 2011-09-15 2017-10-24 International Business Machines Corporation Retention management for phase change memory lifetime improvement through application and hardware profile matching
US8971094B2 (en) * 2011-09-16 2015-03-03 Inphi Corporation Replacement of a faulty memory cell with a spare cell for a memory circuit
US9158726B2 (en) 2011-12-16 2015-10-13 Inphi Corporation Self terminated dynamic random access memory
US9069717B1 (en) 2012-03-06 2015-06-30 Inphi Corporation Memory parametric improvements
TWI627537B (en) * 2013-03-06 2018-06-21 瑞昱半導體股份有限公司 Data transmission circuit and associated data transmission method applied to universal serial bus system
US9230687B2 (en) * 2013-04-22 2016-01-05 International Business Machines Corporation Implementing ECC redundancy using reconfigurable logic blocks
CN110428855B (en) * 2013-07-27 2023-09-22 奈特力斯股份有限公司 Memory module with local synchronization
WO2015016883A1 (en) 2013-07-31 2015-02-05 Hewlett-Packard Development Company, L.P. Off-memory-module ecc-supplemental memory system
US9251915B2 (en) * 2013-11-11 2016-02-02 Advantest Corporation Seamless fail analysis with memory efficient storage of fail lists
US9323602B2 (en) * 2014-01-20 2016-04-26 Freescale Semiconductor, Inc. Error correction with extended CAM
US9396064B2 (en) 2014-04-30 2016-07-19 Freescale Semiconductor, Inc. Error correction with secondary memory
US9311983B2 (en) * 2014-06-30 2016-04-12 Intel Corporation Dynamically applying refresh overcharge voltage to extend refresh cycle time
US9812222B2 (en) * 2015-04-20 2017-11-07 Qualcomm Incorporated Method and apparatus for in-system management and repair of semi-conductor memory failure
US10063263B2 (en) * 2015-05-20 2018-08-28 International Business Machines Corporation Extended error correction coding data storage
US10261697B2 (en) 2015-06-08 2019-04-16 Samsung Electronics Co., Ltd. Storage device and operating method of storage device
DE102015219266A1 (en) 2015-10-06 2017-04-06 Robert Bosch Gmbh Method for testing a memory unit of a microcontroller
US11481126B2 (en) * 2016-05-24 2022-10-25 Micron Technology, Inc. Memory device error based adaptive refresh rate systems and methods
US10254982B2 (en) * 2016-11-10 2019-04-09 Western Digital Technologies, Inc. System and methodology for low latency error management within a shared non-volatile memory architecture
US10514867B2 (en) 2016-11-10 2019-12-24 Western Digital Technologies, Inc. System and methodology that facilitates error management within a shared non-volatile memory architecture
US20180150124A1 (en) * 2016-11-28 2018-05-31 Qualcomm Incorporated Wifi memory power minimization
KR20180083619A (en) * 2017-01-13 2018-07-23 삼성전자주식회사 Memory device comprising resistance change material method for operating the memory device
CN108735268B (en) * 2017-04-19 2024-01-30 恩智浦美国有限公司 Nonvolatile memory repair circuit
US11086790B2 (en) * 2017-08-25 2021-08-10 Micron Technology, Inc. Methods of memory address verification and memory devices employing the same
US10261914B2 (en) 2017-08-25 2019-04-16 Micron Technology, Inc. Methods of memory address verification and memory devices employing the same
US10528422B2 (en) 2017-11-13 2020-01-07 Stmicroelectronics International N.V. Redundant storage of error correction code (ECC) checkbits for validating proper operation of a static random access memory (SRAM)
KR102415867B1 (en) 2017-11-29 2022-07-04 에스케이하이닉스 주식회사 Memory system for removing memory cell fault and method thereof
US10922170B2 (en) 2018-12-03 2021-02-16 Samsung Electronics Co., Ltd. Memory module including a volatile memory device, memory system including the memory module and methods of operating a multi-module memory device
US11498934B2 (en) 2019-01-30 2022-11-15 Inpria Corporation Monoalkyl tin trialkoxides and/or monoalkyl tin triamides with particulate contamination and corresponding methods
CN115565560A (en) * 2022-01-06 2023-01-03 澜起电子科技(上海)有限公司 Storage device with modular design and storage system comprising same

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901360A (en) * 1987-10-23 1990-02-13 Hughes Aircraft Company Gated architecture for computer vision machine
US4903268A (en) 1985-09-26 1990-02-20 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device having on-chip error check and correction functions
US5056095A (en) 1988-01-13 1991-10-08 Hitachi, Ltd. Semiconductor memory having error correction circuit
US5127014A (en) 1990-02-13 1992-06-30 Hewlett-Packard Company Dram on-chip error correction/detection
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5535226A (en) 1994-05-31 1996-07-09 International Business Machines Corporation On-chip ECC status
US5848076A (en) 1996-06-10 1998-12-08 Mitsubishi Denki Kabushiki Kaisha Memory card with capability of error correction and error correction method therefore
US5958068A (en) * 1997-04-14 1999-09-28 International Business Machines Corporation Cache array defect functional bypassing using repair mask
US5958079A (en) 1997-01-08 1999-09-28 Mitsubishi Denki Kabushiki Kaisha Memory card with error correction scheme requiring reducing memory capacity
US5959914A (en) 1998-03-27 1999-09-28 Lsi Logic Corporation Memory controller with error correction memory test application
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US6058047A (en) 1996-08-16 2000-05-02 Tokyo Electron Limited Semiconductor memory device having error detection and correction
US6065141A (en) * 1992-07-27 2000-05-16 Fujitsu Limited Self-diagnosable semiconductor memory device having a redundant circuit and semiconductor apparatus having the same in which the memory device cannot be accessed from outside the semiconductor apparatus
US6175941B1 (en) 1998-12-08 2001-01-16 Lsi Logic Corporation Error correction apparatus and associated method utilizing parellel processing
US6237116B1 (en) 1998-11-16 2001-05-22 Lockheed Martin Corporation Testing error correcting code feature in computers that do not have direct hardware features for causing single bit and multi-bit errors
US6295617B1 (en) 1997-06-30 2001-09-25 Nec Corporation Testing method of semiconductor memory device and semiconductor memory device applicable to the method
US6385071B1 (en) * 2001-05-21 2002-05-07 International Business Machines Corporation Redundant scheme for CAMRAM memory array
US6414876B1 (en) * 1989-04-13 2002-07-02 Sandisk Corporation Flash EEprom system
US6438726B1 (en) 1999-05-18 2002-08-20 Advanced Micro Devices, Inc. Method of dual use of non-volatile memory for error correction
US6457154B1 (en) 1999-11-30 2002-09-24 International Business Machines Corporation Detecting address faults in an ECC-protected memory

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5833577B2 (en) 1977-03-17 1983-07-20 富士通株式会社 integrated circuit
US4163147A (en) 1978-01-20 1979-07-31 Sperry Rand Corporation Double bit error correction using double bit complementing
JP2539357B2 (en) * 1985-03-15 1996-10-02 株式会社日立製作所 Data processing device
US5059095A (en) 1989-10-30 1991-10-22 The Perkin-Elmer Corporation Turbine rotor blade tip coated with alumina-zirconia ceramic
JP3065736B2 (en) 1991-10-01 2000-07-17 松下電器産業株式会社 Semiconductor storage device
GB9213821D0 (en) * 1992-06-30 1992-08-12 Inmos Ltd Content addressable memory
JP3330660B2 (en) 1992-07-20 2002-09-30 株式会社リコー Zoom finder
US5568415A (en) * 1993-02-19 1996-10-22 Digital Equipment Corporation Content addressable memory having a pair of memory cells storing don't care states for address translation
GB9305801D0 (en) 1993-03-19 1993-05-05 Deans Alexander R Semiconductor memory system
KR0135699B1 (en) 1994-07-11 1998-04-24 김주용 Dual port dynamic cam cell and refresh circuit
US5740460A (en) 1994-07-29 1998-04-14 Discovision Associates Arrangement for processing packetized data
US5636354A (en) * 1994-09-06 1997-06-03 Motorola Inc. Data processor with serially accessed set associative memory cache interface and method
US5513135A (en) 1994-12-02 1996-04-30 International Business Machines Corporation Synchronous memory packaged in single/dual in-line memory module and method of fabrication
US5563833A (en) * 1995-03-03 1996-10-08 International Business Machines Corporation Using one memory to supply addresses to an associated memory during testing
JP3714489B2 (en) 1995-03-03 2005-11-09 株式会社日立製作所 Dynamic RAM and memory module
US5758056A (en) * 1996-02-08 1998-05-26 Barr; Robert C. Memory system having defective address identification and replacement
US6134631A (en) * 1996-08-19 2000-10-17 Hyundai Electronics America, Inc. Non-volatile memory with embedded programmable controller
FR2753026B1 (en) 1996-08-28 1998-11-13 Pyndiah Ramesh METHOD FOR TRANSMITTING INFORMATION BITS WITH ERROR CORRECTING CODER, ENCODER AND DECODER FOR CARRYING OUT SAID METHOD
DE69628753D1 (en) 1996-09-30 2003-07-24 St Microelectronics Srl Input structure, especially for analog and digital content addressable memories
US5796758A (en) 1996-10-08 1998-08-18 International Business Machines Corporation Self-checking content-addressable memory and method of operation for detecting multiple selected word lines
JP3495530B2 (en) 1996-11-14 2004-02-09 三洋電機株式会社 Code error correction decoder and address generation circuit
DE69829539T2 (en) * 1997-11-26 2005-09-01 Texas Instruments Inc., Dallas Improvements to or at computer memories
US6067656A (en) * 1997-12-05 2000-05-23 Intel Corporation Method and apparatus for detecting soft errors in content addressable memory arrays
US6085334A (en) * 1998-04-17 2000-07-04 Motorola, Inc. Method and apparatus for testing an integrated memory device
US6233646B1 (en) 1998-08-28 2001-05-15 Electronics And Telecommunications Research Institute Memory interface controller
US6898140B2 (en) 1998-10-01 2005-05-24 Monolithic System Technology, Inc. Method and apparatus for temperature adaptive refresh in 1T-SRAM compatible memory using the subthreshold characteristics of MOSFET transistors
DE50013161D1 (en) * 1999-03-17 2006-08-24 Eupec Gmbh & Co Kg SEMICONDUCTOR POWER MODULE
JP3871471B2 (en) 1999-07-12 2007-01-24 松下電器産業株式会社 ECC circuit mounted semiconductor memory device and inspection method thereof
US6275406B1 (en) 1999-09-10 2001-08-14 Sibercore Technologies, Inc. Content address memory circuit with redundant array and method for implementing the same
US6484271B1 (en) 1999-09-16 2002-11-19 Koninklijke Philips Electronics N.V. Memory redundancy techniques
US6643752B1 (en) 1999-12-09 2003-11-04 Rambus Inc. Transceiver with latency alignment circuitry
US6502161B1 (en) 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US6469945B2 (en) 2000-05-25 2002-10-22 Tachyon Semiconductor Corp. Dynamically configurated storage array with improved data access
US6331961B1 (en) 2000-06-09 2001-12-18 Silicon Access Networks, Inc. DRAM based refresh-free ternary CAM
JP4097883B2 (en) * 2000-07-04 2008-06-11 松下電器産業株式会社 Data transfer apparatus and method
US6751755B1 (en) * 2000-09-13 2004-06-15 Cypress Semiconductor Corporation Content addressable memory having redundancy capabilities
US6614675B1 (en) * 2000-10-10 2003-09-02 Ati International, Srl Pipelined content addressable memory with read only element encoding scheme
US6700827B2 (en) 2001-02-08 2004-03-02 Integrated Device Technology, Inc. Cam circuit with error correction
US6563754B1 (en) 2001-02-08 2003-05-13 Integrated Device Technology, Inc. DRAM circuit with separate refresh memory
US6597595B1 (en) * 2001-08-03 2003-07-22 Netlogic Microsystems, Inc. Content addressable memory with error detection signaling
US6614685B2 (en) * 2001-08-09 2003-09-02 Multi Level Memory Technology Flash memory array partitioning architectures
US7017089B1 (en) 2001-11-01 2006-03-21 Netlogic Microsystems, Inc Method and apparatus for testing a content addressable memory device
US6838331B2 (en) 2002-04-09 2005-01-04 Micron Technology, Inc. Method and system for dynamically operating memory in a power-saving error correction mode
US7216284B2 (en) * 2002-05-15 2007-05-08 International Business Machines Corp. Content addressable memory having reduced power consumption
US7073099B1 (en) 2002-05-30 2006-07-04 Marvell International Ltd. Method and apparatus for improving memory operation and yield
DE602004018646D1 (en) 2003-01-29 2009-02-05 St Microelectronics Sa A method of refreshing a DRAM and associated DRAM device, in particular incorporated in a cellular mobile telephone
US6778457B1 (en) 2003-02-19 2004-08-17 Freescale Semiconductor, Inc. Variable refresh control for a memory
US7308530B1 (en) 2003-10-02 2007-12-11 Marvell International Ltd. Architecture for a data storage device
US6988237B1 (en) 2004-01-06 2006-01-17 Marvell Semiconductor Israel Ltd. Error-correction memory architecture for testing production errors
US7116602B2 (en) 2004-07-15 2006-10-03 Micron Technology, Inc. Method and system for controlling refresh to avoid memory cell data losses
US7917846B2 (en) 2007-06-08 2011-03-29 Apple Inc. Web clip using anchoring

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4903268A (en) 1985-09-26 1990-02-20 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device having on-chip error check and correction functions
US4901360A (en) * 1987-10-23 1990-02-13 Hughes Aircraft Company Gated architecture for computer vision machine
US5056095A (en) 1988-01-13 1991-10-08 Hitachi, Ltd. Semiconductor memory having error correction circuit
US6414876B1 (en) * 1989-04-13 2002-07-02 Sandisk Corporation Flash EEprom system
US5127014A (en) 1990-02-13 1992-06-30 Hewlett-Packard Company Dram on-chip error correction/detection
US6065141A (en) * 1992-07-27 2000-05-16 Fujitsu Limited Self-diagnosable semiconductor memory device having a redundant circuit and semiconductor apparatus having the same in which the memory device cannot be accessed from outside the semiconductor apparatus
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5535226A (en) 1994-05-31 1996-07-09 International Business Machines Corporation On-chip ECC status
US5848076A (en) 1996-06-10 1998-12-08 Mitsubishi Denki Kabushiki Kaisha Memory card with capability of error correction and error correction method therefore
US6058047A (en) 1996-08-16 2000-05-02 Tokyo Electron Limited Semiconductor memory device having error detection and correction
US5958079A (en) 1997-01-08 1999-09-28 Mitsubishi Denki Kabushiki Kaisha Memory card with error correction scheme requiring reducing memory capacity
US5958068A (en) * 1997-04-14 1999-09-28 International Business Machines Corporation Cache array defect functional bypassing using repair mask
US6295617B1 (en) 1997-06-30 2001-09-25 Nec Corporation Testing method of semiconductor memory device and semiconductor memory device applicable to the method
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US5959914A (en) 1998-03-27 1999-09-28 Lsi Logic Corporation Memory controller with error correction memory test application
US6237116B1 (en) 1998-11-16 2001-05-22 Lockheed Martin Corporation Testing error correcting code feature in computers that do not have direct hardware features for causing single bit and multi-bit errors
US6175941B1 (en) 1998-12-08 2001-01-16 Lsi Logic Corporation Error correction apparatus and associated method utilizing parellel processing
US6438726B1 (en) 1999-05-18 2002-08-20 Advanced Micro Devices, Inc. Method of dual use of non-volatile memory for error correction
US6457154B1 (en) 1999-11-30 2002-09-24 International Business Machines Corporation Detecting address faults in an ECC-protected memory
US6385071B1 (en) * 2001-05-21 2002-05-07 International Business Machines Corporation Redundant scheme for CAMRAM memory array

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Memory Built-in Self-repair Using Redundant Words" Schober et al. International Test Conference Proceedings. Publication Date: Oct. 30-Nov. 1, 2001 pp. 995-1001 Inspec Accession No: 7211400. *
IBM TDB NN85112562 "System for Efficiently Using Spare Memory Components for Defect Corrections Employing Content-Addressable Memory" Date: Nov. 1, 1985. *

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962809B1 (en) 2002-05-30 2011-06-14 Marvell International Ltd. Method and apparatus for improving memory operation and yield
US20110029752A1 (en) * 2002-05-30 2011-02-03 Sehat Sutardja Fully-buffered dual in-line memory module with fault correction
US20070168810A1 (en) * 2002-05-30 2007-07-19 Sehat Sutardja Fully-buffered dual in-line memory module with fault correction
US20070168811A1 (en) * 2002-05-30 2007-07-19 Sehat Sutardja Fully-buffered dual in-line memory module with fault correction
US20070168781A1 (en) * 2002-05-30 2007-07-19 Sehat Sutardja Fully-buffered dual in-line memory module with fault correction
US7809998B1 (en) * 2002-05-30 2010-10-05 Marvell International Ltd. Method and apparatus for improving memory operation and yield
US8281191B2 (en) 2002-05-30 2012-10-02 Marvell World Trade Ltd. Fully-buffered dual in-line memory module with fault correction
US7814382B2 (en) 2002-05-30 2010-10-12 Marvell World Trade Ltd. Fully-buffered dual in-line memory module with fault correction
US20110035545A1 (en) * 2002-05-30 2011-02-10 Sehat Sutardja Fully-buffered dual in-line memory module with fault correction
US9158620B2 (en) 2002-05-30 2015-10-13 Marvell World Trade Ltd. Systems and methods for testing pages of data stored in a memory module
US8745450B2 (en) 2002-05-30 2014-06-03 Marvell World Trade Ltd. Fully-buffered dual in-line memory module with fault correction
US8103921B2 (en) 2002-05-30 2012-01-24 Marvell World Trade Ltd. Fully-buffered dual in-line memory module with fault correction
US7823030B2 (en) 2002-05-30 2010-10-26 Marvell World Trade Ltd. Fully-buffered dual in-line memory module with fault correction
US7818639B2 (en) 2002-05-30 2010-10-19 Marvell World Trade Ltd. Fully-buffered dual in-line memory module with fault correction
US7818636B1 (en) 2002-05-30 2010-10-19 Marvell International Ltd. Method and apparatus for improving memory operation and yield
US7870331B2 (en) 2002-05-30 2011-01-11 Marvell World Trade Ltd. Fully-buffered dual in-line memory module with fault correction
US20070168812A1 (en) * 2002-05-30 2007-07-19 Sehat Sutardja Fully-buffered dual in-line memory module with fault correction
US7984358B1 (en) 2004-01-06 2011-07-19 Marvell Israel (M.I.S.L) Ltd. Error-correction memory architecture for testing production errors
US20060015768A1 (en) * 2004-07-16 2006-01-19 Valine Craig M Method, system, and apparatus for tracking defective cache lines
US7380180B2 (en) * 2004-07-16 2008-05-27 Intel Corporation Method, system, and apparatus for tracking defective cache lines
TWI453751B (en) * 2006-08-04 2014-09-21 Marvell World Trade Ltd Fully-buffered dual in-line memory module with fault correction
WO2008018989A3 (en) * 2006-08-04 2008-07-10 Marvell World Trade Ltd Fully- buffered dual in-line memory module with fault correction
WO2008018989A2 (en) * 2006-08-04 2008-02-14 Marvell World Trade Ltd. Fully- buffered dual in-line memory module with fault correction
EP2095234B1 (en) * 2006-11-21 2014-04-09 Freescale Semiconductor, Inc. Memory system with ecc-unit and further processing arrangement
US20090049267A1 (en) * 2007-08-16 2009-02-19 Martin Perner Buffer circuit for a memory module
US7778090B2 (en) * 2007-08-16 2010-08-17 Qimonda Ag Buffer circuit for a memory module
US8370705B1 (en) * 2009-09-23 2013-02-05 Nvidia Corporation System and method for calculating a checksum address while maintaining error correction information
US8726130B2 (en) * 2010-06-01 2014-05-13 Greenliant Llc Dynamic buffer management in a NAND memory controller to minimize age related performance degradation due to error correction
US20110296276A1 (en) * 2010-06-01 2011-12-01 Silicon Storage Technology, Inc. Dynamic Buffer Management In A NAND Memory Controller To Minimize Age Related Performance Degradation Due To Error Correction
US8510635B2 (en) 2010-12-28 2013-08-13 United Microelectronics Corp. Method for evaluating failure rate
US20180262198A1 (en) * 2015-09-01 2018-09-13 Flex Logix Technologies, Inc. Block Memory Layout and Architecture for Programmable Logic IC, and Method of Operating Same
US10680616B2 (en) * 2015-09-01 2020-06-09 Flex Logix Technologies, Inc. Block memory layout and architecture for programmable logic IC, and method of operating same
CN117457048A (en) * 2023-12-20 2024-01-26 长鑫存储技术(西安)有限公司 Signal processing circuit and memory

Also Published As

Publication number Publication date
US7809998B1 (en) 2010-10-05
US20070168812A1 (en) 2007-07-19
US20110029752A1 (en) 2011-02-03
US8281191B2 (en) 2012-10-02
US7823030B2 (en) 2010-10-26
US9158620B2 (en) 2015-10-13
US20070168811A1 (en) 2007-07-19
US20070168781A1 (en) 2007-07-19
US20140289575A1 (en) 2014-09-25
US8103921B2 (en) 2012-01-24
US7818639B2 (en) 2010-10-19
US20110035545A1 (en) 2011-02-10
US7962809B1 (en) 2011-06-14
US7818636B1 (en) 2010-10-19
US7870331B2 (en) 2011-01-11
US8745450B2 (en) 2014-06-03
US20130031432A1 (en) 2013-01-31
US20070168810A1 (en) 2007-07-19
US7814382B2 (en) 2010-10-12

Similar Documents

Publication Publication Date Title
US7073099B1 (en) Method and apparatus for improving memory operation and yield
US6373758B1 (en) System and method of operating a programmable column fail counter for redundancy allocation
US6085334A (en) Method and apparatus for testing an integrated memory device
US6408401B1 (en) Embedded RAM with self-test and self-repair with spare rows and columns
US7911872B2 (en) Column/row redundancy architecture using latches programmed from a look up table
US6691252B2 (en) Cache test sequence for single-ported row repair CAM
US7408825B2 (en) Apparatus and method for repairing a semiconductor memory
US6826098B2 (en) Semiconductor memory having multiple redundant columns with offset segmentation boundaries
JP2005182866A (en) Device and method for testing semiconductor, method for manufacturing semiconductor, and semiconductor memory
US6397349B2 (en) Built-in self-test and self-repair methods and devices for computer memories comprising a reconfiguration memory device
EP1647031B1 (en) Memory device and method of storing fail addresses of a memory cell
US20020108073A1 (en) System for and method of operating a programmable column fail counter for redundancy allocation
US6247153B1 (en) Method and apparatus for testing semiconductor memory device having a plurality of memory banks
US7487414B2 (en) Parallel bit test circuits for testing semiconductor memory devices and related methods
US7593274B2 (en) Semiconductor integrated circuit and relief method and test method of the same
US6317846B1 (en) System and method for detecting faults in computer memories using a look up table
US20020124203A1 (en) Method for utilizing DRAM memory
US6175936B1 (en) Apparatus for detecting faults in multiple computer memories
US7464308B2 (en) CAM expected address search testmode
WO2008018989A2 (en) Fully- buffered dual in-line memory module with fault correction

Legal Events

Date Code Title Description
AS Assignment

Owner name: MARVELL INTERNATIONAL LTD., BERMUDA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MARVELL SEMICONDUCTOR, INC.;REEL/FRAME:013063/0590

Effective date: 20020626

Owner name: MARVELL SEMICONDUCTOR, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SUTARDJA, SEHAT;AZIMI, SAEED;REEL/FRAME:013064/0078

Effective date: 20020625

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553)

Year of fee payment: 12

AS Assignment

Owner name: CAVIUM INTERNATIONAL, CAYMAN ISLANDS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MARVELL INTERNATIONAL LTD.;REEL/FRAME:052918/0001

Effective date: 20191231

AS Assignment

Owner name: MARVELL ASIA PTE, LTD., SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CAVIUM INTERNATIONAL;REEL/FRAME:053475/0001

Effective date: 20191231