The present disclosure relates to microprocessor technology, and more specifically, though not exclusively, to voltage level translation with latch functionality.
In electronic microprocessors and other integrated circuits, multiple supply voltage domain (MSVD) techniques can be used to partition the microprocessor into different voltage domains or islands, enabling each island to operate at a different rail voltage to meet its timing demands. These configurations can use voltage level translators to transfer signals from lower to higher voltage islands, and vice versa. For example, voltage level translators can be used to translate between voltage domains when exchanging handshake signals between two logic units of a microprocessor operating at different voltages. MSVD techniques are becoming more and more common in modern microprocessor systems, which can include many different processor cores operating at different voltage levels. These techniques are also becoming more common in modern system on chip (SoC) systems, in which multiple processors and other components can be linked on a single chip.
Embodiments described herein include a microprocessor. The microprocessor includes a first portion operating in a first voltage domain, a second portion operating in a second voltage domain, and a circuit configured to translate a signal from the first voltage domain to the second voltage domain and to act as a latch for the signal. The circuit includes a regenerative feedback loop, including an input node, an output node, a first inverter, and a first transistor. The input node is coupled to the first transistor and an input of the first inverter, and the output node is coupled to an output of the first inverter and a gate of the first transistor.
Embodiments described herein further include a combined voltage translator and latch circuit configured to translate a signal from a first voltage domain in an integrated circuit to a second voltage domain in the integrated circuit and to act as a latch for the signal. The circuit includes a regenerative feedback loop, including an input node an output node, a first inverter, and a first transistor. The input node is coupled to the first transistor and an input of the first inverter. The output node is coupled to an output of the first inverter and a gate of the first transistor.
Embodiments described herein further include a method for translating between voltage domains in a microprocessor. The method includes translating a signal from a first voltage domain in a first portion of the microprocessor to a second voltage domain in a second portion of the microprocessor, using a circuit. The method further includes latching the signal at the second voltage domain, using the circuit. The circuit includes a regenerative feedback loop, including an input node, an output node, a first inverter, and a first transistor. The input node is coupled to the first transistor and an input of the first inverter. The output node is coupled to an output of the first inverter and a gate of the first transistor.
As noted above, multiple supply voltage domain (MSVD) techniques can be used to partition the microprocessor into different voltage domains or islands. This can be done for single core systems, multiple core systems, system on chip (SoC) systems, and other integrated circuits. These configurations can use voltage level translators to transfer signals from lower to higher voltage islands, and vice versa. For example, a voltage level translator can be used to translate a handshake signal transmitted between voltage domains operating at different rail voltages. Further, such systems can use a latch to prevent unwanted data or signal intrusion, due to noise, after the relevant communication between voltage domains has ended. The latch can help avoid reception of erroneous signals and thereby prevent the receiver from malfunctioning.
In some systems, translation between voltage domains is done using a system including 1) a driver within the transmitter unit, 2) a voltage level translator on the channel and 3) a latch inside the receiver unit. The voltage level translator translates between voltage domains, while a separate latch helps avoid reception of erroneous signals by the receiver. But there can be significant drawbacks to this approach. For example, this can result in a large delay in transferring the signal from the transmitter logic unit to the receiver unit. Further, this can result in a larger circuit area and higher power consumption, stemming from a separate voltage level translator and latch. As a further example, this technique can result in meta-stability (e.g., a voltage level between logical “0” and “1”) in the receiver latch.
Some, or all, of these drawbacks can be avoided through an improved solution, according to one or more embodiments herein. In particular, according to some embodiments, the functionalities of a voltage level translator and latch can be combined into a single innovative circuit, rather than having separate voltage level and latch circuits. Among other potential advantages, this can reduce the signal transfer delay from a transmitter logic unit to the receiver logic unit, decrease the circuit area used by blending a voltage level translator and latch into one single circuit, reduce power consumption, and reduce meta-stability problems.
For example, the voltage domain 210 includes a driver 214. The driver 214 drives a data signal DVDDA at rail voltage VDDA. The voltage level translator 220 receives the data signal DYDDA and converts it to a data signal DVDDB representing the same data, but now operating at rail voltage VDDB. In an embodiment, the voltage level translator 220 takes both rail voltage levels as input: VDDA and VDDB. The voltage domain 250 includes a latch 260 and a driver 290. In an embodiment, the voltage level translator 220 provides the data signal DVDDB to the latch 260, which latches the data value QVDDB and provides it to the driver 290.
The transistor 224 is further coupled to the gates of two additional transistors: a p-channel transistor 234 and an n-channel transistor 236. The p-channel transistor 234 is further coupled to VDDB. The output data signal DVDDB is coupled to the transistors 234 and 236. In an embodiment, the voltage level translator 220 serves to convert the input data signal DYDDA from one voltage domain (e.g., operating at rail voltage VDDA) to a second voltage domain (e.g., operating at rail voltage VDDB). The output data signal DVDDB represents the same data value as the input data signal DVDDA, but at a different rail voltage.
In an embodiment, the voltage level translator 220 is coupled to the latch 260 to avoid erroneous data capture when a clock signal is inactive. In an embodiment, the latch 260 captures the data signal DVDDB when a clock signal CLK is high. The output data signal DVDDB from the voltage level translator 220 is coupled to a transmission gate 262 in the latch 260. The transmission gate 262 operates as a switch, with the clock signal CLK and an inverse clock signal CLKB as the control. The source rail voltage VDDB is further coupled to a p-channel transistor 264, while the output of the transmission gate 262 is coupled to a p-channel transistor 272 and an n-channel transistor 274. The gates of p-channel transistor 276 and n-channel transistor 278 are coupled to the transistors 272 and 274. A transistor 270 is coupled to the transistor 268 and a drain VSS. The gates of the transistors 264 and 270 are coupled to two transistors 272 and 274, while the gate of the transistor 266 is coupled to the clock signal CLK and the gate of the transistor 268 is coupled to the inverse clock signal CLKB. In an embodiment, the clock signal CLK and inverse clock signal CLKB can be generated using an inverter, or another suitable circuit.
For example, the voltage domain 310 includes a driver 314. The driver 314 drives a data signal DVDDA at rail voltage VDDA. The circuit 360 receives the data signal DVDDA and converts it to a data signal DVDDB representing the same data, but now operating at rail voltage VDDB. In an embodiment, the circuit 360 further acts as a latch, capturing the value of VDDB when a clock signal is high. In an embodiment, the circuit 360 takes only the rail voltage VDDB as input—in this embodiment, the circuit 360 does not need VDDA as input. In an embodiment, the circuit 360 provides a data signal QVDDB which is level translated and latched, operating at the rail voltage VDDB, to a driver 390.
The transistor 412 is further coupled to a voltage source operating at rail voltage VDDB and to the transistor 414. The transistor 414 is further coupled to a drain VSS. The node QB is coupled to both the transistors 412 and 414, and to the gate of the transistor 404. The node QB is further coupled to the gates of transistors 416 (e.g., a p-channel transistor) and 418 (e.g., an n-channel transistor). The transistors 416 and 418 are coupled together, the transistor 416 is coupled to a voltage source operating at VDDB, the transistor 418 is coupled to a drain VSS, and the transistors 416 and 418 are coupled to the transmission gate 422. In an embodiment, the transistors 416 and 418 form an inverter 415 for the signal coupled to the gates of the transistors (e.g., QB).
The signal node QB is further coupled to the gate of the transistor 404. In an embodiment, this forms a regenerative feedback loop between the signals D_INT and QB. The node D_INT acts as an input node while the node QB acts as an output node. In an embodiment, the components within the box labeled 420 form a voltage level translator between VDDA and VDDB, while the components within the box labeled 430 form a latch. This allows the combined circuit, including shared components between the boxes 420 and 430, to act as both a voltage level translator and latch. The regenerative feedback loop between D_INT and QB, discussed above, facilitates voltage translation from a domain operating at rail voltage VDDA to a domain operating at rail voltage VDDB for the input data signal DYDDA. The regenerative feedback loop ensures that the input to the inverters 413 and 415 is pulled to the rail voltage VDBB, instead of VDDA or somewhere between VDDA and VDDB. At the same time, the transmission gate 422 combines with the other components in the box 430 to act as a latch on the data signal, avoiding erroneous data capture when the clock signal CLK is low. The output of the circuit 360 is a data signal QVDDB, which matches the data value of the input data signal DVDDA but operates at the rail voltage VDDB instead of VDDA. Further, the latch effect limits erroneous data capture for QVDDB when the clock signal is low.
There are many potential advantages to the embodiment illustrated in
Another potential advantage is a reduction in current usage. In an embodiment, in a circuit with a separate voltage translator and latch (e.g., circuits 220 and 260 illustrated in
The circuit 360 acts as a latch by only changing the value of QVDDB to match DVDDA when the clock signal CLK is high. For example, at approximately time 0.8 μs the value for DVDDA transitions from high to low (e.g., from approximately 650 mV to approximately 0). But the clock signal CLK is low, so the output signal QVDDB does not change until the clock signal CLK goes high at time 1.0 μs. At time 1.1 μs, the value of DVDDA transitions from low to high. This time, the output signal QVDDB follows suit, also transitioning from low to high, because the clock signal CLK is high.
Returning to
In some latch designs (e.g., the latch 260 illustrated in
Generally, in terms of hardware architecture, the computer 700 may include one or more processors 710, computer readable storage memory 720, and one or more input and/or output (I/O) devices 770 that are communicatively coupled via a local interface (not shown). The local interface can be, for example but not limited to, one or more buses or other wired or wireless connections, as is known in the art. The local interface may have additional elements, such as controllers, buffers (caches), drivers, repeaters, and receivers, to enable communications. Further, the local interface may include address, control, and/or data connections to enable appropriate communications among the aforementioned components.
The processor 710 is a hardware device for executing software that can be stored in the memory 720. The processor 710 can be virtually any custom made or commercially available processor, a central processing unit (CPU), a data signal processor (DSP), or an auxiliary processor among several processors associated with the computer 700, and the processor 710 may be a semiconductor based microprocessor (in the form of a microchip) or a microprocessor. In an embodiment, the processor 710 can include one or more voltage level translator and latch circuits, as described above with regard to
The software in the computer readable memory 720 may include one or more separate programs, each of which comprises an ordered listing of executable instructions for implementing logical functions. The software in the memory 720 includes a suitable operating system (O/S) 750 and one or more applications 760 of the exemplary embodiments. As illustrated, the application 760 comprises numerous functional components for implementing the features, processes, methods, functions, and operations of the exemplary embodiments. The application 760 of the computer 700 may represent numerous applications, agents, software components, modules, interfaces, controllers, etc., as discussed herein but the application 760 is not meant to be a limitation.
The operating system 750 may control the execution of other computer programs, and provides scheduling, input-output control, file and data management, memory management, and communication control and related services.
The I/O devices 770 may include input devices (or peripherals) such as, for example but not limited to, a mouse, keyboard, scanner, microphone, camera, etc. Furthermore, the I/O devices 770 may also include output devices (or peripherals), for example but not limited to, a printer, display, etc. Finally, the I/O devices 770 may further include devices that communicate both inputs and outputs, for instance but not limited to, a NIC or modulator/demodulator (for accessing remote devices, other files, devices, systems, or a network), a radio frequency (RF) or other transceiver, a telephonic interface, a bridge, a router, etc. The I/O devices 770 also include components for communicating over various networks, such as the Internet or an intranet. The I/O devices 770 may be connected to and/or communicate with the processor 710 utilizing Bluetooth connections and cables (via, e.g., Universal Serial Bus (USB) ports, serial ports, parallel ports, FireWire, HDMI (High-Definition Multimedia Interface), PCIe, InfiniBand®, or proprietary interfaces, etc.).
When the computer 700 is in operation, the processor 710 is configured to execute software stored within the memory 720, to communicate data to and from the memory 720, and to generally control operations of the computer 700 pursuant to the software. The application 760 and the O/S 750 are read, in whole or in part, by the processor 710, perhaps buffered within the processor 710, and then executed.
It is understood that the computer 700 includes non-limiting examples of software and hardware components that may be included in various devices, servers, and systems discussed herein, and it is understood that additional software and hardware components may be included in the various devices and systems discussed in exemplary embodiments.
In some embodiments, various functions or acts may take place at a given location and/or in connection with the operation of one or more apparatuses or systems. In some embodiments, a portion of a given function or act may be performed at a first device or location, and the remainder of the function or act may be performed at one or more additional devices or locations.
The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
In the preceding, reference is made to embodiments presented in this disclosure. However, the scope of the present disclosure is not limited to specific described embodiments. Instead, any combination of the preceding features and elements, whether related to different embodiments or not, is contemplated to implement and practice contemplated embodiments. Furthermore, although embodiments disclosed herein may achieve advantages over other possible solutions or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of the scope of the present disclosure. Thus, the preceding aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s). Likewise, reference to “the invention” shall not be construed as a generalization of any inventive subject matter disclosed herein and shall not be considered to be an element or limitation of the appended claims except where explicitly recited in a claim(s).
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.