Method and Apparatus for Reducing Power Consumption in a Content Addressable Memory

Information

  • Patent Application
  • 20080031033
  • Publication Number
    20080031033
  • Date Filed
    August 04, 2006
    17 years ago
  • Date Published
    February 07, 2008
    16 years ago
Abstract
Power consumption in a multi-level hierarchical Content Addressable Memory (CAM) circuit is reduced without adversely impacting performance. According to one embodiment of a multi-level hierarchical CAM circuit, the CAM circuit comprises a plurality of lower-level match lines, a plurality of higher-level match lines and match line restoration circuitry. The lower-level match lines are configured to be restored to a pre-evaluation state during a pre-evaluation period. The higher-level match lines are configured to capture an evaluation state of respective groups of one or more of the lower-level match lines during an evaluation period and to be restored to a pre-evaluation state during the pre-evaluation period. The match line restoration circuitry is configured to prevent at least one of the lower-level match lines from being restored to the pre-evaluation state responsive to corresponding enable information, e.g., one or more bits indicating whether match line search results are to be utilized.
Description

BRIEF DESCRIPTION OF DRAWINGS


FIG. 1 is a partial block diagram illustrating an embodiment of a multi-level hierarchical Content Addressable Memory (CAM) circuit having match line coupling circuitry that reduces power consumption.



FIG. 2 is a logic flow diagram illustrating an embodiment of program logic for reducing power consumption in a multi-level hierarchical CAM circuit.



FIG. 3 is a block diagram illustrating one embodiment of match line coupling circuitry included in a multi-level hierarchical CAM.



FIG. 4 is a block diagram illustrating an embodiment of a microprocessor including CAM match line coupling circuitry.



FIG. 5 is a block diagram illustrating another embodiment of match line coupling circuitry included in a multi-level hierarchical CAM.





DETAILED DESCRIPTION


FIG. 1 partially illustrates an embodiment of a multi-level hierarchical Content Addressable Memory (CAM) circuit 10 that reduces power consumption during CAM operations. The CAM circuit 10 has multiple memory cells 12 such as binary or ternary CAM cells for storing data. The CAM cells 12 are arranged in groups 14. Each CAM cell 12 in a group 14 is coupled to a Local Match Line (LML). Circuitry 16 included in the CAM circuit 10 couples related LMLs to a higher-level match line, e.g., LML0 through LMLn are coupled to a Global Match Line (GML0) in FIG. 1. In one embodiment, related LMLs are directly coupled to a GML via the match line coupling circuitry 16. According to this embodiment, the CAM circuit 10 comprises two hierarchical levels of match lines (local and global match lines). In another embodiment, related LMLs are coupled to an Intermediary Match Line (IML). Related IMLs are then directly or indirectly coupled to a corresponding GML. According to this embodiment, the CAM circuit 10 comprises more than two hierarchical levels of match lines (LMLs, at least one level of IMLs, and GMLs).


Regardless of the number of match line levels, the match line coupling circuitry 16 comprises match line restoration circuitry 18 and match line decoupling circuitry 20. For ease of explanation only, the match line coupling circuitry 16 is next described with reference to coupling LMLs to GMLs. However, those skilled in the art will readily recognize that the coupling circuitry 16 described herein may couple any hierarchically lower level of match lines to a higher level match line.


With this in mind, the match line restoration circuitry 18 determines whether particular LMLs are to be restored to a pre-evaluation state after a CAM search operation. That is, not all LMLs may be of interest during a particular CAM search operation. For example, the content one or more CAM entries (not shown) or portions of CAM entries may be marked as invalid or masked during evaluation. LMLs corresponding to these entries or partial entries are not of interest. Search results provided by LMLs not of interest are conventionally ignored or discarded during a CAM search operation. Enable information, e.g., one or more valid or masking bits associated with each CAM entry is provided to the match line restoration circuitry 18 for indicating which LMLs are not of interest. In one embodiment, the enable information directly indicates which match lines are not of interest. In another embodiment, the enable information indirectly indicates which match lines are not of interest, e.g., by identifying match lines of interest. Regardless, the match line restoration circuitry 18 uses the enable information to identify the match lines that will be ignored during a CAM search operation.


