computer,hardware,software,gaming,notebook,portatile,home theater,htpc,windows,overclock
    Ricerca avanzata
 
pecora nera
 

 categorie categorie del sito
 Schede madri separatore
 Processori separatore
 Bios separatore
 Schede video e monitor separatore
 Chipset separatore
 Memorie RAM separatore
 Storage separatore
 Dissipazione separatore
 Accessori, case e sistemi separatore
 HTPC e alta definizione separatore
 Notebook, netbook e phone separatore
 Sicurezza e reti separatore
 Software e videogame separatore
 Web e gossip separatore
 Overclock e modding separatore
 HowTo separatore
 Elettronica e informatica separatore
 
 Guida al bios separatore
 FAQs separatore
 Windows Vista FAQ & Tips separatore
||
 servizi servizi del sito
 Iscrizione ai servizi separatore
 Iscrizione a Daily Dinox's separatore
 Informazioni newsletter separatore
 Pubblicità su Dinox PC separatore
Tool ricerca per Firefox 2 Tool ricerca per Firefox 2 separatore
Tool ricerca per IE7 Tool ricerca per IE7 separatore
Preferiti Dinox PC nei preferiti separatore
Imposta come homepage Dinox PC come homepage separatore
Links utili
 Aziende ITC separatore
 Partners di Dinox PC separatore
 Mr.Webmaster separatore
 Neo Hardware separatore
 DevSpy.com separatore
 MPEGX.com separatore

www.aruba.it
www.
Cos'è una PIPELINE
Prodotta da Dino Fratelli il 30.07.2000

Introduzione

 
Nei moderni processori la pipeline riveste un ruolo molto importante. Essa è usata per poter eseguire operazioni di calcolo in parallelo da parte di un processore (sia esso grafico, general purpose o DSP). In pratica, c'è bisogno di avere un certo numero di registri in più integrati nel processore rispetto ad una architettura senza pipeline (quindi più memoria interna). Questo maggior dispendio di risorse è giustificato da una maggiore velocità nell'esecuzione di operazioni ripetitive. Faccio un esempio: se un processore deve effettuare 10 moltiplicazioni e ogni moltiplicazione richiede 10 colpi di clock avrò bisogno di 100 colpi di clock per terminare il processo. Inserendo una pipeline a 10 livelli (nella pratica si arriva a 4-5 livelli ma qui vogliamo semplificare i conti) avremo bisogno di 10 colpi di clock per caricare la pipeline, poi ogni colpo di clock tireremo fuori un risultato della moltiplicazione; il tutto sarà allora eseguito con soli 20 colpi di clock!!!

Per poter eseguire una istruzione, una CPU, deve compiere prima delle operazioni. Vediamo quale è l'iter generale per poter arrivare ad un risultato partendo dai dati e le istruzioni che si trovano in memoria. Per rendere le cose più facili partiamo da un esempio.

Supponiamo di voler calcolare la seguente espressione: 3*4=12.

La prima cosa da capire è che in un processo le operazioni sono sequenziali. Quale sarà la prossima istruzione da eseguire ce lo dice il Program Counter (PC). In questo registro è sempre memorizzato l'indirizzo di memoria della prossima istruzione da eseguire. Allora, nel nostro esempio, supponiamo che il PC contenga l'indirizzo della operazione di moltiplicazione e dei dati 3 e 4. Questo indirizzo viene mandato alla CPU che deve compiere le seguenti operzioni prima di arrivare al risultato:

  1. Reperimento dell'istruzione (attraverso l'indirizzo);
  2. Decodifica dell'istruzione (la CPU deve capire di che istruzione si tratta: booleana come AND, OR, NOT, ... oppure aritmetica come MOLTIPLICAZIONE, SOMMA, ... oppure altre di controllo, ecc.);
  3. Esecuzione dell'istruzione, quindi reperimento dei dati in memoria (3 e 4) e salvataggio del risultato in memoria (12);

Come detto abbiamo bisogno, innanzi tutto, di un certo numero di registri in più. Ma questo non basta: infatti anche il numero di bus di comunicazione deve essere aumentato per far in modo di eseguire più operazioni contemporaneamente sulla memoria.  Con una pipeline a regime di 3 livelli siamo in grado di eseguire una operazione ogni ciclo di clock. Guardiamo la figura seguente:

Una pipeline generica

Il blocco Rep è quello che si occupa del reperimento dell'istruzione, il blocco Dec della decodifica e il blocco Exe dell'esecuzione. La freccia gialla indica un accesso in memoria istruzioni (quindi l'uso del bus che fa comunicare CPU con la memoria istruzioni) mentre quella celeste indica un accesso in memoria dati (quindi l'uso del bus che collega la CPU con la memoria dati). La pipeline risulta piena nello slot temporale 3. Esaminando questa situazione si vede che ci sono al massimo 3 accessi contemporanei in memoria; si capisce allora che occorrono 3 bus di cui 1 per le istruzioni e 2 per i dati (la memoria è divisa in una parte dati e una parte istruzioni). Ad ogni ciclo si ha l'esecuzione contemporanea dei blocchi entro lo slot numerato; quindi nello slot 1 reperiamo l'istruzione 1, nello slot 2 reperiamo l'istruzione 2 e decodifichiamo l'istruzione 1, nello slot 3 reperiamo l'istruzione 3, decodifichiamo l'istruzione 2 e eseguiamo l'istruzione 1, ecc. Da questo momento in poi avremo una istruzione eseguita ad ogni colpo di clock. In questo esempio mi sono fermato a sole 3 istruzioni ma pensiamo se le istruzioni da eseguire sono 300!

Naturalmente la pipeline non risulterà sempre efficiente; infatti nel caso si incontrino spesso salti nel programma o interruzioni, bisognerà svuotare la pipeline (finire cioè di eseguire le istruzioni che erano state reperite) e passare al nuovo processo. Se, però, i programmi sono fatti in modo da sfruttare questo congegno il risparmio di tempo è notevole. A dimostrazione di questa cosa vi ricordiamo l'impatto negativo sulle prestazioni che la pipeline delle CPU Pentium 4 ha mostrato, tanto che Intel sta cercando in diversi modi la strada per migliorare il meccanismo di branch prediction o previsione dei salti.

Il costo da pagare è una maggior complessità nel progetto della CPU, una maggior richiesta di risorse hardware e conseguentemente un costo maggiore. Chiaramente nel nostro articolo abbiamo parlato di una tecnica generica di pipelining; le specializzazioni di tale tecnica dovrebbero essere approfondite caso per caso.




:-)   (Inviato da diablo91 il 18.01.2003 alle 14:17)
Bell' articolo,
complimenti.
 
 

Per poter commentare la recensione è necessario essere registrati sul forum. Se ancora non lo sei puoi farlo da questa pagina.

Home page
Dinox PC Hardware