Page 1097 - Informatica dalla A a Z
P. 1097

Evoluzione dei sistemi di elaborazione



           Per migliorare le caratteristiche delle CPU e dei sistemi di elaborazione in generale si sono

           usati vari artifizi: si è aumentata gradatamente le velocità della frequenza di clock, si è
           aumentata l’ampiezza di parola e dello spazio di indirizzamento, incrementando rispetti-
           vamente il numero di bit elaborati contemporaneamente e il numero di celle indirizzabili

           e ben presto si è arrivato ai loro valori limiti.

           A un certo punto si è quindi deciso di abbandonare l’architettura nota come “Macchina di
           Von Neumann” per passare ad incrementare le prestazioni attraverso l’introduzione di fun-

           zioni di elaborazione parallele, in grado di aumentare la velocità di elaborazione mante-
           nendo la stessa frequenza di clock.

           Questa nuova idea ha portato a creare nuovi tipi di architetture note come “architetture

           non Von Neumann”. Queste architetture possono essere classificate in base al grado di
                                                         573
                                                                                                      574
           parallelismo che rendono possibile: SISD  (Single Instruction Single Data), SIMD  (Single
                                                                                                   576
                                                575
           Instruction Multiple Data), MISD  (Multiple Instruction Single Data) e MIMD  (Multiple
           Instruction Multiple Data).


                                                 Tecniche implementate

           Esecuzione fuori ordine: è la capacità della CPU di eseguire in parallelo anche istruzioni

           non vincolate alle altre. Questo metodo prevede innanzitutto che il programma venga ca-
           ricato in memoria, quindi si analizzano le istruzioni e riordinate tenendo conto delle dipen-
           denze, per essere successivamente eseguite in parallelo.


           Il prefetch: Con questa tecnica i processori implementano delle unità che analizzano il co-
           dice cercando di prevedere in anticipo quali istruzioni o dati, serviranno al processore. I
           dati trovati verranno caricati nella cache o direttamente nel processore, prima del loro
           reale impiego. Chiaramente queste scelte potrebbero rivelarsi errate e per questo ogni

           casa produttrice cerca di migliorarne il codice di previsione.

           Speculative execution: La tecnica consiste nell’eseguire, ogni volta che si pone una svelta,
           entrambi i rami di un salto, in modo di essere sicuri di avere sempre in memoria il codice

           da eseguire.



           573  In questa architettura si ha un unico processore che esegue una sola istruzione per volta. Può prelevare e depositare in
           memoria un solo dato per volta.
           574  L’architettura permette di eseguire contemporaneamente la stessa operazione su più dati. Risulta molto utile per le opera-
           zioni multimediali.
           575  L’architettura consente di iniziare l’esecuzione di diverse istruzioni, ognuna sui propri dati. Mentre si esegue un’istruzione
           si può cominciare a elaborare la successiva.
           576  È un’architettura per sistemi multiprocessori.
                                                           1093
   1092   1093   1094   1095   1096   1097   1098   1099   1100   1101   1102