ARCHITETTURA - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

ARCHITETTURA

Description:

ARCHITETTURA EPIC ( Explicitly Parallel Instruction Computing ) ... PowerPoint Presentation Author: Template User Last modified by: Template User Created Date: – PowerPoint PPT presentation

Number of Views:61
Avg rating:3.0/5.0
Slides: 21
Provided by: Templ212
Category:

less

Transcript and Presenter's Notes

Title: ARCHITETTURA


1
Fabio Casale, Matteo Sosso
ARCHITETTURA IA-64
2
Introduzione all IA-64
ARCHITETTURA IA-64
EPIC nasce dallanalisi delle caratteristiche
dalle architetture esistenti
CISC RISC VLIW
EPIC
E necessario cambiare architettura!
IA 64 e x86 non sono compatibili a livello binario
Possibile compatibilita con codice a 32 bit
tramite emulatori o traduttori binari.
Necessita di nuovo software (sistemi operativi,
compilatori ecc.)
Nuovo set di istruzioni orientate al parallelismo
( ILP )
3
le limitazioni del x86
ARCHITETTURA IA-64
  • Problemi x86 CISC
  • parallelismo implementato via hardware
  • predizione dei salti
  • limitate risorse interne
  • latenza memoria
  • complessita hardware

4
sono state risolte
ARCHITETTURA IA-64
Esecuzione parallela architettura EPIC
Predizione dei salti uso dei predicati
(predicative execution)
Grandi cache suddivise su piu livelli,
istruzioni di precaricamento dati direttamente
nel codice (a compile time invece che a run time)
Grande disponibilita di risorse, registri
rotanti, pagine di memoria a dimensione variabile
(indirizzamento)
Chiamate a subroutine e passaggio dei parametri
(register stack engine)
Implementazione dei cicli
5
Parallelismo delle istruzioni
ARCHITETTURA IA-64
  • VECCHIE ARCHITETTURE
  • unita hardware aggiuntive per scegliere
    parallelo gruppi di istruzioni da eseguire in
    parallelo.
  • natura intrinsecamente sequenziale del set di
    istruzioni x86.
  • ARCHITETTURA EPIC ( Explicitly Parallel
    Instruction Computing )
  • la scelta dei gruppi da eseguire parallelamente
    e presa dal compilatore.
  • non serve piu hardware aggiuntivo che esegue
    controlli a run time.
  • il nuovo set di istruzioni permette di creare un
    codice contente riferimenti espliciti ai gruppi
    eseguibili in parallelo.

6
Predizione dei salti
ARCHITETTURA IA-64
  • VECCHIE ARCHITETTURE
  • dispositivi hardware aggiuntivi per la
    predizione dei salti
  • in caso di fallimento e necessario svuotare la
    pipeline e ricaricare le nuove istruzioni
  • piu lunga e la pipeline maggiore e lo
    svantaggio portato da una predizione errata
  • IA-64
  • introduzione dei predicati ( predicative
    execution )
  • possibilita di eseguire entrambi i flussi di un
    salto
  • il compilatore puo aggiungere nel codice
    istruzioni per aiutare la predizione dei salti

7
Predizione dei salti
ARCHITETTURA IA-64
Esempio di salto eseguito nelle architetture
tradizionali e nella nuova IA-64
codice stile C if ai.ptr ! 0
biai.l else biai.r i
Sistema dei predicati
Architettura tradizionale
IA-64
load ai.ptr
load ai.ptr
p1, p2CMP ai.ptr ! 0
p1, p2CMP ai.ptr ! 0
load ai.l
p1
load ai.r
p2
jump if p2
load ai.l
store bi
p1
store bi
p2
then
store bi
i i 1
jump
load ai.r
else
store bi
i i 1
8
Predizione dei salti
ARCHITETTURA IA-64
Il compilatore ha la possibilita di inserire nel
codice informazioni per aiutare la predizione dei
salti.
  • Indizi disponibili per la predizione dei salti
  • Strategia di predizione
  • Taken / Not Taken salto probabile / improbabile
  • Static / Dynamic se static utilizza il valore
    Taken/Not Taken, lascia allalgoritmo di
    predizione la scelta
  • Prefetch Sequenziale
  • Few / Many indica la quantita di istruzioni da
    precaricare nel ramo prescelto

9
Organizzazione della memoria
ARCHITETTURA IA-64
Con laumento della velocita dei processori e
venuto a crearsi il problema del tempo di latenza
delle memorie. Per questo motivo sono state
introdotte le memorie cache. In caso di lunghe
pipeline, se un solo elemento della pipeline ha
bisogno di un dato residente in memoria tutta la
pipeline deve fermarsi per attenderne il
caricamento.
  • VECCHIE ARCHITETTURE
  • adozione di memorie cache
  • introduzione di circuiti hardware per predire
    quali dati della memoria debbano venir caricati
    in cache ( hardware prefetch )
  • necessita di controllare la coerenza fra dati
    in cache e in memoria
  • IA-64
  • adozione di memorie cache di grandi dimensioni e
    divise su piu livelli ( tre livelli per Itanium
    )
  • set di istruzioni specifico per la verifica
    della coerenza fra cache e memoria.
  • possibilita di gestire il precaricamento in
    cache dei dati tramite istruzioni inserite al
    momento della compilazione.