If a particular match line restoration circuit 18 determines that its corresponding LMLs are not of interest, it prevents those LMLs from being restored to a pre-evaluation state, essentially disabling the LMLs. In one embodiment, the match line restoration circuit 18 prevents the LMLs from being pre-charged. In another embodiment, the match line restoration circuit 18 prevents the LMLs from being pre-discharged. Because the search results associated with these LMLs are not of interest, preventing their restoration to a pre-evaluation state reduces power consumption without adversely affecting operation of the CAM circuit 10. The enable information used by the match line restoration circuitry 18 may be stored within the CAM circuit 10, e.g., as one or more valid bits included in each entry in the CAM circuit 10, or may be provided to the CAM circuit 10.


The enable information is also used by the match line decoupling circuitry 20. The match line decoupling circuitry 20 uses the enable information to prevent LMLs not of interest from affecting their corresponding GMLs. Decoupling an LML not of interest from its GML ensures that the LML will not affect the state of its GML. Instead, only enabled LMLs coupled to the GML may affect the state of the GML, e.g., by discharging it. This prevents unstable CAM circuit 10 behavior while reducing power consumption.


In one embodiment, the match line decoupling circuitry 20 prevents a group of LMLs that have been disabled by the match line restoration circuitry 18 from affecting the state of the GML to which they are coupled. If the enable information indicates that a group of LMLs associated with a particular GML are to be ignored during a CAM search operation, then the match line decoupling circuitry 20 decouples the group of LMLs from that GML. As such, the match line decoupling circuitry 20 prevents individual groups of LMLs from affecting the state of corresponding GMLs when the LMLs are not of interest.


The following is a non-limiting example based on the CAM circuit 10 shown in FIG. 1 for demonstrating how the match line restoration and decoupling circuitry 18, 20 functions during a CAM search operation. During a pre-evaluation period of the CAM search operation, the CAM circuit 10 acquires match line enable information, as illustrated by Step 100 of FIG. 2. In one embodiment, the CAM circuit 10 accesses a location in each entry of the CAM circuit 10 to acquire a corresponding valid bit that indicates validity of the entries. In the present example, the enable information indicates that all LMLs except for LML1 are of interest. Based on the enable information, the match line restoration circuit 18 associated with LML1 prevents LML1 from being restored to its pre-evaluation state while the other match line restoration circuits 18 enable restoration of their corresponding LMLs, as illustrated by Step 102 of FIG. 2. In addition, the match line decoupling circuit 20 associated with LML1 prevents LML1 from affecting the state of GML0 during the subsequent evaluation period. Thus, the state of GML0 may be affected by each LML except LML1.



FIG. 3 illustrates one embodiment of the match line coupling circuitry 16 included in the CAM circuit 10. The match line coupling circuitry 16 includes an LML precharge circuit (p-FET T1), an inverter (p-FET T2 and n-FET T3), a GML precharge circuit (p-FET T4), and a GML evaluation circuit (n-FETs T5 and T6). The match line coupling circuitry 16 also includes the match line restoration and decoupling circuitry 18, 20. According to this embodiment, the match line restoration circuit 18 comprises a p-FET transistor (T7) coupled between a voltage source (Vdd) and the source nodes of the LML precharge circuit and the inverter. The match line decoupling circuit 20 comprises an n-FET transistor (T8) coupled to one gate input of the GML evaluation circuit. The gates of the match line restoration and decoupling circuits 18, 20 are controlled by an enable signal (LML_ENABLE).


The enable signal indicates whether the LML is of interest or not. When the enable signal is a logic one, it causes pre-charging of the LML to be disabled and causes the LML to be decoupled from its GML. Particularly, if the enable signal indicates that the search results associated with the LML are of interest, the match line restoration circuit 18 is activated (e.g., p-FET transistor T7 is switched on). When activated, the match line restoration circuit 18 enables the LML precharge circuit and the inverter by charging their respective source nodes to a logic one value (Vdd). This enables the LML precharge circuit to pre-charge the LML to a logic one value in response to an active restore signal (RESTORE) during a pre-evaluation period. Unlike some conventional circuit techniques, the match line restoration circuit 18 does not adversely impact performance of the CAM circuit 10 when activated. Particularly, the match line restoration circuit does not add additional capacitance to the output node of the CAM cell (not shown) coupled to the LML when activated. Because the match line restoration circuit 18 is not placed in the active signal path coupling the LML to the output node of the CAM cell, no additional capacitive loading results.


