US20150003138A1 - Content addressable memory system - Google Patents

Content addressable memory system Download PDF

Info

Publication number
US20150003138A1
US20150003138A1 US14/487,345 US201414487345A US2015003138A1 US 20150003138 A1 US20150003138 A1 US 20150003138A1 US 201414487345 A US201414487345 A US 201414487345A US 2015003138 A1 US2015003138 A1 US 2015003138A1
Authority
US
United States
Prior art keywords
row
address
address register
data
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/487,345
Inventor
Mihoko Wada
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to JP2012057060A priority Critical patent/JP2013191255A/en
Priority to JP2012-057060 priority
Priority to US13/711,061 priority patent/US8891272B2/en
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to US14/487,345 priority patent/US20150003138A1/en
Publication of US20150003138A1 publication Critical patent/US20150003138A1/en
Application status is Abandoned legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • G11C15/046Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements using non-volatile storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/02Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using magnetic elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • G11C15/043Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements using capacitive charge storage elements

Abstract

There is a need to highly integrate a circuit area of content addressable memory (CAM) and ensure faster operation thereof.
A priority encoder and row decoder portion shares a row address register including more than one row. Each row of the row address register corresponds to each entry of a TCAM array mat and retains each address. Each row of the row address register corresponds to each word line and match line of the TCAM array mat. Writing data to the TCAM array mat activates word line for a row retained in the row address register corresponding to a specified address. Searching for the TCAM array mat activates a match line for the TCAM array mat. The row address register for the corresponding row stores the address of an entry for the TCAM array mat matching search data.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a Continuation application of U.S. application Ser. No. 13/711,061, filed Dec. 11, 2012, which claims priority from Japanese Patent Application No. 2012-057060 filed on Mar. 14, 2012 including the specification, the contents of all of which are incorporated herein by reference in their entirety.
  • The present invention relates to a content addressable memory system. More particularly, the invention relates to a technology for high integration and acceleration of a circuit.
  • BACKGROUND
  • The content addressable memory (CAM) reads and writes data, and searches for storage data.
  • To write data, the CAM transfers write data to a bit line (BL) and allows a row decoder to activate a word line (WL) corresponding to the write address.
  • To search for data, the CAM activates a search line (SL) based on a data string to be searched for and determines whether data matches each entry in a CAM array. The CAM outputs an address of the matching entry as a search result. One entry stores a data word to be searched for and includes more than one CAM cell. Each entry is provided with a match line (ML). The match line parallel links with the CAM cell corresponding to each entry. The CAM compares the data string to be searched for with a data word stored in each entry. If a match is found as a result of the comparison, the match line corresponding to the entry remains the high level (1). If no match is found as a result of the comparison, electric discharge changes the match line for that entry to the low level (0).
  • Identifying a voltage level for the match line enables to determine whether the CAM stores data corresponding to the search data.
  • As a result of the search, the CAM may yield more than one matching entry. In such a case, a priority encoder prioritizes a given entry and outputs the corresponding address.
  • The CAM is used for a path search in network devices such as a router and a switch or determination of a cache miss or hit in the cache memory. For example, a network router performs IP packet routing. The router stores the CAM that stores IP addresses. The routing collates the IP addresses stored in the CAM with an IP address input from the outside. For example, the CAM in the router writes a value indicating the next destination to an IP packet based on match line information representing the match state and transmits the IP packet from a corresponding port.
    • Patent Document 1: U.S. Pat. No. 6,967,856
    • Patent Document 2: Japanese patent laid-open No. 2007-317342
    • Patent Document 3: Japanese patent laid-open No. 2003-100086
    • Patent Document 4: U.S. Pat. No. 7,436,688
    SUMMARY
  • Recently, the tendency has been to further accelerate search operation of the large-scale high-speed CAM used for network memory, for example. The search operation acceleration requires: (1) determining whether search data matches data stored in the CAM; and (2) accelerating operation of the priority encoder that outputs the address of a highly prioritized one of matching entries.
  • Concerning requirement (1), U.S. Pat. No. 6,967,856 (patent document 1) describes the technology of dividing the match line. Japanese patent laid-open No. 2007-317342 (patent document 2) and Japanese patent laid-open No. 2003-100086 (patent document 3) describe the technologies of accelerating search operation using a match amplifier that can detect a fine potential difference on the match line.
  • Requirement (2) necessitates accelerating operation of the priority encoder and operation of writing to the CAM. For example, the CAM used for network memory needs to perform write operation at a specified time interval because the routing table needs to be updated at a specified time interval.
  • The CAM needs to be more highly integrated. A peripheral circuit for the CAM is accelerated and increases its area accordingly. There is a problem of degrading the integration of the peripheral circuit layout. U.S. Pat. No. 7,436,688 (patent document 4) uses ROM for the priority encoder to accelerate the peripheral circuit but cannot highly integrate the peripheral circuit.
  • These and other objects and novel features of the invention may be readily ascertained by referring to the following description and appended drawings.
  • According to an embodiment of the invention, a row decoder and a priority encoder share an address register including more than one row. Each row in the address register corresponds to each row in a CAM array and stores an address of each row in the CAM array. Each row of the address register corresponds to a word line and a match line for each row of the CAM array. When writing data to the CAM array, the row decoder accepts address specification and activates the word line for a row retained in the address register. On the other hand, searching for the CAM array activates the match line for the CAM array. The address register for the row corresponding to the match line stores the address of a row for the CAM array matching search data.
  • The embodiment can highly integrate a circuit area for the CAM and accelerate the CAM.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram illustrating a configuration of a content addressable memory system 1 according to an embodiment;
  • FIG. 2 illustrates the configuration of a priority arithmetic portion 4 and part of a priority encoder and row decoder portion 5 functioning as a priority encoder;
  • FIG. 3 illustrates the configuration of part of the priority encoder and row decoder portion 5 functioning as a row decoder;
  • FIG. 4 illustrates a function block of the priority encoder and the row decoder that do not share an address register and are independent of each other:
  • FIG. 5 illustrates in detail a configuration of the priority arithmetic portion 4, a priority encoder portion 55, and a row decoder portion 56 according to a related art technology;
  • FIGS. 6A and 6B illustrate an address stored in a row address register 12 corresponding to a faulty entry;
  • FIGS. 7A and 7B illustrate an address stored in the row address register 12 corresponding to a faulty entry;
  • FIG. 8 illustrates signal waveforms during a write operation according to a first embodiment;
  • FIG. 9 illustrates signal waveforms during a search operation according to the first embodiment;
  • FIG. 10 illustrates a configuration of the row address register 12 according to a second embodiment;
  • FIG. 11 illustrates a configuration of the row address register 12 and an FNH register 41 according to a third embodiment;
  • FIG. 12 illustrates a configuration of the row address register 12 and an FNH register 41 according to the third embodiment;
  • FIG. 13 illustrates part of a configuration according to a fourth embodiment;
  • FIG. 14 illustrates part of a configuration according to a fourth embodiment;
  • FIG. 15 illustrates in detail a recovery shift circuit 45 and a WL driver for CAM cell 13;
  • FIG. 16 illustrates a TCAM basic cell to configure TCAM using SRAM;
  • FIG. 17 illustrates a TCAM basic cell to configure TCAM using DRAM;
  • FIG. 18 illustrates a TCAM basic cell to configure TCAM using MRAM;
  • FIG. 19 illustrates a configuration of the row address register 12 using ROM; and
  • FIGS. 20A and 20B illustrate configurations of cells 71 and 72.
  • DETAILED DESCRIPTION
  • Embodiments of the present invention will be described with reference to the accompanying drawings.
  • First Embodiment
  • FIG. 1 is a block diagram illustrating a configuration of a content addressable memory system 1 according to the embodiment.
  • As illustrated in FIG. 1, the content addressable memory system 1 includes a TCAM array mat 2, a match amplifier 3, a priority arithmetic portion 4, a priority encoder and row decoder portion 5, an SL driver 6, a BL driver and read sense amplifier 7, and a control circuit 8.
  • The TCAM array mat 2 maintains storage data using more than one entry. Each entry includes more than one CAM cell though each CAM cell is not illustrated. Each entry is provided with an address. The TCAM array mat 2 accepts input search data and determines in parallel whether each entry matches the storage data. The TCAM array mat 2 is configured as ternary content addressable memory (Ternary CAM). Each CAM cell can take one of three values high (1), low (0), and don't care (X).
  • Writing to the TCAM Array Mat 2
  • Specifically, the TCAM array mat 2 enables storage data writing in units of rows (entries). The BL driver and read sense amplifier 7 to be described activates a bit line (BL) based on data written to the TCAM array mat 2. The priority encoder and row decoder portion 5 to be described activates a word line (WL) corresponding to an address for the row where data is written in the TCAM array mat 2. The content addressable memory system 1 uses the bit line and the word line to write data to an address specified in the TCAM array mat 2.
  • Searching for the TCAM Array Mat 2
  • The TCAM array mat 2 searches for storage data corresponding to each entry in the TCAM array mat 2. For this purpose, the TCAM array mat 2 uses a search line (SL) to accept search data used for the search. A match line (ML) maintains high level for an entry that ensures a match between search data and storage data.
  • The match amplifier 3 operates under control of a match amplifier control signal from the control circuit 8. The match amplifier 3 amplifies an output from the match line during the search in the TCAM array mat 2.
  • More than one entry may enable a match between the search data and storage data. In such a case, the priority arithmetic portion 4 preferentially outputs any one of the entries in accordance with a specified operation. For example, more than one address may be hit if the search uses value X. In this case, the priority arithmetic portion 4 preferentially outputs an entry corresponding to the smallest address, for example, to preferentially output a search result for any one of the entries.
  • The priority encoder and row decoder portion 5 includes a row address register 12 to be described and functions as the priority encoder and the row decoder. That is, the priority encoder and the row decoder share the row address register 12. The detail will be described later. A summary follows. When functioning as the priority encoder, the priority encoder and row decoder portion 5 receives an output result from the priority arithmetic portion 4 and outputs an address (match address) to the control circuit 8. The match address corresponds to the match line that is hit during the search. When functioning as the row decoder, the priority encoder and row decoder portion 5 operates based on a READ/WRITE control signal from the control circuit 8. The priority encoder and row decoder portion 5 accepts the specification of an address of the TCAM array mat 2 for data reading or writing and activates a word line corresponding to the address.
  • The SL driver 6 drives a search line in accordance with a search line driver control signal (SLDrv. control signal) from the control circuit 8. The search line outputs search data to the TCAM array mat 2 during the search in the TCAM array mat 2.
  • The BL driver and read sense amplifier 7 drives a bit line to write data to the TCAM array mat 2 under control of the control circuit 8.
  • The control circuit 8 controls a control signal to overall control operations of the content addressable memory system 1. The control circuit 8 accepts various commands (e.g., SEARCH) from the outside, operates according to a specified clock (CLK), and outputs a search result (MATCH_ADD) from the TCAM array mat 2.
  • The following describes in detail the priority arithmetic portion 4 and the priority encoder and row decoder portion 5.
  • FIG. 2 illustrates the configuration of the priority arithmetic portion 4 and part of the priority encoder and row decoder portion 5 functioning as the priority encoder.
  • The priority arithmetic portion 4 includes an operation result output circuit 21 and accepts outputs from the match amplifier 3 through more than one match line (match <0> through match <n>). If more than one match line is hit, the operation result output circuit 21 prioritizes any one of the match lines and outputs it to the priority encoder and row decoder portion 5 (p_match).
  • The priority encoder and row decoder portion 5 includes a WL driver for row address register 11, the row address register 12, and a WL driver for CAM cell 13. FIG. 2 illustrates the WL driver for row address register 11 and the row address register 12.
  • According to the embodiment, the row address register 12 includes more than one CAM cell 23. The row address register 12 uses each row to maintain an address for any of the entries in the TCAM array mat 2. Each row of the row address register 12 accepts an output from the match line of the TCAM array mat 2 via the priority arithmetic portion 4 or the WL driver for CAM cell 13 to activate the word line. According to the example in FIG. 2, the row address register 12 stores addresses 0000, 0001, 0010, and so on in order from the top of FIG. 2 to indicate the entries of the TCAM array mat 2. Each address is coupled to the corresponding entry in the TCAM array mat 2 via the word line and the match line.
  • The WL driver for row address register 11 activates the word line for the row address register 12 according to an enable signal pe_enable in order to allow the priority encoder and row decoder portion 5 to function as the priority encoder. The WL driver for row address register 11 includes a drive circuit 22 and accepts an output result from the priority arithmetic portion 4 via the match line. The WL driver for row address register 11 accepts the enable signal pe_enable and an output result from the priority arithmetic portion 4 to control an operation that allows the row address register 12 to output a search result.
  • The WL driver for row address register 11 and the row address register 12 mainly allow the priority encoder and row decoder portion 5 to function as the priority encoder. A result of searching for the TCAM array mat 2 is provided as output (peBL) through the bit line of the row address register 12 and is output to the BL sense amplifier and SL driver for register 9 (peBL).
  • FIG. 3 illustrates the configuration of part of the priority encoder and row decoder portion 5 functioning as the row decoder.
  • The row address register 12 and the WL driver for CAM cell 13 mainly allow the priority encoder and row decoder portion 5 to function as the row decoder. The BL sense amplifier and SL driver for register 9 (to be described) accepts specification (rw_add) of an address where data is to be written to the TCAM array mat 2. The BL sense amplifier and SL driver for register 9 outputs the address specification to the search line of the row address register 12 (AddSL). The row address register 12 activates the match line for the row corresponding to the specified address and outputs the address specification to the WL driver for CAM cell 13 (addML).
  • The WL driver for CAM cell 13 as well as the row address register 12 functions as the row decoder. The WL driver for CAM cell 13 accepts the output result from the match line of the row address register 12 and outputs the result according to control signal add_mlpre_n. The WL driver for CAM cell 13 allows a latch circuit 24 to maintain the output result from the match line of the row address register 12 according to the timing indicated in control signal add_mllat. A drive circuit 25 outputs the content maintained in the latch circuit 24 to the word line of the TCAM array mat 2 according to control signal rw_enable.
  • The BL sense amplifier and SL driver for register 9 configures part of the control circuit 8. The BL sense amplifier and SL driver for register 9 provides a sense amplifier function (BL Sense Amp) that amplifies a signal from the bit line of the row address register 12 in order to allow the priority encoder and row decoder portion 5 to function as the priority encoder. The BL sense amplifier and SL driver for register 9 provides an SL driver (SL Drv.) that controls operation of the search line of the row address register 12 according to control signal add_sle in order to allow the priority encoder and row decoder portion 5 to function as the row decoder. The BL sense amplifier and SL driver for register 9 accepts specification of an address (rw_add) where data is to be written to the TCAM array mat 2. The BL sense amplifier and SL driver for register 9 accepts an output result of the priority encoder and row decoder portion 5 functioning as the priority encoder and outputs the result (hit_add) to the outside.
  • According to the above-mentioned configuration, the priority encoder and the row decoder share the addresses corresponding to the entries of the TCAM array mat 2. Therefore, this configuration can ensure higher integration than a configuration that uses a decode circuit for each of the priority encoder and the row decoder.
  • Comparison with a Related Art Technology
  • The following describes a related art technology in which the priority encoder and the row decoder do not share an address register.
  • FIG. 4 illustrates a function block of the priority encoder and the row decoder that do not share the address register and are independent of each other.
  • In a content addressable memory system 101, a priority encoder portion 55 and a row decoder portion 56 do not share an address register and are independent of each other. A control circuit 57 accepts a match address as a search result output to the TCAM array mat 2 from a priority encoder portion 55. The control circuit 57 outputs specification of an address to be written to the TCAM array mat 2 to a row decoder portion 56.
  • FIG. 5 illustrates in detail a configuration of the priority arithmetic portion 4, the priority encoder portion 55, and the row decoder portion 56 according to the related art technology.
  • As illustrated in FIG. 5, the priority arithmetic portion 4 and the priority encoder portion 55 provide a function as the priority encoder.
  • The row decoder portion 56 provides a function as the row decoder.
  • The following describes the function as the priority encoder. The priority arithmetic portion 4 outputs an output from any match line to the priority encoder portion 55 based on operation of the operation result output circuit 21 in the priority arithmetic portion 4.
  • The priority encoder portion 55 includes a fault recovery circuit 62 and an encode circuit 63.
  • The fault recovery circuit 62 recovers a faulty entry in the TCAM array mat 2. To do this, for example, the fault recovery circuit 62 shifts an output result (p_match) in the operation result output circuit 21 according to a recovery address signal output from the control circuit 57.
  • The encode circuit 63 accepts an output result from the fault recovery circuit 62, encodes an address of the TCAM array mat 2 corresponding to the match line, and outputs the encoded address as a match address (hit_add) to the control circuit 57. The encode circuit 63 converts the match line into an address.
  • The following describes the function as the row decoder.
  • The row decoder portion 56 includes a decode circuit 64, a fault recovery circuit 65, and a WL driver portion 58.
  • The decode circuit 64 accepts specification (rw_add) of a write destination address for the TCAM array mat 2 from the control circuit 57 and activates the corresponding word line. The decode circuit 64 converts the word line into an address.
  • The fault recovery circuit 65 recovers a faulty entry in the TCAM array mat 2. To do this, for example, the fault recovery circuit 65 shifts an output from the decode circuit 64.
  • The WL driver portion 58 amplifies output results from the decode circuit 64 and the fault recovery circuit 65. The WL driver portion 58 thereby functions as a drive portion that activates the word line (WL).
  • Compared to the embodiment, the related art technology independently uses the encode circuit 63 and the decode circuit 64 to convert addresses in the TCAM array mat 2.
  • According to the embodiment, on the other hand, the priority encoder and the row decoder share the row address register 12. Compared to the related art technology, the embodiment can reduce the layout area and provide high integration. The embodiment can increase the processing speed by decreasing the number of logic stages.
  • Recovery Circuit in the First Embodiment
  • Now returning back to the description of the first embodiment, the following describes a faulty address recovery function according to the first embodiment.
  • The row address register 12 stores addresses after recovery from faults in order to recover a faulty entry in the TCAM array mat 2. For example, a chip test is conducted to identify a faulty entry. A fuse is used to settle a value (recovery code) to be stored in the row address register 12. When the power is turned on, the row address register 12 reads the recovery code.
  • FIGS. 6A and 6B illustrate an address stored in the row address register 12 corresponding to a faulty entry. FIGS. 7A and 7B illustrate an address stored in the row address register 12 corresponding to a faulty entry. FIGS. 6A, 6B, 7A, and 7B mainly illustrate part of the row address register 12.
  • FIG. 6A shows addresses stored in the row address register 12 when no faulty entry is available. Since no recovery occurs, the row address register 12 stores 0000, 0001, 0010, 0011, and so on as address values at the corresponding rows in order from the top of FIG. 6A.
  • FIG. 6B shows addresses stored in the row address register 12 when a faulty entry occurs. A row 31 is assumed to correspond to the faulty entry (match <2> in FIG. 6B). In this case, for example, an entry immediately below the faulty entry is assumed to be an alternative entry. The subsequent address values are decremented by one and are written to the subsequent rows. The row address register 12 stores 0000, 0001, xxxx (corresponding to the faulty entry), 0010, 0011, and so on as address values at the corresponding rows in order from the top of FIG. 6B.
  • FIG. 7A shows address output values if no faulty entry occurs. FIG. 7B shows address output values if a faulty entry occurs.
  • As illustrated in FIG. 7B, the word line is not activated for the faulty entry row 31 corresponding to WL<2>. Address 0010 shifts to WL<3>.
  • Details of Operation According to the First Embodiment
  • The following describes operation of the content addressable memory system 1 according to the first embodiment.
  • Read or Write Operation
  • The following describes a row decoder function that reads or writes data to the TCAM array mat 2.
  • An operation overview is described below. When data is read from or written to the TCAM array mat 2, a signal (rw_add) indicating the write destination address is input to the BL sense amplifier and SL driver for register 9 as illustrated in FIG. 2. The BL sense amplifier and SL driver for register 9 activates the search line of the row address register 12 (addSL). The value for a row in the row address register 12 may match the signal (rw_add) indicating the write destination address. The match line corresponding to the matching row of the row address register 12 goes high. Otherwise, the match line goes low. This activates the word line corresponding to the write destination address.
  • FIG. 8 illustrates signal waveforms during a write operation according to the first embodiment.
  • According to the example in FIG. 8, a write operation (WRITE) is performed at address 00000010 to activate WL<2> and at address 00000001 to activate WL<1>. A search operation (SEARCH) is subsequently performed on the TCAM array mat 2. The write operation and the search operation are performed successively.
  • The write destination address 00000010 is input to the BL sense amplifier and SL driver for register 9 (rw_add). The search is performed to find a row matching the value maintained for each row in the row address register 12 (add_sle, addSL). If a matching row is found, the match line for the row address register 12 goes high (add_mlpre_n, addML <2>). The latch circuit 24 of the WL driver for CAM cell 13 latches the match line (add_mllat). A write enable signal (rw_enable) activates the word line (WL<2>) for the write destination address.
  • The same applies to the next address 00000001. The word line (WL<1>) for the write destination address is activated.
  • The subsequent search operation activates the search line (SL) for the TCAM array mat 2. The match line (ML) not hit after the search is discharged and goes low. The word line is inactivated before the search starts. A search command for the search operation can be entered after a write command for the write operation. The NOP (no operation) command is unneeded.
  • Search Operation
  • The following describes the search operation in the TCAM array mat 2 according to the first embodiment.
  • FIG. 9 illustrates signal waveforms during a search operation according to the first embodiment.
  • The control circuit 8 follows the command (SEARCH) to start the search operation on the TCAM array mat 2 at timings of a specified clock (camclk). The search line is activated. The match line for an entry corresponding to the search data goes high. The match amplifier 3 amplifies an output result from the match line. The match amplifier 3 operates according to a control signal (MAE). The output (match) amplified by the match amplifier 3 is input to the priority arithmetic portion 4. The priority arithmetic portion 4 allows the operation result output circuit 21 to prioritize any of the match lines and output a search result corresponding to the entry (p_match).
  • In the priority encoder and row decoder portion 5, the WL driver for row address register 11 activates the word line for the row address register 12 based on the search result at the timing according to the enable signal (pe_enable). FIG. 9 shows activation of word lines peWL<2> and peWL<127> corresponding to the second entry and the 127th entry. The bit line outputs the value of the row address register 12 corresponding to the activated word line to the BL sense amplifier and SL driver for register 9 (peBL). The BL sense amplifier and SL driver for register 9 outputs the address of the hit entry to the outside (MATCH_ADD).
  • Second Embodiment
  • Another embodiment will be described.
  • FIG. 10 illustrates a configuration of the row address register 12 according to the second embodiment.
  • FIG. 10 illustrates divided bit lines for the row address register that outputs a search result to provide the function as the priority encoder.
  • For example, the sense amplifier can be allocated to a specified range of entries to accelerate the search result output. As illustrated in FIG. 10, there are provided two sense amplifiers, a first BL sense amplifier 32 and a second BL sense amplifier 33. The first BL sense amplifier 32 and the second BL sense amplifier 33 each correspond to some entries for the row address register 12. A GBL sense amplifier and SL driver for register 34 is equivalent to a sense amplifier that amplifies output from the bit line. The GBL sense amplifier and SL driver for register 34 accepts outputs (gb10 and gb11) from the BL sense amplifiers and outputs an address (hit_add) hit after the search.
  • As illustrated in FIG. 10, the WL driver for CAM cell 13 includes a differential amplifier 35. The differential amplifier accepts output from the match line for the row address register 12 to ensure faster operation.
  • Third Embodiment
  • Still another embodiment will be described. The third embodiment provides an FNH (force no-hit) register using CAM cells.
  • FIG. 11 illustrates a configuration of the row address register 12 and an FNH register 41 according to the third embodiment.
  • FIG. 12 illustrates a configuration of the row address register 12 and an FNH register 41 according to the third embodiment.
  • The row address register 12 and the FNH register using CAM cells are provided to enable faster operation under control of a BL sense amplifier and SL driver for register 42 (fnh_bl). For example, the search operation can reduce the latency before a bit address and FNH read data are output. An FNH decoder circuit can be eliminated to reduce the layout area and provide high integration.
  • Fourth Embodiment
  • Yet another embodiment will be described. The fourth embodiment provides a recovery information data register.
  • FIG. 13 illustrates part of a configuration according to the fourth embodiment.
  • FIG. 14 illustrates part of a configuration according to the fourth embodiment.
  • As illustrated in FIGS. 13 and 14, a faulty entry corresponds to WL<1>. A faulty-entry row 47 corresponds to WL<1>.
  • When recovering a faulty entry according to the fourth embodiment, a BL sense amplifier and SL driver for register 43 uses a control signal (sp_bl) to rewrite a recovery information register 44 without rewriting the row address register 12. To enable the function as the row decoder, a recovery information register 44 and a recovery shift circuit 45 recover a faulty entry. To enable the function as the priority encoder, an address shift circuit 46 shifts addresses for output because the row address register 12 is not rewritten.
  • For example, suppose that an entry corresponding to WL<1> is faulty. The address shift circuit 46 then decrements the address of an entry corresponding to WL<2> by one to change the address to 0001. Suppose that the WL driver for row address register 11 activates word line peWL<2> as a result of the search in the TCAM array mat 2. In this case, the value of the row address register 12 is not rewritten. The address shift circuit 46 shifts a match address (hit_add0) output from the BL sense amplifier and SL driver for register 43 and outputs the shifted address (hit_add).
  • The BL sense amplifier and SL driver for register 43 uses a control signal (hft_en) to notify the address shift circuit 46 of information (e.g., an address corresponding to the faulty entry) about a row that needs to be shifted to enable the function as the priority encoder. For example, the address shift circuit 46 compares the information notified by the BL sense amplifier and SL driver for register 43 about the address corresponding to the faulty entry with a match address (hit_add0) output from the BL sense amplifier and SL driver for register 43. The address shift circuit 46 shifts the match address (hit_add0) if it is found at or later than the address (shft_en) corresponding to the faulty entry.
  • FIG. 15 illustrates in detail the recovery shift circuit 45 and the WL driver for CAM cell 13.
  • The recovery information register 44 includes a register corresponding to each row of the row address register 12. The register maintains value 1 for a row that needs to be shifted.
  • As illustrated in FIG. 15, the recovery shift circuit 45 accepts output from the register for each row of the recovery information register 44 and outputs signals (sft and dis). As illustrated in FIG. 15, output of the signal (dis) depends on the value of an adjacent row for the register in the recovery information register 44. The signal is output as 0 if the adjacent row maintains a different value. The signal (dis) disables the word line (WL<1> according to the example in FIG. 15) of the WL driver for CAM cell 13 corresponding to the faulty entry.
  • The recovery shift circuit 45 uses values of the registers corresponding to the rows of the recovery information register 44. For example, the recovery shift circuit 45 maintains value 1 in the register to which sft<2> is input. Match lines addML<1> and addML<2> are coupled to the register to which sft<2> is input. Output from one of the match lines is input to the latch circuit of the WL driver for CAM cell 13 depending on the value of sft<2>, namely, depending on whether the shift is needed.
  • The above-mentioned configuration can provide the faster operation as well as the recovery.
  • Fifth Embodiment
  • Still yet another embodiment will be described. According to the fifth embodiment, the TCAM in the row address register 12 uses SRAM (Static Random Access Memory), DRAM (Dynamic Random Access Memory), MRAM (Magnetoresistive Random Access Memory), or ROM (Read Only Memory).
  • FIG. 16 illustrates a TCAM basic cell to configure the TCAM using SRAM.
  • As described above, search data is input to a cell via the search line (SL). It is determined whether the search data matches stored data X (SNX) and Y (SNY). The result is always a miss if stored data X and Y are both 1s. The result is always a hit if stored data X and Y are both 0s.
  • FIG. 17 illustrates a TCAM basic cell to configure the TCAM using DRAM. Similarly to the above, the search data (SL) is compared with the stored data (SNX and SNY). It is determined whether the search data matches the stored data.
  • FIG. 18 illustrates a TCAM basic cell to configure the TCAM using MRAM. The cell includes bit lines (BL) used for reading and writing, word lines (RWLX and RWLY) for turning on a transistor during reading, and a digit line (DL) for applying a current during writing.
  • FIG. 19 illustrates a configuration of the row address register 12 using ROM. Each CAM cell uses ROM.
  • As illustrated in FIG. 19, a cell 71 uses ROM configured to store 0. A cell 72 uses ROM configured to store 1.
  • FIGS. 20A and 20B illustrate configurations of the cells 71 and 72.
  • FIG. 20A illustrates the cell 71. FIG. 20B illustrates the cell 72.
  • According to the embodiment, the row address register 12 is configured to use the memory that retains the stored contents even when not powered. The configuration eliminates the need for a sequence to provide the function as the recovery circuit enabled each time the power is turned on.
  • According to the above-mentioned example, the encoder and the decoder in the CAM share the address register. The above-mentioned configuration may be used for encoder and decoder circuits for technologies other than the CAM. The configuration can ensure faster operation and reduce the layout area if an address uses many bits or a circuit uses many logic stages for an encoder or a decoder.
  • While there have been described the embodiments, it is to be distinctly understood that the embodiments may be combined.
  • While there have been described specific preferred embodiments of the present invention created by the inventors, it is to be distinctly understood that the present invention is not limited thereto but may be otherwise variously embodied within the spirit and scope of the invention.

