• No results found

Performance engineering is a complex process during which developers rely on the tools and techniques listed above. Until recently, minimising runtime has been the main aim of performance engineering. Current tools share this runtime focus and must be updated to support the Multi-Objective Optimisation of both power and runtime as energy consumption becomes a limiting factor.

The next chapter examines hardware power consumption and the ways in which developers can influence it. Performance engineering tools will be required to help capitalise on the optimisation opportunities which arise from this ability to influence power consumption.

Energy Efficiency in Computer Systems

Energy-aware performance engineers need to understand the factors which in- fluence system power consumption. From a hardware perspective, the most important factors are the technologies used to fabricate digital circuits and the processor architectures which are built on top of them.

This chapter begins by charting the evolution of processor fabrication, from early valve-based systems up to the Complimentary Metal Oxide Semiconductor (CMOS) chips in use today. It then examines the relationship between digital circuit design and power consumption. This relationship is illustrated with a simple model of CMOS power draw. Various features of modern computer architectures are then introduced which performance engineers can leverage to improve the energy efficiency of their code. This chapter concludes by remarking on ongoing trends in energy efficient processor design.

3.1

Fabrication Technologies

Digital computers are based on circuits which use different voltage levels to represent discrete logic states. Binary computers use circuits with only two

states, labelled zero and one. Conceptually, binary circuits take in patterns of

zeros and ones as input, perform some calculations on them, then output new patterns which encode the result. This process requires the ability to control output voltages based on the values represented by input voltages.

Thermionic valves were the first practical technology which could be used to build digital computers. These devices consist of a heated cathode and an unheated anode sealed inside a vacuum tube. Heating a negatively charged cath- ode allows electrons to escape from its surface in a process known as thermionic

emission. Once free, these negatively charged electrons are repelled by the cath- ode and attracted towards the more positively charged anode. This results in a stream of electrons flowing from the cathode to the anode. Current can flow along this stream, but not in the opposite ‘upstream’ direction. Valves which

allow current to flow in one direction only are known asdiodes.

Some valves also contain a third component called thecontrol grid, which is

situated between their anode and cathode elements. Electrons flow through the holes in this component when it is not electrically charged. When a negative charge is applied to the grid, however, it repels electrons and blocks current flow.

This type of valve is called a triode, and is a forerunner to moderntransistors.

Concerns about system power draw have existed since the dawn of com- puting, when early valve-based machines consumed as much energy as modern supercomputers. The Electronic Numerical Integrator and Computer (ENIAC) was the first electronic stored-program computer built in the US. It contained approximately 17,500 thermionic valves and weighed thirty tons [58]. When ENIAC was switched on in 1946 it had a peak power dissipation of 174 kW [89], a figure which would not look out of place in the current Top 500 list [3].

Thermionic valves were superseded in the 1950s and 60s by bipolar transis- tors packaged into ICs. ICs are etched onto semiconductor wafers in a process

calledphotolithography. First, circular wafers are cut from a cylindrical ingot of

monocrystalline silicon up to 30 cm in diameter. Multiple copies of a circuit are then etched onto the surface of these wafer before they are cut into individual pieces and packaged into chips.

Although they were slower, bipolar circuits consumed far less energy and were more reliable than equivalent valve-based designs. This led to the devel- opment of increasingly complex computers and a dramatic reduction in system power consumption. Over time, manufacturing improvements delivered ever smaller transistors, yielding rapid increases in both performance and power density. Ultimately this resulted in escalating power draw which threatened to halt the advance of computer technology [70].

Figure 3.1: Power Density Trends, based on data from [22]

Bipolar transistors peaked in the early 1990s, before being replaced by the slower, more efficient CMOS technology in use today. Figure 3.1 shows how CMOS development is following the same trajectory, with escalating power draw again threatening to stall advances in High Performance Computing (HPC).

Slower, more energy efficient technologies replacing faster but more power hungry ones is a recurring theme in processor design. That said, at present there are no obvious replacements for CMOS as the dominant processor fabri- cation technology. Until a replacement can be identified, hardware designers are reliant on incremental improvements in CMOS fabrication and architectural in- novations to deliver performance improvements. Examples of the former include

the use of exotic high-κ materials [106] and non-planar “3D” transistors [60],

Input 1 State 1 Input 2 State 2 Combinatorial Logic Clock Signal Sequential Logic · · ·

Figure 3.2: Synchronous Sequential Logic

Related documents