When the LML is of interest, the enable signal also causes the match line decoupling circuit 20 to be deactivated (e.g., n-FET transistor T8 is switched off). When the match line decoupling circuit 20 is deactivated, the state of the GML is affected by the LML. As a result, when the n-FET transistor T6 of the GML evaluation circuit is activated in response to an enabled clock signal (GML_CLK), the state of the LML controls whether the n-FET transistor T5 of the GML evaluation circuit is switched on or off. If the n-FET transistor T5 is switched on, the GML discharges to ground. Conversely, the GML remains unaffected by the LML irrespective of the LML's state when the n-FET transistor T5 is switched off. As a result, the match line decoupling circuit 20 does not affect the GML state when deactivated. Instead, the state of the GML reflects that of only the enabled LMLs.


If the LML is not of interest, the match line restoration circuit 18 is deactivated (e.g., p-FET transistor T7 is switched off). When deactivated, the match line restoration circuit 18 decouples the source nodes of the LML precharge circuit and the inverter from the power source. The LML precharge circuit is unable to pre-charge the LML when the power source is removed from its source node, thus reducing unnecessary power consumption. Further, the LML is disabled when the match line restoration circuit 18 is deactivated.


In addition, the enable signal causes the match line decoupling circuit 20 to be activated when the LML is disabled. The match line decoupling circuit 20 drives the gate input to the n-FET transistor T5 of the GML evaluation circuit to a logic low value (Vss). When the gate input of the n-FET transistor T5 is low, the state of the LML does not affect that of the GML, and thus the LML is decoupled from its GML. Particularly, the n-FET transistor T5 cannot conduct sufficient current when its gate input is low. As such, the GML, which had been pre-charged during a prior non-evaluation period, cannot be discharged by this particular GML evaluation circuit regardless of the LML's state. When activated, the match line decoupling circuit 20 also prevents unpredictable behavior by the CAM circuit 10 by pulling down the gate input of the n-FET transistor T5 of the GML evaluation circuit. If the gate input of the n-FET transistor T5 is not pulled down, the output node of the inverter (lml_sns) could adversely affect the GML state. For example, the output node of the GML's inverter may float or otherwise act unpredictably when the power source has been removed from its source node. The match line decoupling circuit 20 prevents such sporadic behavior from adversely affecting the GML by preventing the LML from affecting the state of the GML when the LML is not of interest.


The match line restoration and decoupling circuitry 18, 20 may be included in or associated with various kinds of memory devices such as caches and buffers. FIG. 4 illustrates one embodiment of a microprocessor 30 having CAM or CAM-like circuitry that includes one or more instances of the match line restoration and decoupling circuitry 18, 20. In more detail, the microprocessor 30 includes an instruction unit 32, one or more execution units 34, a bus interface unit 36, a data cache 38, an instruction cache 40 and a higher-level (L2) cache 42. The instruction unit 32 provides centralized control of instruction flow to the execution units 34. The execution units 34 execute instructions dispatched by the instruction unit 32. The bus interface unit 36 provides a mechanism for transferring data, instructions, addresses, and control signals to and from the microprocessor 30. The data and instruction caches 38, 40 store data and instructions, respectively. The L2 cache 42 provides a high-speed memory buffer between the data and instruction caches 38, 40 and memory (not shown) external to the microprocessor 30.


The caches 38, 40 and 42 have respective Translation Lookaside Buffers (TLBs) 44, 46 and 48 for performing address translation during cache access operations. Each TLB 44, 46 and 48 has one or more instances of the match line restoration and decoupling circuitry 18, 20. Alternatively, a unified TLB (not shown) may perform address translation for the caches 38, 40 and 42. Regardless, the TLBs 44, 46 and 48 are CAM-based in that a virtual address of interest is provided to the TLBs 44, 46 and 48 and the TLBs 44, 46 and 48 yield corresponding hit or miss results in response. In the event of a hit, a physical address is produced corresponding to the virtual address search field. In the event of a miss, a page table transaction occurs.


