21.01.2013 Views

Lecture Notes in Computer Science 4917

Lecture Notes in Computer Science 4917

Lecture Notes in Computer Science 4917

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

198 P. Raghavan et al.<br />

Instruction Memory Hierarchy (IMH). A traditional <strong>in</strong>struction memory is activated<br />

every cycle to fetch new <strong>in</strong>structions. Especially <strong>in</strong> wide architectures, like VLIWs, this<br />

can be one of the most energy consum<strong>in</strong>g parts of the system. Design space exploration<br />

of the IMH can therefore have a large overall effect on the processor energy efficiency.<br />

The IMH can be simulated as a cache, a scratchpad or a multi-level hierarchy. Other<br />

advanced features, like L0 cluster<strong>in</strong>g and loop counters (e.g. [7,8]), are also supported.<br />

Loop buffers are commonly used <strong>in</strong> state of the art processors, like [9,10]. Loop buffers<br />

are small memories which conta<strong>in</strong>s the <strong>in</strong>structions for one nested loop. They reduce<br />

the energy consumption of the IMH by exploit<strong>in</strong>g the locality when execut<strong>in</strong>g loops. A<br />

loop controller (LC) iterates over the <strong>in</strong>structions of the loop <strong>in</strong> the buffer.<br />

Figure 2 shows different supported configurations of the <strong>in</strong>struction memory. Figure<br />

2(a) is a conventional L1 configuration where the Program Counter (PC) fetches <strong>in</strong>structions<br />

from the L1 <strong>in</strong>struction cache and executes them on the FUs. Figure 2(b) shows<br />

a centralized loop buffer, where the loops are loaded from the L1 <strong>in</strong>struction memory<br />

to the loop buffer when the loop starts. Dur<strong>in</strong>g the loop execution, the LC (Loop Controller)<br />

fetches the <strong>in</strong>structions from the loop buffer <strong>in</strong>stead of the L1 memory. Figure<br />

2(c) shows a distributed loop buffers that can been customized to the application loop<br />

size for every slot to m<strong>in</strong>imize energy consumption, but are still controlled by a s<strong>in</strong>gle<br />

LC. The COFFEE framework supports automatic identification and load<strong>in</strong>g of loops <strong>in</strong>to<br />

the loop buffers. Compilation and design space exploration for distributed loop buffers<br />

is described <strong>in</strong> detail <strong>in</strong> [8,11]. More complex loop buffer organizations, where every<br />

loop buffer is controlled by a separate LC [12], are also supported, but a description of<br />

this concept is outside the scope of this paper. For all these cases, compilation, simulation<br />

and energy estimation are supported.<br />

PC<br />

(a) Regular L1 Instr. Memory (b) Centralized Loop Buffer based Memory (c) Distributed Loop Buffer based Memory<br />

IL1 Memory<br />

FU FU FU FU<br />

PC<br />

LC<br />

IL1 Memory<br />

FU FU FU FU<br />

PC<br />

IL1 Memory<br />

L0 Loop Buffer LC L0 Loop Buffer1 L0 Loop Buffer2<br />

FU FU FU FU<br />

Fig. 2. Variants of Instruction Memory Configuration are supported <strong>in</strong> Coffee<br />

3.2 Processor Core Subsystem<br />

The processor core subsystem consists of the datapath units and register file. These<br />

components are described below:<br />

Processor Datapath. Our flow supports a large datapath design space. Different styles<br />

of embedded processors can be modeled, from small RISC processors with a s<strong>in</strong>gle slot,<br />

to wide VLIW processors with many heterogeneous execution slots. Multiple slots can<br />

execute <strong>in</strong>structions <strong>in</strong> parallel, and can <strong>in</strong>ternally consist of multiple functional units<br />

that execute mutually exclusively. The number of slots and the <strong>in</strong>structions that can be

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!