Memory redundancy repair
11710531 · 2023-07-25
Assignee
Inventors
Cpc classification
International classification
Abstract
Memories, and their operation, might include a plurality of content addressable memory (CAM) cells each for storing a respective data value, a match signal generator configured to generate an indication whether each CAM cell of the plurality of CAM cells indicates a match between its respective data value and a respective received signal value, and a plurality of storage elements each for storing a respective data value, wherein each storage element of the plurality of storage elements corresponds to a respective CAM cell of the plurality of CAM cells in a one-to-one relationship, and wherein each storage element of the plurality of storage elements is responsive to the indication of the match signal generator to generate a data signal indicative of the respective data value of that storage element if a match of their corresponding CAM cells is indicated.
Claims
1. A memory, comprising: a plurality of content addressable memory (CAM) cells, wherein each CAM cell of the plurality of CAM cells is configured to store a respective data value; a match signal generator configured to generate an indication whether each CAM cell of the plurality of CAM cells indicates a match between its respective data value and a respective received signal value; and a plurality of storage elements, wherein each storage element of the plurality of storage elements corresponds to a respective CAM cell of the plurality of CAM cells in a one-to-one relationship, wherein each storage element of the plurality of storage elements is configured to store a respective data value, and wherein each storage element of the plurality of storage elements is responsive to the indication of the match signal generator to selectively generate a data signal indicative of the respective data value of that storage element.
2. The memory of claim 1, wherein the respective data value of each CAM cell of the plurality of CAM cells corresponds to a digit of an address portion of a defective memory element, and wherein the respective data value of each storage element of the plurality of storage elements corresponds to a digit of an address portion of a redundant memory element.
3. The memory of claim 1, wherein, for at least one storage element of the plurality of storage elements, the respective data value for that storage element is different than the respective data value of its corresponding CAM cell of the plurality of CAM cells.
4. The memory of claim 1, wherein the indication of the match signal generator comprises a signal having a first logic level when in response to each CAM cell of the plurality of CAM cells indicating a match between its respective data value and its respective received signal value, and having a second logic level, different than the first logic level, in response to any CAM cell of the plurality of CAM cells indicating a mis-match between its respective data value and its respective received signal value.
5. The memory of claim 4, wherein the signal of the indication is a first signal, and wherein the indication of the match signal generator further comprises a second signal having the second logic level in response to each CAM cell of the plurality of CAM cells indicating a match between its respective data value and its respective received signal value, and having the first logic level in response to any CAM cell of the plurality of CAM cells indicating a mis-match between its respective data value and its respective received signal value.
6. The memory of claim 5, wherein each storage element of the plurality of storage elements whose respective data value has a particular logic level is responsive to the logic level of the first signal without regard to the logic level of the second signal, and wherein each storage element of the plurality of storage elements whose respective data value has a different logic level, different than the particular logic level, is responsive to the logic level of the second signal without regard to the logic level of the first signal.
7. The memory of claim 6, wherein the particular logic level and the second logic level are a same logic level, and wherein the different logic level and the first logic level are a same logic level.
8. The memory of claim 1, wherein a particular storage element of the plurality of storage elements comprises a first field-effect transistor (FET) having a first source/drain connected to a first voltage node and a second source/drain connected to a first source/drain of a second FET, wherein the second FET has a second source/drain connected to a second voltage node, wherein the first voltage node is configured to receive a first voltage level, wherein the second voltage node is configured to receive a second voltage level lower than the first voltage level, wherein the first FET is configured to be selectively activated in response to the indication if the particular storage element stores a data value having a first logic level and to be deactivated regardless of the indication if the particular storage element stores the data value having a second logic level different than the first logic level, and wherein the second FET is configured to be selectively activated in response to the indication whet-if the particular storage element stores the data value having the second logic level and to be deactivated regardless of the indication if the particular storage element stores the data value having the first logic level.
9. The memory of claim 8, wherein the particular storage element is of a type selected from a group consisting of a hard-wired storage element, a read-only storage element, and a register-based storage element.
10. A memory, comprising: an array of content addressable memory (CAM) cells comprising a plurality of groupings of CAM cells, wherein each CAM cell of the array of CAM cells is configured to store a respective data value; a plurality of signal nodes, wherein each signal node of the plurality of signal nodes is in communication with a respective CAM cell for each grouping of CAM cells of the plurality of groupings of CAM cells; a plurality of match signal generators, wherein each match signal generator of the plurality of match signal generators corresponds to a respective grouping of CAM cells of the plurality of groupings of CAM cells, and wherein each match signal generator of the plurality of match signal generators is configured to generate an indication whether each CAM cell of its respective grouping of CAM cells indicates a match between its respective data value and a signal value received from its respective signal node of the plurality of signal nodes; a plurality of groupings of storage elements, wherein each grouping of storage elements of the plurality of groupings of storage elements corresponds to a respective grouping of CAM cells of the plurality of groupings of CAM cells and to the respective match signal generator for that respective grouping of CAM cells; and a multiplexer having a first plurality of inputs, and having a plurality of outputs, wherein each input of the first plurality of inputs is in communication with a respective signal node of the plurality of signal nodes, and wherein each input of the second plurality of inputs is in communication with the output of a respective storage element of each grouping of storage elements of the plurality of groupings of storage elements; wherein each storage element of the plurality of groupings of storage elements corresponds to a respective CAM cell of its respective grouping of CAM cells in a one-to-one relationship, wherein each storage element of the plurality of groupings of storage elements is configured to store a respective data value, and wherein each storage element of the plurality of groupings of storage elements is responsive to the indication of its match signal generator to generate a data signal on an output of that storage element indicative of the respective data value of that storage element in response to the indication of the respective match signal generator for that storage element indicating a match, and to present a high impedance to the output of that storage element in response to the indication of the respective match signal generator for that storage element indicating a mis-match; and wherein the multiplexer is configured to connect its plurality of outputs to the first plurality of inputs in response to no match signal generator of the plurality of match signal generators indicating a match, and to connect its plurality of outputs to the second plurality of inputs in response to any match signal generator of the plurality of match signal generators indicating a match.
11. The memory of claim 10, wherein the multiplexer is responsive to a logic level of an input of the second plurality of inputs to determine whether a match signal generator of the plurality of match signal generators indicates a match.
12. The memory of claim 10, wherein, for each storage element of a particular grouping of storage elements of the plurality of groupings of storage elements, the output of that storage element is commonly connected to a respective storage element of each remaining grouping of storage elements of the plurality of groupings of storage elements.
13. The memory of claim 10, wherein, for each match signal generator of the plurality of match signal generators, the indication for that match signal generator comprises a pair of complementary signals.
14. The memory of claim 13, wherein, for each storage element of the plurality of storage elements, that storage element is responsive to a first signal of the pair of complementary signals if that storage element stores a first data value, and is responsive to a second signal of the pair of complementary signals if that storage element stores a second data value, different than the first data value.
15. A method of operating a memory, comprising: comparing a received address portion to a stored address portion; generating an indication whether a match was detected between the received address portion and the stored address portion; activating a plurality of storage elements responsive to the indication indicating that a match between the received address portion and the stored address portion is detected, wherein activating the plurality of storage elements comprises, for each storage element of the plurality of storage elements, causing that storage element to generate a respective address signal at an output of that storage element; and accessing a redundant memory element in response to the outputs of the activated plurality of storage elements.
16. The method of claim 15, wherein comparing the received address portion to the stored address portion comprises comparing a received address portion corresponding to a memory element of the memory to be accessed to a stored address portion corresponding to a memory element of the memory deemed to be defective.
17. The method of claim 15, wherein activating the plurality of storage elements comprises activating a plurality of storage elements collectively storing an address portion corresponding to the redundant memory element.
18. The method of claim 15, wherein the stored address portion is a first stored address portion, wherein the indication is a first indication, wherein the plurality of storage elements is a first plurality of storage elements, and wherein the redundant memory element is a first redundant memory element, the method further comprising: comparing the received address portion to a second stored address portion; generating a second indication whether a match was detected between the received address portion and the second stored address portion; deactivating the first plurality of storage elements responsive to the first indication indicating that a mis-match between the received address portion and the first stored address portion is detected; activating a second plurality of storage elements responsive to the second indication indicating that a match between the received address portion and the second stored address portion is detected; deactivating the second plurality of storage elements responsive to the first indication indicating that a mis-match between the received address portion and the first stored address portion is detected; and accessing a second redundant memory element in response to outputs of the activated second plurality of storage elements.
19. The method of claim 18, wherein, for each storage element of the first plurality of storage elements, the output of that storage element is connected to the output of a corresponding storage element of the second plurality of storage elements.
20. The method of claim 15, further comprising: deactivating the plurality of storage elements responsive to the indication indicating that a mis-match between the received address portion and the stored address portion is detected.
21. The method of claim 20, wherein deactivating the plurality of storage elements comprises, for each storage element of the plurality of storage elements, presenting a high impedance to the output of that storage element.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
DETAILED DESCRIPTION
(8) In the following detailed description, reference is made to the accompanying drawings that form a part hereof, and in which is shown, by way of illustration, specific embodiments. In the drawings, like reference numerals describe substantially similar components throughout the several views. Other embodiments might be utilized and structural, logical and electrical changes might be made without departing from the scope of the present disclosure. The following detailed description is, therefore, not to be taken in a limiting sense.
(9) The term “semiconductor” used herein can refer to, for example, a layer of material, a wafer, or a substrate, and includes any base semiconductor structure. “Semiconductor” is to be understood as including silicon-on-sapphire (SOS) technology, silicon-on-insulator (SOI) technology, thin film transistor (TFT) technology, doped and undoped semiconductors, epitaxial layers of a silicon supported by a base semiconductor structure, as well as other semiconductor structures well known to one skilled in the art. Furthermore, when reference is made to a semiconductor in the following description, previous process steps might have been utilized to form regions/junctions in the base semiconductor structure, and the term semiconductor can include the underlying layers containing such regions/junctions.
(10) The term “conductive” as used herein, as well as its various related forms, e.g., conduct, conductively, conducting, conduction, conductivity, etc., refers to electrically conductive unless otherwise apparent from the context. Similarly, the term “connecting” as used herein, as well as its various related forms, e.g., connect, connected, connection, etc., refers to electrically connecting unless otherwise apparent from the context.
(11)
(12) Memory device 100 includes an array of memory cells 104 logically arranged in rows and columns. Memory cells of a logical row are typically connected to the same access line (commonly referred to as a word line) while memory cells of a logical column are typically selectively connected to the same data line (commonly referred to as a bit line). A single access line might be associated with more than one logical row of memory cells and a single data line might be associated with more than one logical column. Memory cells (not shown in
(13) A row decode circuitry 108 and a column decode circuitry 110 are provided to decode address signals. Address signals are received and decoded to access the array of memory cells 104. Memory device 100 also includes input/output (I/O) control circuitry 112 to manage input of commands, addresses and data to the memory device 100 as well as output of data and status information from the memory device 100. An address register 114 is in communication with I/O control circuitry 112 and row decode circuitry 108 and column decode circuitry 110 to latch the address signals prior to decoding. The address register 114 might further be in communication with a repair logic and control circuitry 128 in accordance with an embodiment. While the repair logic and control circuitry 128 is depicted to be in communication with the column decode circuitry 110 for redundancy repair of defective columns of memory cells, the concepts described herein could be equally applied to the redundancy repair of defective rows of memory cell. A command register 124 is in communication with I/O control circuitry 112 and control logic 116 to latch incoming commands.
(14) A controller (e.g., the control logic 116 internal to the memory device 100) controls access to the array of memory cells 104 in response to the commands and generates status information for the external processor 130, i.e., control logic 116 is configured to perform access operations (e.g., sensing operations [which might include read operations and verify operations], programming operations and/or erase operations) on the array of memory cells 104. The control logic 116 is in communication with row decode circuitry 108 and column decode circuitry 110 to control the row decode circuitry 108 and column decode circuitry 110 in response to the addresses. The control logic 116 might include instruction registers 128 which might represent computer-usable memory for storing computer-readable instructions. For some embodiments, the instruction registers 128 might represent firmware. Alternatively, the instruction registers 128 might represent a grouping of memory cells, e.g., reserved block(s) of memory cells, of the array of memory cells 104.
(15) Control logic 116 is also in communication with a cache register 118. Cache register 118 latches data, either incoming or outgoing, as directed by control logic 116 to temporarily store data while the array of memory cells 104 is busy writing or reading, respectively, other data. During a programming operation (e.g., write operation), data might be passed from the cache register 118 to the data register 120 for transfer to the array of memory cells 104; then new data might be latched in the cache register 118 from the I/O control circuitry 112. During a read operation, data might be passed from the cache register 118 to the I/O control circuitry 112 for output to the external processor 130; then new data might be passed from the data register 120 to the cache register 118. The cache register 118 and/or the data register 120 might form (e.g., might form a portion of) a page buffer of the memory device 100. A page buffer might further include sensing devices (not shown in
(16) Memory device 100 receives control signals at control logic 116 from processor 130 over a control link 132. The control signals might include a chip enable CE #, a command latch enable CLE, an address latch enable ALE, a write enable WE #, a read enable RE #, and a write protect WP #. Additional or alternative control signals (not shown) might be further received over control link 132 depending upon the nature of the memory device 100. Memory device 100 receives command signals (which represent commands), address signals (which represent addresses), and data signals (which represent data) from processor 130 over a multiplexed input/output (I/O) bus 134 and outputs data to processor 130 over I/O bus 134.
(17) For example, the commands might be received over input/output (I/O) pins [7:0] of I/O bus 134 at I/O control circuitry 112 and might then be written into command register 124. The addresses might be received over input/output (I/O) pins [7:0] of I/O bus 134 at I/O control circuitry 112 and might then be written into address register 114. The data might be received over input/output (I/O) pins [7:0] for an 8-bit device or input/output (I/O) pins [15:0] for a 16-bit device at I/O control circuitry 112 and then might be written into cache register 118. The data might be subsequently written into data register 120 for programming the array of memory cells 104. For another embodiment, cache register 118 might be omitted, and the data might be written directly into data register 120. Data might also be output over input/output (I/O) pins [7:0] for an 8-bit device or input/output (I/O) pins [15:0] for a 16-bit device. Although reference might be made to I/O pins, they might include any conductive node providing for electrical connection to the memory device 100 by an external device (e.g., processor 130), such as conductive pads or conductive bumps as are commonly used.
(18) It will be appreciated by those skilled in the art that additional circuitry and signals can be provided, and that the memory device 100 of
(19) Additionally, while specific I/O pins are described in accordance with popular conventions for receipt and output of the various signals, it is noted that other combinations or numbers of I/O pins (or other I/O node structures) might be used in the various embodiments.
(20)
(21) Memory array 200A might be arranged in rows (each corresponding to a word line 202) and columns (each corresponding to a bit line 204). Each column might include a string of series-connected memory cells (e.g., non-volatile memory cells), such as one of NAND strings 206.sub.0 to 206.sub.M. Each NAND string 206 might be connected (e.g., selectively connected) to a common source (SRC) 216 and might include memory cells 208.sub.0 to 208.sub.N. The memory cells 208 might represent non-volatile memory cells for storage of data. The memory cells 208 of each NAND string 206 might be connected in series between a select gate 210 (e.g., a field-effect transistor), such as one of the select gates 210.sub.0 to 210.sub.M (e.g., that might be source select transistors, commonly referred to as select gate source), and a select gate 212 (e.g., a field-effect transistor), such as one of the select gates 212.sub.0 to 212.sub.M (e.g., that might be drain select transistors, commonly referred to as select gate drain). Select gates 210.sub.0 to 210.sub.M might be commonly connected to a select line 214, such as a source select line (SGS), and select gates 212.sub.0 to 212.sub.M might be commonly connected to a select line 215, such as a drain select line (SGD). Although depicted as traditional field-effect transistors, the select gates 210 and 212 might utilize a structure similar to (e.g., the same as) the memory cells 208. The select gates 210 and 212 might represent a plurality of select gates connected in series, with each select gate in series configured to receive a same or independent control signal.
(22) A source of each select gate 210 might be connected to common source 216. The drain of each select gate 210 might be connected to a memory cell 208.sub.0 of the corresponding NAND string 206. For example, the drain of select gate 210.sub.0 might be connected to memory cell 208.sub.0 of the corresponding NAND string 206.sub.0. Therefore, each select gate 210 might be configured to selectively connect a corresponding NAND string 206 to common source 216. A control gate of each select gate 210 might be connected to select line 214.
(23) The drain of each select gate 212 might be connected to the bit line 204 for the corresponding NAND string 206. For example, the drain of select gate 212.sub.0 might be connected to the bit line 204.sub.0 for the corresponding NAND string 206.sub.0. The source of each select gate 212 might be connected to a memory cell 208.sub.N of the corresponding NAND string 206. For example, the source of select gate 212.sub.0 might be connected to memory cell 208.sub.N of the corresponding NAND string 206.sub.0. Therefore, each select gate 212 might be configured to selectively connect a corresponding NAND string 206 to the corresponding bit line 204. A control gate of each select gate 212 might be connected to select line 215.
(24) The memory array in
(25) Typical construction of memory cells 208 includes a data-storage structure 234 (e.g., a floating gate, charge trap, or other structure configured to store charge) that can determine a data state of the memory cell (e.g., through changes in threshold voltage), and a control gate 236, as shown in
(26) A column of the memory cells 208 might be a NAND string 206 or a plurality of NAND strings 206 selectively connected to a given bit line 204. A row of the memory cells 208 might be memory cells 208 commonly connected to a given word line 202. A row of memory cells 208 can, but need not, include all memory cells 208 commonly connected to a given word line 202. Rows of memory cells 208 might often be divided into one or more groups of physical pages of memory cells 208, and physical pages of memory cells 208 often include every other memory cell 208 commonly connected to a given word line 202. For example, memory cells 208 commonly connected to word line 202.sub.N and selectively connected to even bit lines 204 (e.g., bit lines 204.sub.0, 204.sub.2, 204.sub.4, etc.) might be one physical page of memory cells 208 (e.g., even memory cells) while memory cells 208 commonly connected to word line 202.sub.N and selectively connected to odd bit lines 204 (e.g., bit lines 204.sub.1, 204.sub.3, 204.sub.5, etc.) might be another physical page of memory cells 208 (e.g., odd memory cells). Although bit lines 204.sub.3-204.sub.5 are not explicitly depicted in
(27) Although the example of
(28)
(29) The three-dimensional NAND memory array 200B might be formed over peripheral circuitry 226. The peripheral circuitry 226 might represent a variety of circuitry for accessing the memory array 200B. The peripheral circuitry 226 might include complementary circuit elements. For example, the peripheral circuitry 226 might include both n-channel and p-channel transistors formed on a same semiconductor substrate, a process commonly referred to as CMOS, or complementary metal-oxide-semiconductors. Although CMOS often no longer utilizes a strict metal-oxide-semiconductor construction due to advancements in integrated circuit fabrication and design, the CMOS designation remains as a matter of convenience. The repair logic and control circuitry might represent a portion of the peripheral circuitry 226.
(30) As arrays of memory cells increase in memory density, e.g., increasing numbers of memory cells for a given area of an integrated circuit die, demands placed on the area within the peripheral circuitry 226 might also increase. Repair logic and control circuitry has traditionally taken a large portion of the peripheral circuitry of a memory. Various embodiments seek to facilitate a reduction in size of the repair logic and control circuitry, while providing similar functionality for redundancy repair of a memory.
(31)
(32) The CAM cells 342 generally might each be configured to store a data value, e.g., corresponding to a digit of an address signal, and to provide an output signal having a logic level representative of whether or not a received signal value matches the stored data value. For example, each CAM cell 342 might include a register 344, e.g., registers 344.sub.0 to 344.sub.i, in communication with, e.g., connected to, a corresponding compare logic 346, e.g., compare logic 346.sub.0 to 346.sub.i, respectively. Each compare logic 346 might be connected to receive a signal value from a corresponding signal node 354, e.g., signal nodes 354.sub.0 to 354.sub.i, respectively. The signal nodes 354, which might be referred to as signal nodes 354[i:0], might each be connected to receive a corresponding digit of an address signal, such as from the address register 114 of
(33) Programming the registers 344 of one or more rows 340 might include accessing (e.g., reading) a particular portion of an array of memory cells 104 storing address portions corresponding to defective memory elements. In general, testing of a memory might be used to determine which memory elements are deemed to be usable, and which are deemed to be defective. When a memory element is deemed to be defective, an address portion corresponding to that memory element might be stored to a non-volatile storage location of the memory, e.g., the array of memory cells 104. These address portions might then be accessed during power-up of the memory to program the registers 344 accordingly.
(34) The outputs 348 of each CAM cell 342 of a row 340 of the array of CAM cells 300 might be connected to a match signal generator 350 corresponding to that row 340. Each row 340.sub.0 to 340.sub.j might have a corresponding match signal generator 350, e.g., match signal generators 350.sub.0 to 350.sub.j, respectively, in the same manner as depicted in row 340.sub.0. Each match signal generator 350 might be configured to generate a signal at its output 352, e.g., outputs 352.sub.0 to 352.sub.j, respectively, having a first logic level if each of the outputs 348 of its corresponding CAM cells 342 indicates a match, and having a second logic level, different than (e.g., opposite of) its first logic level if any of the outputs 348 of its corresponding CAM cells 342 indicates a mis-match. Note that the first logic level for the output 352 of a match signal generator 350 might be the same as, or different from, the first logic level for the output 348 of a CAM cell 342. Each row 340 of the array of CAM cells 300 might be configured in a same manner as depicted with regard to row 340.sub.0, with each compare logic 346.sub.0 to 346, connected to its corresponding signal node 354.sub.0 to 354.sub.i, respectively.
(35) In practice, an address portion for a corresponding defective memory element, e.g., a column of memory cells containing one or more memory cells identified as being defective, might be stored in the CAM cells 342 of a row 340 of the array of CAM cells 300. Each row 340 of the array of CAM cells 300 might store a different address portion, each corresponding to a different defective memory element. It is noted that where a number of identified defective memory elements is less than the number of rows 340 of the array of CAM cells 300, one or more of the rows 340 might not store any address portion, but might instead store values not corresponding to any accessible address. For example, values of all logic low levels or all logic high levels might not correspond to any address to be received on the signal nodes 354. In this manner, a row 340 of the array of CAM cells 300 not corresponding to a defective memory element might be configured to always indicate a mis-match in response to an address received on the signal nodes 354.
(36) Each row 340 storing an address portion might further correspond to a respective redundant memory element, and each redundant memory element might have a corresponding address portion outside of the address space, e.g., of the array of memory cells 104, that might be received on the signal nodes 354. For example, assuming i=7, valid addresses to be received from the signal nodes 354 might correspond to an address space contained in 00000000 to 01111111, while addresses for redundant memory elements might correspond to an address space beginning with 10000000. With each row 340 storing a different address portion, or not storing any valid address portion, it might be expected that no more than one output 352 would indicate a match between its stored address portion and the address portion received from the signal nodes 354. In this manner, the output 352 indicating a match might serve to indicate that the redundant memory element corresponding to the row 340 generating that output 352 should be accessed instead of the defective memory element corresponding to the address portion received on the signal nodes 354.
(37) Prior repair logic and control circuitry might utilize an encoder responsive to the outputs 352 to generate an address portion corresponding to the redundant memory element for the row 340 indicating a match on its output 352. Encoders for such uses might typically have been formed of complex combination logic circuits, generating an output of j+1 unique combinations of i+1 digits within a defined address space from an input of j digits having a particular logic level (e.g., a logic low level), and 1 digit having a different logic level (e.g., a logic high level). Such circuits might utilize a significant area of the peripheral circuitry of a memory.
(38)
(39) For example, the signal received at the control signal node 364 might correspond to an output of an OR gate (not shown) receiving the outputs 352.sub.0 to 352.sub.j as inputs. In this manner, a logic low level from the OR gate might indicate no match in order to select the address signals from the signal nodes 354[i:0], while a logic high level from the OR gate might indicate a match in order to select the address signals from the encoder 356. Alternatively, where a particular digit of the address portion represented by the output 358[i:0], e.g., the i.sup.th digit from the output 358[i:0], has a particular value when a match is indicated, and a different value when no match is indicated, this digit of the address portion could be used as the control signal at the control signal node 364.
(40)
(41) The CAM cells 442 generally might each be configured to store a data value, e.g., corresponding to a digit of an address signal, and to provide an output signal having a logic level representative of whether or not a received signal value matches the stored data value. For example, each CAM cell 442 might include a register 444, e.g., registers 444.sub.0 to 444.sub.i, in communication with, e.g., connected to, a corresponding compare logic 446, e.g., compare logic 446.sub.0 to 446.sub.i, respectively. Each compare logic 446 might be connected to receive a signal value from a corresponding signal node 454, e.g., signal nodes 454.sub.0 to 454.sub.i, respectively. The signal nodes 454, which might be referred to as signal nodes 454[i:0], might each be connected to receive a corresponding digit of an address signal, such as from the address register 114 of
(42) Programming the registers 444 of one or more rows 440 might include accessing (e.g., reading) a particular portion of an array of memory cells 104 storing address portions corresponding to defective memory elements. In general, testing of a memory might be used to determine which memory elements are deemed to be usable, and which are deemed to be defective. When a memory element is deemed to be defective, an address portion corresponding to that memory element might be stored to a non-volatile storage location of the memory, e.g., the array of memory cells 104. These address portions might then be accessed during power-up of the memory to program the registers 444 accordingly.
(43) The outputs 448 of each CAM cell 442 of a row 440 of the array of CAM cells 400 might be connected to a match signal generator 450 corresponding to that row 440. Each row 440.sub.0 to 440.sub.j might have a corresponding match signal generator 450, e.g., match signal generators 450.sub.0 to 450.sub.j, respectively, in the same manner as depicted in row 440.sub.0. Each match signal generator 450 might be configured to generate an indication at its output 474, e.g., outputs 474.sub.0 to 474.sub.j, respectively, indicative of whether a match is indicated between the signals received from the signal nodes 454.sub.0 to 454.sub.i, and the values stored in the registers 444.sub.0 to 444.sub.i of the corresponding row 440.
(44) As one example, the indication might be a signal having a first logic level if each of the outputs 448 of its corresponding CAM cells 442 indicates a match, and having a second logic level, different than (e.g., opposite of) its first logic level if any of the outputs 448 of its corresponding CAM cells 442 indicates a mis-match. For example, if its CAM cells 442 indicate a match with a logic high level, the match signal generator 450 might represent an AND gate or a NAND gate. Conversely, if its CAM cells indicate a match with a logic low level, the match signal generator 450 might represent an OR gate or a NOR gate. Note that the first logic level for the output 474 of a match signal generator 450 might be the same as, or different from, the first logic level for the output 448 of a CAM cell 442. Each row 440 of the array of CAM cells 400 might be configured in a same manner as depicted with regard to row 440.sub.0, with each compare logic 446.sub.0 to 446.sub.i connected to its corresponding signal node 454.sub.0 to 454.sub.i, respectively.
(45) Alternatively, the indication of a match signal generator 450 might include a pair of complementary signals, where a first signal of the pair of complementary signals has the first logic level, and the second signal of the pair of complementary signals has the second logic level, if each of the outputs 448 of its corresponding CAM cells 442 indicates a match, and where the first signal of the pair of complementary signals has the second logic level, and the second signal of the pair of complementary signals has the first logic level, if any of the outputs 448 of its corresponding CAM cells 442 indicates a mis-match.
(46) In practice, an address portion for a corresponding defective memory element, e.g., a column of memory cells containing one or more memory cells identified as being defective, might be stored in the CAM cells 442 of a row 440 of the array of CAM cells 400. Each row 440 of the array of CAM cells 400 might store a different address portion, each corresponding to a different defective memory element. It is noted that where a number of identified defective memory elements is less than the number of rows 440 of the array of CAM cells 400, one or more of the rows 440 might not store any address portion, but might instead store values not corresponding to any accessible address. For example, values of all logic low levels or all logic high levels might not correspond to any address to be received on the signal nodes 454. In this manner, a row 440 of the array of CAM cells 400 not corresponding to a defective memory element might be configured to always indicate a mis-match in response to an address received on the signal nodes 454.
(47) Each row 440 storing an address portion might correspond to a respective redundant memory element, and each redundant memory element might have a corresponding address portion outside of the address space, e.g., of the array of memory cells 104, that might be received on the signal nodes 454. For example, assuming i=7, valid addresses to be received from the signal nodes 454 might correspond to an address space contained in 00000000 to 01111111, while addresses for redundant memory elements might correspond to an address space beginning with 10000000. With each row 440 storing a different address portion, or not storing any valid address portion, it might be expected that no more than one output 474 would indicate a match between its stored address portion and the address portion received from the signal nodes 454. In this manner, the output 474 indicating a match might serve to indicate that the redundant memory element corresponding to the row 440 generating that output 474 should be accessed instead of the defective memory element corresponding to the address portion received on the signal nodes 454.
(48) Instead of utilizing an encoder to generate an address of a redundant memory element, various embodiments include selectively-activated storage elements 470, e.g., storage elements 470.sub.0 to 470.sub.1, corresponding to each row 440. The storage elements 470 for a particular row 440 each might be configured to store a value of a respective digit of the address portion of the redundant memory element for that row 440. The storage elements 470 might be responsive to the indication on the output 474 of their corresponding match signal generator 450. For example, the storage elements 470, e.g., storage elements 470.sub.0 to 470.sub.i, each might be configured to generate a signal on its respective output 472, e.g., outputs 472.sub.0 to 472.sub.i, respectively, corresponding to its respective digit of the address portion of the corresponding redundant memory element for that row 440 when the indication on its corresponding output 474 indicates a match for that row 440, and to present a high-impedance, e.g., high Z, when the indication on its corresponding output 474 indicates a mis-match for that row 440. Each output 472.sub.0 to 472.sub.i of one row 440 might be commonly connected to the corresponding outputs 472.sub.0 to 472.sub.i, respectively, of each remaining row 440.
(49) Although the storage elements 470 are depicted to be in close physical proximity to their corresponding CAM cells 442, the storage element 470 could be located away from their corresponding CAM cells 442 provided they are in communication with their corresponding match signal generator 450, and there need not be any connection to the CAM cells 442 themselves.
(50) Programming the storage elements 470 of one or more rows 440 might include accessing (e.g., reading) a particular portion of an array of memory cells 104 storing address portions corresponding to redundant memory elements. As previously noted, testing of a memory might be used to determine which memory elements are deemed to be usable, and which are deemed to be defective. When a memory element is deemed to be defective, an address portion corresponding to that memory element might be stored to a non-volatile storage location of the memory, e.g., the array of memory cells 104. Similarly, a redundant memory element might be assigned to replace the defective memory element. Address portions for the redundant memory elements might be assigned prior to or subsequent to determining addresses of defective memory elements. These address portions might then be accessed during power-up of the memory to program the storage elements 470 accordingly. Alternatively, the address portions for the redundant memory elements might be hard coded into the circuitry as discussed with reference to
(51)
(52) For example, the signal received at the control signal node 464 might correspond to an output of an OR gate (not shown) receiving the outputs 472.sub.0 to 472.sub.j as inputs. In this manner, a logic low level from the OR gate might indicate no match in order to select the address signals from the signal nodes 454[i:0], while a logic high level from the OR gate might indicate a match in order to select the address signals from the outputs 472[i:0]. Alternatively, where a particular digit of the address portion represented by the outputs 472[i:0], e.g., the i.sup.th digit from the outputs 472[i:0], has a particular value when a match is indicated, and a different value when no match is indicated, this digit of the address portion could be used as the control signal at the control signal node 464. The i.sup.th digit from the outputs 472[i:0] might correspond to a most significant digit of the address portion.
(53)
(54)
(55)
(56) The CAM cell 442.sub.x might include a register 444.sub.x and a compare logic 446.sub.x. The register 444.sub.x might include a pair of cross-coupled inverters 584.sub.0 and 584.sub.1. The data value stored in the register 444.sub.x might be represented by a logic level at its node 586.sub.0. The compare logic 446.sub.x might include an XOR gate, providing a logic low level at its output 448.sub.x when the data value of the register 444.sub.x is equal to (e.g., has a same logic level as) the signal value received at its corresponding signal node 454.sub.x, and providing a logic high level at its output 448.sub.x when the data value of the register 444.sub.x is different than (e.g., has a different logic level than) the signal value received at its corresponding signal node 454.sub.x.
(57) The register 444.sub.x of
(58) Referring back to
(59) The compare logic 446x might further include a first nFET 578.sub.0 having a first source/drain connected to a voltage node 582.sub.0 and a control gate connected to the node 586.sub.0. The voltage node 582.sub.0 might be configured to receive a bottom-rail supply voltage, e.g., a reference potential, such as the supply voltage Vss, which might be ground or 0V. The compare logic 446.sub.x might further include a second nFET 578.sub.1 having a first source/drain connected to a second source/drain of the nFET 578.sub.0, a control gate connected to the signal node 454.sub.x, and a second source/drain connected to the output 448.sub.x.
(60) The compare logic 446.sub.x might further include a third pFET 576.sub.2 having a first source/drain connected to a voltage node 580.sub.1 and a control gate connected to the node 586.sub.0 of the register 444.sub.x, and connected to the control gate of the first nFET 578.sub.0. The voltage node 580.sub.1 might be configured to receive a top-rail supply voltage, such as the supply voltage Vcc. The compare logic 446.sub.x might further include a fourth pFET 576.sub.3 having a first source/drain connected to a second source/drain of the pFET 576.sub.2, a control gate connected to an output of an inverter 588 having an input connected to the signal node 454.sub.x, and a second source/drain connected to the output 448.sub.x.
(61) The compare logic 446.sub.x might further include a third nFET 578.sub.2 having a first source/drain connected to a voltage node 582.sub.1 and a control gate connected to the node 586.sub.1, and connected to the control gate of the first pFET 576.sub.0. The voltage node 582.sub.1 might be configured to receive a bottom-rail supply voltage, e.g., a reference potential, such as the supply voltage Vss, which might be ground or 0V. The compare logic 446.sub.x might further include a fourth nFET 578.sub.3 having a first source/drain connected to a second source/drain of the nFET 578.sub.2, a control gate connected to the output of the inverter 588, and a second source/drain connected to the output 448.sub.x.
(62) The storage element 470.sub.x might include a pFET 590 having a first source/drain connected to a voltage node 594, a second source/drain connected to the output 472.sub.x, and a control gate connected to a first control signal node 598.sub.0. The voltage node 594 might be configured to receive a top-rail supply voltage, such as the supply voltage Vcc. The storage element 470.sub.x might further include an nFET 592 having a first source/drain connected to a voltage node 596, a second source/drain connected to the output 472.sub.x, and a control gate connected to a second control signal node 598.sub.1. The voltage node 596 might be configured to receive a bottom-rail supply voltage, e.g., a reference potential, such as the supply voltage Vss, which might be ground or 0V. One of the control signal nodes 598.sub.0 or 598.sub.1 might be configured to receive a control signal indicative of whether its corresponding match signal generator 450.sub.y indicates a match, while the other control signal node 598.sub.1 or 598.sub.0, respectively, might be configured to receive a fixed control signal regardless of whether its corresponding match signal generator 450.sub.y indicates a match. Additional detail will be provided with reference to
(63)
(64) A bias element 549 might be included to restore the logic states of an output 472.sub.x to some known logic level as the output 472.sub.x might be electrically floating if its corresponding storage elements 470 are all at a high impedance state. A bias element 549 might be used on less than all of the outputs 472[i:0]. For example, if a digit of the address portion is used as the control signal to the control signal node 464, e.g., the i.sup.th digit, the corresponding output 472.sub.i might include a bias element 549, while remaining outputs 472.sub.0 to 472.sub.i−1 might not include a bias element 549 as their resting logic state might be inconsequential. If a logic high level of the i.sup.th digit of the address portion indicates a match, and thus a desire to select the address portion for the redundant memory element, the bias element 549 might be a pull-down resistance such that the control signal node 464 would indicate a desire to select the received address portion absent the output 472, being actively driven high by one of its corresponding storage elements 470.sub.i. Alternatively, if a logic low level of the i.sup.th digit of the address portion indicates a match, the bias element 549 might be a pull-up resistance such that the control signal node 464 would indicate a desire to select the received address portion absent the output 472.sub.i being actively driven low by one of its corresponding storage elements 470.sub.i.
(65)
(66)
(67) The examples of
(68) In the example of
(69) With this connectivity, when the output 474.sub.0y indicates a match of its corresponding match signal generator 450.sub.y by presenting a signal having a logic low level, the pFET 590 might be activated while the nFET 592 might be deactivated, thus connecting the output 472x to the voltage node 594. Similarly, if the output 474.sub.0y presents a signal having a logic high level, e.g., indicating a mis-match, both the pFET 590 and the nFET 592 might be deactivated.
(70) In the example of
(71) With this connectivity, when the output 474.sub.1y indicates a match of its corresponding match signal generator 450.sub.y by presenting a signal having a logic high level, the nFET 592 might be activated while the pFET 590 might be deactivated, thus connecting the output 472.sub.x to the voltage node 596. Similarly, if the output 474.sub.1y presents a signal having a logic low level, e.g., indicating a mis-match, both the nFET 592 and the pFET 590 might be deactivated.
(72) It should be noted that in the example of
(73) The example of
(74) The first programmable element 659.sub.0 might have an input in communication with (e.g., connected to) an output 474.sub.0y of a match signal generator 450.sub.y. For such an embodiment, an indication of a match might be represented by a logic low level on the output 474.sub.0y. The second programmable element 659.sub.1 might have an input connected to a voltage node 655. The voltage node 655 might be configured to receive a top-rail supply voltage, such as the supply voltage Vcc.
(75) The third programmable element 659.sub.2 might have an input in communication with (e.g., connected to) an output 474.sub.1y of a match signal generator 450.sub.y. The fourth programmable element 659.sub.3 might have an input connected to a voltage node 657. The voltage node 657 might be configured to receive a bottom-rail supply voltage, e.g., a reference potential, such as the supply voltage Vss, which might be ground or 0V.
(76) The programmable elements 659.sub.0-659.sub.3 might each be a fuse or antifuse (F/A) element. Such programmable elements are well understood in the relevant art. In particular, a fuse element normally presents a closed circuit between its input and output, while an antifuse element normally presents an open circuit between its input and output. Through the application of appropriate voltage levels to the programmable element, a fuse element can be altered (e.g., permanently altered) to present an open circuit between its input and output, or an antifuse element can be altered (e.g., permanently altered) to present a closed circuit between its input and output.
(77) Programming the storage element 470.sub.x of
(78) Programming the storage element 470.sub.x of
(79) The example of
(80) The first nFET 661.sub.0 might have a second source/drain in communication with (e.g., connected to) an output 474.sub.0y of a match signal generator 450.sub.y. For such an embodiment, an indication of a match might be represented by a logic low level on the output 474.sub.0y. The first pFET 663.sub.0 might have a second source/drain connected to a voltage node 655. The voltage node 655 might be configured to receive a top-rail supply voltage, such as the supply voltage Vcc.
(81) The second pFET 663.sub.1 might have a second source/drain in communication with (e.g., connected to) an output 474.sub.1y of a match signal generator 450.sub.y. The second nFET 661.sub.1 might have a second source/drain connected to a voltage node 657. The voltage node 657 might be configured to receive a bottom-rail supply voltage, e.g., a reference potential, such as the supply voltage Vss, which might be ground or 0V.
(82) The first nFET 661.sub.0, second nFET 661.sub.1, first pFET 663.sub.0 and second pFET 663.sub.1 might each have their control gates in communication with (e.g., connected to) the node 665 of a register 669. The node 665 might be configured to have a logic level corresponding to a data value stored to the register 669. In this example, the register 669 includes a pair of cross-coupled inverters 667.sub.0 and 667.sub.1. The input of the inverter 667.sub.1, and the output of the inverter 667.sub.0, might be connected to a first source/drain of a first nFET 671.sub.0. The first nFET 671.sub.0 might have a second source/drain connected to a first voltage node 673.sub.0, and might have a control gate connected to a first control signal node 675.sub.0. The input of the inverter 667.sub.0, and the output of the inverter 667.sub.1, might be connected to a first source/drain of a second nFET 671.sub.1. The second nFET 671.sub.1 might have a second source/drain connected to a second voltage node 673.sub.1, and might have a control gate connected to a second control signal node 675.sub.1. The voltage nodes 673.sub.0 and 673.sub.1 each might be configured to receive a bottom-rail supply voltage, e.g., a reference potential, such as the supply voltage Vss, which might be ground or 0V.
(83) Programming the storage element 470.sub.x of
(84) Programming the storage element 470.sub.x of
(85) It should be noted that although the examples of
(86)
(87) At 703, an indication whether a match was detected might be generated. For example, outputs of each row of CAM cells might be provided to a corresponding match signal generator, and each match signal generator might generate an indication whether a match was detected, e.g., whether each of its corresponding CAM cells indicated a match between a respective digit of the stored address portion for that row and a respective digit of the received address portion, or a mis-match was detected, e.g., whether any of its corresponding CAM cells did not indicate a match between a respective digit of the stored address portion for that row and a respective digit of the received address portion.
(88) At 705, a plurality of storage elements might be activated responsive to the indication when a match is detected. For example, each storage element of the plurality of storage elements might present either a signal corresponding to a stored data value when activated, and might present a high-impedance when deactivated. Such activation might be responsive to a logic level of the indication.
(89) At 707, a redundant memory element might be accessed in response to outputs of the activated plurality of storage elements. For example, the outputs of the activated plurality of storage elements might represent an address portion corresponding to a redundant memory element predetermined to be used to replace any access request of a memory element deemed to be defective, and corresponding to the matched received address portion.
CONCLUSION
(90) Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement that is calculated to achieve the same purpose might be substituted for the specific embodiments shown. Many adaptations of the embodiments will be apparent to those of ordinary skill in the art. Accordingly, this application is intended to cover any adaptations or variations of the embodiments.