The TLBs 44, 46 and 48 have entries (not shown) that contain information for use in translating virtual address to physical addresses. In one embodiment, each TLB entry comprises a virtual address field, a corresponding physical address field and a valid bit. If a virtual address search field matches an entry in one of the TLBs 44, 46 and 48, the corresponding physical address field is output. Otherwise, a page table transaction occurs. The valid bit determines whether a particular TLB entry is valid or not. If invalid, the entry contents are ignored or discarded during address translation. Other enable bits such as page-size bits may determine whether corresponding portions of virtual address bits should participate in address translation.



FIG. 5 illustrates one embodiment of the match line coupling circuitry 16 for use in the TLBs 44, 46 and 48. According to this embodiment, a valid bit (VALID) retrieved from a TLB 44, 46 and 48 entry controls operation of the match line restoration and decoupling circuitry 18, 20. When a particular TLB 44, 46 and 48 entry is valid, its valid bit causes corresponding match line restoration circuitry 18 to be enabled. When enabled, the match line restoration circuitry 18 restores its LML to a pre-evaluation state after a TLB search operation. Also, the restoration circuit 18 includes a second p-FET transistor (T9) for pre-charging the corresponding GML when enabled. Conversely, when the valid bit indicates that the entry is invalid, the LML is decoupled from its GML.


According to this embodiment, the LML is decoupled from its GML when the p-FET 10 of the match line decoupling circuitry 10 drives the input to the GML inverter circuit (p-FET T2 and n-FET T3) to a logic low value (Vss). When the match line decoupling circuit 20 drives the inverter input to a logic low state, the LML is effectively decoupled from its GML. That is, the LML no longer has an affect on the state of the GML since the inverter outputs a logic one irrespective of the LML state. By driving the inverter input to a logic low state, the GML discharges when its clock input signal (GML_CLK) is active. When the GML is discharged, it is interpreted as a mismatch. Thus, this embodiment of the coupling circuitry 16 prevents false hits from being processed when a TLB 44, 46 and 48 entry is invalid. Alternatively, the coupling circuitry 16 embodiment illustrated in FIG. 3 may be included in the TLBs 44, 46 and 48 for preventing restoration of invalid LMLs and decoupling invalid LMLs from their corresponding GMLs.


With the above range of variations and applications in mind, it should be understood that the present invention is not limited by the foregoing description, nor is it limited by the accompanying drawings. Instead, the present invention is limited only by the following claims and their legal equivalents.

