text:
|Pulse signal circuit, parallel processing circuit, pattern recognition system, and image input system
|Method and apparatus for fast machine learning using probability maps and fourier transforms
|Jojic et al.
|Programmable supervisory circuit and applications thereof
|Random signal generator and method for generating a random signal
|Logic unit operable under the byzantine algorithm, computer unit having such logic unit, composite assembly comprised of logic units or computer units, and method of operating such an assembly
|Thermal noise random pulse generator and random number generator
|Amplifier circuit for a physical random number generator and a random number generator using the same
|Probabilistic computing methods and apparatus
|Robust method for providing tap leakage in adaptive equalizer systems
|Physical random number generator, method of generating physical random numbers and physical random number storing medium
|Onodera et al.
|Programmable supervisory circuit and applications therefore
|Integrated circuit random number generator using sampled output of variable frequency oscillator
This application claims priority to U.S. provisional application entitled, "Randomized Computing Elements And Their Applications," having Ser. No. 60/565,748, filed Apr. 27, 2004, which is entirely incorporated herein by reference.
This invention was made with Government support under contract number F30602-02-2-0124, awarded by the U.S. Air Force. The U.S. Government has certain rights in and to this invention.
The present disclosure pertains to computer processors, and more specifically, to a system and method for probabilistic determinations of binary switch states and introverted switching to reduce energy consumption and achieve accelerated execution times.
The use of portable electronic devices has exploded in recent years. As shown in FIG. 1, individuals today carry portable electronic devices such as wireless phones 18, PDAs, music players 20, laptop computers 12, and other similar devices. These devices may be battery powered, which means that each device may operate for a finite period of time before its respective battery is exhausted. Even with improved battery technologies, it is not uncommon for the battery life for such portable electronic devices to be anywhere from a few hours to a few days.
As a nonlimiting example, a person taking a cross-country flight from New York to Los Angeles desiring to utilize music player 20 for the long flight may need to recharge the player 20 before returning back to the East Coast on the return flight. Thus, the individual would need to pack the requisite accompanying equipment to recharge the player's battery prior to the return flight, in this nonlimiting example, as the music player 20 otherwise would not have the battery life to operate for both the outgoing and return flights. This is but one nonlimiting example, as one of ordinary skill in the art would readily know of other examples wherein the battery life of such portable electronic devices may lead to periodic recharging.
These portable electronics may include one or more processors, which may be configured to consume a significant amount of battery energy, thereby leading to a relatively short battery life. At least one reason that a processor may prematurely exhaust a battery may be related to the fact that processors of today are oftentimes configured to make certain that each data bit processed is either a 0 or 1 at each step of a calculation. In making attempts to ensure a particular value as being a 0 or a 1, a processor may consume a significant amount of energy by holding that particular state at the 0 or 1. Furthermore, a processor containing millions of switches may consume a significant amount of the battery's energy in ensuring the accuracy of each switch's change of state from either 1 to 0 or 0 to 1. So in ensuring the accuracy of each switch as it changes state, a typical processor may consume additional battery energy that may otherwise be used for extended processing time.
Moreover, one of ordinary skill would know that some quantifiable level of battery energy may be lost due to leakage currents in the processor's transistor switches. Leakage current refers to the amount of current that flows through the transistor switch when there is no switching action. So for the millions of transistors in a typical processor chip, the aggregated leakage may significantly reduce battery life.
FIG. 1, as referenced above, is a diagram of a nonlimiting exemplary group of devices that may operate on battery power and/or may otherwise be configured for power conservation operations. In this nonlimiting example of FIG. 1, processor chip 10 may be included in each of laptop 12, videocamera 14, television 16, wireless telephone 18, and music player 20. These devices shown in FIG. 1 are but nonlimiting examples, as one of ordinary skill in the art would know of additional nonlimiting examples which may also have a processor similar to processor 10 of FIG. 1. Nevertheless, in this nonlimiting example, exploded window 24 depicts four transistor switches 26-29 of a potentially much larger number, which may be contained in processor 10. Stated another way, transistor switches 26-29 may comprise four of the millions of transistor switches resident in the processor 10 chip.
As the transistor switches 26-29 switch states from 0 to 1 and/or 1 to 0, the battery resident in each of the portable devices of FIG. 1 may be more quickly drained if processor 10 is configured so as to calculate with a greater degree of certainty for each transistor to change its status from a 0 to 1 or a 1 to 0. Moreover, as stated above, the leakage current for each transistor 26-29, as well as the rest of the millions of transistors on processor 10, may be aggregated to a significant amount such that the battery in each of devices 12, 14, 16, 18 and 20 of FIG. 1 may be caused to expire more quickly.
Furthermore, in compliance with Moore's Law, which states that silicon power doubles approximately every 18 months to 2 years, the number of transistors resident on processor 10 will likely increase over time as the size of the transistors decreases. As a nonlimiting example, if semiconductor engineers reduce the size of transistors by only approximately 10% a year, a twofold increase in the number of transistors on a chip will likely be realized every 18 months to 2 years.
Even on processor 10, transistors on the chip are not necessarily identical to each other. As transistors become smaller and smaller, variability between transistors steadily increases. As the various transistors on processor 10 may look different electrically, the result may be realized in haphazard variations in performance of processor 10. As a result, processor 10 may actually become more unreliable as an increasing amount of transistors are included in processor 10, thereby resulting in an untrustworthy quotient in each of laptop 10, camera 14, television 16, wireless phone 18, and music player 20, all of FIG. 1.
The amount of heat generated by a processor is a limitation for processors configured with a large number of transistors, as well as processors configured for high speed operation and calculations. Thus, to avoid melting the copper circuit lines within the processor 10, such chips may be fitted with speed limiters. Speed limiters may be configured to prevent a processor 10 chip from calculating numbers as fast as it otherwise may. Nevertheless, the heat generated in processor 10 may be be attributed to the deterministic design of the chip itself, that is, to ensure data bits at 1s or 0s.
Prior attempts have been made to conserve battery life and also to reduce the heat generated by processor 10; however, results have been mixed. In one nonlimiting example, chip designers have created schemes that activate certain blocks of transistors used for particular calculations and deactivate the remaining blocks of transistors of the processor 10 so as to conserve battery energy and to reduce heat from a lesser number of transistors that are actually used. Here, the activation of blocks of transistors refers to triggering these blocks of transistors for receipt and evaluation of their inputs in order to produce the corresponding new output data. Whereas, the deactivation of blocks of transistors refers to preventing these blocks of transistors from receiving and hence evaluating their inputs. Therefore, once the blocks of transistors are deactivated, they do not perform any switching action and hence, hold their previous states.
While this solution is an improvement over prior designs which simply activate all transistors of a processor 10, thereby consuming a greater amount of energy of a device's battery, this solution still fails to adequately preserve a battery. In this instance, a substantial number of transistors even in the blocks that are activated are still unused, thereby essentially wasting valuable battery energy. Plus, this solution does not account for the energy consumed due to the deterministic approach to ensure the accuracy of each calculation as being either a 1 or a 0. Even activating select blocks of transistors on processor 10 still results in wasted battery energy and reduced battery life.
Moreover, due to decreased feature sizes, dopant fluctuations, thermal noise, increased sensitivity to VT, capacitive/inductive noise, interconnect variations, crosstalk, power grid noise, tunneling noise, inter-/intra-die process variations as well as defects, etc.; the devices at nano-scale can easily become destabilized, and hence, showing randomized behaviors. To overcome noise effects and some of the aforementioned imperfections, energy consumption has been traded in for noise tolerance via increasing the operating supply voltage, which in turn increases the energy consumption. However, energy consumption, and associated thermal/heat dissipation are already major problems that are increasing with technology scaling. Therefore, it is difficult to fulfill low-power requirements while preserving a robust device operation. Stated another way, meeting low-power requirements increases the likelihood of unreliable device operations.
Such unreliable devices are likely to be more susceptible to noise, heat, defects, etc., which means that they may most likely be probabilistic—rather than deterministic—in nature. As the probabilistic behavior becomes the inevitable feature of these devices, processors will have to be made up of these unreliable devices while still operating at a desired performance level.
As a result, a heretofore unaddressed need exists to overcome the deficiencies and shortcomings described above.
Many aspects of this disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principals of the present disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
FIG. 1 is a diagram depicting various portable electronic devices that have an embedded processor.
FIG. 2 is a diagram of a computing element (CE), as may be utilized by the processor of claim 1.
FIG. 3 is a diagram of a random computing element (RCE) based in part on the CE of FIG. 2, but with I2 replaced with input R.
FIG. 4 is a nonlimiting exemplary diagram of an implicit RCE, as may be implemented in the processor of FIG. 1.
FIG. 5 is a diagram of an alternative embodiment of the implicit RCE of FIG. 4, as may also be implemented in the processor of FIG. 1.
FIG. 6 is an alternative embodiment of an implicit RCE, as may be implemented in the processor of FIG. 1.
FIG. 7 is a diagram of an introverted switch, which may be included in the processor of FIG. 1.
FIG. 8 is a table diagram of the possible functions of the switch of FIG. 7.
FIG. 9 is a nonlimiting exemplary diagram of the introverted switch of FIG. 7.
FIG. 10 is a nonlimiting exemplary diagram of a 2-input AND gate circuit implemented using five introverted switches of FIG. 9.
FIG. 11 depicts the values of the input and output signals of all the switches of FIG. 10 when the inputs of the AND gate are in1in2=01 (in instance A) and in1in2=11 (in instance B).
In addition to the drawings discussed above, this description describes one or more embodiments as illustrated in the above-referenced drawings. However, there is no intent to limit this disclosure to a single embodiment or embodiments that are disclosed herein. On the contrary, the intent is to cover all alternatives, modifications, and equivalents included within the spirit and scope of this disclosure and as defined by the appended claims.
As described above, today's processors consume a significant amount of energy for deterministic calculations. As described above, deterministic calculations pertain to ensuring that each data bit is either a 1 or 0 at every step of a calculation. However, if an application does not need such certainty, it is possible that energy consumption may be significantly reduced. Moreover, in this instance, the running time of a particular application may actually be decreased, and hence, its performance increased. As further described above, with the decreasing size of transistors on processor chips, such as processor 10 of FIG. 1, and the increasing variability between the various transistors on the chip, the predictability of such transistors may likewise be considered to be decreasing. Nevertheless, processors may be configured in hardware to utilize the unpredictable nature of such transistors while still performing the intended calculations of an application.
Instead of ensuring with a high degree of certainty the data bits as being a 1 or a 0, an approach may be made for the validation of probabilistic bits instead of the conventional bits described above. A probabilistic bit, or PBIT, is similar to a conventional bit as described above, in that it takes on a 0 or 1 value. However, the certainty of the PBIT may be expressed with the probability of p. In using PBITs instead of conventional bits, a particular computing element may calculate a value with less energy, thereby extending the life of a battery or other power source for the processor. Depending upon the desired probability p for a given calculation, a corresponding amount of energy may be associated with producing that probabilistic bit PBIT. For applications that may be suited for lower probability p values, a lesser amount of energy may be utilized such that battery consumption may be extended 10 to 100 or to even 1000 fold from current lifecycles.
Probabilistic computing has been previously utilized in software. However, as computer technology reaches physical limits, physical considerations accordingly become an increased concern. By applying probabilistic algorithms previously utilized in software applications to the hardware side of an embedded processor with reliable probability values, the result may be reduced power consumption, as well as decreased running-time of the computations. Moreover, by identifying the specific transistors needed for certain operations, processor 10 may be configured to turn off individual transistors of the hundreds of millions of transistors on the processor 10 chip bed so as to further conserve battery energy. The result in each of these operations is a lower amount of dissipated heat as well as a faster operating processor, while obtaining desired quality of execution of a particular application.
Randomization is a mathematical technique that enables design of algorithms wherein at each step, a random event influences the next step to be executed. Randomized algorithms do not always execute predictably, as opposed to deterministic algorithms, which may be utilized in the processor as described above. The transistor switches of a processor may operate as randomized devices in that they may be on or off with the interpretation that if the switch is on, its value is 1, whereas if it is off, its value is 0, or vice versa. As described above, the switching of these randomized devices (the transistors of a processor) utilize a measurable quantity of energy, which may be otherwise supplied by a battery of one or more of the portable electronic devices in FIG. 1.
The on and off states may be detected by observing the status change, which may be accomplished by measuring the voltage or current. The outcome of an energy expending action to turn the switch on or off is randomized in that it will occur with a fixed a priori probability p. The resulting output state of an on or off occurring with a probability p may be sustained with the same probability for the time it is switched, as a conventional switch. Consequently, the disclosure herein provides a system and method using randomness in such devices to achieve meaningful computation as well as to achieve performance in terms of faster execution times and reduced energy consumption.
More specifically, this disclosure describes a processor having one or more binary switches (i.e., transistors) configured to operate at a predetermined probability p that the logical value of each switch is correct. A supply voltage is coupled to the binary switches. A randomized signal detector is configured to detect a randomized signal, which may be amplified to a predetermined level if the randomized signal is low. A computing element outputs a probabilistic binary bit having a 0 or 1 with a predetermined probability value of being correct in correspondence with the supply voltage. Subsequently, an application executed by the processor receives the probabilistic binary bit for one or more additional operations. By operating on the probabilistic binary bit instead of a conventional bit as described herein, the processor consumes less energy and completes the execution of a particular application faster. For battery-powered portable electronic devices, use of processor configured for probabilistic binary bits substantially lengthens battery life.
FIG. 2 is a diagram of a computing element (CE). The CE is an element that maps n inputs to m outputs where both n and m are greater than or equal to 1. In this nonlimiting example of FIG. 2, the output O1 will be equal to I1 if I2=0. Likewise, output O2 will be equal to I1 if I2=1. The CE of FIG. 2 may be a random computing element (RCE) if its outputs take on the value of 1 or 0 at random with a probability p, such that 0.5<p<1.
FIG. 3 is a diagram of the CE of FIG. 2, wherein I2 of FIG. 2 is replaced with input R. In this nonlimiting example, input R will take the value 0 with a probability p and will take the value of 1 with the probability 1−p. Consequently, the output O1 will be equal to I1 with the probability of p, and O2 will be equal to I1 with the probability 1−p.
The element of FIG. 3 may actually be referred to as an RCE. If the randomness utilized by the RCE of FIG. 3 is obtained through the application of externally generated random bits to the RCE via its inputs or outputs, this result causes the RCE to be further characterized as an explicit RCE. An explicit RCE may generally include: (a) a dedicated component that generates the random output data bits; and (b) a dedicated component to which a random input is applied and which, in turn, produces the random output data bits. A nonlimiting example for an explicit RCE is a pseudo random number generator, as one of ordinary skill in the art would know.
However, if the randomness of an RCE is not externally generated, but is obtained through the utilization of the inherent randomness in the computing element, then this RCE may be characterized as an implicit RCE. FIG. 4 is a nonlimiting exemplary diagram of an implicit RCE 31.
The implicit RCE 31 of FIG. 4 is comprised of three portions. The first portion 34 relates to the generation of a random signal. In this nonlimiting example, resistor 37 is used as a device that interprets randomization physically. The random source, in this nonlimiting example, may be thermal noise in the resistor. One of ordinary skill in the art would know, however, that utilizing thermal noise as the noise source is but one of many possible nonlimiting examples. As an additional nonlimiting example, the circuit configuration of FIG. 4 may be configured to detect power supply noise, tunneling noise, interconnect noise, crosstalk noises, and other deep sub-micron noise sources.
In the nonlimiting example of FIG. 4, the thermal noise signal across resistor 37 is a Gaussian noise signal, and the mean square value of the thermal noise voltage across resistor 37 may be represented by
Where f is <<kT/h, the equation above may be approximated as
Likewise, the mean square value of the thermal noise current may be represented as
As a nonlimiting example, the rms noise voltage of a resistor having a resistance of 100 kΩ at room temperature and a frequency range of 1 MHz is 40.216 μV with an rms noise current of 0.402 nA. Thus, this nonlimiting example depicts a noise signal that is small and potentially undetectable by a computing element. Accordingly, detector/amplifier 39 may be coupled to resistor 37 and is on the second portion.
Detector/amplifier 39 detects the small noise signal, as illustrated above, and, as a nonlimiting example, may be configured as a differential amplifier that operates in the sub-threshold region. The detector/amplifier 39 may be configured with transistors 41-48 coupled as shown having a differential stage that operates as a gain stage and a push-pull output stage. In this nonlimiting example, the sub-threshold region of operation may be utilized to maintain a low power consumption for the detector/amplifier 39 as desirable. In sub-threshold operation of a MOS transistor, the amount of inversion layer charge on the transistor surface is lower than a threshold value. Due to this small inversion charge, the resulting drain current may also be small. Smaller drain current results in lower power dissipation, as the current that will be charging and discharging capacitors will also be small.
The output of detector/amplifier 39 is coupled to the input of the computing element 53, the third portion of implicit RCE 31. Computing element 53 is comprised of one input and one output O1; therefore, the output of detector/amplifier 39 will follow the input of the computing element 53. More specifically, O1 may be represented to be equal to the inverse of the input of the computing element 53. Thus, O1 takes on a value of 0 or 1 at random due to the fact that the input of the computing element 53 is a randomly generated signal, as described above.
The probability that the value 0 or 1 is correct for the implicit RCE 31 of FIG. 4 may be calculated according to the following equation:
where Vm is the switching point of the inverter defined as the point at which the input voltage of the inverter is the same as the output voltage of the inverter. In this nonlimiting example, Vm may be represented as
where Vdd is the supply voltage of the inverter. VTp and VTn are the threshold voltages of the PMOS and NMOS transistors of computing element 53. Also, μn and μp are the average mobility of electrons and holes for the NMOS and PMOS transistors of the computing element 53, respectively. The (W/L)n/(W/L)p is the ratio of the aspect ratio of the NMOS transistor to the aspect ratio of the PMOS transistor.
Referring to the probability determination above, σ is the standard deviation of the Gaussian noise signal (i.e., σ is the rms value of the Gaussian noise signal), and erf is the well-known error function, which may be represented as
For this implicit RCE implementation, as shown in FIG. 4, it is evident from the equations above that p is related to the supply voltage (Vdd) and the standard deviation (σ) of the noise. Thus, p may be varied through changing Vdd or σ. As a nonlimiting example, if Vm=Vdd/2, with Vdd=5 V, and σ=0.36 V, p for a data bit may be calculated to be 0.999999999999810. If Vdd=0.5V, probability p for the data bit may be calculated to be 0.75629823516199. Depending on the needs of the application, Vdd can be set accordingly.
FIG. 5 is a diagram of an alternative embodiment of the implicit RCE 31 of FIG. 4. In this implementation of FIG. 5, RCE 60 is configured as a 6-transistor SRAM cell, which may be a part of a VLSI chip, as one of ordinary skill in the art would know. The source of randomness is the noise caused by I/O signaling. The noise on I/O pad 62 is coupled via capacitor 65 to one of the input points 67 of cross-coupled inverter 70. One of ordinary skill in the art would know, additionally, that the Gaussian assumption on noise distribution may also be realized for I/O signaling. Thus, in this nonlimiting example of FIG. 5, Gaussian distribution for noise caused by I/O signaling is assumed.
At any point in time, cross-coupled inverter 70 may be connected to either one of the supply voltages (VddH or VddL) depending upon the value of the one-bit rand-mem signal. When rand-mem is equal to 1, cross-coupled inverter 70 is connected to VddH. Otherwise, cross-coupled inverter 70 is connected to VddL when the rand-mem signal is equal to 0.
In this implicit RCE 60 implementation, it may be assumed that VddH is greater than 10 times the standard deviation of the noise on I/O pad 62. Since the noise is affecting one of the inverters 72, 74 in cross-coupled inverter 70, the probability equation set forth above may still be utilized for this implicit RCE 60 implementation. Consequently, probability p of this implementation 60 may be manipulated by changing the supply voltage, the standard deviation of noise, or both. Based on the probability equation set forth above, the probability p of PBIT being correct is at least 0.99999971334843 if VddH is greater than 10 times the standard deviation of the noise at I/O pad 62.
It is assumed that VddL is no more than twice the standard deviation, which means that the probability p is at most 0.84134474606854. Consequently, when VddH is connected to cross-coupled inverter 70, the result corresponds to highly reliable operation. Conversely, the presence of VddL connected to cross-coupled inverter 70 results in unreliable operation, which may further be characterized as randomized operation. However, a particular application with probabilistic-based computations may be executed with a lower probability level while conserving battery life and/or generating less heat in the processor.
The use of this dual supply voltage scheme may be explained in the context of the randomized algorithms. In some of the randomized algorithms such as random routing, genetic algorithms, simulated annealing, and random sorting, random numbers that are generated are typically stored, as further use of the random numbers is needed. Yet, it may not be necessary to generate a random bit and then write it into a memory cell, such as the 6-transistor SRAM cell in FIG. 5. The reason the random bit may not be written to memory results from the fact that the first read from a random memory element may also serve the purpose of generating the random bit. When cross-coupled inverter 70 is coupled to VddL, which means that the random memory signal is equal to 0, there is a random value stored in the memory cell. The I/O signaling fluctuations of the output of inverter 72 causes the storage of a random value in the memory cell. If the random memory signal is set to 1 before a read access to this memory, the random bit will be read (generated). As long as the rand-mem signal is 1, the random bit will be reliably stored in the memory cell. Hence, the generation and storage of a random bit can be realized through the first read from the random memory element by means of the dual supply voltage scheme.
FIG. 6 is an alternative embodiment of an implicit RCE 78. In this nonlimiting example, the implicit RCE 78 comprises a plurality of single electron transistors (SETs) 81-84. The implicit RCE 78 of FIG. 6 is a single-electron switch with differential inputs. In this switch 78, there are four tunnel junctions 81-84 and three capacitances 89-91.
The input voltage X may be applied through capacitor 90, while a complement of X may be applied through capacitor 91. If the input voltage X is an appropriate positive voltage, then the input value may be interpreted as a binary 1 in the 1 branch. However, if X is a proper negative voltage, then the input value may be a binary 0 on the 0 branch.
Tunneling through junctions 81 and 83 is controlled by the charge on capacitors 89-91, the values of X and
Tunneling is a probabilistic phenomenon, and the waiting time for the expected tunneling is not fixed. For the device operation without error, the clock duration should be sufficiently long. The probability of that the waiting time for the expected tunneling will be longer than the clock period (tCLK) is given by
where Γ1 is the mean tunneling rate. The probability for incorrect operation may be represented as pe, whereas the probability for correct operation in the implementation of this implicit RCE 78 of FIG. 6 may be represented as p=1−pe. Thus, this equation above depicts that the probability p may be varied by changing the clock period tCLK.
The implicit computing elements described above generate probabilistic bits such that applications or algorithms may exploit the probabilistic nature of these bits to execute probabilistic computations faster and with less energy. Stated another way, using one or more of the circuit implementations described above (which one of ordinary skill in the art would know could be implemented across an entire processor core), enables an application running on such processor to still be able to properly execute with an increased but tolerable amount of error. As a nonlimiting example, applications configured for such processors may be configured to tolerate error up to approximately 25%, which may equate to a significant power reduction in the processor. As a nonlimiting example, if the power reduction was on the order of 10, a normal battery cycle of 20 hours may be extended to a period of 200 hours. In application, energy improvements may be realized by a factor of 30 or 40 and perhaps other applications by even a factor of 1000, depending upon the desired operational quality for the application.
As a nonlimiting example, a soldier on a battlefield equipped with a battery-powered electronic device may be able to switch processor 10 to do probabilistic computations so as to conserve battery power but while still obtaining the desired substantive battlefield information. As a nonlimiting example, a soldier's display, which may otherwise provide topology and other data, may be configured to show more simplistic drawings in the probabilistic computation mode, as described above, but still the data desired by the soldier. As an additional nonlimiting example, the soldier may switch the processor into even a further power reduction mode such that even less auxiliary data is provided so that the processor may use probabilistic computations to still provide the substantive battlefield data the soldier desires. In this nonlimiting example, the battery-powered electronic device utilized by the soldier may be extended while the soldier is deployed in the battlefield, unable to otherwise charge or replace the battery. So, by configuring the processor for probabilistic calculations rather than ensuring absolute accuracy of data bits, the soldier may remain on the battlefield longer with valuable battlefield information.
The nonlimiting implementation examples for implicit RCEs above can be viewed as building blocks or switches used to build more complicated processors that are composed of switches. These processors are built out of millions of switches that can be on or off. In the ideal case, these switches should be enabled when needed and should be disabled otherwise. A processor can be configured to turn off portions of the chip in order to conserve battery energy and/or reduce heat generated by the enabled but idle switches. Instead of just deactivating blocks of switches, which leaves other blocks on, but still having idle switches, the processor may be configured to activate or deactivate individual switches. This provides an improved resolution in deactivating idle or unneeded switches, which would otherwise waste battery energy.
Yet to accomplish this operation, the gate, or switch, has to be configured for such operation. In this instance, the switch may be configured to have an introverted sleep state, which may be activated on command. The switch may be activated, or awaken, on command when needed for operation.
FIG. 7 is a diagram of an introverted switch 80. As shown in FIG. 7, the switch 80 has four inputs: primary inputs (in1 and in2) and the associated enable inputs (enin1 and enin2). The enable input enin1 is associated with input in1 and the enable input enin2 is associated with input in2. The switch also has one primary output (out) and two enable outputs (enout1 and enout2).
For a correct operation of the switch, either enable signal enin1 or enable signal enin2, but not both, is asserted. If enin1 is asserted (enin1=1 and enin2=0), then out will be a function, ƒ, of the input in1. If enin2 is asserted (enin1=0 and enin2=1), then out will be a function, ƒ of the input in2.
The function ƒ can be one of the four possible functions shown in FIG. 8, which is a table diagram of the possible functions. Specifically, the possible functions include: identity, complement, constant function 0 and constant function 1.
For a fixed function ƒ the introverted switch behaves as follows:
FIG. 9 is a nonlimiting exemplary diagram of the introverted switch 80 of FIG. 7. The function ƒ of the switch 80 is the complement function, as one of ordinary skill in the art would know.
One other property of an introverted switch is that its energy consumption due to leakage is also very low. Referring back to FIG. 9, the Vdd and Gnd lines are isolated in terms of subthreshold leakage current paths. One Vdd-Gnd subthreshold leakage path exists due to the inverters producing out and enout2 values, and this path is isolated by the transistors M1, M2, M3 and M4 that help minimize the leakage current. Another way to minimize the leakage energy consumption is by using a high-VT (high threshold-voltage) transistor type for M1 and M3.
Using introverted switches, logic operations such as AND, NAND, OR, NOR, and many others can be implemented, as one of ordinary skill would know. FIG. 10 is a diagram of a 2-input AND gate circuit 90 implemented using five introverted switches 80 of FIG. 7. In this figure, the function ƒ of the switches switch1, switch2 and switch5 is the identity function, the function ƒ of the switch switch3 is the constant function 0, and the function ƒ of the switch switch4 is the constant function 1.
This AND gate switch 90 implementation is a naturally energy-aware design, as one of ordinary skill in the art would know. FIG. 11 is a nonlimiting example of two instantiations A and B of the circuit 90 of FIG. 10. Instance A of FIG. 11 depicts the values of the input and output signals of all the switches when the inputs of the AND gate are in1in2=01. Instance B depicts the case when the inputs of the AND gate are in1in2=11. The shaded regions in these two instances include the switches that are active for the given input. As a nonlimiting example, in instance A, the switches switch1, switch3 and switch5 are active, whereas the switches switch2 and switch4 are idle.
Therefore, for a given input, there exists a unique path that includes active switches. The remaining switches outside this path are idle. This unique path property allows a large portion of the network to be quiescent and enables on-demand energy consumption. This technique is similar to a guarded evaluation technique, as one of skill in the art would know. A guarded evaluation technique is applicable for coarse-grained circuit building blocks. In the introverted-switch-based designs, however, the on-demand energy consumption is at the switch-level granularity, and hence, the energy savings are significant.
It should be emphasized that the above-described embodiments and nonlimiting examples are merely possible examples of implementations, merely set forth for a clear understanding of the principles disclosed herein. Many variations and modifications may be made to the above-described embodiment(s) and nonlimiting examples without departing substantially from the spirit and principles disclosed herein. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.


