BACKGROUND1. Technical Field
This disclosure relates to memories, and more particularly to wordline driver leakage reduction.
2. Description of the Related Art
Many memory arrays suffer from the effects of current leakage. Typically, aside from the array bit cells, the next largest leakage current contributors are the wordline drivers. Because each wordline driver may be used to drive several bit cells it typically incorporate a large p-type transistor in the final inverter driver stage.
There are conventional techniques to try to reduce the wordline driver leakage. While some of the techniques have provided some reduction in leakage current, they still suffer from drawbacks. For example, one conventional technique uses level shifters to reduce the voltage used to power the peripheral circuits around the wordline drivers. This technique does reduce the leakage current of some of the peripheral circuits, but does not adequately address the leakage problems of the wordline drivers themselves. In addition level shifters increase area. Other approaches may utilize an inverter stage in the wordline driver that may be disabled when not in use. However, using this conventional approach may allow the wordline to inadvertently float to a logic level that could potentially allow data to be corrupted in the bit cells of the array.
SUMMARY OF THE EMBODIMENTSVarious embodiments of a memory including a reduced wordline driver leakage are disclosed. Broadly speaking, a mechanism for reducing leakage current in the wordline driver circuit of a memory is contemplated. The wordline driver includes an inverter with a large p-type transistor. Thus during a low power mode, the voltage of the voltage supply coupled to the wordline circuit is reduced or removed, while the voltage of the voltage supply coupled to the storage array is kept at least at a retention voltage. In addition a p-type transistor is coupled between the array voltage supply and an input to the wordline driver inverter, thereby keeping the output of the wordline driver inverter at a low logic level to prevent inadvertent wordline firing.
In one embodiment, a memory includes a storage array coupled to a first voltage supply, and a number of wordline driver units. Each of the wordline driver units includes an inverter configured to provide a wordline signal to the storage array. The inverter is coupled to a second voltage supply. Each wordline driver unit also includes a p-type retention transistor coupled between the first voltage supply and an input to the inverter. A control unit may provide a control signal to the p-type transistor to provide a path from the first voltage supply to the input of the inverter. The control unit may also reduce the voltage of the second voltage supply during operation in a low power mode.
In one specific implementation, during operation in a low power mode the control unit may reduce the voltage of the second voltage supply to a predetermined voltage below a normal operating voltage. More particularly, the predetermined voltage may be substantially zero volts.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a block diagram of one embodiment of a processor.
FIG. 2 is a block diagram of one embodiment of a portion of a memory including a mechanism to reduce wordline driver leakage.
FIG. 3 is a block diagram of one embodiment of a system.
Specific embodiments are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description are not intended to limit the claims to the particular embodiments disclosed, even where only a single embodiment is described with respect to a particular feature. On the contrary, the intention is to cover all modifications, equivalents and alternatives that would be apparent to a person skilled in the art having the benefit of this disclosure. Examples of features provided in the disclosure are intended to be illustrative rather than restrictive unless stated otherwise.
As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.
Various units, circuits, or other components may be described as “configured to” perform a task or tasks. In such contexts, “configured to” is a broad recitation of structure generally meaning “having circuitry that” performs the task or tasks during operation. As such, the unit/circuit/component can be configured to perform the task even when the unit/circuit/component is not currently on. In general, the circuitry that forms the structure corresponding to “configured to” may include hardware circuits. Similarly, various units/circuits/components may be described as performing a task or tasks, for convenience in the description. Such descriptions should be interpreted as including the phrase “configured to.” Reciting a unit/circuit/component that is configured to perform one or more tasks is expressly intended not to invoke 35 U.S.C. §112, paragraph six, interpretation for that unit/circuit/component.
The scope of the present disclosure includes any feature or combination of features disclosed herein (either explicitly or implicitly), or any generalization thereof, whether or not it mitigates any or all of the problems addressed herein. Accordingly, new claims may be formulated during prosecution of this application (or an application claiming priority thereto) to any such combination of features. In particular, with reference to the appended claims, features from dependent claims may be combined with those of the independent claims and features from respective independent claims may be combined in any appropriate manner and not merely in the specific combinations enumerated in the appended claims.
DETAILED DESCRIPTIONTurning now toFIG. 1, a block diagram of one embodiment of a processor is shown. Theprocessor10 includes an instruction cache (ICache)14 that is coupled to afetch control unit12. The processor also includes adecode unit16 that is coupled to thefetch control unit12 and to aregister file22, which is in turn coupled to anexecution core24. Theexecution core24 is coupled to aninterface unit34, which may be coupled to an external interface of theprocessor10, as desired.
In one embodiment, thefetch control unit12 is configured to provide a program counter address (PC) for fetching from theinstruction cache14. Theinstruction cache14 is configured to provide instructions (with PCs) back to thefetch control unit12 to be fed into thedecode unit16. Thedecode unit16 may generally be configured to decode the instructions into instruction operations (ops) and to provide the decoded ops to theexecution core24. Thedecode unit16 may also provide decoded operands to theregister file22, which may provide operands to theexecution core24. Thedecode unit16 may also be configured to schedule each instruction and provide the correct register values forexecution core24 to use.
Theregister file22 may also receive results fromexecution core24 that are to be written into theregister file22. Accordingly, theregister file22 may generally include any set of registers usable to store operands and results. Thus, theregister file22 may be implemented using a variety of storage types such as flip-flop type storages, random access memory (RAM), and the like.
Theinstruction cache14 may include control logic and memory arrays. The memory arrays may be used to store the cached instructions to be executed byprocessor10 and the associated cache tags.Instruction cache14 may have any capacity and construction (e.g. direct mapped, set associative, fully associative, etc.).Instruction cache14 may include any cache line size.
It is contemplated that theprocessor10 may implement any suitable instruction set architecture (ISA), such as ARM™, PowerPC™, or x86 ISAs, combinations thereof, etc. In some embodiments, theprocessor10 may implement an address translation scheme in which one or more virtual address spaces are made visible to executing software. Memory accesses within the virtual address space are translated to a physical address space corresponding to the actual physical memory available to the system, for example using a set of page tables, segments, or other virtual memory translation schemes. In embodiments that employ address translation,processor10 may store a set of recent and/or frequently used virtual-to-physical address translations in a translation lookaside buffer (TLB), such as instruction TLB (ITLB)30.
Theexecution core24 may perform the various operations (e.g., MOV, ADD, SHIFT, LOAD, STORE, etc.) indicated by each instruction. In the illustrated embodiment, theexecution core24 includesdata cache26, which may be a cache memory for storing data to be processed by theprocessor10 Likeinstruction cache14,data cache26 may have any suitable capacity, construction, or line size (e.g. direct mapped, set associative, fully associative, etc.). Moreover,data cache26 may differ from theinstruction cache14 in any of these details. As withinstruction cache14, in some embodiments,data cache26 may be partially or entirely addressed using physical address bits. Correspondingly, data TLB (DTLB)32 may be provided to cache virtual-to-physical address translations for use in accessingdata cache26 in a manner similar to that described above with respect to ITLB30. It is noted that althoughITLB30 andDTLB32 may perform similar functions, in various embodiments they may be implemented differently. For example, they may store different numbers of translations and/or different translation information.
Interface unit34 may generally include the circuitry for interfacingprocessor10 to other devices on the external interface. The external interface may include any type of interconnect (e.g. bus, packet, etc.). The external interface may be an on-chip interconnect, ifprocessor10 is integrated with one or more other components (e.g. a system on a chip configuration). The external interface may be on off-chip interconnect to external circuitry, ifprocessor10 is not integrated with other components. In various embodiments,processor10 may implement any instruction set architecture.
It is noted that each of the memories embedded within processor10 (e.g.,instruction cache14,data cache26,register file22, etc.) may include wordline driver circuits to access their respective memory arrays. As described in greater detail below in conjunction with the description ofFIG. 2, it may be possible to reduce the leakage current associated with the wordline drivers of the embedded memories ofprocessor10.
Referring toFIG. 2, a block diagram of one embodiment of a portion of a memory including a mechanism to reduce wordline driver leakage is shown. Thememory200 ofFIG. 2 includes astorage array250 that is coupled to an array Vdd voltage supply and to several wordlines designated wl<0>through wl<n>. Thememory200 also includes awordline driver unit240 that is coupled to thestorage array250 via the wl<n> signal path. Thewordline driver unit240 is also coupled to adecode unit235 via address lines ‘a’ and ‘b’ and a Clk signal, and to a peripheral Vdd voltage supply. The memory also includes acontrol unit230 that is coupled to receive a low power indication (e.g., LP1), and to provide the peripheral Vdd and the array Vdd to thewordline driver240 and thestorage array250, respectively. It is noted that although only onewordline driver unit240 is shown, in other embodiments, there may be a separate wordline driver unit for each wordline coupled to thestorage array250. Alternatively, thewordline driver240 may include additional circuitry to generate the additional wordlines wl<0> through wl<2>.
As shown, thedecode unit235 may provide the Clk signal, and the address a and b signals to thewordline driver unit240. It is noted that thewordline driver unit240 is implemented as a dynamic logic gate in the illustrated embodiment. In one embodiment, during normal operation of thememory200, read and write access requests may be processed and the corresponding address information may be provided to thedecode unit235. When the Clk signal is at a logic value of zero, the p-type transistor T1 conducts and allows the input to the driver inverter I2 to be precharged to the peripheral Vdd voltage (referred to as the precharge state). The output of the inverter I2 would then be a logic value of zero, which corresponds to the wordline being off. In this state, the address lines a and b do not matter. In addition, the keeper transistor T5 is conducting due to the logic value of zero at the output of the inverter I2. Thecontrol unit230 is configured to provide a retention enable signal at a logic value of one to turn off retention transistor T8, while turning on transistor T9. With transistors T5 and T9 both conducting, the logic value of one is reinforced at the input to the inverter I2.
However, when the Clk transitions to a logic value of one (referred to as the evaluate state), transistor T1 stops conducting, the transistor T4 conducts, and the inputs to transistors T2 and T3 are evaluated. The precharge voltage is weakly held at the input to the inverter I2 by transistors T5 and T9. If a read or write address corresponds to wordline wl<n>, then the address a and b signals would both be at a logic value of one, which turns on both transistors T2 and T3. This will allow the precharge voltage at the input of the inverter I2 to drain to circuit ground (and overcoming the pull up keeper transistors T5 and T9) through the n-stack including transistors T2, T3, and T4. This causes the output of the inverter I2 to transition to a logic value of one, thereby turning on the wordline wl<n>. If the operation is a read, any data in the bit cells (not shown) within thestorage array250 would be provided to the corresponding bit lines (also not shown). If the operation is a write, write data that is applied to the bit lines would be written into the corresponding bit cells. These precharge and evaluate cycles repeat as long as the Clk signal is active during normal operation.
As mentioned above, the wordline driver circuits may have a large leakage current. As shown inFIG. 2, much of this may be attributed to the typically large p-type transistor T6 of the inverter I2. During operation, current may leak through transistor T6 from the peripheral Vdd to circuit ground when there is a logic value of one at the input of the inverter I2. Thus, to reduce the leakage currents associated with thewordline driver unit240 and the other wordline driver units that are coupled to thestorage array250, the peripheral Vdd may be reduced to zero volts or to some other predetermined voltage value that is less than the nominal operating voltage for the peripheral Vdd. Accordingly, as shown thestorage array250 is coupled to the array Vdd voltage supply and thewordline driver unit240 and thedecoder unit235 are each coupled to the peripheral Vdd voltage supply so that the peripheral Vdd may be reduced independently of the array Vdd. In alternative embodiments, thedecoder unit235 may be coupled to a different Vdd source. Thus, as described further below, during inactivity of thestorage array250 or when the system is going into a low power mode, the voltage to thestorage array250 may be lowered to a voltage that will maintain data in the bit cells, but reduces power consumption, and the peripheral Vdd may be reduced or turned off entirely.
By reducing or turning off the peripheral Vdd, the leakage currents through the p-type transistors in the driver inverter I2 will be reduced, as well as the power consumption savings of turning off the remaining circuits connected to the peripheral Vdd. However, if the peripheral Vdd voltage is simply turned off, it could be possible for the wl<0> signal to float or go to an undesirable logic level. Accordingly, during the retention or low power mode of operation, the retention transistor T8 may be turned on by the retention enable signal provided by thecontrol unit230. The retention transistor T8 may provide the array Vdd to the input of the inverter I2 thereby clamping the wordline output of the inverter I2 to a logic value of zero and preventing inadvertent wordline fluctuations.
In addition, to prevent any sneak paths from the array Vdd to the peripheral Vdd while in the retention or low power mode, the retention enable signal also turns off the transistor T9 through the inverter I1. This blocks the array Vdd voltage at the input of the inverter I2 from “sneaking” back to the peripheral Vdd bus. Similarly, to prevent a sneak path through transistor T1, thedecode unit235 may be configured to drive the Clk signal to a logic value of one and at least one of the address a and b signals to a logic value of zero during the retention or low power mode. Doing so turns off transistor T1, thereby blocking a possible sneak path, and preventing a path through transistors T2 and T3 to circuit ground. In an alternative embodiment, another p-type transistor could be added in series between transistor T1 and the peripheral Vdd, similar to the transistor T9, and controlled by the same inverted retention enable signal.
In one embodiment, thecontrol unit230 may be configured to receive a low power mode indication from logic external to thememory200. For example, a power management unit, or the like, may send the low power mode indication (e.g., LPI1) in preparation for entering the processor or the system into a low power mode. In response to receiving the low power mode indication, thecontrol unit230 may perform one or more of the following operations to enter into the low power mode: notify thedecode unit235 and reduce or remove the peripheral Vdd, assert the retention enable signal, and reduce the array Vdd. In response to being notified, thedecode unit235 may freeze the Clk signal to a logic value of one and drive at least one of the address a or address b signals to a logic value of zero.
In another embodiment, thecontrol unit230 may monitor the utilization of thememory200 using any of a variety of methods. If thecontrol unit230 determines that thememory200 is not being used, the control unit may perform the above operations to enter the low power mode.
It is noted that in the embodiment shown inFIG. 2, thememory200 may correspond to any of the embedded memories such as theregister file22,instruction cache14, anddata cache26 ofFIG. 1. However, it is contemplated that in other embodiments, thememory200 may be any type of memory that uses wordline drivers.
Turning toFIG. 3, a block diagram of one embodiment of a system is shown. Thesystem300 includes at least one instance of anintegrated circuit310 coupled to one ormore peripherals307 and anexternal system memory305. Thesystem300 also includes apower supply301 that may provide one or more supply voltages to theintegrated circuit310 as well as one or more supply voltages to thememory305 and/or theperipherals307.
In one embodiment, theintegrated circuit310 be a system on a chip (SOC) including one or more instances of a processor and various other circuitry such as a memory controller, video and/or audio processing circuitry, on-chip peripherals and/or peripheral interfaces to couple to off-chip peripherals, etc. More particularly, theintegrated circuit310 may include one or more instances of a processor such asprocessor10 fromFIG. 1. As such, theintegrated circuit310 may include one or more instances of an embedded memory such asmemory200 ofFIG. 2. Accordingly, embodiments that include thememory200 include the wordline driver leakage reduction mechanism described above in conjunction with the description ofFIG. 2.
Theperipherals307 may include any desired circuitry, depending on the type of system. For example, in one embodiment, thesystem300 may be included in a mobile device (e.g., personal digital assistant (PDA), smart phone, etc.) and theperipherals307 may include devices for various types of wireless communication, such as WiFi, Bluetooth, cellular, global positioning system, etc. Theperipherals307 may also include additional storage, including various types of RAM storage, solid-state storage, or disk storage. As such, theperipherals307 may also include RAM that includes the wordline driver leakage reduction mechanism described above. Theperipherals307 may include user interface devices such as a display screen, including touch display screens or multitouch display screens, keyboard or other input devices, microphones, speakers, etc. In other embodiments, thesystem300 may be included in any type of computing system (e.g. desktop personal computer, laptop, workstation, net top etc.).
Theexternal system memory305 may be representative of any type of memory. For example, theexternal memory305 may be in the DRAM family such as synchronous DRAM (SDRAM), double data rate (DDR, DDR2, DDR3, etc.), or any low power version thereof. However,external memory305 may also be implemented in SDRAM, static RAM (SRAM), or other types of RAM, etc. Accordingly,external system memory305 may also include the wordline driver leakage reduction mechanism described above in conjunction with the description ofFIG. 2.
Although the embodiments above have been described in considerable detail, numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.