10
Control speculation
ARCHITETTURA IA-64
Permette al compilatore di caricare i dati prima
che il codice ne abbia effettivamente bisogno
questo permette di ridurre la perdita di tempo
dovuta alla latenza delle memorie e di eseguire
istruzioni in parallelo al caricamento dei dati.
Esistono due istrizioni speciali - speculative
load (ld.s) - check (check.s)
11
Control speculation
ARCHITETTURA IA-64
codice stile C t1t11 if t1gtt2 jat1-t2
bj
Control speculation
Architettura tradizionale
IA-64
add t1 1
add t1 1
exception detection
cmp t1 gt t2
ld.s r8at1-t2
jump
cmp t1 gt t2
jump
exception delivery
load at1-t2
check.s r8
load bj
load bj
add bj 1
add bj 1
12
Grande disponibilita di risorse interne
ARCHITETTURA IA-64
  • Larchitettura IA-64 mette a disposizione un
    elevato numero di risorse interne
  • grande numero di registri interni (interi,
    float, flag)
  • registri rotanti
  • stack sui registri
  • possibilta di indirizzare pagine di memoria di
    dimensione variabile

13
Grande numero di registri
ARCHITETTURA IA-64
128 registri a 64 bit per gli interi di cui 32
statici e 96 rotanti 128 registri a 82 bit per i
numeri in virgola mobile di cui 32 statici e 96
rotanti 64 registri per i predicati di cui 16
statici e 48 rotanti 8 registri per i salti 128
registri speciali 1 registro CFM
14
Grande numero di registri
ARCHITETTURA IA-64
Schema dei registri interni dellIA-64
15
Registri rotanti
ARCHITETTURA IA-64
I registri vengono usati come fossero uno stack
rotante. Nei momenti di inutilizzo della memoria
centrale si effettua un salvataggio/ripristino
dei registri più vecchi (quelli più lontani dalla
posizione della finestra corrente). Man mano che
la finestra avanza, la logica di controllo libera
dei registri davanti ad essa per permettere altri
avanzamenti, e vicerversa man mano che torna
indietro il valore dei vecchi registri viene
ripristinato. In conclusione il risultato di
tutto ciò è una ruota di registri virtualmente
infinita. La copia dei dati in memoria viene
eseguita via hardware in background senza
lintervento dellapplicazione.
16
Registri rotanti
ARCHITETTURA IA-64
Registro virtuale registro fisico registro di
rotazione base (RRB)
17
Chiamate a subroutine
ARCHITETTURA IA-64
Il passaggio dei parametri avviene attraverso il
banco dei registri, organizzato in una struttura
a stack rotante di 96 registri. Ciascuna
subroutine ha accesso ad un numero programmabile
di registri consecutivi (la sua finestra), i
primi saranno i registri dei parametri ricevuti
dalla subroutine chiamante, gli ultimi quelli di
uscita verso altre subroutine. Quando una
subroutine A chiama un'altra subroutine B, la
finestra scorre in avanti, così che quelli che
per A erano i registri dei parametri di uscita,
per B sono i registri dei parametri di ingresso.
Al ritorno dalla subroutine la finestra scorre
indietro, ripristinando la finestra precedente.
18
Chiamate a subroutine
ARCHITETTURA IA-64
Schema del passaggio di parametri fra subroutine
tramite il meccanismo dello stack sui registri.
19
Indirizzamento della memoria
ARCHITETTURA IA-64
E possibile indirizzare fino a 18 miliardi di GB
di memoria direttamente 264 18.446.744.073.709.
551.616 Byte
L IA-64 puo indirizzare pagine di memoria di
dimensione variabile fino a 256MB. L IA-32
permetteva di indirizzare solo pagine di
dimensione fissa di 4KB.
L IA-64 mette a disposizione del Sistema
Operativo registri per suddividere lo spazio di
indirizzamento fino ad un massimo di 8 aree.
20
Conclusioni
ARCHITETTURA IA-64
Grande passo in avanti rispetto allarchitettura
x86
Elevata potenza specifica (maggiore efficienza a
parita di clock)
Necessita di riscrivere completamente il
software (Sistemi Operativi, Compilatori, ecc.)
Viene delegato molto lavoro ai compilatori.
Lunico processore con architettura IA-64
attualmente in commercio e lITANIUM di Intel.
Write a Comment
User Comments (0)
About PowerShow.com