GreenArrays Power and Energy

The Terms "Energy" and "Power"

It is important to be clear on the distinction between power and energy, especially when evaluating the implications of GreenArray chips in systems, as we will see shortly.

Energy

Energy is the resource that makes it possible to do a given amount of work. It is like money in the bank, a charged battery, a gallon of gasoline, or an equipped and supplied army. Once that amount of work has been done, the energy has been consumed and no more work may be done until more energy has been obtained.

The key concept is that it is the amount of energy that must be consumed in order to do a given amount of work that defines the cost of doing that work. Any system that is not plugged into a wall outlet can only sustain a limited amount of this cost before it has depleted its resources; even a solar powered device must store energy when the Sun is not available to it, in order to survive (and do useful work) until the next time the Sun is available.

Power

Power is the rate at which work is done, and thus energy consumed. All other things being equal, to do a given amount of work will consume the same amount of energy if it is done in a microsecond or in an hour; however, the power being applied during that microsecond will have to be 3.6 billion times the power that would need to be applied to do it in an hour.

All things are not completely equal, and there are often inefficiencies in the use of energy at both the extremely fast and extremely slow ends of the scale. These inefficiencies result in the consumption of more energy than would be required to do the work in a more optimal amount of time. For example at the very fast end of the scale, excessive heat can be dissipated and unless part of the work desired from the device is to behave as a heating element, this heat is wasted and can create the need for even more waste of energy in dissipating that heat without causing undesired side effects. Likewise at the very slow end of the scale, many effects such as nonlinear friction or semiconductor leakage can lead to inefficiencies.

The key concept is that power is merely a measure of the rate of consumption; it is not something that can be consumed, it is not something that one has a supply of, and thus it is something that must be managed for its side effects but not treated as a resource ... because it is not a resource.

Units

Power may be measured in Watts (One watt is one ampere of current through a one ohm resistor). On the scale of events inside our chips, we are more interested in nanowatts.

Energy may be measured in Watt-hours; one WH is the amount of energy required to do work at an average rate of one watt over a period of one hour.

On the scale of small electronic devices, a more interesting unit is the Joule; one Joule is one watt-second, an average of one watt for one second. For our chips, a Joule is a very large amount of energy; as seen below, we can add two numbers in about 10 picoJoules (pJ); there are ten to the twelfth power pJ in one joule. One joule is enough for us to perform about 100 billion adds.

GreenArrays Power

We minimize power by designing circuitry which, wherever possible, simply moves small charges onto and off of small capacitive loads, using low resistance transistors. Not only do we design our chips this way; we design our I/O this way, too, so that this principle may be carried into board level design as well.

The resistances and capacitances in question are basically dictated by the semiconductor technology in use. The natural speed of such a system is defined by fundamental time constants that derive from the technology.

Speed does not necessarily cost energy

There are only three general ways to slow such a system down, and they all impose intolerable penalties. Individual gates may be made slower by increasing resistance or capacitance; these methods always increase the energy required to switch the gate. The system may be slowed down by running a clock, but the costs of clock distribution and clocking in general are huge in terms of device count and energy overhead, and have larger costs in system design by increasing response latencies.

Rather than slowing our machines down below their natural speeds, we prefer to run asynchronously and to arrange that our computers simply stop when waiting for stimuli such as data or commands from the outside world or from other computers. The computer is only drawing power when it is actually executing code; when waiting, it is drawing only leakage. The energy required to stop or start one of our computers is negligible, on the order of a handful of inverters changing state; an amount of energy measured in femtoJoules.

Thus we run fast and unfettered when there is work to do and stop on the proverbial dime (or molecule) when we've done it. The result is that we consume precisely as much energy as was required to perform useful work, and consume none while waiting for more. The speed has no cost in energy, and in fact to slow our computer down would consume more energy.

GreenArrays Energy

Once again our design goal is to achieve high efficiency, meaning minimizing the amount of energy expended per unit of useful work.

Simplicity

We achieve efficiency, first and foremost, by ruthlessly insisting on simplicity in our strategies, our silicon designs, our software, and our system designs.

One of our cores has less than 20,000 transistors, many of which are devoted to the memory and to the stacks. Internally, when we add a feature or improve a circuit, we are always seeking to reduce the number of transistors, or to eliminate some capacitance, in the process. Why? Because each of these things cost energy! Every trivial gate, such as an inverter, that changes state costs a certain amount of energy to make that state change!

The more complicated the computer, the more gates must change state per instruction executed. Our computers use about 10 picoJoules to add a pair of numbers, which is on the order of less than 1000 times the energy required for a minimal inverter to change state. Compare this with 300 pJ for a TI MSP430 to perform a fixed point add, or 7000 pJ for IBM's low energy supercomputers to perform a floating point add. If we were all three using the same technology that would imply 30 times the number of devices changing state for TI, and 700 times as many for the IBM floating operation.

Of course, it is easy to throw away the energy advantages given by the simplicity of the underlying computer; for example, inefficient programming methods or inefficient system design are common culprits. Considering the above, a person who is interested in conserving energy will scrupulously avoid writing software that depends on floating point arithmetic, since it requires that many more gates change state to perform an operation than is necessary for fixed point operations. A person who is interested in conserving energy will use a shift and add to multiply a number by three, since multiplication inherently consumes more energy than do operations such as those, in any rational computer.

And then, there are many opportunities to so encumber a system design with glue chips and parasitic resistance, inductance, and capacitance, that all the efforts made in chip and software design are negated by the system as a whole.

High Impedance and Low Current

Most designs from silicon to board include many resistors. We despise resistors except where they are absolutely necessary, especially where there will actually be any current through them. Resistors carrying current are heating elements! The power consumed by a resistor is P=EI (voltage across the resistor times current through the resistor), or E**2/R (square of voltage, divided by resistance) in watts. Sometimes there is no choice but to expend a vast amount of power and consume massive energy by moving currents through resistors, but we prefer to do this as selectively as possible due to the cost of indiscriminate termination of any and all signals.

As a result, there are no termination resistors in most of our designs. We have a weak pull-down device that may be enabled on each signal pad if needed, but weak means on the order of 50,000 ohms. When we are moving signals at high speeds we don't use these; our input pads look like a couple of picofarads with tens of megohms to the supply rails. In fact, our basic digital and analog input pads load a circuit down less than do any but the very most expensive of oscilloscope probes.\

Software Intensive I/O vs Glue Chips

(... to be continued)