Semiconductor device including TCAM cell arrays capable of skipping TCAM-cell search in response to control signal
The consumption current of a TCAM device is reduced. A semiconductor device includes multiple sub-arrays each including a TCAM cell array. Each sub-array searches the corresponding part of the input search data. Each sub-array outputs the search result indicative of a match for every entry without searching, when the corresponding first control signal is activated.
Latest RENESAS ELECTRONICS CORPORATION Patents:
The disclosure of Japanese Patent Application No. 2015-168522 filed on Aug. 28, 2015 including the specification, drawings and abstract is incorporated herein by reference in its entirety.
BACKGROUNDThe present invention relates to a semiconductor device and is employed suitably for a semiconductor device provided with a TCAM (Ternary Content Addressable Memory) device for example.
A memory device called an associative memory or a CAM (Content Addressable Memory) searches a data word matching a search word out of stored data words and when a matching data word is found, the memory device outputs the address of the matched data word.
There are a BCAM (Binary CAM) and a TCAM (Ternary CAM) in the CAM. Each memory cell of the BCAM stores information of either “0” or “1” On the other hand, each memory cell of the TCAM can store information of a “don't care” in addition to “0” and “1” A “don't care” can take any value of “0” and “1.”
The TCAM device is broadly used in a router for networks, such as the Internet, for the purpose of the address search and the access control in order to respond to the increase in capacity, the TCAM device usually has a configuration in which multiple sub-arrays are provided and search operations for each of the sub-arrays are performed concurrently. For example, according to Non-patent Document 1, sub-arrays called building blocks are arranged with eight pieces in the word-line direction and four pieces in the bit-line direction.
The TCAM device can compare input search data (input packet) with TCAM cell data all at once; accordingly, it operates at higher speed than an RAM (Random Access Memory) in all the search applications. However, a search current is generated at the time of search, bringing up an issue of increase in the electric power consumption.
Japanese Unexamined Patent Application Publication No. 2003-272386 (Patent Literature 1) discloses a TCAM device of a configuration in which multiple sub-arrays arranged in the match-line direction are linked under a pipeline system, for the purpose of the low power consumption. In the TCAM device disclosed by the present literature, a search in the following stage is performed only for the entries matched in the previous stage.
Patent Literature(Patent Literature 1) Japanese Unexamined PatentApplication Publication No. 2003-272386
Non-Patent Document(Non-patent Document 1) H. Miyatake et. al., “A design for high-speed low-power CMOS fully parallel content-addressable memory macros”, IEEE J. Solid-State Circuits, Vol. 36, pp. 956-968, Jun. 2001
SUMMARYIn the TCAM device, TCAM cells set as a don't care may exist collectively in some range. For example, it often occurs that all the TCAM cells coupled to a part of match lines of a sub-array are set as a don't care. As a more remarkable example, all the TCAM cells configuring a sub-array may be set as a don't care. In such a case, the search result is obvious (the search result is certainly a hit (match) irrespective of the search data); therefore, the electric current will be consumed in vain for the search operation.
The other issues and new features of the present invention will become clear from the description of the present specification and the accompanying drawings.
A semiconductor device according to one embodiment includes multiple sub-arrays each including a TCAM cell array. Each sub-array searches the corresponding part of the input search data. Each sub-array outputs the search result indicative of a match for every entry without searching, when the corresponding first control signal is activated.
According to the embodiment described above, it is possible to reduce the consumption current of the TCAM device.
Hereinafter, each embodiment is described in detail with reference to accompanying drawings. In the following, the same reference symbol is attached to the same or corresponding element and the repeated explanation thereof is omitted.
<The Configuration Common to Each Embodiment>
[The Configuration of a TCAM Cell]
The TCAM cell is coupled to bit-line pairs BL and BL_n, search-line pairs SL and SL_n, a match line ML, and word lines WLX and WLY. The bit-line pairs BL and BL_n are extended in the column direction (Y direction) of the TCAM cell array 20 illustrated in
The X cell 11 includes inverters INV1 and INV2, and N channel MOS (Metal Oxide Semiconductor) transistors Q1 and Q2. The inverter INV1 is coupled between the memory node ND1 and the memory node ND1_n so that the direction going from the memory node ND1_n toward the memory node ND1 becomes a forward direction. The inverter INV2 is coupled to the inverter INV1 in parallel and in an opposite direction. The MOS transistor Q1 is coupled between the memory node ND1 and the bit line BL. The MOS transistor Q2 is coupled between the memory node ND1_n and the bit line BL_n. The gates of the MOS transistors Q1 and Q2 are coupled to the word line WLX.
The Y cell 12 includes inverters INV3 and INV4, and MOS (Metal Oxide Semiconductor) transistors Q3 and Q4. The inverter INV3 is coupled between the memory node ND2 and the memory node ND2 _n so that the direction going from the memory node ND2_n toward the memory node ND2 becomes a forward direction. The inverter INV4 is coupled to the inverter INV3 in parallel and in an opposite direction. The MOS transistor Q3 is coupled between the memory node ND2 and the bit line BL. The MOS transistor Q4 is coupled between the memory node ND2_n and the bit line BL_n. The gates of the MOS transistors Q3 and Q4 are coupled to the word line WLY.
The data comparator 13 includes N-channel MOS transistors Q6-Q9. The MOS transistors Q6 and Q7 are coupled in series between a node ND3 as a connection point with the match line ML and a ground node GND. The MOS transistors Q8 and Q9 are coupled between the node ND3 and the ground node GND in series and in parallel with the whole of the series-coupled MOS transistors Q6 and Q7. The gates of the MOS transistors Q6 and Q8 are coupled to the memory nodes ND1 and ND2, respectively. The gates of the MOS transistors Q7 and Q9 are coupled to the search lines SL and SL_n, respectively.
With reference to
According to the above-described configuration of the TCAM cell, when the search data is “1” (that is, the search line SL is “1” and the search line SL_n is “0”) and the TCAM data is “0” (the memory node ND1 is “1” and the memory node ND2 is “0”), the MOS transistors Q6 and Q7 become an ON state. Therefore, the potential of the match line ML which has been precharged is drawn out to the ground potential. When the search data is “0” (that is, the search line SL is “0” and the search line SL_n is “1”) and the TCAM data is “1” (the memory node ND1 is “0” and the memory node ND2 is “1”), the MOS transistors Q8 and Q9 become an ON state. Therefore, the potential of the match line ML which has been precharged is drawn out to the ground potential. That is, when the search data and the TCAM data are in a mismatch, the potential of the match line ML is drawn out to the ground potential.
On the contrary, when the inputted search data is “1” and the TCAM data is “1” or “x”, or when the search data is “0” and the TCAM data is “0” or “X” (that is, when both match), the potential of the precharged match line ML (the level of the power supply potential VDD) is maintained.
As described above, in the TCAM, as far as the data of all the TCAM cells coupled to the match line ML corresponding to one entry (row) do not match with the input search data, the charge stored in the match line ML is drawn out. Therefore, although the search by the TCAM is performed at a high speed, the issue is that the consumption current is great.
[The Configuration of a Sub-Array]
The cell array 20 includes the TCAM cells arranged in a matrix (m rows by k columns). The cell array 20 illustrated in
Corresponding to each column of the cell array 20, k bit-line pairs (k=32) (from BL[0] and BL_n[0] to BL[k−1] and BL_n[k−1]) and k search-line pairs (k=32) (from SL[0] and SL_n[0] to SL[k−1] and SL_n[k−1]) are provided. Corresponding to each row of the cell array 20, m match lines (m=256) (from ML[0] to ML[m−1]) and m word lines for the X cells (from WLX[0] to WLX[m−1]) (not shown) and m word lines for the Y cells (from WLY[0] to WLY[m−1]) (not shown) are provided.
The write driver 21 supplies write data to each TCAM cell via the bit-line pairs BL and BL_n at the time of write. The search line driver 22 supplies search data to each TCAM cell via the search-line pairs SL and SL_n at the time of search. The control logic circuit 24 controls the operation of the whole sub-array SA. For example, at the time of search, the control logic circuit 24 receives a search command and controls the operation of the search line driver 22, the match amplifier unit 23, and the precharge circuit, by outputting control signals to the search line driver 22 and the match amplifier unit 23.
The match amplifier unit 23 includes multiple match amplifiers MA corresponding to the rows of the cell array, respectively. At the time of search, the match amplifier MA detects whether the corresponding TCAM cell data matches the corresponding part of the input search data, based on the potential of the corresponding match line ML. In the present embodiment, the match amplifier MA includes a precharge circuit for precharging the corresponding match line ML at the time of search.
[The Configuration of the TCAM]
The search table size supported by the TCAM device illustrated in
The search-line pairs SL and SL_n, the bit-line pairs BL and BL_n, the match line ML, and the word line which are already explained are disposed for every sub-array. For example, the sub-array SA[0, 0] is provided with from the search-line pairs SL[0] and SL_n[0] to the search-line pairs SL[31] and SL_n[31]. The sub-array SA[0, 1] is provided with from the search-line pairs SL[32] and SL_n[32] to the search-line pairs SL[63] and SL_n[63]. The sub-array SA[0, 2] is provided with from the search-line pairs SL[64] and SL_n[64] to the search-line pairs SL[95] and SL_n[95]. The sub-array SA[0, 3] is provided with from the search-line pairs SL[96] and SL_n[96] to the search-line pairs SL[127] and SL_n[127].
As illustrated in
At the time of data write, the data input circuit 31 receives the write data from the exterior (for example, a network processor unit illustrated in
The command input circuit 32 receives various kinds of commands, such as a write command and a search command, from the exterior, and outputs the received command to the control logic circuit 24 of the corresponding sub-array SA.
The priority encoder 30 receives the search result (whether the input search data and the TCAM data have matched or not) for every entry, from the adjacent sub-arrays SA[0, 3], SA[1, 3], . . . , SA[15, 3]. The priority encoder 30 outputs a hit address (the entry address storing the TCAM data which has matched with the search data). When multiple entries hit (match), the priority encoder 30 outputs the address of the hit entry with a higher priority.
[On the AND Operation of the Detection Results of Multiple Match Amplifiers for the Same Entry]
As illustrated in
With reference to
Next, the detection result of the match amplifier MA of the sub-array SA[0, 0] passes through the AND gate 26 employed as a buffer provided in the match amplifier unit of the sub-array[0, 0], and is transferred to the adjacent sub-array SA[0, 1] as a match amplifier output signal mo_0. The AND gate 26 provided in the match amplifier unit 23 of the sub-array SA[0, 1] takes the logical product of the match amplifier output signal mo_0 described above and the detection result of the match amplifier MA of the sub-array SA[0, 1]. The operation result is transferred to the adjacent sub-array SA[0, 2] as a match amplifier output signal mo_1.
Similarly hereinafter, the AND gate 26 provided in the match amplifier unit 23 of the sub-array SA[0, 2] takes the logical product of the match amplifier output signal mo_1 described above and the detection result of the match amplifier MA of the sub-array SA[0, 2]. The operation result is transferred to the adjacent sub-array SA[0, 3] as a match amplifier output signal mo_2. The AND gate 26 provided in the match amplifier unit 23 of the sub-array SA[0, 3] takes the logical product of the match amplifier output signal mo_2 described above and the detection result of the match amplifier MA of the sub-array SA[0, 3]. The operation result is inputted into the priority encoder 30 as a match amplifier output signal mo_3.
[The Configuration of a Data Search System]
An ACL (Access Control List) is used for the network system for the purpose of the quality improvement of network traffic and the network security management. An ACL rule file is created by the network administrator and stored in a memory device 102.
The data search system 120 determines immediately whether an inputted network packet via an LAN (Local Area Network) is a packet to be permitted to pass or a packet to be refused to pass, on the basis of the rule described in the ACL. That is, the data search system 120 is required to have the ability to search at high speed for a rule in the ACL which the inputted packet corresponds to, and the processing herein is generally performed by the data search system 120 which uses the TCAM device 100.
Specifically, the data search system 120 includes the TCAM device 100 and an NPU (Network Processor Unit) 101. The NPU 101 is for controlling operation of the TCAM device 100, and outputs various kinds of commands (a write command, a read command, a search command, etc.) and various kinds of data (write data, search data, etc.) to the TCAM device 100. The TCAM device 100 is provided with a control register, and the TCAM device 100 also outputs the command and data for the control register.
In
The ACL rule file created by the network administrator is converted into the data for the TCAM by a data converter 103 of the NPU 101, and the converted data is stored in the TCAM device. The TCAM device 100 has the ability to compare concurrently the search data based on the IP address, etc. which are included in a network packet, with all the data stored in the TCAM device. However, there is a disadvantage that the search operation of the TCAM generates a large current. In the network system and data search system which are provided with the TCAM device, the issue is how to realize the low power consumption.
[On the Example of the ACL Rule File and the Corresponding TCAM Data]
For example, the row indicated by the reference symbol 201 in
The row indicated by the reference symbol 202 in
The row indicated by the reference symbol 203 in
With reference to
The notation of the rows indicated by the reference symbols 201,202, and 203 in
The TCAM device illustrated in
The area 210 surrounded by the heavy line frame in
To the 104-bit ACL rule, the bit width of the TCAM device is 128 bits; accordingly, the area 212 of a 24 bit width with no data to be written is generated in the TCAM device. Don't care data is stored in the TCAM cell of this area 212.
Furthermore, when the rule numbers are insufficient to 4096 entries as the total number of entries of the TCAM device, there exists a space area 213 of a 128 bit width with no data to be written. This space area is set up as an invalid entry (also called a non-search target entry). The invalid entry area results always in a miss (mismatch) at the time of a search.
Specifically, in the TCAM illustrated in
<Embodiment 1>
In Embodiment 1, the technology is provided in which a normal search result is outputted, while the search operation is stopped in an area with the obvious search result in the TCAM device, specifically in the don't care data area. Accordingly, it is possible to reduce the electric current consumed in vain in the related art technology; accordingly, it is possible to provide the TCAM device with low power consumption and the data search system which employs this TCAM device. Hereinafter, the detailed explanation is made with reference to drawings.
[The Configuration of a Sub-Array]
The register REG1 is set at a high level “H” (defined as “1” in the present description), when all the data of the TCAM cell array 20 are a don't care, and it is set at a low level “L” (defined as “0” in the present description), when at least one is not a don't care (called “a non-don't care”). Specifically, a dedicated circuit in the TCAM device may analyze whether all the data in the TCAM cell array 20 are a don't care, and the dedicated circuit concerned may set up the value of the register REG1 based on the analysis result. Alternatively, the above-described analysis may be conducted externally (for example, by the data analyzer 104 of the NPU 101 illustrated in
The control logic circuit 24 generates control signals (sle, force_hit, mae, and mlpre_n) for controlling the search operation, according to the logical level set in the register REG1. Hereinafter, the detailed explanation is made with reference to
[The Configuration of a Search-System Control Circuit]
When a register write command is activated to an “H” level, the register setup data is written in the D flip-flop 40 at the time of a rising edge of a clock signal clk (that is, when the output of the AND gate 41 becomes an “H” level). When the data of all the cells in the sub-array is a don't care, “1” (an “H” level) is written in the D flip-flop 40, and when it is a non-don't care, “0” (an “L” level) is written in the D flip-flop 40. The register setup data and the register write data are supplied from the exterior of the TCAM device (for example, the NPU 101 illustrated in
The output signal of the D flip-flop 40 is inputted into each match amplifier MA of the match amplifier unit 23 as a control signal force_hit. The output of the D flip-flop is also inputted into the AND gate 43 via the inverter 42.
A search command is outputted to the match amplifier unit 23 as a match line precharge signal mlpre_n, passing through the AND gate 43, the flip-flops 44 and 45, the AND gate 46, and the inverter 47 in this order. The control signal force_hit inverted by the inverter 42 is inputted into the other input node of the above-described AND gate 43. The clock signal clk is inputted into the clock terminals of the above-described flip-flops 44 and 45. The clock signal clk is inputted into the other input node of the above-described AND gate 46.
The output signal of the above-described flip-flop 45 is also outputted to the search line driver 22 as a search-line enable signal sle via the AND gate 49. A signal obtained by inverting the clock signal clk with the inverter 48 is inputted into the other input node of the AND gate 49.
The output signal of the above-described AND gate 49 is also inputted into a first input node of the AND gate 51 via the delay stage 50, and concurrently, it is inputted directly into a second input node of the AND gate 51, without passing through the delay stage 50. The output signal of the AND gate 51 is inputted into each match amplifier MA of the match amplifier unit 23 as a match-amplifier enable signal mae.
According to the above-described circuit configuration, depending on the setting value of register REG1, the control signal force_hit becomes an “H” level, when the setting value of the register REG1 is “1”, and it becomes an “L” level, when the setting value of the register REG1 is “0.” The control signals (sle, mae, and mlpre_n) for search operation control change according to the setting value and the search command of the register REG1.
Specifically, when the stored data of the register REG1 is an “L” (non-don't care), and when the search command is activated to an “H” level, the match line precharge signal mlpre_n is first activated to an “L” level. Next, the search-line enable signal sle is activated to an “H” level. Finally, the match-amplifier enable signal mae is activated to an “H” level.
On the contrary, when the setup data of the register REG1 is an “H” (don't care), even if the search command is activated to an “H” level, the match line precharge signal mlpre_n maintains the “H” level (inactive state), and the search-line enable signal sle maintains the “L” level (inactive state), and the match-amplifier enable signal mae maintains the “L” level (inactive state).
[The Configuration and Operation of the Search Line Driver]
Specifically, the search line driver 22 includes AND gates 60[0]-60[k] respectively corresponding to the search lines SL[0]-SL[k], AND gates 61[0]-61[k] respectively corresponding to the search lines SL_n[0]-SL_n[k], and inverters 62[0]-62 [k]. The search-line enable signal sle is inputted in common to the AND gates 60[0]-60[k] and the AND gates 61[0]-61 [k]. The corresponding search data sd[i] and the corresponding mask signal mask_n[i] are inputted into the AND gate 60[i] (i=0, 1, . . . , k). The output signal of the AND gate 60[i] (i=0, 1, . . . , k) is transmitted to the search line SL[i]. A signal obtained by inverting the corresponding search data sd[i], and the corresponding mask signal mask_n[i] are inputted into the AND gate 61[i] (i=0, 1, . . . , k)
According to the above-described configuration, for example, when the search-line enable signal sle is activated to an “H” level, and when the input data sd[i] is at an “H” level (“1”) the voltage of the search line SL[i] becomes an “H” level, and the voltage of the search line SL_n[i] becomes an “L” level. When the search-line enable signal sle is activated to an “H” level, and when the input data sd[i] is at an “L” level (“0”), the voltage of the search line SL [i] becomes an “L” level, and the voltage of the search line SL_n[i] becomes an “H” level. In the case of a mask search (an operation mode of masking the search operation), when a mask signal mask_n[i] (i=0, 1, . . . , k) is activated to an “L” level, the voltage of the search line SL[i] becomes an “L” level, and the voltage of the search line SL_n[i] becomes an “L” level.
[The Configuration and Operation of the Match Amplifier]
Hereinafter, the connection of the above-described components is explained. The MOS transistor 70 is coupled between the corresponding match line ML and the power supply node which supplies the power supply potential VDD. The match line precharge signal mlpre_n is inputted into the gate of the MOS transistor 70. The match line ML is further coupled to an input node of the inverter 71. An output node of the inverter 71 is coupled to a first input node of the logic gate 75. The control signal force_hit is inputted into a second input node of the logic gate 75 via the inverter 74. An output node of the logic gate 75 is coupled to the first input node of the logic gate 75 via the inverter 72. The match-amplifier enable signal mae and a signal obtained by inverting its logical level by the inverter 73 are coupled to driving power supply nodes of the inverters 71 and 72. When the match-amplifier enable signal mae is in an inactive state (“L” level), the inverter 71 becomes in a non-operating state, and the inverter 72 becomes in an operating state. When the match-amplifier enable signal mae is in an active state (“H” level), the inverter 71 becomes in an operating state and the inverter 72 becomes in a non-operating state.
Next, the circuit operation of the match amplifier MA illustrated in
First, the match line precharge signal mlpre_n is activated (set to an “L” level), and consequently, the MOS transistor 70 is rendered conductive. Accordingly, the match line ML is charged to the power supply potential VDD (precharged).
The search-line enable signal sle of
Next, the match-amplifier enable signal mae is activated (set to an “H” level). Accordingly, the potential of the match line ML based on the search result is outputted as a match amplifier output signal mo via the inverter 71 and the logic gate 75 (equivalent to an inverter). When the match-amplifier enable signal mae is deactivated (set to an “L” level), the potential of the match line ML based on the search result is held in the latch circuit 69 comprised of the logic gate 75 functioning as an inverter and the inverter 72.
On the other hand, (ii) in the case where the register REG1 is set at an “H” level (expressing a don't care), the control signal force_hit is at an “H” level; accordingly the output signal mo of the match amplifier MA (the output signal of the logic gate 75) is fixed to an “H” level (expressing a match (hit)). Furthermore, in the present case, the match line precharge signal mlpre_n is at an “H” level (inactive state); accordingly, the precharge of the match line ML is not performed. The search-line enable signal sle is at an “L” level (inactive state); accordingly, both the search-line pairs SL and SL_n are fixed to an “L” level (the search line driver 22 does not operate). The match-amplifier enable signal mae is at an “L” level (inactive state); accordingly, the inverter 71 is in a non-operating state.
[An Example of the Search Operation]
Hereinafter, an example of the search operation in one certain sub-array is explained with reference to the timing charts illustrated in
(A Case Where “0” is Stored in the Register REG1)
With reference to
Responding to the search command, the control logic circuit 24 activates (sets to an “H” level) the search-line enable signal sle in the second half of the cycle T2. Before the search-line enable signal sle is activated, the match line precharge signal mlpre_n is deactivated (set to an “H” level). Due to the activation of the search-line enable signal sle, the search line driver 22 is activated to transfer the search data sd to the search-line pairs SL and SL_n. As a result, when the cell data of all the TCAM cells coupled to the match line ML match (hit) with the search data sd transferred via the search-line pairs SL and SL_n, the potential of the match line ML is maintained at the power supply potential VDD (an “H” level). When at least one of the stored values of the TCAM cells coupled to the match line ML does not match with the transferred search data sd (miss), the charge precharged at the match line ML is discharged; accordingly, the potential of the match line ML changes to the ground potential (an “L” level).
Responding to the search command, in the second half of the cycle T2, after activating the search-line enable signal sle and before deactivating it, the control logic circuit 24 activates (sets to an “H” level) the match-amplifier enable signal mae. Accordingly, in every row (entry), a signal based on the potential of the match line ML (search result) is outputted from the match amplifier MA. The search result in the multiple sub-arrays (match amplifiers MA) corresponding to the same entry is processed in an AND operation and then is inputted into the priority encoder 30.
In the following cycle T3, when the control logic circuit 24 deactivates (sets to an “L” level) the match-amplifier enable signal mae, the search result detected in each match line ML is held in the latch circuit 69 in the corresponding match amplifier MA. Furthermore, in the cycle T3, the priority encoder 30 outputs a hit address (search result). When multiple hit addresses exist, the hit address which has the highest priority is outputted.
(A Case Where “1” is Stored in the Register REG1)
With reference to
In the search operation, at first (in
In this way, when the cell data of all the TCAM cells of one certain sub-array expresses a don't care, the register REG1 is set at an “H” level (“1”). As a result, the output of each match amplifier MA of the sub-array concerned is fixed to an “H” level (hit), and the search operation (the precharge of the match line and the operation of the search line driver) is not executed in the sub-array concerned. Therefore, it is possible to attain the power saving.
[A Modified Example of the Configuration of the Match Amplifier]
For example, the sub-arrays SA[15, 1], SA[15, 2], and SA[15, 3] of the TCAM device illustrated in
The following explains the configuration of the match amplifier MA which is changed so as to output a miss as the search result in the case of an invalid entry, as described above. As explained in
The AND gate 76 outputs the AND operation result of a control signal val_ent outputted from the register REG2 and an output signal of the logic gate 75, as the output signal mo of the match amplifier MA. The configuration of other elements of
According to the configuration described above, even when the register REG1 explained in
[The Effect of Embodiment 1]
According to the above-described embodiment, it is possible to control not to perform the search operation to the sub-array with the obvious search result and to output the normal search result from the sub-array concerned. Specifically, when the data of all the TCAM cells included in the sub-array is a don't care, a signal of an “H” level denoting a hit is outputted from each match amplifier MA. When each row of the sub-array concerned is entirely comprised of the cell data of a don't care or it corresponds to an invalid entry, a signal of an “H” level denoting a hit is outputted from the match amplifier MA corresponding to the case of a don't care, and a signal of an “L” level denoting a miss is outputted from the match amplifier corresponding to the case of an invalid entry. As a result, each match amplifier MA of the sub-array concerned does not generate the precharge current of the match line and the operating current. Therefore, it is possible to reduce the power consumption of the TCAM device.
Furthermore, by not performing the search operation to the sub-array with the obvious search result, it is possible to reduce the peak current at the time of the search operation and to suppress a rapid current change. Furthermore, owing to the suppression of the rapid current change, it is possible to reduce the fluctuation of the supply voltage supplied to the semiconductor chip which mounts the TCAM device. As a result, it is possible to realize the high-quality TCAM device with the stable search property. Furthermore, owing to the reduction of the consumption current of the TCAM device and the peak current at the time of the search operation, it is possible to mitigate the required capacity (such as the supply capacity of electric current and the response performance) of the external power device coupled to the TCAM device. Therefore, it is possible to realize an inexpensive and high-quality data search system.
<Embodiment 2>
[The Configuration of a TCAM Sub-Array]
The TCAM cells from the 0-th row to the (m−1)/2-th row (called a cell array 20A) are controlled by an SL driver 22A, a match amplifier unit 23A, and a control logic circuit 24A which adjoin these TCAM cells (the cell array 20A).
When the cell array 20A stores only the data of a don't care, the value of an “H” level (“1”) is set at a register REG1A provided in the control logic circuit 24A. In this case, the control signal force_hit outputted from the control logic circuit 24A becomes an “H” level (“1”). Therefore, the output signals mo [0]−mo[(m−1)/2] from the match amplifiers (not shown) provided in the match amplifier unit 23A are fixed at an “H” level (hit).
The TCAM cells from the ((m−1)/2+1)-th row to the m-th row (called a cell array 20B) are controlled by an SL driver 22B, a match amplifier unit 23B, and a control logic circuit 24B which adjoin these TCAM cells (the cell array 20B).
When the cell array 20B stores only the data of a don't care, the value of an “H” level (“1”) is set at a register REG1B provided in the control logic circuit 24B. In this case, the control signal force_hit outputted from the control logic circuit 24B becomes an “H” level (“1”). Therefore, the output signals mo[(m−1)/2+1]−mo[m] from the match amplifiers (not shown) provided in the match amplifier unit 23B are fixed at an “H” level (hit).
Each match amplifier (not shown) provided in the match amplifier units 23A and 23B of the sub-array SA illustrated in
The other elements of
[The Effect of Embodiment 1]
According to the TCAM device including the sub-array of the above-described configuration, the same effect as in the TCAM device according to Embodiment 1 is produced, and still the following effects are produced. First, compared with the sub-array of the configuration illustrated in
When multiple sub-arrays SA of the configuration illustrated in
<Embodiment 3>
For example, as for the sub-arrays SA[6, 1] and SA[13, 1] illustrated in
Therefore, a TCAM device according to Embodiment 3 can control to stop the precharge of the match line ML and to stop the circuit operation of the match amplifier MA, for every row of a sub-array. Accordingly, it is possible to attain the further power saving. Hereinafter, the detailed explanation is made with reference to drawings.
[The Configuration and Operation of the Match Amplifier]
When the cell data of all the TCAM cells coupled to the match amplifier MA via the match line ML are set as a don't care, the register REG3 is set at an “H” level (defined as “1” in the present description). When at least one cell data is not a don't care among the TCAM cells coupled to the match amplifier MA via the match line ML, the register REG3 is set at an “L” level (defined as “0” in the present description). The register REG3 is necessary only to be provided corresponding to the match amplifier MA for every row of the sub-array SA; accordingly, the register REG3 does not necessarily need to be provided inside the match amplifier MA as illustrated in
The OR gate 77 performs the OR operation of a control signal dnc_hit outputted from register REG3 and the match line precharge signal mlpre_n, and outputs an operation result to the gate of the P-channel MOS transistor 70. Accordingly, when the control signal dnc_hit which follows the setting value of the register REG3 is at an “H” level, the MOS transistor 70 is fixed to an OFF state. Therefore, precharge of the match line ML does not take place.
The AND gate 78 performs the AND operation of the match-amplifier enable signal mae and a value obtained by inverting the logical level of the control signal dnc_hit outputted from the register REG3 with the inverter 79. The AND operation result of the AND gate 78 and a signal obtained by inverting the logical level of this AND operation result with the inverter 73 are supplied to the driving power supply nodes of the inverters 71 and 72. Accordingly, when the control signal dnc_hit which follows the setting value of the register REG3 is at an “H” level, the inverter 71 is brought in a non-operating state, and the inverter 72 is brought in an operating state. Therefore, the potential of the match line ML is not outputted to the subsequent-stage circuit, and the potential of the match line ML is not latched.
The NOR gate 80 performs the NOR operation of the control signal dnc_hit outputted from the register REG3 and the control signal force_hit, and inputs the operation result into the second input node of the logic gate 75 (NAND gate). Accordingly, when the register REG3 (the control signal dnc_hit) is set at an “H” level, the output signal mo of the match amplifier MA (the output signal of the logic gate 75) is fixed to an “H” level (expressing a match (hit)).
As described above, when the register REG3 (the control signal dnc_hit) is set at an “H” level, it is possible to fix the output signal mo of the match amplifier MA at an “H” level (hit) and to stop the precharge of the match line ML and the circuit operation of the match amplifier MA, even when the register REG1 is set at an “L” level.
The other configuration and operation of
[A Data Setting Method of the Register REG3]
Hereinafter, the data setting method of the register REG3 is explained with reference to
As illustrated in
In particular, when the dedicated circuit (a data determination circuit 33 illustrated in
As opposed to this, when the register REG3 is set up by the processor outside the TCAM device, after the data write to the TCAM device, the external processor reads data from the TCAM device for every entry and determines whether the above-described determination condition is satisfied. Accordingly, it takes time more than providing the dedicated circuit inside the TCAM device.
Hereinafter, the operation of the above-described dedicated circuit (the data determination circuit 33 illustrated in
As illustrated in
Similarly, the data determination circuit 33[1] is provided corresponding to the sub-arrays SA[0, 1], SA[1, 1], SA[2, 1], and . . . , and sets each register REG3 of the corresponding sub-array, based on write data d[32:63] to the corresponding sub-array. The data determination circuit 33[2] is provided corresponding to the sub-arrays SA[0, 2], SA[1, 2], SA[2, 2], and . . . , and sets each register REG3 of the corresponding sub-array, based on write data d[64:95] to the corresponding sub-array. The data determination circuit 33[3] is provided corresponding to the sub-arrays SA[0, 3], SA[1, 3], SA[2, 3], and . . . , and sets each register REG3 of the corresponding sub-array, based on write data d[96:127] to the corresponding sub-array.
Subsequently, the data determination circuit 33 determines whether the received write data satisfies the conditions that all the bits of the received write data of 32 bits for the X cell and all the bits of the write data of 32 bits for the Y cell are “0” (Step S110). Specifically, the data determination circuit 33 performs the OR operation of all the bits of the write data for the X cell, and further performs the OR operation of all the bits of the write data for the Y cell. The data determination circuit 33 performs the NOR operation of the operation result of these OR operations, and determines whether the value finally obtained is “1” (don't care) or “0” (non-don't care).
When the determination condition that all the bits of the above-described X-cell data and Y-cell data are “0” is satisfied, that is, when the value finally obtained by the above-described logical operation is “1” (don't care) (YES at Step S110), the data determination circuit 33 sets the register REG3 corresponding to the entry of the write target as a value “1” (an “H” level) indicating a don't care (Step S120). The timing at which a value “1” is set to the register REG3 may be the same as the timing at which data is written in the TCAM cell.
On the contrary, when the above-described determination condition is not satisfied, that is, when the value finally obtained by the above-described logical operation is “0” (non-don't care) (No at Step S110), the data determination circuit 33 sets the register REG3 corresponding to the entry of the write target as a value “0” (an “L” level) indicating a non-don't care (Step S130)
With reference to
Subsequently, in the neighborhood of changing to the cycle T2 (from the second half of the cycle T1 toward the first half of the cycle T2), the write data for the Y cell (128 bits) and the command for directing the write to the Y cell are inputted into the data input circuit 31 and the command input circuit 32, respectively. The data input circuit 31 divides the inputted Y-cell data (128 bits) in units of 32 bits, and outputs each of the Y-cell data (32 bits) after the division to the corresponding sub-array SA and the corresponding data determination circuit 33. The command input circuit 32 outputs the inputted command (write to the Y cell) to each sub-array SA and each data determination circuit 33.
In the cycle T2, each data determination circuit 33 fetches the corresponding Y-cell write data of 32 bits. Each data determination circuit 33 performs the OR operation of all the bits of the X-cell data fetched in the cycle T1, and holds the operation result (“0” or “1”) at the first bit of the 2-bit shift register provided every data determination circuit 33, for example.
In the following cycle T3, the OR operation result of the X-cell data is shifted to the second bit of the shift register. Each data determination circuit 33 performs the OR operation of all the bits of the Y-cell data fetched in the cycle T2, and holds the operation result (“0” or “1”) to the first bit of the above-described shift register. Subsequently, each data determination circuit 33 performs the NOR operation of the first bit and the second bit of the corresponding shift register (that is, the NOR operation of the OR operation result of the X-cell data obtained in the cycle T2 and the OR operation result of the Y-cell data obtained in the cycle T3 is further performed). When the final result of the above logical operation is “1”, it turns out that the whole bits of the 32-bit X-cell data and the 32-bit Y-cell data are “0”, that is, all the bits of the 32-bit write data are a don't care.
In the following cycle T4, the data determination circuit 33 outputs the NOR operation result to each register REG3 of the corresponding sub-array SA, as the register data reg_data. The data determination circuit 33 activates (sets to an “H” level) a register write signal reg_w_sig to be supplied to the register REG3 provided in the match amplifier MA corresponding to a write target entry, at a negative edge of the clock signal clk in the cycle T4. As a result, when all the values of the TCAM cell of the write target entry are a don't care, “1” (an “H” level) is set to the register REG3, otherwise (in the case of a non-don't care), “0” (an “L” level) is set to the register REG3. The reason for generating the register write signal reg_w_sig at the negative edge of the clock signal clk is for fully securing the setup time and the hold time.
[A Modified Example of the Match Amplifier]
Specifically, the match amplifier MA illustrated in
The register REG2 is set at an “L” level (defined as “0” in the present description), when the corresponding row of the sub-array is an invalid entry, and is set at an “H” level (defined as “1” in the present description) when the corresponding raw is a valid entry. The register REG2 is necessary only to be provided corresponding to the match amplifier MA for every row of the sub-array SA; accordingly, the register REG2 does not necessarily need to be provided inside the match amplifier MA as illustrated in
The AND gate 76 outputs the AND operation result of a control signal val_ent outputted from the register REG2 and an output signal of the logic gate 75, as an output signal mo of the match amplifier MA. Therefore, when the setting value of the register REG1 is “1” (don't care), or when the setting value of the register REG2 is “0” (invalid) even if the setting value of the register REG3 is “1” (don't care), priority is given to the invalid setup of the register REG2; accordingly, it is possible to set the output signal mo of the match amplifier MA at an “L” level (miss).
The OR gate 82 performs the OR operation of the control signal dnc_hit outputted from the register REG3 and a value obtained by inverting the logical level of the control signal val_ent outputted from the register REG2 with the inverter 81.
The OR gate 77 performs the OR operation of the output value of the OR gate 82 and the match line precharge signal mlpre_n, and outputs the operation result to the gate of the P-channel MOS transistor 70. Therefore, when the control signal dnc_hit according to the setting value of the register REG3 is at an “H” level (don't care), and/or when the control signal val ent according to the setting value of the register REG2 is at an “L” level (invalid), the MOS transistor 70 is fixed to an OFF state; accordingly, the precharge of the match line ML does not take place.
The AND gate 78 performs the AND operation of a value obtained by inverting the logical level of the output value of the OR gate 82 with the inverter 79 and the match-amplifier enable signal mae. The AND operation result of the AND gate 78 and a signal obtained by inverting the logical level of the AND operation result with the inverter 73 are supplied to the driving power supply nodes of the inverters 71 and 72. Therefore, when the control signal dnc_hit according to the setting value of the register REG3 is at an “H” level (don't care), and/or when the control signal val_ent according to the setting value of the register REG2 is at an “L” level (invalid), the inverter 71 becomes in a non-operating state, and the inverter 72 becomes in an operating state; accordingly, the potential of the match line ML is not outputted to the subsequent-stage circuit and the potential of the match line ML is not latched.
The configuration of other elements of
In this way, the search result is obvious (as a miss) also when the row corresponding to the match amplifier MA is an invalid entry. Accordingly, the precharge operation of the match line ML is stopped and the circuit operation of the match amplifier MA is stopped. In this case, the output signal of the match amplifier MA is fixed to an “L” level (miss) and the normal search result is outputted.
It is also possible to adopt a modified example in which the inverter 81 and the OR gate 82 in
[The Effect of Embodiment 3]
As described above, even when the data of all the cells in the sub-array is not a don't care, when the data of all the cells includes a row of a don't care (hereinafter called “a don't-care entry”) or the invalid entry in which data is not set, the search result of the row concerned is obvious. In such a case, the precharge operation of the match line ML of the row concerned (the don't-care entry or the invalid entry) is stopped and the circuit operation of the match amplifier MA is stopped. Accordingly, it is possible to reduce the power consumption of the TCAM device. In addition, it is possible to perform the normal search operation, by fixing the output signal from the match amplifier MA corresponding to the don't-care entry at an “H” level (hit), and by fixing the output signal from the match amplifier MA corresponding to the invalid entry at an “L” level (miss).
According to the TCAM device according to Embodiment 3, it is possible to provide the low power consumption means which is effective when a don't-care entry or an invalid entry are scattered in the sub-array.
[Embodiment 4]
As for a TCAM device according to Embodiment 4, the explanation is made for the case where the register REG1 for stopping the search operation of the whole sub-array, explained in
[The Configuration of a Sub-Array]
The logical product circuit 27 takes the logical product of each of setting values dnc_hit[0]-dnc_hit[m] of the register REG3[0]-REG3[m], provided for every row (every match line ML) of the TCAM cell array 20, and outputs the operation result as a control signal force_hit. The control signal force_hit is inputted into the control logic circuit 24. As explained already, when data of all cells of the corresponding row in the sub-array is a don't care, the register REG3 is set as “1” (“H” level), otherwise the register REG3 is set as “0” (“L” level). Therefore, when data of all cells in the sub-array is a don't care, the control signal force_hit is set at an “H” level (“1”), otherwise the control signal force_hit is set at an “L” level (“0”).
[The Configuration of the Control Logic Circuit]
Furthermore, in
[Effect of Embodiment 4]
According to the above-described configuration, data of all cells in the sub-array is set as a don't care; accordingly, when all registers REG3 provided for every row in the sub-array are set as a don't care, it is possible to stop the search operation of the sub-array automatically. As explained in
As a modified example, it is possible to adopt the configuration in which neither the register REG1 explained in
<Embodiment 5>
[On the Configuration of a Buffer Amplifier Unit]
The control signal force_hit, the match line precharge signal mlpre_n, and the match-amplifier enable signal mae which are outputted from the control logic circuit 24 illustrated in
With reference to
In
[A Modified Example of the Buffer Amplifier Unit]
Specifically, in the buffer amplifier unit illustrated in
The buffer amplifier unit 84 illustrated in
The OR gate 89 outputs the OR operation result of the match line precharge signal mlpre_n and the output signal of the AND gate 88 to the corresponding match amplifiers MA[0]-MA[3] as a local match line precharge signal mlpre_local_n. The AND gate 90 outputs the AND operation result of the match-amplifier enable signal mae and a signal obtained by inverting the logical level of the output signal of the AND gate 88 with the inverter 91, to the corresponding match amplifiers MA[0]-MA[3] as a local match-amplifier enable signal mae_local. The OR gate 92 outputs the OR operation result of the control signal force_hit and the output signal of the AND gate 88 to the corresponding match amplifiers MA[0]-MA[3] as a local control signal force_hit_local.
Therefore, when all the control signals dnc_hit[0]-dnc_hit[3] outputted from th corresponding registers REG3[0]-REG3[3] are at an “H” level (corresponding to “1”) indicating a don't care, the local match line precharge signal mlpre_local_n is fixed to an “H” level, and the local match-amplifier enable signal mae_local is fixed to an “L” level. Furthermore, the local control signal force_hit_local is fixed to an “H” level in this case. Therefore, it is possible to reduce the current consumption otherwise required for the charge and discharge of the wiring for transferring these local control signals. Furthermore, the above-described buffer amplifier unit is the modified circuit of the circuit necessary also in Embodiment 1-Embodiment 4; therefore, the substantial increase in the area hardly arises.
<Embodiment 6>
The register REG1 is for setting up whether the cell data of the whole sub-array is a don't cares (“1”) or a non-don't care (“0”). The register REG2 is for indicating whether the corresponding row is a valid entry (“1”) in which data is written in each TCAM cell, or an invalid entry (“0”) in which data is not written. The register REG3 is for setting up whether all the cell data of the corresponding row are a don't care (“1”) or a non-don't care (“0”).
The write of data to each register may be performed by the dedicated circuit inside the TCAM device for example, the data determination circuit 33 illustrated in
With reference to
With reference to
When writing data in the TCAM cell of a certain row, the value of the register REG2 corresponding to the row concerned is changed from “0” (invalid) to “1” (valid), and, in many cases, the value of register REG3 is changed from “1” (don't care) to “0” (non-don't care). However, when all the cell data of the row concerned are a don't care, the value of the register REG3 is maintained at “1.” At the time when the value of “1” or “0” (that is, except for a don't care) is written in one of the TCAM cells of the sub-array, the value of the register REG1 is changed from “1” (don't care) to “0” (non-don't care).
As a result of performing data write to each register according to the above procedure, as illustrated in
In the sub-array SA[1, 0] in which data has been written in the TCAM cell of some rows, the register REG1 is set to “0” (non-don't care). The registers REG2 and REG3 corresponding to the valid entry in which data has been written are set to “1” (valid) and “0” (non-don't care), respectively. The match amplifier MA corresponding to these rows outputs a signal (an “H” level (match) or an “L” level (miss)) based on the search result.
On the other hand, in the sub-array SA[1, 0], the values of the registers REG2 and REG3 corresponding to the invalid entry in which data has not been written do not change and maintain “0” (invalid) and “1” (don't care) as set in the initial setting, respectively. The match amplifier MA corresponding to these rows outputs a signal at an “L” level (miss) according to the value “0” (invalid) of the register REG2. As for the unused area, the values of the registers REG2 and REG3 are set as “0” (invalid) and “1” (don't care), respectively; accordingly, the precharge operation of the match line ML is stopped and the circuit operation of the match amplifier MA is stopped. Accordingly, it is possible to reduce the power consumption of the TCAM device.
In the sub-array SA[2, 0] in which data is not written in all the TCAM cells, the values of registers REG1, REG2, and REG3 do not change, maintaining the values “1” (don't care), “0” (invalid), and “1” (don't care) as set in the initial setting, respectively. The match amplifier MA corresponding to each row outputs a signal at an “L” level (miss) according to the value “0” (invalid) of the register REG2. Due to the value of register REG1 being set as “1” (don't care), the search operation of the sub-array SA[2, 0] can be stopped (that is, the precharge of the match line ML, the circuit operation of the match amplifier MA, and the search line driver 22 can be stopped). Accordingly, it is possible to reduce the consumption current.
In this way, it is possible to set the value of each register efficiently and easily by making initial setting of the value of each of the registers REG1, REG2, and REG3, and by changing the value of each of the registers REG1, REG2, and REG3 according to the value of write data at the time of writing data to the TCAM cell.
When the match amplifier MA is comprised as illustrated in
<Embodiment 7>
The low power consumption technology of the TCAM device explained in Embodiment 1-Embodiment 6 described above can be applied only when all the TCAM cells coupled to the match line ML of each sub-array are set as a don't care. Accordingly, even in a case where a comparatively large number of TCAM cells set as a don't care are continuously located, if these TCAM cells extend across two match lines, and if the TCAM cell set as “1” or “0” is included in each match line, it is impossible to apply the low power consumption technology described above.
In Embodiment 7 the above-described low power consumption technology can be applied in cases such as described above, by changing the arrangement of the TCAM cell data. Hereinafter, the detailed explanation is made with reference to drawings. The bit width of the input data and the number of divisions of the input data, employed by the following explanation, are an example and are not restricted to this example.
Here, when the array conversion of data is not performed, it is assumed, as illustrated in
The example of
With reference to
The data array conversion switch 110 changes the arrangement order of the input data din [0:127] (write data and search data) in accordance with the rule determined in advance. The data array conversion switch 110 inputs the input data after changing the arrangement order into the data input circuits 31[0]-31 [3] of the TCAM device 100. In the case of
In the case of the arrangement of the TCAM data illustrated in
Therefore, for example, all the data of the portion of the bit numbers 26-31 and all the data of the portion of the bit numbers 58-63 are changed using the data array conversion switch illustrated in
As described above, Embodiment 7 discloses the technology which enables the realization of the low power consumption, in the case where the area set as a don't care with the data width more than the bit width of a sub-array exists regarding all the entries of the TCAM device except an invalid entry. In this case even when all the TCAM cells coupled to the match line of the sub-array are not set as a don't care, it is possible to apply the low power consumption technology explained in the embodiments described so far, by changing the data array according to the bit number corresponding to each match line. Therefore, in order to build the search system of low power consumption, it is desirable to open to a user the bit number to which each match line corresponds, in the specifications, for example.
In the embodiment described above, the data array is changed for all the entries of the TCAM device. However, by providing a switching circuit for changing the data array in every sub-array SA, it is also possible to change the data array in units of entries belonging to the sub-array.
<Embodiment 8>
In Embodiment 1-Embodiment 7, all the sub-arrays perform the search operation with the almost same timing, and the priority encoder outputs the search result based on the output signal of each sub-array. Embodiment 8 discloses an example in which multiple sub-arrays arranged in the row direction (accordingly corresponding to a common entry) perform search sequentially in a pipeline system. In this case, each sub-array starts the search operation after the end of the search operation of the sub-array in the respective previous stage.
As illustrated in
Specifically, the match amplifier MA illustrated in
The D flip-flop 83 holds the output signal mo pre of the match amplifier MA of the corresponding row of the sub-array in the previous stage (the search result in the preceding cycle). However, as for the sub-array SA_0 (that is, i=0) which performs the search operation at the beginning of the search period, the power supply potential VDD is inputted in replace of the output signal of the match amplifier MA of the corresponding row in the previous stage.
The signal inputted into the gate of the P-channel MOS transistor 70 in the circuit before the change as illustrated in
Accordingly, when the output signal mo_pre of the above-described D flip-flop 83 (the search result in the preceding cycle) is at an “L” level (miss), the signal of “H” level is inputted into the gate of the MOS transistor 70. As a result, the MOS transistor 70 becomes OFF at all times to stop the precharge of the match line ML.
The AND gate 26 performs an AND operation of the output signal mo pre of the above-described D flip-flop 83 (the search result in the preceding cycle) and the output signal mo_now in the case of the match amplifier MA of the configuration before the change illustrated in
Accordingly, when the output signal mo_pre of the above-described D flip-flop 83 (the search result of the corresponding row in the preceding cycle) is at an “L” level (miss), the output signal of the AND gate 26 (that is, the output signal mo of the match amplifier MA) becomes at an “L” level (miss). The other elements illustrated in
In the first cycle, the sub-array SA_0 performs the search operation. The search result (“1” in the case of a hit and “0” in the case of a miss) of each entry is stored in the D flip-flop 83 of the corresponding row of the match amplifier unit 23 of the sub-array SA_1 in the next stage. When “0” is stored in the D flip-flop 83 as explained in
In the second cycle, the search operation is usually performed only for the row which has become a hit in the search operation of the sub-array SA_0 in the preceding stage among the rows of the sub-array SA_1. However, in the case of
In the third cycle, the search operation is performed only for the row into which the signal indicative of a hit is inputted from the sub-array SA_1, among the rows of the sub-array SA_2. The match line precharge is stopped for the row in which “0” is stored in the D flip-flop 83. For the row of which the search result has been a hit in the sub-array SA_2, “1” is stored in the corresponding D flip-flop 83 of the match amplifier unit 23 of the sub-array SA_3 in the next stage. “0” is stored in the D flip-flop 83 of the other rows of the sub-array SA_3.
In the fourth cycle, the search operation is performed for the TCAM cell array of the sub-array SA_3. In this case, the search operation is performed for the row into which a signal indicative of a hit is inputted from the sub-array SA_2 in the preceding stage, except for the rows corresponding to the match lines 220 and 221. Since all the TCAM cells coupled to the match lines 220 and 221 are set as a don't care, the precharge of these match lines 220 and 221 and the circuit operation of the corresponding match amplifier MA are stopped, by setting “1” (don't care) to the register REG3. From the match amplifier MA coupled to the match lines 220 and 221, a signal indicative of a hit is outputted to the priority encoder 30 automatically. The search result is outputted to the priority encoder 30 also from the match amplifier MA of the other rows of which the search operation has been performed.
In this way, in Embodiment 8, in combination with the low power consumption technology explained in Embodiment 1-Embodiment 7, multiple :sub-arrays arranged in the row direction are searched sequentially in the pipeline system, and the search operation is performed only for the entry which has become a hit in the preceding cycle. Accordingly, it is possible to reduce the power consumption.
As described above, the invention accomplished by the present inventors has been concretely explained based on the embodiments. However, it cannot be overemphasized that the present invention is not restricted to the embodiments as described above, and it can be changed variously in the range which does not deviate from the gist.
Claims
1. A semiconductor device comprising:
- sub-arrays each including TCAM (Ternary Content Addressable Memory) cells arranged in rows and columns, the each sub-array being configured to allow all of its TCAM cells to have a don't care value,
- wherein each of the sub-arrays searches a match to a corresponding part of inputted search data among pieces of data stored in the TCAM cells, and outputs a search result indicative of a match or a mismatch for every row of the TCAM cells, and
- wherein one of the sub-arrays, when a first control signal indicating that all the TCAM cells of the one sub-array have the dont care value is activated, outputs the search result indicative of a match for every row of the TCAM cells without searching all the TCAM cells of the one of the sub-arrays.
2. The semiconductor device according to claim 1,
- wherein each of the sub-arrays comprises: match lines each provided in a row of the TCAM cells and coupled to each of TCAM cells of the corresponding row; search lines each provided in a column of the TCAM cells; a search line driver to supply the corresponding part of the search data to the search lines at the time of search; match amplifiers respectively corresponding to the match lines, each match amplifier outputting a search result according to a potential of the corresponding match line at the time of search; precharge circuits respectively corresponding to the match lines and each precharge circuit precharging the corresponding match line at the time of search; and a control logic circuit,
- wherein when the first control signal is activated, the control logic circuit controls the search line driver and the precharge circuits not to operate, and each of the match amplifiers outputs the search result indicative of a match irrespective of the potential of the corresponding match line.
3. The semiconductor device according to claim 2, wherein each of the sub-arrays comprises a first register to output the first control signal.
4. The semiconductor device according to claim 3,
- wherein each sub-array comprises second registers, provided for every row of the TCAM cells, to output a second control signal, and
- wherein when the corresponding second control signal is activated, the match amplifier outputs the search result indicative of a mismatch, even when the first control signal is activated.
5. The semiconductor device according to claim 3,
- wherein each sub-array comprises third registers, provided for every row of the TCAM cells, to output a third control signal,
- wherein when the corresponding third control signal is activated, each of the precharge circuits does not precharge the corresponding match line, even when the first control signal is not activated, and
- wherein when the corresponding third control signal is activated, each of the match amplifiers outputs the search result indicative of a match irrespective of the potential of the corresponding match line, even when the first control signal is not activated.
6. The semiconductor device according to claim 3,
- wherein each of the sub-arrays comprises:
- second registers provided for the TCAM cell array, each second register outputting a second control signal; and
- third registers provided for the TCAM cell array, and each third register outputting a third control signal,
- wherein when at least one of the corresponding second control signal and the third control signal is activated, each of the precharge circuits does not precharge the corresponding match line, even when the first control signal is not activated,
- wherein when the corresponding second control signal is not activated but the corresponding third control signal is activated, each of the match amplifiers outputs the detection result indicative of a match irrespective of the potential of the corresponding match line, even when the first control signal is not activated, and
- wherein when the corresponding second control signal is activated, each of the match amplifiers outputs the detection result indicative of a mismatch irrespective of the potential of the corresponding match line, even when the first control signal or the corresponding second control signal is activated.
7. The semiconductor device according to claim 2,
- wherein the TCAM cells of each sub-array is divided into a first cell array and a second cell array which are arranged in the column direction, and
- wherein the search line driver comprises:
- a first driver provided next to the first cell array and to supply a corresponding part of the search data to the first cell array; and
- a second driver provided next to the second cell array and to supply a corresponding part of the search data to the second cell array.
8. The semiconductor device according to claim 5, further comprising:
- a data determination circuit to determine existence of a specific row in which a don't care value is written in all the TCAM cells coupled to a common match line, when writing data in every row of the TCAM cell array configuring each of the sub-arrays,
- wherein the data determination circuit sets up a value of the third register corresponding to the specific row so as to activate the third control signal corresponding to the specific row.
9. The semiconductor device according to claim 2,
- wherein each of the sub-arrays further comprises:
- third registers provided for every row of the TCAM cell array, each to output a third control signal; and
- a logic circuit to generate and to output the first control signal when all of the third control signals respectively outputted from the third registers are activated.
10. The semiconductor device according to claim 5,
- wherein the control logic circuit generates a precharge enable signal to control operation of each of the precharge circuits,
- wherein each of the sub-arrays further comprises:
- buffer amplifier units provided every several rows of the TCAM cell array, each to shape the precharge enable signal and the first control signal and to supply the shaped precharge enable signal and the shaped first control signal respectively to the precharge circuit and the match amplifier circuit corresponding to the rows, and
- wherein when all the third control signals outputted by the third register provided in the corresponding rows are activated, each of the buffer amplifier units controls corresponding one of the precharge circuits not to operate, by activating the shaped first control signal to be outputted and by deactivating the shaped precharge enable signal to be outputted.
11. The semiconductor device according to claim 4, wherein, in the state where no data is written in any of the TCAM cells of the sub-arrays after supplying the power to the semiconductor device, initial setting of the values of each of the first registers and each of the second registers is performed in each sub-array to activate all of the first control signal and the second control signals.
12. The semiconductor device according to claim 5, wherein, in the state where no data is written in any of the TCAM cells of the sub-arrays after supplying the power to the semiconductor device, initial setting of the values of each of the first registers and each of the third registers is performed in each sub-array to activate all of the first control signal and the third control signals.
13. The semiconductor device according to claim 6,
- wherein, in the state where no data is written in any of the TCAM cells of the sub-arrays after supplying the power to the semiconductor device, initial setting of the values of each of the first registers and each of the second registers and each of the third registers is performed in each of sub-array to activate all of the first control signal, the second control signals, and the third control signals.
14. The semiconductor device according to claim 1, further comprising:
- a data array changing circuit to change an arrangement order of write data and an arrangement order of the search data to the TCAM cells of each of the sub-arrays, in accordance with a rule.
15. The semiconductor device according to claim 2,
- wherein the sub-arrays mutually arranged in a row direction and corresponding to a common entry perform searching sequentially in a pipeline system,
- wherein, except for the sub-array to perform searching in the first stage, each of the sub-arrays comprises D flip-flops provided for every row of the TCAM cell array and each to store the search result of the corresponding row of the sub-array in the preceding stage,
- wherein in each of the sub-arrays provided with the D flip-flops, when the search result indicative of a mismatch is stored in the corresponding D flip-flop, each of the precharge circuits does not precharge the corresponding match line, and
- wherein in each of the sub-arrays provided with the D flip-flops, when the search result indicative of a mismatch is stored in the corresponding D flip-flop, each of the match amplifier outputs the search result indicative of a mismatch, even when the first control signal is activated.
16. The semiconductor device according to claim 1, further comprising:
- a priority encoder to output the search result of the search data, based on the search result outputted from the sub-arrays.
17. A semiconductor device comprising:
- sub-arrays,
- wherein each of the sub-arrays comprises: a TCAM (Ternary Content Addressable Memory) cells arranged in rows and columns; match lines each provided in a row of the TCAM cells and coupled to each of TCAM cells of the corresponding row; search lines each provided in a column of the TCAM cells; a search line driver to supply a corresponding part of inputted search data to the search lines at the time of search; match amplifiers respectively corresponding to the match lines, each match amplifier outputting a search result of whether the corresponding part of the search data matches write data of the TCAM cells coupled to the corresponding match line, according to a potential of the corresponding match line, at the time of search; precharge circuits respectively corresponding to the match lines, each precharge circuit precharging the corresponding match line at the time of search; and registers provided for every row of the TCAM cells, each register to output a control signal,
- wherein each of the precharge circuit does not precharge the corresponding match line, when the corresponding control signal indicates that a dont care value is stored in all of the TCAM cells coupled to the corresponding match line,
- wherein each of the match amplifier outputs the search result indicative of a match irrespective of the potential of the corresponding match line, when the corresponding control signal indicates that the dont care value is stored in all of the TCAM cells coupled to the corresponding match line, and
- wherein the semiconductor device further comprises a priority encoder to output the search result of the search data, based on the search result outputted from each of the sub-arrays.
6731526 | May 4, 2004 | Inoue |
8441828 | May 14, 2013 | Watanabe |
20110216569 | September 8, 2011 | Akiyama |
20130258739 | October 3, 2013 | Kishida |
2003-272386 | September 2003 | JP |
- Hisatada Miyatake et al., “A Design for High-Speed Low-Power CMOS Fully Parallel Content-Addressable Memory Macros”, IEEE Journal of Solid-State Circuits, vol. 36, No. 6, Jun. 2001, pp. 956-968.
Type: Grant
Filed: Aug 3, 2016
Date of Patent: Nov 21, 2017
Patent Publication Number: 20170062051
Assignee: RENESAS ELECTRONICS CORPORATION (Tokyo)
Inventors: Naoya Watanabe (Tokyo), Futoshi Igaue (Tokyo)
Primary Examiner: Connie Yoha
Application Number: 15/227,161
International Classification: G11C 15/00 (20060101); G11C 15/04 (20060101);