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