Spesso ci sono più cose naufragate in fondo a un’anima che in fondo al mare
MICROPROCESSORI E MICROCONTROLLORI
… studiare, studiare ed ancora studiare,
è il solo modo di capire quanto possa
essere grande sia la propria ignoranza!
MICROPROCESSORI VETTORIALI - CISC E RISC
Microprocessori vettoriali
I microprocessori vettoriali eseguono operazioni su vettori di dati
mediante l’utilizzo di componenti hardware opportunamente
adibiti a ciò.
Le unità vettoriali, che eseguono le operazioni vettoriali,
richiedono generalmente che gli operandi siano memorizzati in
registri vettoriali.
I registri vettoriali sono un insieme di registri tradizionali a cui si
può accedere con una sola istruzione.
I vantaggi dei processori vettoriali sono:
•
il numero di istruzioni è notevolmente ridotto, in quanto una singola istruzione vettoriale
sostituisce un numero considerevole di operazioni scalari;
•
poiché le componenti di un vettore sono generalmente memorizzate in locazioni di
memoria consecutive, l’accesso in memoria risulta più veloce;
•
quando l’operando entra direttamente nel registro vettoriale si riducono anche i tempi di
latenza rispetto a molteplici accessi singoli.
CISC e RISC
Fino a qualche anno fa si sono confrontati due tipi di architetture interne dei micropro-
-cessori: la CISC (Complex Instruction Set Computer) e la RISC (Reduced Instruction
Set Computer).
Nella sottostante figura è riportato lo schema a blocchi delle CPU CISC, RISC e VLIW.
Architettura CISC
L’architettura CISC è nata negli anni settanta ed è stata utilizzata per il micro x86 della
INTEL.
Con i micro aventi questo tipo di architettura sono stati costruiti i PC AMIGA, ATARI e
McIntosh precedenti al 1994.
È stata una tecnologia predominante nel periodo in cui la memoria non era molto estesa ed
era piuttosto costosa.
Era quindi necessario usarla in modo ottimale e senza sprechi.
Le caratteristiche di un’architettura CISC sono le seguenti:
•
gap semantico;
– set di istruzioni ampio
– elevato numero di modi di indirizzamento
•
hardware semplice;
•
software più complesso e costoso dell’hardware;
•
linguaggi ad alto livello sempre più complessi;
•
le istruzioni hanno una lunghezza variabile, quelle semplici occupano 1 byte di memoria,
quelle più lunghe 17 byte.
•
le istruzioni con lunghezze variabili sono più complesse
•
da elaborare, in particolare quelle più lunghe;
•
Control Unit molto più complessa, microprogrammata, più flessibile e meno veloce,
necessita di più spazio, quindi le istruzioni più semplici e più usate sono anche le
più lente;
•
i programmi sono più brevi ma attualmente sono vanificati dalla disponibilità di memorie
sempre più estese e meno costose;
• la semplificazione per il compilatore è piuttosto controversa;
• facilità nel debugging dell’assembler;
• basso numero di registri.
Esempi di processori CISC sono:
• DEC VAX
• IBM 370
• Intel Pentium.
Architettura RISC
L’architettura RISC è nata per le workstation Unix e per i computer per applicazioni speciali.
A metà degli anni ’80 e ai primi degli anni ’90 anche grazie al fatto che RISC è nata come
struttura superscalare, ha superato in prestazioni la CISC.
Le sue caratteristiche sono le seguenti:
•
set molto ridotto di istruzioni;
•
istruzioni semplici e di lunghezza fissa;
•
tipologia di istruzioni per trasferimento dati estremamente limitata;
•
un’istruzione per ciclo;
•
metodo load/store, ovvero opera solo su operandi presenti nei registri e non su operandi
residenti in memoria; dopo l’elaborazione i risultati vengono localizzati in memoria, se
necessario;
•
operazioni di trasferimento da registro a registro e tra memoria e registro;
•
numero elevato di registri generali, in alternativa compilatori ottimizzati per l’uso dei
registri;
•
esecuzione delle istruzioni in modo più veloce;
•
ottimizzazione della pipeline basata sul formato fisso delle istruzioni e sui modi semplici
di indirizzamento;
• costo inferiore;
• unità di controllo hardware meno flessibile e più veloce;
• maggiore utilizzo della ottimizzazione a livello di compilatore.
Le più note CPU di tipo RISC sono:
• 801 (1979) dell’IBM;
• Berkeley RISC-I (1982);
• Berkeley RISC-II (1984);
• Stanford MIPS R4000, R6000 della Mips Technologies;
• HP della Spectrum;
• 88000 della Motorola;
• Pyramid della Pyramid Technologies;
• SPARC della Sun Microsystem;
• 860 dell’Intel;
• Alpha della DEC;
• PowerPC della IBM.
Confronto tra CISC e RISC
Il confronto tra le architetture CISC e RISC non è stata mai possibile per i seguenti motivi:
•
non esistono architetture direttamente confrontabili;
•
non esistono programmi di test che consentono una valutazione di tutte le
funzionalità dei micro;
• non è possibile separare le prestazioni del micro da quelle del compilatore.
Tuttavia questo tipo di contrapposizione oggi non ha più ragione di essere perché molte
soluzioni tecniche CISC sono state adottate nell’architettura RISC e viceversa.
Attualmente sia l’architettura CISC sia la RISC hanno una struttura di tipo superscalare.
La sottostante tabella riporta l’elenco cronologico dei microprocessori Intel evidenziando i
valori dei parametri caratteristici.
Evoluzione dei microprocessori Intel.
uP
Anno
Freq. Clock
MHz
Bus Dati
(bit)
n° BJT
(x1000)
RAM
(byte)
Note
4004
1971
0,108
4
2,3
640
primo chip per microcomputer; esegue solo
operazioni aritmetiche
8008
1972
0,108
8
3,5
16 K
opera su dati e caratteri
8080
1972
2
8
6
64 K
prestazioni 10 volte superiori all’8008
8086
1978
5-10
16
29
1 M
prestazioni 10 volte superiori all’8080
80286
1982
8-12
16
134
16 M
prestazioni molto superiori all’8086
386DX
1985
16-33
32
275
4 G
cache esterna e bus a 2 bit
486DX
1989
25-50
32
1200
4 G
cache di 1° livello e coprocessore
Pentium
1993
60-166
32
3100
4 G
unità di predizione dei salti e parallelismo
nell’elaborazione del codice, coprocessore
mat. più potente e tecnologia Bicmos
Pentium II
1997
333-450
64
7500
4 G
integra cache di 1° e 2° livello, 3 canali di
elaborazione parallela, pipeline a 10 stadi
Pentium III
1999
450-1400
64
9500-
28000
64 G
cache migliorate e operazioni floating point
più potenti
Pentium 4
2000
1500-3800
64
42.000
64 G
il clock raggiunge una frequenza di 3,8 GHz
Core Duo
e
Core2 Duo
2006
1200-3060
64
291.000
410.000
128 G
dual core (doppio chip nello stesso
integrato), prestazioni 100 volte superiori al
Pentium, impiegato anche nei nuovi modelli
di computer Apple
Multi Core
Core i7
(quad. core)
Itanium
(quad. core)
Xeon Neha.
(8-core)
2008
2010
2010
3600
731.000
2.000.000
2.300.000
128 G
grande parallelismo, più chip consentono di
aumentare la potenza di calcolo senza
aumentare la frequenza di lavoro, riducendo
il calore dissipato
Altre importanti aziende costruttrici di microprocessori sono Motorola, AMD, ARM, HP, IBM.
La sigla Pentium è stata introdotta da Intel dopo il 486, per poterne depositare il copyright
(la legge americana non consentiva di registrare dei numeri come nome di un prodotto) e
contrastare il mercato dei cloni, prodotti prevalentemente dalla AMD.
Nella soprastante tabella si nota che fino al Pentium 4 i μP erano realizzati in un unico chip
e le prestazioni aumentavano grazie all’incremento del numero dei transistor e della
frequenza di clock.
Poiché però un ulteriore aumento della densità dei componenti e della frequenza comporta
l’insorgere di complicazioni, tra cui quelle legate alla dissipazione termica, si è scelta la
strada di moltiplicare il numero dei chip all’interno dell’integrato (multicore: dual core, quad
core, 8 core, ecc.) il che consente anche la parallelizzazione delle operazioni.
Gordon Moore, uno dei fondatori dell’Intel, in base alle osservazioni del mercato della
microelettronica formulò la legge nota come legge di Moore: le prestazioni dei processori, e
il corrispondente numero di transistor, raddoppiano ogni 18 mesi.
In effetti dal 1971 (introduzione del primo μP) la legge è stata rispettata, fino all’avvento
del Pentium 4, con il quale si sono raggiunti i limiti fisici imposti per la riduzione delle
dimensioni dei transistor.
Da allora, per aumentare le prestazioni di calcolo si è ricorso alla tecnologia multicore,
ovvero all’impiego di più processori contenuti nello stesso integrato