You are on page 1of 36

Unive

rs

PROCESSORI VLIW

deg
li Stu di d i
tania Ca

Sistemi Embedded per il Mobile Multimedia


Corso di Laurea Specialistica in Informatica Facolt di Ingegneria Universit degli Studi di Catania Anno Accademico 2006/2007 Prof.: V.Catania Tutor: M.Palesi, D.Patti

Tesina per il corso di

A cura di Roberto Aloi

Copyright 2006 Roberto Aloi

Unive

rs

PROCESSORI VLIW
TABLE OF CONTENTS
Introduzione ai Processori VLIW - Caratteristiche principali - Un po' di storia - The Very Long Instruction World - Esempio pratico VLIW e Superscalari a confronto - Architetture RISC, CISC, VLIW - Implementazioni RISC, CISC, VLIW - VLIW vs Superscalari Implementazioni - Transmeta Crusoe - Texas Instruments C6X Scenari Applicativi - L'Embedded Multimedia References

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
INTRODUZIONE

deg
li Stu di d i
tania Ca

ACRONIMO: Very Long Instruction Word OBIETTIVO: Ottenere un alto grado di parallelismo (Instruction Level Parallelism o ILP) PRINCIPIO: Permettere l'esecuzione simultanea di pi istruzioni attraverso l'adozione di funzionalit aggiuntive all'interno del microprocessore e l'utilizzo di software per la compilazione pi complessi del normale.

Copyright 2006 Roberto Aloi

Unive

rs

