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.

68 F. Bouwens et al.<br />

select the f<strong>in</strong>al architecture based on power and energy-delay results. Section 5 presents<br />

the <strong>in</strong>termediate and f<strong>in</strong>al implemented results of the created architecture <strong>in</strong>stances. The<br />

conclusions section f<strong>in</strong>alizes this paper.<br />

2 ADRES Base Architecture and Programm<strong>in</strong>g Model<br />

The ADRES architecture based on its template [1] is a tightly-coupled architecture that<br />

can operate <strong>in</strong> either VLIW or CGA mode. Figure 1 shows the selected 4x4 ADRES<br />

base architecture of [8] <strong>in</strong>clud<strong>in</strong>g data and <strong>in</strong>struction memories. When the architecture<br />

is operat<strong>in</strong>g <strong>in</strong> VLIW mode the performance is improved due to <strong>in</strong>struction level<br />

parallelism. In CGA mode performance is improved by paralleliz<strong>in</strong>g loops on the array<br />

(loop level parallelism). ADRES based systems are programmed <strong>in</strong> ANSI-C language.<br />

Any exist<strong>in</strong>g ANSI-C program can be modified to suit the ADRESS CGA by modify<strong>in</strong>g<br />

the if-conversions and remov<strong>in</strong>g all nested loops as described <strong>in</strong> [1]. No additional <strong>in</strong>structions<br />

<strong>in</strong> the source code are needed for the compiler to map the loops to the CGA.<br />

Code that could not be mapped on the array is executed on the VLIW rely<strong>in</strong>g only on<br />

<strong>in</strong>struction level parallelism.<br />

Configuration Memories<br />

VLIW View<br />

Inst. Fetch<br />

Inst. Dispatch<br />

Branch ctrl<br />

Mode ctrl<br />

CGA & VLIW<br />

VLIW CU<br />

CGA View<br />

FU<br />

RF<br />

DMEM<br />

Global PRF<br />

Global DRF<br />

FU FU FU FU<br />

FU<br />

RF<br />

FU<br />

RF<br />

FU<br />

RF<br />

FU<br />

RF<br />

FU<br />

RF<br />

FU<br />

RF<br />

FU<br />

RF<br />

FU<br />

RF<br />

FU<br />

RF<br />

FU<br />

RF<br />

FU<br />

RF<br />

Fig. 1. ADRES Instance example<br />

The VLIW control unit (CU) controls the program counter (PC) and is responsible<br />

for fetch<strong>in</strong>g <strong>in</strong>structions from the <strong>in</strong>struction cache. The switch between VLIW and<br />

CGA modes is directed by the same VLIW CU by fetch<strong>in</strong>g a CGA <strong>in</strong>struction <strong>in</strong> VLIW<br />

mode. The configuration memories (CM) are addressed by a control unit and provide<br />

<strong>in</strong>structions and rout<strong>in</strong>g data for the entire array dur<strong>in</strong>g CGA operation.<br />

Communication between the two modes goes via the multi-port global Data Register<br />

File (DRF) or data memory (DMEM). The VLIW functional units (FU) communicate<br />

ICache<br />

VLIW<br />

Section<br />

CGA<br />

Section

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

Saved successfully!

Ooh no, something went wrong!