|Publication number||US4646271 A|
|Application number||US 06/683,611|
|Publication date||24 Feb 1987|
|Filing date||19 Dec 1984|
|Priority date||23 Dec 1983|
|Publication number||06683611, 683611, US 4646271 A, US 4646271A, US-A-4646271, US4646271 A, US4646271A|
|Inventors||Kunio Uchiyama, Tadahiko Nishimukai|
|Original Assignee||Hitachi, Ltd.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (2), Referenced by (100), Classifications (11), Legal Events (6)|
|External Links: USPTO, USPTO Assignment, Espacenet|
This invention relates to a content addressable memory (hereinafter called "CAM").
CAM is a memory of the type which is addressable in accordance with the content for which coincidence is desired. This CAM is effective when retrieving a plurality of data in parallel with one another. The possible application of CAM in the field of computers may be an address array of cache memories, translation look-aside buffers for address conversion and various other applications. However, CAM has not yet been employed widely because the cost of CAM per bit is higher than that of a random access memory (hereinafter called "RAM"). It is expected, however, that CAM will gain a wide range application in future with further improvement in the integration density of LSI.
FIG. 1 shows a conventional content addressable memory device using CAM. Reference numerals 100 and 120 represent the array portions of CAM and RAM, respectively. Each word of CAMs 110a-110n stores the key to be retrieved. Each word of RAMs 120a-120n stores the data corresponding to each key stored in CAM. Each word of CAM is directly connected to that of RAM by signal line 130a-130n. This signal line is a word coincidence line when viewed from the CAM side, and is a word selection line when viewed from the RAM side. When the key to be retrieved is input by the signal line 140, it is compared in parallel with the key stored in each word of CAM, and the word coincidence line of the word which proves to be coincident is asserted. Therefore, the word selection line of the corresponding RAM is asserted, and the data belonging to the coincident key is read out from the RAM through the signal line 150. An example of a cache memory using such a content addressable memory device is disclosed, for example, in Japanese Patent Laid-Open No. 68,287/1983.
The first problem with a memory device of the kind described above is that the key and the data can not be stored simultaneously in the CAM and RAM. The key is temporarily stored in the CAM word, then, the RAM word selection line is selected by inputting the same key to the signal line 140; then, the data must be written into the RAM word through the signal line 150. The second problem is that an arbitrary RAM word line can not be selected easily because the RAM word selection line is directly connected to the CAM word coincidence line. In other words, it has been necessary to store in advance a predetermined key in the corresponding CAM word, and then to input that key to the CAM, in order to select a particular RAM word line.
The present invention is therefore directed to provide a content addressable memory device which eliminates the problems of the prior art devices described above, requires only a limited increase in hardware and yet has a regular structure suitable for fabrication in the VLSI arrangement.
In order to solve the problems of the prior art devices described above, the present invention disposes a selector between each word coincidence line on the CAM side and each word selection line on the RAM side, one of the inputs of the selector is used as the CAM word coincidence line and the other is used as the CAM word selection line with the selector output being connected to the RAM word selection line. According to this structure, the memory device can be used while utilizing fully the content addressable memory by selecting the selector input word coincidence line, and the memory device can be used as a whole as a RAM by selecting the selector input word selection line.
FIG. 1 shows the structure of a prior art device;
FIG. 2 shows the overall structure of the content addressable memory device in accordance with one embodiment of the present invention;
FIG. 3 is a circuit diagram of a CAM cell; and
FIG. 4 is a circuit diagram of an RAM cell.
Hereinafter, one embodiment of the present invention will be described in detail with reference to the accompanying drawings. FIG. 2 shows the overall structure of the content addressable memory device. This device has a CAM array 210 and an RAM array 220. The CAM array has an b bit by n-word construction, and each bit consists of one CAM cell 230. Each word of the CAM array consists of l CAM cells 230, and each cell is connected in the word unit to a word selection line 250 (wo -wn) on the CAM side and to a word coincidence line 260. A load MOS transistor 300 is connected to one of the ends of each word coincidence line 260, and the other side of the MOS transistor 300 is connected to a power source (Vcc). Each cell 230 of the CAM array 210 (hereinafter called "CAM cell") is connected in each bit to a data line Ao, Ao -Al, Al). The data line of each bit consists of two lines having opposite polarities.
The RAM array 220 has m-bit by n-word construction, and each bit consists of one cell 240 (hereinafter called "RAM cell"). Each word of the RAM array 220 consists of m RAM cells 240, and each cell is connected in the word unit to a word selection line (Xo -Xn) on the RAM side. Each RAM cell 240 of the RAM array 220 is connected in the bit line unit to a data line (Do, Do -Dm, Dm). The data line of each bit consists of two lines having opposite polarities with each other.
A selector 280 having two-input and n-bit construction is interposed between the CAM array 210 and the RAM array 220. N selectors 280 are disposed so as to correspond to the number of the words of the CAM array 210 and RAM array 220. One of the inputs of the selector 280 is connected to the word coincidence line 260 of the CAM array 210, and the other input is connected to the word selection line 250 on the CAM side.
The output of the selector 280 is connected to the word selection line 270 on the RAM side. Input selection of the selector 280 is controlled by a selector control line (hereinafter called "SC") 290. In other words, when SC 290 is asserted, the word coincidence line 260 is selected, and when SC 290 is negated, the word selection line 250 on the CAM side is selected.
The structure of the device described above is so regular that it can be easily accomplished with LSIs.
FIGS. 3 and 4 show the examples of the circuits of CAM cell 230 and RAM cell 240, respectively. MOS transistors T5 -T8 in FIG. 3 and MOS transistors T11 -T14 in FIG. 4 constitute static flip-flops, respectively, each storing one-bit data. When the word selection line (Wi) 250 on the CAM side or the word selection line (Xi) 270 on the RAM side is asserted, the MOS transistors T9, T10 or T15, T16 are turned on, the data is read out from the data line (Aj, Aj) 310 or the data line (Dk, Dk) 320. In order to write the data, the word selection line is asserted, and the data is applied to the data line.
The CAM cell 230 shown in FIG. 3 has the function of judging whether or not the data stored in the flip-flops T5 -T8 are coincident with the data on the data line 310. The MOS transistors T1 -T4 bear that function. When the data are not coincident, both of the MOS transistors T1 and T2 are turned on or both of the MOS transistors T3 and T4 are turned on, and the word coincidence line 260 is grounded. Since the word line 260 is connected to all the bits of the CAM cell 230 constituting the word as shown in FIG. 2, when the l-bit data that are applied to the data line 310 and the data stored in the word of the CAM array 210 are not coincident with each other, the corresponding word coincidence line 260 is grounded, that is, the line is negated. When they are coincident, on the other hand, it has a high voltage level and is brought into the asserted state. In this manner, the content of each word is retrieved by applying the data to the data line 310 of the CAM array 210, and the word coincidence line 260 corresponding to the coincident word is asserted.
The content addressable memory device shown in FIG. 2 has substantially two modes. In one of the modes, the associative function of the CAM array 210 is utilized fully, and the access is made to the RAM array 220 in accordance with the result of association. This is realized by asserting SC 290. Under this state, the word coincidence line 260 of each word of the CAM and RAM arrays 210, 220 is connected to the word selection line 240 on the RAM side, as described earlier. When the data is applied to the data line 310 on the CAM side, therefore, the word coincidence line 260 corresponding to the word of the CAM array 210, in which the content which is concident with that data is stored, is asserted, and the word selection line 270 of the corresponding RAM array 220 is further asserted, so that the data stored in that word is read out on the data line 320 on the RAM side. If the data is applied to the data line 320 on the RAM side under this state, the data is written into the selected word.
The other mode of the content addressable memory device is the mode in which the device is used as a whole in the same way as an ordinary RAM array. This is realized by negating SC 290. Under this state, the word selection line 250 on the CAM side of each word of the CAM and RAM arrays 210, 220 is connected to the word selection line 270 on the RAM side via the selector 280. Therefore, an RAM array having a (l+m) bit by n-word construction is constituted as a whole. When the word selection line 250 on the CAM side is asserted, the corresponding word selection line 270 on the RAM side is also asserted, and the word selection lines of the (l+m) bit cells are asserted as a whole. Accordingly, read-out/write-in corresponding to the same word of the CAM and RAM arrays can be made simultaneously.
Since the content addressable memory device in accordance with the present invention has a regular construction, it is suitable for VLSI, and the chip area can be utilized effectively because an unnecessary wiring area is not necessary.
As can be seen from the above description, it is possible to address the RAM array in accordance with the result of association of the CAM array, and to access the whole device as the RAM array.
Therefore, the operation of storing the key in the CAM word and the operation of writing the data in the RAM word can be made simultaneously.
Furthermore, an arbitrary word RAM line can be easily selected, and the data writing operation to the RAM can be simplified.
As described above, the present invention can provide a content addressable memory device having extremely high versatility and a wide range of application.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US3402398 *||31 Aug 1964||17 Sep 1968||Bunker Ramo||Plural content addressed memories with a common sensing circuit|
|US4532606 *||14 Jul 1983||30 Jul 1985||Burroughs Corporation||Content addressable memory cell with shift capability|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US4740917 *||12 Nov 1985||26 Apr 1988||International Business Machines Corporation||Memory using conventional cells to perform a ram or an associative memory function|
|US4758982 *||8 Jan 1986||19 Jul 1988||Advanced Micro Devices, Inc.||Quasi content addressable memory|
|US4831585 *||26 Oct 1987||16 May 1989||Massachusetts Institute Of Technology||Four transistor cross-coupled bitline content addressable memory|
|US4833643 *||15 Dec 1986||23 May 1989||Kabushiki Kaisha Toshiba||Associative memory cells|
|US4841567 *||21 Sep 1988||20 Jun 1989||Kabushiki Kaisha Toshiba||Memory device|
|US4853892 *||16 Jan 1987||1 Aug 1989||Kabushiki Kaisha Toshiba||Associative memory device including write inhibit circuitry|
|US4894799 *||12 May 1988||16 Jan 1990||Hitachi, Ltd.||Content-addressable memory|
|US4972338 *||19 Apr 1988||20 Nov 1990||Intel Corporation||Memory management for microprocessor system|
|US4991136 *||30 Jan 1989||5 Feb 1991||Mitsubishi Denki Kabushiki Kaisha||Semiconductor associative memory device with memory refresh during match and read operations|
|US5029126 *||3 Aug 1989||2 Jul 1991||Matsushita Electric Industrial Co., Ltd.||Cache memory|
|US5130947 *||22 Oct 1990||14 Jul 1992||Motorola, Inc.||Memory system for reliably writing addresses with reduced power consumption|
|US5153595 *||26 Mar 1990||6 Oct 1992||Geophysical Survey Systems, Inc.||Range information from signal distortions|
|US5173872 *||13 Jul 1987||22 Dec 1992||Intel Corporation||Content addressable memory for microprocessor system|
|US5226039 *||18 May 1990||6 Jul 1993||Kendall Square Research Corporation||Packet routing switch|
|US5251308 *||22 Jun 1989||5 Oct 1993||Kendall Square Research Corporation||Shared memory multiprocessor with data hiding and post-store|
|US5287304 *||31 Dec 1990||15 Feb 1994||Texas Instruments Incorporated||Memory cell circuit and array|
|US5297265 *||22 Jun 1989||22 Mar 1994||Kendall Square Research Corporation||Shared memory multiprocessor system and method of operation thereof|
|US5299147 *||22 Feb 1993||29 Mar 1994||Intergraph Corporation||Decoder scheme for fully associative translation-lookaside buffer|
|US5319590 *||4 Dec 1992||7 Jun 1994||Hal Computer Systems, Inc.||Apparatus for storing "Don't Care" in a content addressable memory cell|
|US5321836 *||9 Apr 1990||14 Jun 1994||Intel Corporation||Virtual memory management method and apparatus utilizing separate and independent segmentation and paging mechanism|
|US5327372 *||14 Jan 1993||5 Jul 1994||Matsushita Electric Industrial Co., Ltd.||Semiconductor memory device|
|US5341483 *||31 May 1990||23 Aug 1994||Kendall Square Research Corporation||Dynamic hierarchial associative memory|
|US5396449 *||21 Dec 1993||7 Mar 1995||International Business Machines Corporation||Fast content addressable memory with reduced power consumption|
|US5408434 *||3 Feb 1994||18 Apr 1995||Inmos Limited||Memory device that functions as a content addressable memory or a random access memory|
|US5473267 *||3 Feb 1995||5 Dec 1995||Sgs-Thomson Microelectronics Limited||Programmable logic device with memory that can store routing data of logic data|
|US5513134 *||21 Feb 1995||30 Apr 1996||Gte Laboratories Incorporated||ATM shared memory switch with content addressing|
|US5537354 *||14 Dec 1994||16 Jul 1996||Fujitsu Limited||Semiconductor memory device and method of forming the same|
|US5715188 *||7 Feb 1996||3 Feb 1998||International Business Machines Corporation||Method and apparatus for parallel addressing of CAMs and RAMs|
|US5761413 *||5 Jun 1995||2 Jun 1998||Sun Microsystems, Inc.||Fault containment system for multiprocessor with shared memory|
|US5781467 *||6 Aug 1997||14 Jul 1998||United Integrated Circuits Corp.||Decoding method for ROM matrix having a silicon controlled rectifier structure|
|US5822578 *||5 Jun 1995||13 Oct 1998||Sun Microsystems, Inc.||System for inserting instructions into processor instruction stream in order to perform interrupt processing|
|US5880991 *||14 Apr 1997||9 Mar 1999||International Business Machines Corporation||Structure for low cost mixed memory integration, new NVRAM structure, and process for forming the mixed memory and NVRAM structure|
|US5924125 *||1 Aug 1995||13 Jul 1999||Arya; Siamak||Method and apparatus for parallel access to consecutive TLB entries|
|US5940852 *||21 Aug 1997||17 Aug 1999||Altera Corporation||Memory cells configurable as CAM or RAM in programmable logic devices|
|US6058452 *||28 May 1999||2 May 2000||Altera Corporation||Memory cells configurable as CAM or RAM in programmable logic devices|
|US6088758 *||5 Jun 1995||11 Jul 2000||Sun Microsystems, Inc.||Method and apparatus for distributing data in a digital data processor with distributed memory|
|US6101116 *||30 Jun 1999||8 Aug 2000||Integrated Device Technology, Inc.||Six transistor content addressable memory cell|
|US6128207 *||2 Nov 1998||3 Oct 2000||Integrated Device Technology, Inc.||Low-power content addressable memory cell|
|US6137707 *||26 Mar 1999||24 Oct 2000||Netlogic Microsystems||Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device|
|US6141242 *||23 Nov 1999||31 Oct 2000||International Business Machines Corporation||Low cost mixed memory integration with substantially coplanar gate surfaces|
|US6147890 *||5 Oct 1998||14 Nov 2000||Kawasaki Steel Corporation||FPGA with embedded content-addressable memory|
|US6148364 *||30 Dec 1997||14 Nov 2000||Netlogic Microsystems, Inc.||Method and apparatus for cascading content addressable memory devices|
|US6219748||11 May 1998||17 Apr 2001||Netlogic Microsystems, Inc.||Method and apparatus for implementing a learn instruction in a content addressable memory device|
|US6240485||11 May 1998||29 May 2001||Netlogic Microsystems, Inc.||Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system|
|US6259126||23 Nov 1999||10 Jul 2001||International Business Machines Corporation||Low cost mixed memory integration with FERAM|
|US6263400 *||10 Mar 2000||17 Jul 2001||Altera Corporation||Memory cells configurable as CAM or RAM in programmable logic devices|
|US6275406||29 Aug 2000||14 Aug 2001||Sibercore Technologies, Inc.||Content address memory circuit with redundant array and method for implementing the same|
|US6332185||5 Jun 1995||18 Dec 2001||Sun Microsystems, Inc.||Method and apparatus for paging data and attributes including an atomic attribute for digital data processor|
|US6339539||30 Aug 2000||15 Jan 2002||Sibercore Technologies, Inc.||Content addressable memory having read/write capabilities that do not interrupt continuous search cycles|
|US6362990||1 Sep 2000||26 Mar 2002||Sibercore Technologies||Three port content addressable memory device and methods for implementing the same|
|US6381673||6 Jul 1998||30 Apr 2002||Netlogic Microsystems, Inc.||Method and apparatus for performing a read next highest priority match instruction in a content addressable memory device|
|US6392910||17 Aug 2000||21 May 2002||Sibercore Technologies, Inc.||Priority encoder with multiple match function for content addressable memories and methods for implementing the same|
|US6418042||9 Sep 1998||9 Jul 2002||Netlogic Microsystems, Inc.||Ternary content addressable memory with compare operand selected according to mask value|
|US6424011||31 Aug 1999||23 Jul 2002||International Business Machines Corporation||Mixed memory integration with NVRAM, dram and sram cell structures on same substrate|
|US6460112||22 Jun 1999||1 Oct 2002||Netlogic Microsystems, Llc||Method and apparatus for determining a longest prefix match in a content addressable memory device|
|US6499081||12 Nov 1999||24 Dec 2002||Netlogic Microsystems, Inc.||Method and apparatus for determining a longest prefix match in a segmented content addressable memory device|
|US6539455||12 Nov 1999||25 Mar 2003||Netlogic Microsystems, Inc.||Method and apparatus for determining an exact match in a ternary content addressable memory device|
|US6553453||1 Sep 2000||22 Apr 2003||Sibercore Technologies, Inc.||Variable width content addressable memory device for searching variable width data|
|US6564289||18 Dec 2001||13 May 2003||Netlogic Microsystems, Inc.||Method and apparatus for performing a read next highest priority match instruction in a content addressable memory device|
|US6567340||30 Apr 2001||20 May 2003||Netlogic Microsystems, Inc.||Memory storage cell based array of counters|
|US6574702||9 May 2002||3 Jun 2003||Netlogic Microsystems, Inc.||Method and apparatus for determining an exact match in a content addressable memory device|
|US6609222||1 Sep 2000||19 Aug 2003||Sibercore Technologies, Inc.||Methods and circuitry for built-in self-testing of content addressable memories|
|US6678786||11 Dec 2002||13 Jan 2004||Netlogic Microsystems, Inc.||Timing execution of compare instructions in a synchronous content addressable memory|
|US6694412||28 Sep 2001||17 Feb 2004||Sun Microsystems, Inc.||Multiprocessor digital data processing system|
|US6697911||6 Feb 2001||24 Feb 2004||Netlogic Microsystems, Inc.||Synchronous content addressable memory|
|US6741519||9 Jul 2002||25 May 2004||Micron Technology, Inc.||DRAM technology compatible processor/memory chips|
|US6747885||25 Nov 2002||8 Jun 2004||Samsung Electronics Co., Ltd.||Ternary content addressable memory device|
|US6809985||9 Jul 2002||26 Oct 2004||Micron Technology, Inc.||DRAM technology compatible processor/memory chips|
|US6892272||23 Apr 2002||10 May 2005||Netlogic Microsystems, Inc.||Method and apparatus for determining a longest prefix match in a content addressable memory device|
|US6924194||9 Jul 2002||2 Aug 2005||Micron Technology, Inc.||DRAM technology compatible processor/memory chips|
|US6934795||31 Oct 2001||23 Aug 2005||Netlogic Microsystems, Inc.||Content addressable memory with programmable word width and programmable priority|
|US6944709||31 Oct 2001||13 Sep 2005||Netlogic Microsystems, Inc.||Content addressable memory with block-programmable mask write mode, word width and priority|
|US6961810||22 Dec 2003||1 Nov 2005||Netlogic Microsystems, Inc.||Synchronous content addressable memory|
|US7009862 *||15 Dec 2004||7 Mar 2006||Hitachi, Ltd.||Semiconductor device|
|US7023040||9 Jul 2002||4 Apr 2006||Micron Technology, Inc.||DRAM technology compatible processor/memory chips|
|US7110407||24 Mar 2001||19 Sep 2006||Netlogic Microsystems, Inc.||Method and apparatus for performing priority encoding in a segmented classification system using enable signals|
|US7110408||24 Mar 2001||19 Sep 2006||Netlogic Microsystems, Inc.||Method and apparatus for selecting a most signficant priority number for a device using a partitioned priority index table|
|US7112831||6 May 2004||26 Sep 2006||Samsung Electronics Co., Ltd.||Ternary content addressable memory cell|
|US7143231||23 Sep 1999||28 Nov 2006||Netlogic Microsystems, Inc.||Method and apparatus for performing packet classification for policy-based packet routing|
|US7246198||15 Jun 2005||17 Jul 2007||Netlogic Microsystems, Inc.||Content addressable memory with programmable word width and programmable priority|
|US7272027||26 Feb 2004||18 Sep 2007||Netlogic Microsystems, Inc.||Priority circuit for content addressable memory|
|US7298635||15 Mar 2006||20 Nov 2007||Netlogic Microsystems, Inc.||Content addressable memory (CAM) cell with single ended write multiplexing|
|US7324362||1 Mar 2006||29 Jan 2008||Netlogic Microsystems Inc.||Content addressable memory cell configurable between multiple modes and method therefor|
|US7417882||21 Sep 2006||26 Aug 2008||Netlogics Microsystems, Inc.||Content addressable memory device|
|US7450409||20 Mar 2006||11 Nov 2008||Netlogic Microsystems, Inc.||Content addressable memory (CAM) cell having column-wise conditional data pre-write|
|US7467256 *||28 Dec 2004||16 Dec 2008||Intel Corporation||Processor having content addressable memory for block-based queue structures|
|US7487200||5 Dec 2000||3 Feb 2009||Netlogic Microsystems, Inc.||Method and apparatus for performing priority encoding in a segmented classification system|
|US7570503||22 May 2006||4 Aug 2009||Netlogic Microsystems, Inc.||Ternary content addressable memory (TCAM) cells with low signal line numbers|
|US7911818||16 Mar 2009||22 Mar 2011||Netlogic Microsystems, Inc.||Content addressable memory having bidirectional lines that support passing read/write data and search data|
|US8073005||21 Nov 2007||6 Dec 2011||Cypress Semiconductor Corporation||Method and apparatus for configuring signal lines according to idle codes|
|US20040139276 *||22 Dec 2003||15 Jul 2004||Varadarajan Srinivasan||Synchronous content addressable memory|
|US20040193741 *||26 Feb 2004||30 Sep 2004||Pereira Jose P.||Priority circuit for content addressable memory|
|US20040223353 *||6 May 2004||11 Nov 2004||Jin-Ho Kim||Ternary content addressable memory cell|
|US20050146947 *||15 Dec 2004||7 Jul 2005||Hitachi, Ltd.||Semiconductor device|
|US20050262295 *||15 Jun 2005||24 Nov 2005||Nataraj Bindiganavale S||Content addressable memory with programmable word width and programmable priority|
|US20060010284 *||7 Sep 2005||12 Jan 2006||Varadarajan Srinivasan||Synchronous content addressable memory|
|USRE39227 *||31 Mar 2003||8 Aug 2006||Integrated Device Technology, Inc.||Content addressable memory (CAM) arrays and cells having low power requirements|
|USRE41659||19 Aug 2005||7 Sep 2010||Sanjay Gupta||Methods and circuitry for built-in self-testing of content addressable memories|
|USRE41992||30 Aug 2006||7 Dec 2010||Sanjay Gupta||Methods and circuitry for built-in self-testing of content addressable memories|
|WO1987005431A1 *||26 Feb 1987||11 Sep 1987||Data General Corp||Content addressable memory and self-blocking driver|
|U.S. Classification||365/49.1, 365/49.11, 365/189.04, 365/190, 365/189.03, 365/189.08, 365/49.17, 365/230.09|
|16 Sep 1986||AS||Assignment|
Owner name: HITACHI, LTD., 6, KANDA SURUGADAI 4-CHOME, CHIYODA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:UCHIYAMA, KUNIO;NISHIMUKAI, TADAHIKO;REEL/FRAME:004605/0884
Effective date: 19841201
|2 Jul 1990||FPAY||Fee payment|
Year of fee payment: 4
|10 Jul 1990||RR||Request for reexamination filed|
Effective date: 19900531
|3 Aug 1993||B1||Reexamination certificate first reexamination|
|1 Jul 1994||FPAY||Fee payment|
Year of fee payment: 8
|3 Aug 1998||FPAY||Fee payment|
Year of fee payment: 12