This relates generally to content addressable memory.
Content addressable memory is also called associative memory. It is memory which can be addressed using at least a portion of the content of the address.
Conventional memories generally have redundancy schemes. These redundancy schemes generally require defect detection. A degree of complexity arises from the need for defect detection. This complexity may encourage the omission of redundancy schemes from content addressable memories.
However, absent any redundancy, even a single manufacturing fault in a complex memory may result in the product being unusable. Thus, even a very small fault rate may result in the destruction of a substantial percentage of the manufactured parts.
Referring to
The memory array 12 may be a content addressable memory, associative memory, or any memory which is accessed using part of the contents stored within the memory. Content addressable memory, for example, may be implemented using polysilicon fuses as cells. Generally, the memory 10 is programmed only one time, during manufacturing.
As manufactured, the memory array 12 may include one or more defective memory elements, such as the elements 14a and 14b, arranged at random locations within the array 12. In one embodiment, a faulty bit table 16 may be maintained in a predetermined array 12 location which is not utilized for normal memory operations. The faulty bit table 16 may include an entry for each defective location, including a field 16a for its address within the array, a field 16b for the data that should have been stored, and a field 16c for a bit to indicate whether the table entry is actually being used.
Referring to
The latch/write and the data inputs may be coupled to the read out state machine 18, as indicated in
Thus, in some embodiments, during manufacturing and prior to release of the memory to a customer, the memory 10 may be tested and the defective locations may be identified. The addresses of those defective locations, and the data they should hold may be stored within the faulty bit table 16. Then, whenever the memory 10 is read out, the correct data may be provided by the read out state machine 18 which simply inserts the correct data (now stored in the table 10) onto the output latch 24 so that all of the memory 10 data is available for output in conventional fashion.
Referring to
Thus, when a memory read out occurs, the entire memory array be read out. This means that all the data in all the memory elements that are not defective are read out and transferred to their latches 24.
A check at diamond 24 determines whether there are any defective memory element entries in the faulty bit table 16. If so, the data, from the table 16, associated with that element is written into the latch 24 at the address provided by the faulty bit table. Thus, the first entry in the faulty bit table is read first since the variable N was initialized at 26. Then at block 30, when the selected entry is utilized, the data for the detective memory element 22 is written into its latch 24 by the read out state machine 18.
A diamond 28 check determines whether the selected faulty bit table entry is actually being used. In one embodiment, if the field 16c (
Then, the variable N is incremented by one, as indicated in block 32. A check at diamond 34 determines whether all the entries in the faulty bit table have been read. If so, the flow ends and, otherwise, the flow iterates to read each of the entries in the faulty bit table 16.
After reading all the entries in the faulty bit table 16, the data from the content addressable memory 10 may be read out from all the latches 24, which will be populated either by the memory elements 22 or, in the case of defective memory elements 22, such as the defective memory elements 14a and 14b, by writing the data using the read out state machine 18 from the faulty bit table 16 to the latch 24.
The redundancy scheme may be considered to be self-referencing because the memory stores the faulty bit table that the memory “self-references” to self-correct itself during initialization. In some embodiments, circuitry for error detection may be unnecessary.
Example systems represented by
Radio frequency circuit 1040 communicates with antennas 1050 and digital circuit 1030. In some embodiments, RF circuit 1040 includes a physical interface (PHY) corresponding to a communications protocol. For example, RF circuit 1040 may include modulators, demodulators, mixers, frequency synthesizers, low noise amplifiers, power amplifiers, and the like. In some embodiments, RF circuit 1040 may include a heterodyne receiver and, in other embodiments, RF circuit 1040 may include a direct conversion receiver. In some embodiments, RF circuit 1040 may include multiple receivers. For example, in embodiments with multiple antennas 1050, each antenna may be coupled to a corresponding receiver. In operation, RF circuit 1040 receives communications signals from antennas 1050, and provides signals to digital circuit 1030. Further, digital circuit 1030 may provide signals to RF circuit 1040, which operates on the signals and then transmits them to antennas 1050.
Digital circuit 1030 is coupled to communicate with processor 1010 and RF circuit 1040. In some embodiments, digital circuit 1030 includes circuitry to perform error detection/correction, interleaving, coding/decoding, or the like. Also, in some embodiments, digital circuit 1030 may implement all or a portion of a media access control (MAC) layer of a communications protocol. In some embodiments, a MAC layer implementation may be distributed between processor 1010 and digital circuit 1030.
Radio frequency circuit 1040 may be adapted to receive and demodulate signals of various formats and at various frequencies. For example, RF circuit 1040 may be adapted to receive time domain multiple access (TDMA) signals, code domain multiple access (CDMA) signals, global system for mobile communications (GSM) signals, orthogonal frequency division multiplexing (OFDM) signals, multiple-input-multiple-output (MIMO) signals, spatial-division multiple access (SDMA) signals, or any other type of communications signals. The present invention is not limited in this regard.
Antennas 1050 may include one or more antennas. For example, antennas 1050 may include a single directional antenna or an omni-directional antenna. As used herein, the term omni-directional antenna refers to any antenna having a substantially uniform pattern in at least one plane. For example, in some embodiments, antennas 1050 may include a single omni-directional antenna such as a dipole antenna or a quarter wave antenna. Also, for example, in some embodiments, antennas 1050 may include a single directional antenna such as a parabolic dish antenna or a Yagi antenna. In still further embodiments, antennas 1050 may include multiple physical antennas. For example, in some embodiments, multiple antennas are utilized to support multiple-input-multiple-output (MIMO) processing or spatial-divisional multiple access (SDMA) processing.
Memory 10 represents an article that includes a machine readable medium. For example, memory 10 represents a random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), read only memory (ROM), flash memory, or any other type of article that includes a medium readable by processor 1010. Memory 10 may store instructions for performing the execution of the various method embodiments of the present invention.
In operation, processor 1010 reads instructions and data from either or both of non-volatile memory 1020 and memory 1025 and performs actions in response thereto. For example, processor 1010 may access instructions from memory 1025 and program threshold voltages within reference voltage generators and reference current generators inside non-volatile memory 1020. In some embodiments, non-volatile memory 1020 and memory 10 are combined into a single memory device. For example, non-volatile memory 1020 and memory 10 may both be included in a single non-volatile memory device.
Although the various elements of system 1000 are shown separate in
The type of interconnection between processor 1010 and non-volatile memory 1020 is not a limitation of the present invention. For example, bus 1015 may be a serial interface, a test interface, a parallel interface, or any other type of interface capable of transferring command and status information between processor 1010, non-volatile memory 1020, and memory 1025.
Step voltage generators, voltage references, flash cells, and other embodiments of the present invention can be implemented in many ways. In some embodiments, they are implemented in integrated circuits. In some embodiments, design descriptions of the various embodiments of the present invention are included in libraries that enable designers to include them in custom or semi-custom designs. For example, any of the disclosed embodiments can be implemented in a synthesizable hardware design language, such as VHDL or Verilog, and distributed to designers for inclusion in standard cell designs, gate arrays, or the like. Likewise, any embodiment of the present invention can also be represented as a hard macro targeted to a specific manufacturing process. For example, memory array (
References throughout this specification to “one embodiment” or “an embodiment” mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one implementation encompassed within the present invention. Thus, appearances of the phrase “one embodiment” or “in an embodiment” are not necessarily referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be instituted in other suitable forms other than the particular embodiment illustrated and all such forms may be encompassed within the claims of the present application.
While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.