Claims
  • 1. In a multi-level hierarchical content addressable memory (CAM) circuit, a method of reducing power consumption, comprising: acquiring enable information associated with one or more CAM match lines included in the multi-level hierarchical CAM circuit; andpreventing individual ones of the CAM match lines from being restored to a pre-evaluation state responsive to the enable information.
  • 2. The method of claim 1, wherein the individual ones of the CAM match lines prevented from being restored to the pre-evaluation state comprise at least one of local CAM match lines and intermediary CAM match lines.
  • 3. The method of claim 1, wherein preventing individual ones of the CAM match lines from being restored to a pre-evaluation state responsive to the enable information comprises preventing match line pre-charging.
  • 4. The method of claim 1, wherein preventing individual ones of the CAM match lines from being restored to a pre-evaluation state responsive to the enable information comprises preventing match line pre-discharging.
  • 5. The method of claim 1, wherein preventing individual ones of the CAM match lines from being restored to a pre-evaluation state responsive to the enable information comprises disabling circuitry configured to restore the individual ones of the CAM match lines to their respective pre-evaluation states.
  • 6. The method of claim 1, further comprising preventing individual ones of the CAM match lines, in response to the enable information, from affecting a pre-evaluation state of corresponding higher-level CAM match lines.
  • 7. The method of claim 6, wherein preventing individual ones of the CAM match lines, in response to the enable information, from affecting a pre-evaluation state of corresponding higher-level CAM match lines comprises enabling circuitry configured to decouple individual ones of the CAM match lines from their corresponding higher-level CAM match lines.
  • 8. The method of claim 6, wherein the higher-level CAM match lines comprise at least one of intermediary CAM match lines and global CAM match lines.
  • 9. The method of claim 6, wherein the enable information comprises one or more bits that indicate whether search results associated with individual ones of the CAM match lines are to be utilized.
  • 10. A multi-level hierarchical content addressable memory (CAM) circuit, comprising: a plurality of lower-level match lines configured to be restored to a pre-evaluation state during a pre-evaluation period;a plurality of higher-level match lines configured to capture an evaluation state of respective groups of one or more of the lower-level match lines during an evaluation period and to be restored to a pre-evaluation state during the pre-evaluation period; andmatch line restoration circuitry configured to prevent at least one of the lower-level match lines from being restored to the pre-evaluation state responsive to corresponding enable information.
  • 11. The multi-level hierarchical CAM circuit of claim 10, wherein the match line restoration circuitry is configured to prevent at least one of the lower-level match lines from being restored to the pre-evaluation state responsive to enable information by preventing match line pre-charging.
  • 12. The multi-level hierarchical CAM circuit of claim 10, wherein the match line restoration circuitry is configured to prevent at least one of the lower-level match lines from being restored to the pre-evaluation state responsive to enable information by preventing match line pre-discharging.
  • 13. The multi-level hierarchical CAM circuit of claim 10, wherein the match line restoration circuitry is further configured to prevent one or more intermediary match lines from being restored to a pre-evaluation state responsive to the enable information.
  • 14. The multi-level hierarchical CAM circuit of claim 10, wherein the multi-level hierarchical CAM circuit further comprises match line decoupling circuitry configured to decouple one or more of the lower-level match lines, in response to the enable information, from their corresponding higher-level match lines.
  • 15. The multi-level hierarchical CAM circuit of claim 14, wherein the match line decoupling circuitry is configured to decouple one or more of the lower-level match lines, in response to the enable information, from their corresponding higher-level match lines by preventing individual ones of the lower-level match lines from affecting the pre-evaluation state of their corresponding higher-level match lines.
  • 16. The multi-level hierarchical CAM circuit of claim 15, wherein the match line decoupling circuitry is configured to prevent individual ones of the lower-level match lines from affecting the pre-evaluation state of their corresponding higher-level match lines by preventing individual ones of the lower-level match lines from discharging their corresponding higher-level match lines.
  • 17. The multi-level hierarchical CAM circuit of claim 14, wherein the match line decoupling circuitry is configured to decouple one or more of the lower-level match lines, in response to the enable information, from their corresponding higher-level match lines by decoupling one or more intermediary match lines from the corresponding higher-level match lines.
  • 18. The multi-level hierarchical CAM circuit of claim 14, wherein the enable information comprises one or more bits that indicate whether search results associated with individual ones of the CAM match lines are to be utilized.
  • 19. The multi-level hierarchical CAM circuit of claim 10, wherein the plurality of lower-level match lines comprise local match lines and the plurality of higher-level match lines comprise global match lines.
  • 20. A microprocessor including the multi-level hierarchical CAM circuit as claimed in claim 10.
  • 21. A translation lookaside buffer (TLB) circuit, comprising a multi-level hierarchical content addressable memory (CAM) circuit having a plurality of entries and corresponding match lines, the multi-level hierarchical CAM circuit configured to store enable information associated with the entries, to translate virtual memory addresses to corresponding physical memory addresses, and to prevent individual ones of the match lines from being restored to a pre-evaluation state responsive to the enable information.
  • 22. The TLB circuit of claim 21, wherein the multi-level hierarchical CAM circuit is configured to prevent individual ones of the match lines from being restored to a pre-evaluation state responsive to the enable information by disabling circuitry included in the multi-level hierarchical CAM circuit configured to restore the match lines.
  • 23. The TLB circuit of claim 21, wherein the multi-level hierarchical CAM circuit is further configured to decouple individual ones of the match lines, in response to the enable information, from corresponding higher-level match lines.
  • 24. The TLB circuit of claim 23, wherein the multi-level hierarchical CAM circuit is configured to decouple individual ones of the match lines, in response to the enable information, from corresponding higher-level match lines by enabling circuitry included in the multi-level hierarchical CAM circuit configured to prevent individual ones of the match lines from affecting a pre-evaluation state of their corresponding higher-level match lines.
  • 25. The TLB circuit of claim 23, wherein the multi-level hierarchical CAM circuit is configured to decouple individual ones of the match lines, in response to the enable information, from corresponding higher-level match lines by forcing individual ones of the higher-level match lines to discharge irrespective of a state of corresponding lower-level match lines.
  • 26. A microprocessor including the TLB circuit as claimed in claim 21.