Claims (8)

What is claimed is:
1. A content addressable memory (CAM) comprising:
an address register that includes a first row and a second row;
a row decoder configured to specify a first address of a first row in a data retention CAM array that is coupled to the first row of the address register, specify a second address of a second row in the data retention CAM array that is coupled to the second row of the address register, and write data to the first address and the second address in the data retention CAM array; and
a priority encoder configured to receive a first result of a comparison between data stored in the first row in the data retention CAM array and search data, receive a second result of a comparison between data stored in the second row in the data retention CAM array and the search data, and output, based on the first result and the second result, an address of a row in the data retention CAM array that matches a comparison result,
wherein the row decoder and the priority encoder are configured to share first address data stored in the first row in the address register and second address data stored in the second row in the address register, and
wherein the first row and the second row of the address register each includes CAM cells.
2. The content addressable memory according to claim 1,
wherein the row decoder is configured to receive an address, compare the address as first search data with the first address data and the second address data stored in the address register, and in response to a matching comparison result, activate one word line in the data retention CAM array, and
wherein the priority encoder is configured to output one of the first address data and the second address data stored in the address register, based on an priority, in response to matching a comparison result between second search data and the first address data and a comparison result between the second search data and the second address data stored in the address register.
3. The content addressable memory according to claim 1,
wherein the address register is rewritable;
wherein the content addressable memory includes a storage portion to store a recovery code that has recovered a faulty row in the data retention CAM array, and
wherein the address register is configured to accept writing of an address after fault recovery according to rewriting of the address register and based on a recovery code stored in the storage portion.
4. The content addressable memory according to claim 1, wherein the address register includes:
a plurality of rows including the first row and the second row; and
a plurality of sense amplifiers to amplify an output result of the priority encoder, and
wherein each sense amplifier is allocated to a specified range of rows in the address register.
5. The content addressable memory according to claim 1,
wherein the address register includes a match amplifier which is a differential amplifier.
6. The content addressable memory according to claim 1,
wherein the address register includes nonvolatile memory.
7. The content addressable memory according to claim 1,
wherein the address register includes an FNH (force no-hit) register.
8. The content addressable memory according to claim 1, wherein the row decoder includes:
a recovery information data register configured to determine whether each row of the address register needs to shift an output due to faulty entry recovery; and
a recovery shift circuit configured to disable the use of a word line corresponding to a faulty row, and calculate an address for each row of the address register based on a content stored in the address register and a content stored in the recovery information data register.
US14/487,345 2012-03-14 2014-09-16 Content addressable memory system Abandoned US20150003138A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012057060A JP2013191255A (en) 2012-03-14 2012-03-14 Contents reference memory system
JP2012-057060 2012-03-14
US13/711,061 US8891272B2 (en) 2012-03-14 2012-12-11 Content addressable memory system
US14/487,345 US20150003138A1 (en) 2012-03-14 2014-09-16 Content addressable memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/487,345 US20150003138A1 (en) 2012-03-14 2014-09-16 Content addressable memory system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/711,061 Continuation US8891272B2 (en) 2012-03-14 2012-12-11 Content addressable memory system