text: Detroit, MI – Just got done checking out the Mind Control album from OG Fin and came across this dope video for "Stay Clean," one of the tracks I was digging off the tape. Check it out below and then go stream the album! Catch the vibe: #NowWatching #StayClean #Video from @OGFDesigner's #MindControl #Album → Click To Tweet Related

subset: commoncrawl


text:
Have you ever dreamed of one urban fashion outerwear piece which could be worn for decades, if yes, then we'd like to share with you one essential street style piece- leather biker jacket. It is one centerpiece of every cool girl's wardrobe. Indeed, it's a timeless investment piece, yet this season leather jackets come with a fresh approach. Well, modern look is given thanks to refined update with luxurious detailing (drapes, quilts, sprints, washed leather, fur trims, ribbed sleeves), so don't worry if you already have a classic black leather motorcycle jacket, then you will look the same hot as in modern ones.
Now, let's have a look how it's better to style your biker jacket with other gorgeous wardrobe pieces. You can always wear classic leather jacket with patterns like checks or animal prints. Some fashionistas appear on the streets wearing puffy vests, pencil skirts and motorcycle jackets, which combination looks quite impressive.
If you want something really trendy and beautiful, then you can always try on different color biker jacket which will be in electric blue, bright pink, red, green or other colors.
If you want to look edgy at some kind evening event, then you can always pair your black jacket with full skirt or evening gown for a fun twist.