Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che...

23
Xscale Nicola Rebagliati 2001s135

Transcript of Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che...

Page 1: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

XscaleNicola Rebagliati 2001s135

Page 2: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Cos’e’ Xscale

• Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

• Xscale implementa il set di istruzioni dell’ ARM5, ad eccezione delle floating point instruction.

Page 3: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Obiettivi del progetto Xscale

• Basso costo

• Basso consumo

• Ridotto time to market

• Flessibilità

• Elevata integrazione

• Elevata potenza di calcolo

Page 4: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Il PXA255

• Il PXA255 è un processore che sfrutta la microarchitettura Xscale

• Palmari strongARM

Il palmare Tungsten offre:

Browser

Word

Excel

Powerpoint

Display a 65000 colori

Page 5: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Le features architetturali di xscale

Page 6: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

3 Pipeline

• Sono presenti 3 pipeline:

• Main execution pipeline

• Memory pipeline

• MAC pipeline

• L’uso ottimale di una pipeline è consentito dal branch buffer che effettua una previsione dinamica basata sulla storia passata di un salto.

Page 7: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Main execution pipeline

• Fetch istruzione (stadio 1)

• Fetch istruzione (stadio 2)

• Decodifica istruzione

• Lettura degli operandi

• Esecuzione (ALU)

• Esecuzione (modifica dello stato)

• Scrittura del risultato

Page 8: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Memory pipeline

• Fetch istruzione (stadio 1)• Fetch istruzione (stadio 2)• Decodifica istruzione• Lettura degli operandi• Esecuzione (ALU)• Accesso alla cache di dati (1 stadio)• Accesso alla cache di dati (2 stadio)• Scrittura del risultato

Page 9: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

MAC pipeline

• Fetch istruzione (stadio 1)• Fetch istruzione (stadio 2)• Decodifica istruzione• Lettura degli operandi• Moltiplicazione (stadio 1)• Moltiplicazione (stadio 2)• Moltiplicazioni successive• Scrittura del risultato

Page 10: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Branch target buffer Consiste di una tabella con 128 entry. Ogni entry consiste di:• L’indirizzo di una branch instruction (istruzione ramo).• L’indirizzo di una possibile istruzione successiva.• Una voce che indica quanto è consigliata la possibile

istruzione successiva.

le 4 voci possibili del terzo campo sono: strongly taken, weakly taken, weakly not-taken e strongly not-taken.

Ogni volta che una strada viene scelta la terza voce della entry fa un passo verso il strongly taken.

Ogni volta che una strada viene evitata la terza voce della entry fa un passo verso il strongly not-taken.

Page 11: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Branch target buffer

Quindi arrivati ad una branch instruction la si cerca in questo buffer e si guarda il terzo campo:

nel caso in cui indichi strongly taken o weakly taken viene fetchata la possibile istruzione successiva, altrimenti se dice weakly not-taken e strongly not-taken viene fetchata istruzione seguente del Branch.

Page 12: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Debug unit

• Consente ad un’applicazione apposita di debuggare un programma che gira sul processore, fermandolo in un certo momento e osservando i valori dei vari registri in quel momento e poi farlo ripartire.

• Usa : hardware breakpoint.

Page 13: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

32 KB instruction cache

• Mantiene una copia locale delle istruzioni piu’ importanti per consentire buone performances e bassi consumi.

Page 14: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

32KB local cache

• Mantiene una copia locale dei dati piu’ importanti per consentire buone prestazioni e bassi consumi.

Page 15: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Operazioni di I/O

• L’I/O è di tipo memory mapped.

• I registri delle periferiche si trovano ad opportuni indirizzi di memoria.

• 2 tipi di interruzioni: normale e fast.

Page 16: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Risparmio energetico

• Run mode: modo operativo normale.

• Idle mode: clock fermo,stato preservato; risveglio tramite interruzione.

• Sleep mode:stato non completamente preservato; alimentati solo i piedini di input output.

• Turbo mode:commutazione rapida fra 2 sequenze di clock preprogrammate.

Page 17: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Ottimizzare le librerie C

• Molte routines della libreria standard C possono trarre beneficio da questa architettura, se modificate:

Ad esempio strcat,strlen,memcmp etc.

Page 18: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Come si ottimizza in C

Il manuale consiglia di creare cicli for dove la condizione di uscita preveda che un numero sia comparato con lo 0:

• Non così For (i=0;i<10;i++)

• Ma così For (i=9;i>=0;i--)

Uso della funzione prefetch(dato) che mette già da parte il dato in questione.

Page 19: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Il prefetch

Esempio: modifichiamo il codice:

Preorder(treeNode *t){

If (t){

process(t->data);

preorder(t->left);

preorder(t->right);}

}

Page 20: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Il prefetch

Potremmo far risparmiare tempo e scrivere:

Preorder(treeNode *t){If (t){ prefetch(t->right); prefetch(t->left);

process(t->data); preorder(t->left); preorder(t->right);}

}

Page 21: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

La lunghezza del codice

• Nel caso di sw per cellulari è importante che il codice non sia lungo, questo ovviamente abbasserà le prestazioni dell’applicazione.

Page 22: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Ottimizzazione per compilatori

• Uso delle lunghe istruzioni LDM/STM che salvano o caricano in più registri alla volta.

• Moltiplicazioni e divisioni sono ottimizzate se ricondotte a operazioni di shift dei bit.

Page 23: Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.

Xscalefine

Nicola Rebagliati 2001s135