The invention relates to memory devices generally and, more particularly, to a method and/or apparatus for implementing a low power hit bitline driver for content-addressable memory (CAM).
Dynamic power reduction is becoming increasingly important in modern integrated circuit designs. Dynamic power is especially problematic in Ternary Content Addressable Memory (TCAM). TCAM is a specialized type of memory that performs a fast fully parallel search of the memory contents. TCAM is used extensively for pattern matching in networking chips. Dynamic power consumption and the noise introduced by the dynamic power consumption of TCAM is a major design constraint in networking chips. A major source of dynamic power consumption within TCAM is the hit bitline power. Hit bitlines span the entire height of the memory and are connected to every memory cell. Hit bitlines are traditionally constructed as dynamic signals that switch every cycle or static signals that are driven by CMOS logic and switch only when the data input is changed.
It would be desirable to have a method and/or apparatus for implementing a low power hit bitline driver for content-addressable memory (CAM).
The invention concerns an apparatus including a hit bitline driver circuit and an equalization control circuit. The hit bitline driver circuit may be configured to drive a pair of hit bitlines responsive to a search bit. The equalization control circuit may be configured to transfer charge from one hit bitline of the pair to the other hit bitline of the pair in response to the search bit changing state.
Embodiments of the invention will be apparent from the following detailed description and the appended claims and drawings in which:
Embodiments of the invention include providing a method and/or apparatus for implementing a low power hit bitline driver for content-addressable memory (CAM) that may (i) perform a comparison between a current state of each HBL and HBLB and a next state of each HBL and HBLB to determine if each HBL and HBLB will be switching, (ii) prior to a switching event, momentarily tri-stating the HBL and HBLB drivers, (iii) allow charge sharing between the HBL and HBLB to use the charge stored on the higher voltage line to raise the voltage level of the lower voltage line, (iv) enable the HBL and HBLB drivers to drive the HBL and HBLB voltages the rest of the way to VDD and VSS, (v) eliminate checking signal timing between input of search data input and clock signals, (vi) eliminate unnecessary charge sharing between hit bitlines associated with a data bit whose state has not changed, and/or (vii) be implemented as one or more integrated circuits.
In various embodiments, a method and/or apparatus is implemented, which provides a low power driver for hit bitlines in ternary content-addressable memories (TCAMs). Hit bitlines consume a significant portion of the total power of TCAMs and TCAMs consume a significant portion of the total power of networking chips. Thus, a method and/or apparatus that reduces power consumption by hit bitlines is extremely valuable to these applications.
Hit bitlines are typically constructed as true/complement wires. For example, when a hit bitline (HBL) is high, a corresponding hit bitline bar (HBLB) is low. In various embodiments, when one signal is high and the other is low and it is known that the signals need to switch to the opposite state, instead of driving the high signal line to ground with a traditional driver and wasting the charge stored on the high signal line, that charge is transferred to the low signal line to partially bring the low signal line high. Then, the low going line is driven the rest of the way low and the high going line is driven the rest of the way high. In various embodiments, power is reduced because a pair of hit bitlines is equalized only when an associated data input bit switches (changes state). The general concept can be extended to any highly loaded true/complement signal wires. In various embodiments, signal timing between a search data input signal (DIN) and clock signals does need to be checked, which (i) reduces designer workload and, therefore, time-to-market, and (ii) reduces circuit complexity and, therefore, silicon risk.
Referring to
Each of the memory cell rows 106a, 106b, 106c, . . . , 106n contains a five bit search word that has been previously stored (employing bit lines and word lines not shown in
In various embodiments, generic and portable architectures are provided that employ binary, X-Y and ternary CAM (TCAM) cell arrays. These embodiments employ a low-power hit bitline equalization scheme provides charge sharing between pairs of hit bitlines to reduce dynamic and static power requirements for the binary, X-Y and ternary CAM arrays without significantly impacting performance or density. Hit bitline charge/discharge levels and rates may be configured over a range of search word lengths making applications especially attractive for embedded memories. Additionally, dynamic NOR Cell topology may be employed for the binary, X-Y and TCAM arrays that allows a significant reduction in design effort for embedded CAMs.
Referring to
The binary CAM cell row 200 also includes a match line 204 and a sense amplifier 206. The binary CAM cell 202 includes a static random access memory (SRAM) cell 210 and a search line comparison circuit 212 employing comparison transistors M0, M1, M2 and M3. The search line comparison circuit 212 is connected to a pair of hit bitlines HBL0:HBLn0. The pair of hit bitlines HBL0:HBLn0 are driven by a search line driver 220, implemented in accordance with an embodiment of the invention.
Initially, a bit pattern (e.g., an address) to be subsequently searched is stored in the plurality of binary CAM cells of the binary CAM cell row 200 employing conventional memory bit lines and word lines. For example, the binary CAM cell 202 stores a search word bit employing a pair of bit lines (e.g., BL0 and BLn0) and a word line (e.g., WL), as shown in
The search operation of the binary CAM cell 202 employs the comparison transistors M0, M1, M2 and M3 in the search line comparison circuit 212 and may be considered typical of each SRAM cell in the binary CAM cell row 200. As illustrated in
Each pair of gate inputs for the first and the second stacked transistor pairs M0:M1, M2:M3 are cross-coupled in a logic sense. That is, an output D0 (true state) of the SRAM cell 210 is coupled with the hit bitline HBLn0 (complement state), and an output Dn0 (complement state) of the SRAM cell 210 is coupled with the hit bitline HBL0 (true state). In various embodiments, a column control (or mask) signal may be used to enable comparison of the contents of the SRAM cell 210 with the search bit DIN<0>. When the column control signal is not enabled, any state of the signal DIN<0> and the output D0 of the SRAM cell 210 provides a sense amplifier output that is a HIT. When the column control signal is enabled, the sense amplifier output is a HIT only when the states of the signal DIN<0> and output D0 are the same. When the states of HBL and D0 are not the same, the SRAM cell 210 provides a sense amplifier output that is not a HIT (e.g., a MISS or MISMATCH).
In the case of a complete word match where all hit bitline pairs (HBLn0:HBL0, HBLn1:HBL1, etc.) are complementary to their respective SRAM cell state pairs (D0:Dn0, D1:Dn1, etc.), the match line 204 discharges only by a few millivolts due to leakage current. For this case, the sense amplifier 206 outputs a signal value of TRUE corresponding to a HIT. During a typical mismatch condition, multiple combinations of hit bitline pairs (HBLn0:HBL0, HBLn1:HBL1, etc.) are the same as SRAM cell state pairs (D0:Dn0, D1:Dn1, etc.) thereby causing the match line 204 to discharge. This discharge occurs through a discharge path of the search line comparison circuits (such as the search line comparison circuit 212). A discharge condition will be evaluated by the sense amplifier 206, which outputs a signal value of FALSE corresponding to a MISMATCH.
Referring to
In various embodiments, the circuit 302 has an input that receives a signal (e.g., DIN) and an output that presents a signal (e.g., DATA). The signal DIN may be a search bit. The signal DATA is a delayed version of the signal DIN. The circuit 304 has an input theat receives the signal DATA and an output that presents a signal (e.g., DATADEL). The signal DATADEL is a delayed version of the signal DATA. The circuit 306 has an input that receives the signal DATA and an output that presents a complement of the signal DATA (e.g., DATAB). The circuit 308 has a first input that receives the signal DIN, a second input that receives the signal DATADEL and an output that presents a signal (e.g., PULSE). The circuit 308 is configured to generate the signal PULSE as a logical combination of the signals DIN and DATASEL. In various embodiments, the circuit 308 is configured to generate the signal PULSE as a logical exclusive-OR of the signals DIN and DATASEL.
The circuit 310 has an input that receives the signal DATA, a control terminal that receives the signal PULSE, and an output that is connected to the hit bitline HBL. The circuit 312 has an input that receives the signal DATAB, a control terminal that receives the signal PULSE, and an output that is connected to the hit bitline HBLB. The circuit 314 has a first terminal connected to the hit bitline HBL, a second terminal connected to the hit bitline HBLB, and a control terminal that receives the signal PULSE.
In an example operation, when the input signal DIN switches state (e.g., 0 to 1 or 1 to 0), the signal PULSE goes high immediately because current version of the signal DIN is now different from the delayed version DATADEL. When the signal PULSE goes high, the transmission gates 310 and 312 become opaque, the circuit 314 begins conducting, and charge begins to move from the higher charged to the lower charged of the hit bitlines HBL and HBLB. After a delay equal to the sum of the two delays provided by the circuit 302 and 304, the signal PULSE goes low. The signal PULSE going low turns off the circuit 314 and causes the transmission gates 310 and 312 to become transparent, allowing the hit bitlines HBL and HBLB to be driven the rest of the way to VSS and VDD. Power savings is realized through the charge sharing event. Instead of sinking the charge of the higher voltage node to ground, half of this charge is transferred to the lower voltage node before the signals are driven to the desired states.
Referring to
The circuit 402 receives the signal DIN and generates the signal DATA and a signal DELA. The signals DELA and DATA comprise a first delayed version and a second delayed version, respectively, of the signal DIN. The circuit 404 receives the signal DATA and generates the signal DATADEL and a signal DELB. The signals DELB and DATADEL comprise a third delayed version and a fourth delayed version, respectively, of the signal DIN. The inverter 406 generates a complement (e.g., DATAB) of the signal DATA. The circuit 408 receives the signals DIN, DELA, DELB, and DATADEL. The circuit 408 generates the signal PULSE and a signal PULSEB in response to the signals DIN, DELA, DELB, and DATADEL. The signal DATA is used to drive the hit bitline HBL via the transmission gate 310. The signal DATAB is used to drive the hit bitline HBLB via the transmission gate 312. The transmission gates 310 and 312 are control using the signals PULSE and PULSEB. The transistor 414 has a first drain/source connected the hit bitline HBL, a second drain/source connected the hit bitline HBLB, and a gate terminal receiving the signal PULSE.
In various embodiments, the circuit 408 comprises a block (or circuit) 420 and a block (or circuit) 422. The circuit 420 may be configured to generate the signal PULSE in response to the signal DIN, DELA, DELB, and DATADEL. The circuit 422 may be configured to generate the signal PULSEB in response to the signal PULSE.
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
The terms “may” and “generally” when used herein in conjunction with “is(are)” and verbs are meant to communicate the intention that the description is exemplary and believed to be broad enough to encompass both the specific examples presented in the disclosure as well as alternative examples that could be derived based on the disclosure. The terms “may” and “generally” as used herein should not be construed to necessarily imply the desirability or possibility of omitting a corresponding element.
The various signals of the present invention are generally “on” (e.g., a digital HIGH, or 1) or “off” (e.g., a digital LOW, or 0). However, the particular polarities of the on (e.g., asserted) and off (e.g., de-asserted) states of the signals may be adjusted (e.g., reversed) to meet the design criteria of a particular implementation. Additionally, inverters may be added to change a particular polarity of the signals.
While the invention has been particularly shown and described with reference to embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made without departing from the scope of the invention.
This application relates to U.S. Provisional Application No. 61/951,075, filed Mar. 11, 2014, which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61951075 | Mar 2014 | US |