Publications (1)

Publication Number Publication Date
US20150003138A1 true US20150003138A1 (en) 2015-01-01

Family

ID=49135964

Family Applications (2)

Application Number Title Priority Date Filing Date
US13/711,061 Active 2032-12-14 US8891272B2 (en) 2012-03-14 2012-12-11 Content addressable memory system
US14/487,345 Abandoned US20150003138A1 (en) 2012-03-14 2014-09-16 Content addressable memory system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US13/711,061 Active 2032-12-14 US8891272B2 (en) 2012-03-14 2012-12-11 Content addressable memory system

Country Status (5)

Country Link
US (2) US8891272B2 (en)
JP (1) JP2013191255A (en)
KR (1) KR20130105393A (en)
CN (1) CN103310838A (en)
TW (1) TW201346911A (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9177646B2 (en) * 2013-05-06 2015-11-03 International Business Machines Corporation Implementing computational memory from content-addressable memory
CN104200838B (en) * 2014-08-28 2016-08-24 平湖凌云信息科技有限公司 content addressable memory and similarity intelligent matching method
WO2017039687A1 (en) * 2015-09-04 2017-03-09 Hewlett Packard Enterprise Development Lp Content addressable memory
JP2018198104A (en) * 2017-05-24 2018-12-13 ルネサスエレクトロニクス株式会社 Content reference memory
KR20190047313A (en) 2017-10-27 2019-05-08 삼성전자주식회사 A memory device driving matching lines according to a priority

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728124B1 (en) * 2001-08-03 2004-04-27 Netlogic Microsystems, Inc. Content addressable memory with error detection signaling
US20060198210A1 (en) * 2003-05-28 2006-09-07 Hitachi, Ltd. Semiconductor device
US7505295B1 (en) * 2004-07-01 2009-03-17 Netlogic Microsystems, Inc. Content addressable memory with multi-row write function

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002260389A (en) * 2001-03-01 2002-09-13 Kawasaki Microelectronics Kk Associative memory
JP2003100086A (en) 2001-09-25 2003-04-04 Fujitsu Ltd Associative memory circuit
US6708250B2 (en) * 2001-09-28 2004-03-16 Mosaid Technologies Incorporated Circuit and method for performing variable width searches in a content addressable memory
US6967856B1 (en) 2002-04-10 2005-11-22 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that utilize segmented match lines and word lines to support pipelined search and write operations and methods of operating same
US7436688B1 (en) 2005-05-06 2008-10-14 Netlogic Microsystems, Inc. Priority encoder circuit and method
JP2007317342A (en) 2006-04-25 2007-12-06 Renesas Technology Corp Content addressable memory
US20070247885A1 (en) 2006-04-25 2007-10-25 Renesas Technology Corp. Content addressable memory
JP2008257835A (en) * 2007-03-13 2008-10-23 Renesas Technology Corp Semiconductor device
US8630141B2 (en) * 2011-01-28 2014-01-14 Micron Technology, Inc. Circuits and methods for providing refresh addresses and alternate refresh addresses to be refreshed

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728124B1 (en) * 2001-08-03 2004-04-27 Netlogic Microsystems, Inc. Content addressable memory with error detection signaling
US20060198210A1 (en) * 2003-05-28 2006-09-07 Hitachi, Ltd. Semiconductor device
US7505295B1 (en) * 2004-07-01 2009-03-17 Netlogic Microsystems, Inc. Content addressable memory with multi-row write function

Also Published As

Publication number Publication date
US8891272B2 (en) 2014-11-18
US20130242632A1 (en) 2013-09-19
CN103310838A (en) 2013-09-18
JP2013191255A (en) 2013-09-26
KR20130105393A (en) 2013-09-25
TW201346911A (en) 2013-11-16

Similar Documents

Publication Publication Date Title
JP2771130B2 (en) The self-refresh can be dual-port dynamic cam cell and refresh apparatus
US6502163B1 (en) Method and apparatus for ordering entries in a ternary content addressable memory
US5752260A (en) High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses
CA2384039C (en) Low power content addressable memory architecture
US8046642B2 (en) TCAM BIST with redundancy
US6421265B1 (en) DRAM-based CAM cell using 3T or 4T DRAM cells
US8462532B1 (en) Fast quaternary content addressable memory cell
US4989180A (en) Dynamic memory with logic-in-refresh
US5111386A (en) Cache contained type semiconductor memory device and operating method therefor
JP2004152474A (en) Semiconductor memory device for high speed access, and its driving method
US5706224A (en) Content addressable memory and random access memory partition circuit
US6751755B1 (en) Content addressable memory having redundancy capabilities
US6505270B1 (en) Content addressable memory having longest prefix matching function
EP0209050B1 (en) Semiconductor memory capable of executing logical operation
CN101529521B (en) Two-port SRAM having improved write operation
US6081440A (en) Ternary content addressable memory (CAM) having fast insertion and deletion of data values
US20040019763A1 (en) Column/row redundancy architecture using latches programmed from a look up table
KR20160136464A (en) Using storage cells to perform computation
US8284582B2 (en) Content addressable memory
KR100472113B1 (en) Dram cam cell with hidden refresh
US5060230A (en) On chip semiconductor memory arbitrary pattern, parallel test apparatus and method
US6735135B2 (en) Compact analog-multiplexed global sense amplifier for RAMs
US6731526B2 (en) CAM cell array, TCAM cell, TCAM cell array, address search memory, and network address search apparatus
US8301829B2 (en) Flash memory device and flash memory system including buffer memory
US7120081B2 (en) Multi-port memory device with stacked banks

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION