ORGANIZZAZIONE DEI CALCOLATORI INTRODUZIONE

ORGANIZZAZIONE DEI CALCOLATORI
INTRODUZIONE
Mariagiovanna Sami
2007-08
1
UN PO’ DI STORIA
L’idea di “calcolatore programmabile” risale alla
prima metà dell’Ottocento - la “macchina
analitica” di Charles Babbage (ideata ma non
realizzata - problemi tecnologici ed economici ne
impedirono la realizzazione).
‰ Primo calcolatore elettronico programmabile
realizzato e utilizzabile per scopi generali: ENIAC
(Electronic Numeric Integrator and Computer) –
progettato da Eckert e Mauchly all’Unversità di
Pennsylvania nel 1943, prodotto nel 1946, usato
fino al 1955.
‰
20072007-08
-2-
UN PO’ DI STORIA
‰
20072007-08
ENIAC:
¾ Aritmetica decimale (non binaria!)
¾ 20 registri accumulatori di 10 cifre;
¾ Programmata manualmente mediante
interruttori
¾ 18000 tubi a vuoto;
¾ 30 tonnellate, 140 kW di consumo
¾ 5.000 addizioni al secondo
-3-
UN PO’ DI STORIA
‰
ENIAC era scarsamente “programmabile” – non
esiste spazio di memoria condiviso fra memoria e
dati Ö concetto innovativo, proposto da Alan
Turing e John von Neumann: “calcolatore a
programma memorizzato” – macchina IAS
¾
¾
¾
¾
20072007-08
Esiste una memoria che registra programmi e dati;
L’ALU opera su dati binari;
L’unità di controllo comanda la lettura delle istruzioni
dalla memoria, le interpreta e ne comanda
l’esecuzione; inoltre controlla le operazioni di I/O;
IAS: progettato a Princeton, completato nel 1952.
-4-
LA MACCHINA DI VON NEUMANN
CPU
ALU
+registri
I/O
MEMORIA
Unità di
contr.
20072007-08
-5-
LA MACCHINA DI VON NEUMANN
‰
‰
La memoria è costituita da un insieme di posizioni (di
norma indicate come parole) tutte di uguale dimensione
e identificate mediante il loro indirizzo
(sostanzialmente, il numero d’ordine in un elenco
lineare!). La memoria registra sia istruzioni sia dati
(un’istruzione, come un dato, nella memoria è
rappresentata come un numero binario).
L’ALU è costituita da unità funzionali capaci di compiere
– su comando dell’unità di controllo – operazioni di tipo
aritmetico (es. addizioni, sottrazioni) e logico
(operazioni booleane). All’ALU è associato un certo
numero di registri cui può facilemente accedere.
20072007-08
-6-
LA MACCHINA DI VON NEUMANN
‰
‰
‰
Il sistema di ingresso-uscita (I/O) è costituito dalle
unità che consentono al calcolatore di comunicare col
mondo esterno, ricevendo informazione (“ingresso”) o
fornendone (“uscita”).
L’unità di controllo è l’unica parte “attiva” del
calcolatore – l’unità che interpreta le istruzioni del
programma (tradotte nel linguaggio della macchina) e
invia i comandi alle altre in modo da eseguirle (es., invia
alla memoria l’indirizzo di un dato da leggere e il
comando di lettura). L’insieme ALu-Registri-Unità di
controllo viene normalmente indicato come CPU (Central
Processing Unit – spesso anche processore)
Tornando agli esempi storici:
20072007-08
-7-
UN PO’ DI STORIA
‰
Si ricordi il principio essenziale di funzionamento
delle macchine a programma memorizzato:
–
–
–
20072007-08
Le istruzioni sono registrate in memoria così come i
dati; le istruzioni del programma sono memorizzate in
sequenza (cioè in indirizzi consecutivi);
L’unità di controllo è dotata di un registro detto
contatore di Programma (Program Counter) che
indica la prossima istruzione che dovrà essere
eseguita;
Terminata l’esecuzione di un’istruzione, l’unità di
controllo automaticamente legge l’istruzione il cui
indirizzo è contenuto nel PC e aggiorna il PC in modo
che indichi la prossima istruzione.
-8-
Alcuni dettagli sulla macchina IAS:
Memoria: 1000 parole di 40 bit, capaci di
ospitare due istruzioni;
‰ Aritmetica binaria;
‰ CPU dotata di un insieme di registri:
‰
¾
¾
¾
¾
¾
¾
20072007-08
Memory buffer (registro di lettura/scrittura);
Registro di indirizzamento della memoria (MAR);
Registro Istruzioni;
Contatore di Programma (PC);
Accumulatore;
Moltiplicatore/quoziente.
-9-
E gli aspetti commerciali?
1947: Eckert e Mauchly fondano un’azienda che
diventa l’UNIVAC (Universal Automatic
Computer);
‰ 1960: censimento USA utilizza l’UNIVAC I;
UNIVAC diventa poi parte della Sperry Rand;
‰ 1953; IBM (azienda di macchine per ufficio e
sistemi meccanografici) produce il 701 –
calcolatore a programma memorizzato per
calcoli scientifici – e nel 1955 il 702 per
applicazioni commerciali.
‰
20072007-08
- 10 -
La “seconda generazione”:
‰
‰
‰
Seconda metà degli anni ’50: calcolatori con CPU
realizzata a transistori (invenzione del
transistore: 1947, dovuta a William Shockley dei
Bell Labs,) Ö calcolatori più veloci, meno
ingombranti, che occupano meno potenza;
Terza generazione (seconda metà degli anni
’60): circuiti integrati su piccola scala (fino a 100
transistori su un chip).
1971: primo microprocessore (4004 Intel – parole
di quattro bit, qualche migliaio di transistori sul
chip).
20072007-08
- 11 -
I LIVELLI DI INTEGRAZIONE
1965: “Small-Scale Integration” – fino a 100
transistori su un chip;
‰ Fino al 1971: “Medium-Scale Integration” – fino a
3000 dispositivi su un chip;
‰ Dal 1971 al 1977: “Large-Scale Integration” – fino
a 100000 dispositivi su un chip;
‰ Dal 1978: “Very Large Scale Integration” (VLSI) –
da 100.000 a 100.000.000 dispositivi su un chip;
‰ Ultra-Large Scale Integration – oltre i
100.000.000.
‰
20072007-08
- 12 -
LA LEGGE DI MOORE
(Gordon Moore – uno dei fondatori della Intel):
‰ Il numero di transistori sul chip raddoppia ogni
anno (fino al 1970) - dal 1970, raddoppia ogni 18
mesi;
‰ Il costo di un chip resta circa immutato;
‰ Maggiore densità Ö percorsi elettrici più brevi Ö
prestazioni più elevate;
‰ Diminuisce il consumo di potenza; aumenta
l’affidabilità.
20072007-08
- 13 -
LA LEGGE DI MOORE
1971: Intel 4004 – poche migliaia di dispositivi sul
chip;
‰ 2000: Intel Pentium IV – alcune decine di milioni
di dispositivi sul chip.
‰ 2004: si supera il miliardo di transistori su un
chip.
‰ Ogni anno (fino al 2004…):
‰
¾
¾
20072007-08
La frequenza di clock aumenta del 30%;
Il potenziale di prestazioni raddoppia.
- 14 -
LE TENDENZE
NUMERO DI
TRANSISTORI SUL CHIP
VELOCITÀ
logica
X2 in 3 anni
X2 in 3 anni
DRAM
X4 in 3-4 anni
X2 in 10 anni
Dischi
X4 in 2-3- anni
X2 in 10 anni
20072007-08
- 15 -
L’EVOLUZIONE
‰
Introduzione del concetto di “famiglia” – CPU
con diverse capacità (es., velocità, dimensioni
della memoria, capacità di eseguire funzioni
complesse…) ma uguale linguaggio di macchina
(quindi “compatibili” – capaci di eseguire lo
stesso programma oggetto): IBM 360, 1964.
20072007-08
- 16 -
L’EVOLUZIONE
‰
1964: la DEC introduce il PDP-8 – il primo
minicomputer:
¾
¾
¾
¾
20072007-08
costo e dimensioni ridotti,
Può funzionare in ambienti non “protetti”;
Capace di reagire ad eventi esterni “asincroni” (=
indipendenti dal programma in corso di esecuzione) Ö
applicazioni embedded, non più solo per eseguire dei
calcoli!
STRUTTURA A BUS – fortemente modulare, ammette
l’aggiunta di moduli a seconda delle necessità del
cliente (entro limiti!).
- 17 -
STRUTTURA A BUS DEL PDP-8
controll.
console
CPU
Memoria
primaria
OMNIBUS
20072007-08
- 18 -
Modulo di
I/O
Modulo di
I/O
QUALI TECNOLOGIE PER LE CLASSI
DI CALCOLATORI?
‰
Fino gli anni ’90:
¾
¾
20072007-08
Personal computers e processori embedded:
sostanzialmente la stessa tecnologia – dagli anni ’80,
tecnologia CMOS;
Supercomputers: negli anni ‘80-’90, tecnologie
diverse (essenzialmente bipolari) con densità di
integrazione molto mjinore e consumo di potenza
molto elevato, che richiedeva particolari teniche di
raffreddamento.
- 19 -
OGGI- LE CLASSI DI APPLICAZIONI
DEI CALCOLATORI
‰
Oggi: le stesse tecnologie sono usate in
calcolatori digitali per applicazioni che vanno
dagli elettrodomestici ai supercomputer:
sostanzialmente, si possono distinguere:
¾
20072007-08
Personal computers: le caratteristiche cambiano a
seconda che si tratti di calcolatori “da scrivania” o di
portatili (nel secondo caso i vincoli di consumo sono
molto più forti);
- 20 -
OGGI- LE CLASSI DI APPLICAZIONI
DEI CALCOLATORI (2)
¾
20072007-08
Server: orientati per sopportare carichi di lavoro
elevati (singole applicazioni complesse piuttosto che
un gran numero di applicazioni semplici, come nel
caso di un Web Server). La tecnologia è la stessa di
quella di un PC, ma deve fornire grande espandibilità
sia in termini di capacità di elaborazione che in
termini di connettività (normalmente sono accessibili
solo da rete).
- 21 -
OGGI- LE CLASSI DI APPLICAZIONI
DEI CALCOLATORI (3)
¾
20072007-08
Al limite superiore: supercomputer, oggi sistemi
multiprocessore costituiti da centinaia, migliaia o
anche decine di migliaia di processori collegati fra
loro, usati per calcoli scientifici e ingegneristici
complessi (es. meteo, modelli sismici, ricerca
petrolifera, genomica e proteomica, etc.).
- 22 -
OGGI- LE CLASSI DI APPLICAZIONI
DEI CALCOLATORI (4)
¾
20072007-08
Calcolatori embedded: di gran lunga la classe più
ampia, col più esteso spettro di applicazioni – dal
microprocessore relativamente semplice per un
elettrodomestico al sistema di elaborazione in un
cellulare o un PDA, fino alle reti di centinaia o
migliaia di processori su un aereo o una nave. Sistemi
progettati per eseguire una particolare applicazione
(o insieme di applicazioni) di norma integrata con lo
hardware in un solo sistema. Requisiti particolari:
(spesso) vincoli di costo e consumo, richiesta di
grande affidabilità. Negli ultimi anni il settore è
cresciuto molto più rapidamente dei due precedenti.
- 23 -
OGGI- LE CLASSI DI APPLICAZIONI
DEI CALCOLATORI (6)
‰
¾
¾
¾
¾
Nel 2002: unità vendute per le diverse classi:
PC: 131 milioni
Server + supercomputer: 5 milioni
Calcolatori embedded: 1122 milioni (in questo caso si
contano i singoli processori – su un’auto di classe
elevata ce ne sono più di 150…): in assoluto, la CPU più
venduta è l’ARM (processore tipico per sistemi
embedded – es., telefoni cellulari)…
Oggi i calcolatori embedded hanno effettuato il
“sorpasso” anche in termini di dollari, non solo in
volume di vendite!
20072007-08
- 24 -
IL CORSO
‰
‰
‰
I livelli di astrazione nella rappresentazione di un
calcolatore
L’architettura generale di un calcolatore: processori,
bus, memoria, sottosistema di I/O
Il linguaggio macchina:
¾
¾
‰
le operazioni svolte dall’hardware
La rappresentazione delle istruzioni all’interno del calcolatore
Il processore: unità di elaborazione e unità di controllo
20072007-08
- 25 -
IL CORSO
‰
‰
‰
Unità di controllo: cenni a soluzione cablata e a
microprogrammazione
La valutazione delle prestazioni: le misure di base
La gerarchia di memoria:
¾
¾
¾
‰
L’interfaccia tra processori e periferiche
–
–
–
‰
Fondamenti sulle cache e valutazione delle prestazioni
La memoria centrale e la memoria di massa
Gestione della memoria tramite memoria virtuale
Il funzionamento del bus
Le interfacce di I/O
Tecniche di interfacciamento di dispositivi di I/O
Miglioramento delle prestazioni mediante l’uso della
pipeline
20072007-08
- 26 -
IL CORSO
‰
Testo di riferimento:
D.A.Patterson, J.H. Hennessy: “Struttura e progetto dei
calcolatori: l’interfaccia hardware-software”, ed.
Zanichelli
20072007-08
- 27 -