|
Possiamo individuare tre motivi essenziali per tentare una classificazione sistematica delle architetture dei calcolatori; in primo luogo, una classificazione ragionata ci consente di comprendere appieno le proprietà delle architetture già esistenti; in secondo luogo, l'analisi delle zone rimaste vuote nello schema di classificazione può suggerire strutture alternative (il che peraltro non implica che queste siano poi effettivamente suscettibili di implementazione). In terzo luogo, infine, una classificazione adeguata consente di costruire modelli utilizzabili delle prestazioni di un'architettura, permettendo così di stabilire in anticipo perché e in che modo una particolare architettura può fornire un miglioramento delle prestazioni.
Già nel 1966 Flynn proponeva una classificazione delle architetture dei calcolatori [7], rimasta ancor oggi molto popolare, che si basa sulla molteplicità delle istruzioni e dei dati.
Si hanno così quattro grandi famiglie:
In epoca successiva Feng suggeriva [6] l'uso del grado di parallelismo per classificare le architetture dei calcolatori. Il massimo numero di cifre binarie (bit) che possono essere elaborate nell'unità di tempo viene detto massimo grado di parallelismo P. Sia Pi il numero di bit che possono essere processati all'interno dell'i-esimo ciclo del processore; è possibile allora definire un grado medio di parallelismo su T cicli come
In generale, Pi non è maggiore di P. Si può quindi definire un tasso di utilizzazione m relativo a T cicli come
Se la potenza di calcolo del processore è pienamente utilizzata, se quindi il parallelismo è pienamente sfruttato, allora abbiamo Pi = P per ogni i, e m = 1 che equivale a un'utilizzazione al 100%. Il tasso di utilizzazione dipende ovviamente dal programma applicativo in corso di esecuzione, e da come esso è stato suddiviso in segmenti suscettibili di elaborazione parallela.
Nel 1977 Haendler introduceva un ulteriore schema di classificazione [9] basato sia sul numero delle unità di controllo e delle unità aritmetiche presenti nel sistema, sia sul grado di pipelining associato a ciascuno di essi.
Più recentemente, Skillicorn [16] ha proposto uno schema di classificazione ancor più sofisticato, basato sulla classificazione e la differenziazione delle unità funzionali di elaborazione che abbiamo discusso in precedenza; tale schema può tuttavia essere riguardato essenzialmente come un'estensione e una generalizzazione di quello di Feng.
© 1997-2003 Paolo Marincola (Rome, Italy)
e-mail: pmaNOSPAM@acm.org (eliminare
i caratteri "NOSPAM" per ottenere l'indirizzo esatto)
Commenti, osservazioni e suggerimenti sono estremamente graditi.
Last revised: 2003-12-06 19:43