PROCESSORI VLIW
UN PO' DI STORIA
1946: Alan Turing concepisce l'idea di parallel computing. 1951: Maurice Wilkes studia il microprogramming. Le microprogrammed CPUs sono caratterizzate da una macroistruzione scindibile in pi microistruzioni, che possono essere ordinate (horizontal microprogramming). 1979: Josh Fisher sviluppa il trace scheduling, tecnica che consente di generare long instructions a partire da pi piccole istruzioni sequenziali. 1984: Vengono fondati Multiflow (Fischer) e Cydrome (Rau), gruppi di ricerca con lo scopo di dar vita ai primi VLIW Supercomputers. Alcuni tentativi commerciali falliscono (mercato non ancora pronto, tecnologia incompleta).

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
UN PO' DI STORIA
Fine Anni 80: Fischer e Rau alla Hewlett-Packard. Nasce la Playdoh research machine. Inizio Anni 90: Periodo di stasi Met Anni 90: Una nuova serie di media processing chips (Chromatic's Mpact, Philips TriMedia) porta allo sviluppo del primo prodotto commerciale VLIW di successo: la serie Texas Instruments C6X. 2000: Nasce una nuova generazione di microprocessori large-scale VLIW: Transmeta Crusoe (a basso consumo, dedicato ai sistemi embedded), Intel Itanium (chips a 64 bits) Oggi: La tecnologia disponibile ed il basso costo delle memorie consente un importante rilancio della tecnologia VLIW.

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
THE VERY LONG INSTRUCTION WORD

- Riferimento alla dimensione di ogni singola istruzione processata (64, 128 o addirittura pi bits), rispetto alle minori dimensioni delle istruzioni nelle architetture standard (scalari, superscalari). - Il Bundle (o Fagotto) - Suddivisione del bundle in slots, ognuno in grado di contenere un'istruzione di un certo tipo (in base alle unit funzionali disponibili) - Un ciclo di clock per ogni VL Instruction (slots eseguiti simultaneamente) - Issue width: massimo numero di operazioni per bundle - Istruzioni ed operazioni (solitamente istruzioni RISC a 32 bits) Istruzione Operation 1 Operazione Operation 2 Operation 3 Operation 4 Operation 5

deg
li Stu di d i
Copyright 2006 Roberto Aloi

Issue width: 5 Operation Size: 32 bits Instruction Size: 32 x 5 = 160 bits

tania Ca

Unive

rs

PROCESSORI VLIW
ESEMPIO
IPOTESI: - Issue Width: 5 slots - Unit Funzionali: 2 x Load/Store, 2 x Floating Point, 1 x Integer LD / ST Operation 1 LD / ST Operation 2 FP Operation 3 FP Operation 4

deg
li Stu di d i

Operation 5

CODICE D'ESEMPIO (RISC): LD / ST LD / ST INT FP INT LD / ST INT


Copyright 2006 Roberto Aloi

tania Ca

INT

Unive

rs

PROCESSORI VLIW
ESEMPIO
LD / ST NOP LD / ST NOP FP NOP FP NOP

deg
li Stu di d i

NOP

LD / ST LD / ST INT FP INT LD / ST INT


Copyright 2006 Roberto Aloi

tania Ca

INT

Unive

rs

PROCESSORI VLIW
ESEMPIO
LD / ST LW 1 LD / ST LW2 FP DIVF FP NOP

deg
li Stu di d i

ADD

LD / ST LD / ST INT FP INT LD / ST INT


Copyright 2006 Roberto Aloi

tania Ca

INT

Unive

rs

PROCESSORI VLIW
ESEMPIO
LD / ST LW 1 SW LD / ST LW2 NOP FP DIVF NOP FP NOP NOP

deg
li Stu di d i

ADD SUB

LD / ST LD / ST INT FP INT LD / ST INT


Copyright 2006 Roberto Aloi

tania Ca

INT

Unive

rs

PROCESSORI VLIW
ESEMPIO
LD / ST LW 1 SW NOP LD / ST LW2 NOP NOP FP DIVF NOP NOP FP NOP NOP NOP

deg
li Stu di d i

ADD SUB BEQZ

LD / ST LD / ST INT FP INT LD / ST INT


Copyright 2006 Roberto Aloi

tania Ca

INT

Unive

rs

PROCESSORI VLIW
NOTA

deg
li Stu di d i
tania Ca

Architettura: Termine riferito all'instruction set ed alle risorse disponibili per il programmatore (sintassi e semantica delle istruzioni, registri, modalit di indirizzamento in memoria, etc). Implementazione: Termine riferito all'hardware che realizza le operazioni specificate dall'architettura.

Copyright 2006 Roberto Aloi

Unive

rs

PROCESSORI VLIW
ARCHITETTURE RISC, CISC, VLIW

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
ARCHITETTURE RISC, CISC, VLIW

deg
li Stu di d i
tania Ca

ESEMPIO (INGIUSTO PER RISC E VLIW)

longj; function(j); function(longj){ longi; j=j+i; }

Copyright 2006 Roberto Aloi

Unive

rs

PROCESSORI VLIW
ARCHITETTURE RISC, CISC, VLIW

deg
li Stu di d i
tania Ca

ESEMPIO

longj; function(j); function(longj){ longi; j=j+i; }

Copyright 2006 Roberto Aloi

Unive

rs

PROCESSORI VLIW
ARCHITETTURE RISC, CISC, VLIW

deg
li Stu di d i
tania Ca

ESEMPIO

longj; function(j); function(longj){ longi; j=j+i; }

Copyright 2006 Roberto Aloi

Unive

rs

PROCESSORI VLIW
ARCHITETTURE RISC, CISC, VLIW

deg
li Stu di d i
tania Ca

ESEMPIO

longj; function(j); function(longj){ longi; j=j+i; }

Copyright 2006 Roberto Aloi

Unive

rs

PROCESSORI VLIW
ARCHITETTURE RISC, CISC, VLIW

deg
li Stu di d i
tania Ca

ESEMPIO

Performances: CISC: 3 cicli di clock RISC: 3 cicli di clock (ma pi rapidi) VLIW: 1 ciclo di clock (3/9 slots, 1/3 di 3 cicli di clock)

Copyright 2006 Roberto Aloi

Unive

rs

PROCESSORI VLIW
ARCHITETTURE RISC, CISC, VLIW

ASSUMIAMO UNA MIGLIORE POLITICA DI ALLOCAZIONE DEI REGISTRI (Il compilatore passa il parametro in un registro)

deg
li Stu di d i
tania Ca

longj; function(j); function(longj){ longi; j=j+i; }

Copyright 2006 Roberto Aloi

Unive

rs

PROCESSORI VLIW
ARCHITETTURE RISC, CISC, VLIW

ASSUMIAMO UNA MIGLIORE POLITICA DI ALLOCAZIONE DEI REGISTRI (Il compilatore passa il parametro in un registro)

deg
li Stu di d i
tania Ca

longj; function(j); function(longj){ longi; j=j+i; }

Copyright 2006 Roberto Aloi

Unive

rs

PROCESSORI VLIW
ARCHITETTURE RISC, CISC, VLIW

ASSUMIAMO UNA MIGLIORE POLITICA DI ALLOCAZIONE DEI REGISTRI (Il compilatore passa il parametro in un registro)

deg
li Stu di d i
tania Ca

longj; function(j); function(longj){ longi; j=j+i; }

Copyright 2006 Roberto Aloi

Unive

rs

PROCESSORI VLIW
ARCHITETTURE RISC, CISC, VLIW

deg
li Stu di d i
tania Ca

ESEMPIO

Performances: CISC: 1 ciclo di clock (Spesso non possibile allocare i parametri nei registri) RISC: 1 ciclo di clock VLIW: 1/3 ciclo di clock (1/3 slots, 1/3 di 1 cicli di clock)

Copyright 2006 Roberto Aloi

Unive

rs

PROCESSORI VLIW
IMPLEMENTAZIONI RISC, CISC, VLIW

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
SUPERSCALARI vs VLIW
SUPERSCALARI - Pi istruzioni possono essere avviate simultaneamente ed eseguite parallelamente. Il grado di parallelismo viene individuato a run-time. - A differenza di quanto accade nello standard pipelining, tali istruzioni possono trovarsi all'interno dello stesso pipeline stage in un dato istante. VLIW - Pi istruzioni possono essere avviate simultaneamente ed eseguite parallelamente. Il rilevamento del massimo livello di parallelismo viene relegato a compile-time. - Le operazioni candidate al parallelismo vengono riunite dal compilatore in un'unica large instruction. - Una volta terminato il fetch di un'operazione, tutte le operazioni corrispondenti vengono eseguite in parallelo.

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
SUPERSCALARI vs VLIW

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
SUPERSCALARI: PRO E CONTRO

deg
li Stu di d i
tania Ca

PRO: - Compatibilit con il codice eseguibile preesistente - Trasparenza dal punto di vista del compilatore e del programmatore assembly CONTRO: - Hardware complesso e spesso specializzato - Hardware sotto pressione durante l'esecuzione del programma - Ciclo di clock pi lungo - Difficolt nelle fasi di modifica/testing dello scheduler

Copyright 2006 Roberto Aloi

Unive

rs

PROCESSORI VLIW
VLIW: PRO E CONTRO
PRO: - Assenza di Hardware specializzato o complesso (dipendenze controllate a livello software) - Grande code window a disposizione del compilatore - Conoscenza del source code da parte del compilatore, con relativa massiccia possibilit di ottimizzazioni (Trace Driven technique) - Alto potere computazionale (specie in relazione a grandi quantit di dati e cicli importanti) - Possibilit di sostituzione del reorder buffer mediante registri temporanei - Minimizzazione dei potenziali data hazard stalls - Clock Cycle pi breve - Semplicit nelle fasi di modifica/testing del compilatore

CONTRO: - Compiler complesso - Incompatibilt eseguibili (dipendenza dal tipo e dalle latenze delle unit funzionali) - Spreco nelle dimensioni del codice dovuti agli slot vuoti (ma possibilit di utilizzo di tecniche di compressione e/o di ottimizzazione dell'allocazione delle risorse per ovviare al problema) - ILP talvolta non troppo elevati a causa del parallelismo intrinseco dell'applicazione
Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
IMPLEMENTAZIONI
TEXAS INSTRUMENTS C6X SERIES - Digital Signal Processing (DSP) Chips - TI's VelociTI VLIW Architecture - Elevate prestazioni nel calcolo di FFT - Multiply / Accumulate Operations - 8 x 32 = 256 bits instructions - 0.18u CMOS technology - 2000 MIPS - Applicazioni nei modem a banda larga (ADSL), nel campo del real-time image processing e nelle telecomunicazioni wireless

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
IMPLEMENTAZIONI
TRANSMETA CRUSOE PROCESSORS - Una delle prime linee di processori general-purpose VLIW - Progettata per applicazioni mobili - Bassi consumo e dissipazione di potenza (sino al 70% in meno rispetto ad uno standard RISC chip) - Imponente SW Layer, basato sulla tecnologia Code Morphing - Buona parte delle funzionalit spostate a livello SW (branch prediction, out-of-order execution, x86 instruction translation) - Code Morphing Software come layer tra il core VLIW ed il sistema operativo - Compilatore dinamico per il rintracciamento delle VLIW-friendly repetive instructions - Int Pipeline a 7 stadi - FP Pipeline a 10 stadi - Set-associative L1 cache e write-back L2 cache - x86-style translation look-aside-buffer - Applicazioni nei DVD Players

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
APPLICAZIONI

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
APPLICAZIONI
LAMBDA PHOTOMETRICS XPRESS FAMILY - Multi-input frame grabbering - Video compression - Video Multiplexing

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
APPLICAZIONI
LINKTHEATER HIGH-DEFINITION WIRELESS MEDIA PLAYER - High-speed 802.11g wireless multimedia streaming - HDTV Support - DVD Playing

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
APPLICAZIONI
BENQ UNVEILS DMP300 DIGITAL MEDIA PLAYER FOR INTEL VIIV BASED PCS - Digital Media Streaming - Wired or Wireless Network Support - Audio, Image and Video Decoding

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
APPLICAZIONI
BENQ'S NETWORK LCD TVS - LCD Television - Media Browsing - Wired / Wireless Network Support

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
APPLICAZIONI
EQUATOR'S BSP-16 SoC General Purpose Processor - High Video Quality - High signal processing and image processing power - Ottimizzato per operazioni su matrici multidimensionali - Rapido context-switching - Ottima gestione della memoria - 100% C/C++ Programmable, Cost-effective SoC device - 50 bilioni di operazioni al secondo a 500 Mhz

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca

Unive

rs

PROCESSORI VLIW
REFERENCES

- An Introduction to VLIW Computer Architecture Philips Semiconductors - A VLIW Tutorial www.ecs.umass.edu - The VLIW Machine: A Multiprocessor for Compiling Scientific Code J.A. Fischer - VLIW on Wikipedia http://en.wikipedia.org/wiki/Very_long_instruction_word - VLIW and Embedded Processing www.vliw.org - VLIW Processors and Trace Scheduling http://www.cs.utah.edu/~mbinu/coursework/686_vliw/old/ - VLIW at IBM research www.ibm.com

Copyright 2006 Roberto Aloi

deg
li Stu di d i
tania Ca