Architettura dei sistemi di elaborazione: Modelli Architetturali La

Architettura dei sistemi di
elaborazione:
Modelli Architetturali
La CPU: Generalità
La “preistoria” dei sistemi di elaborazione
•Fin dai tempi più
antichi l’uomo ha
costruito apparecchi
utili per alleviare lo
sforzo per il calcolo
e per evitare errori.
•Fra i più antichi
ricordiamo
–Abaco
–Pallottoliere
Prime macchine per l’elaborazione
•Blaise Pascal (1623-1662) realizzò la
prima macchina a ruote dentate in grado di
eseguire somme e sottrazioni (pascaline)
•Gottfried Wilhelm Leibniz (1646-1716)
progettò la prima macchina in grado di
eseguire tutte e quattro le operazioni
aritmetiche.
•Le macchine calcolatrici dei secoli XVII e
XVIII non erano computer nel senso
moderno del termine; dotate di un numero
prestabilito di operazioni, non potevano
essere programmate e l’utente doveva
limitarsi a utilizzarle per eseguire
un’operazione dopo l’altra.
Macchine più complesse per la soluzione di
problemi particolari
•Inizio '800 Babbage
–Macchina alle differenze
–(tavole di calcolo)
•Fine '800 Hollerith
–Censimento U.S.A. 1890
–(utilizzo di schede
perforate)
•1927 Bush
–Macchina per il calcolo
degli integrali
I primi calcolatori
•Zuse (Germania)
1938
–Costruzione dello Z1
(interamente meccanico)
–Operazioni binarie in
virgola mobile
–Nastro contenete le
operazioni da eseguire
–Passaggio ai relais
(elettromeccanico) nella
costruzione dello Z2 e
successivamente dello Z3
(1941)
I primi calcolatori
•Aiken (U.S.A.) 1943
–Costruzione del Mark I
nei laboratori I.B.M.
–(elettromeccanico)
•Prestazioni:
–- somma in 0.3 secondi
–- moltiplicazione in 4
secondi
–- divisione in 10 secondi
ENIAC (Electronic Numerical
Integrator and Computer)
•E’ la prima macchina completamente elettronica
•Costruito nell’immediato dopoguerra, presso l’Università della
Pennsylvania
•Commissionato dal ministero della Difesa degli Stati Uniti allo
scopo di calcolare le traiettorie di bombe e proiettili
•Caratteristiche:
–18 000 valvole termoioniche
–30 tonnellate
–alto 2 metri e mezzo
–occupava 160 metri quadrati
–aveva bisogno di 150 kilowatt di energia elettrica, che
producevano una quantità di calore con cui si poteva
riscaldare un intero palazzo
ENIAC
I Generazione - UNIVAC
L'UNIVAC fu il primo calcolatore elettronico in grado di conservare il
programma all'interno della memoria (grazie ad un'importante
innovazione dovuta al matematico John Von Neumann).
II Generazione (1955-1965)
Tecnologia a transistor
•TXO e TX2 macchine sperimentali costruite al MIT
•Uno dei progettisti del TX2 fonda una propria società la
Digital Equipment Corporation (DEC)
• La DEC produce il PDP-1 (1961):
– Memoria: 4k parole di 18 bit
–
–
–
–
–
Tempo di ciclo di 4 sec
Prestazioni simili all’IBM 7090
Prezzo meno di un decimo
Schermo grafico 512 512 pixel
Comincia la produzione di massa
(primi videogiochi)
II Generazione:
Minicomputer
•DEC PDP-8 (1965)
•Successore diretto del PDP-1
•Interconnessione a bus, molto flessibile
•Architettura incentrata sull’I/O
•Possibilità di connettere qualsiasi periferica
•Prodotto in oltre 50.000 esemplari
II Generazione: Supercomputer
•Macchine molto potenti dedicate al number
crunching
•10 volte più veloci del 7090
• Architettura molto sofisticata
• Parallelismo all’interno della CPU
• Nicchia di mercato molto specifica (resta vero
anche oggi)
• CDC 6600 (1964)
• Progettista del CDC 6600 è Seymour Cray, poi
fondatore della CRAY
III Generazione (1965-1980)
Tecnologia LSI e VLSI
• Evoluzione dell’architettura HW
– Microprogrammazione
– Unità veloci floating-point
– Processori ausiliari dedicati alla gestione dell’I/O
•Evoluzione dei Sistemi Operativi
– Virtualizzazione delle risorse
– Multiprogrammazione: esecuzione concorrente di
più programmi
– Memoria Virtuale: rimuove le limitazioni dovute alle
dimensioni della memoria fisica
III Generazione
IBM: Serie IBM System/360 (famiglia elab.)
•Macchine con lo stesso linguaggio
•Range di prestazioni (e prezzo) 1-20
•Completa compatibilità
•Portabilità totale delle applicazioni
• OS comune OS/360
Digital PDP 11
•Architettura a bus (Unibus)
•Prodotto in milioni di esemplari
•Sistema operativo UNIX, indipendente dalla
piattaforma
I primi microprocessori
Il termine microprocessore venne usato per la prima volta da Intel
nel 1971, quando introdusse un computer microprogrammabile su
un unico chip, la CPU Intel 4004 era completa di:
- sommatore parallelo a 4 bit
- 16 registri a 4 bit
- un accumulatore
- uno stack
Frequenza massima di clock: 740KHz.
Con l’aggiunta di memorie di tipo RAM e ROM, la CPU 4004
costituiva il sistema MCS-4.
Realizzata con la stessa tecnologia, nel 1972 uscì la CPU
Intel 8008, la prima in grado di operare a 8 bit.
Frequenza massim di clock: 800KHz.
…. nacque il Personal Computer
•fine anni 70: Apple I, progettato in un garage nel tempo
libero, venduto in scatola di montaggio
•1981 PC IBM con Intel 8088 e MS DOS (Disk Operating
System) della minuscola Microsoft
•1981 PC M-20, della Olivetti
processore Z8001 a 16 bit, OS proprietario, PCOS
•1983 PC M-24, della Olivetti
processore 8086, MS DOS
•Informatica diffusa non solo per specialisti (importanza
dei videogames)
•Duopolio Intel/Microsoft
•Apple: “prestazioni migliori” , “costi elevati”, come
vedremo dovuta a migliore organizzazione dei bus
Calcolatore elettronico oggi…
Sistema elettronico digitale programmabile
Elettronico digitale
• Sfrutta componenti elettronici digitali (porte
logiche) che operano su grandezze binarie
(bit) che possono assumere due soli valori (0
e 1)
Sistema: Parti (o componenti) che
interagiscono in modo organico fra loro
(architettura di von Neumann)
Programmabile
• Il comportamento del sistema è flessibile e
specificato mediante un programma, ossia un
insieme di ordini
Vantaggi dei sistemi digitali
•Riproducibilità del segnale analogico
–a meno dell’errore di rappresentazione
•Facilità di progetto
•Flessibilità
•Programmabilità
•Velocità di funzionamento (ns, 10-9 s)
•Economia
Struttura di un moderno elaboratore
•La struttura tipica di un calcolatore elettronico assume la
forma attuale in base ad almeno due svolte tecnologiche
fondamentali:
– un modello costruttivo storico riconducibile allo scienziato
austriaco J. Von Neumann (architettura di Von Neumann) anni
’40/’50
–l’invenzione del microprocessore da parte del tecnico italiano F.
Faggin (microprocessore Intel 4004) 1971.
Alberto Ferrari
Modelli di Riferimento
Un sistema di elaborazione, in generale, è una macchina che accetta
in ingresso informazioni codificate in forma digitale, le elabora e
produce informazioni in uscita.
I blocchi funzionali che lo compongono sono:
•Unità aritmetica
•Unità di controllo
•Memoria
•Bus di comunicazione
Un computer, rispetto a una macchina calcolatrice convenzionale, ha
in più il concetto di programma memorizzato.
Dati e istruzioni nella stessa memoria: modello di Von Neumann.
Dati e istruzioni in memorie separate: modello Harvard.
Architettura von Neumann
Unità
Aritmetica
Dati
Memoria
B
U
S
Stato
Istruzioni
Unità
di Controllo
Indirizzi
Istruzioni
Descrizione
Lo schema si basa su quattro componenti fondamentali:
•L’Unità di controllo si occupa di controllare tutte le operazioni del
calcolatore, interpretare le istruzioni prelevate dalla memoria e inviare alle
altre unità i segnali per l'esecuzione delle operazioni.
•L’Unità aritmetico-logica, detta ALU (Arithmetic & Logic Unit), fornisce la
capacità di effettuare operazioni aritmetiche di base
Queste due unità sono spesso integrate in una CPU, Central Processing Unit –
Unità di Elaborazione Centrale
•La Memoria che ha lo scopo di conservare le istruzioni e i dati da elaborare e
i risultati ottenuti dalle elaborazioni;
•Il Bus, è un canale di comunicazione bidirezionale che collega tutti i
componenti fra loro e che consente ai dati di transitare fra diversi componenti
del calcolatore. Ad esso possono connettersi
Le Unità di ingresso (Input) che immettono le informazioni nel calcolatore per
farle elaborare;
Le Unità di uscita (Output) che ricevono le informazioni dalla memoria del
calcolatore per renderle pronte all’uso;
Caratteristiche Fondamentali
•Memoria Unica per Dati e Programma (RAM)
•L’ipotesi di partenza è che sia le istruzioni che i
dati sono disponibili in memoria (ad esempio sono
state opportunamente “caricate” nella memoria
usando l’unità di input)
•Macchina di ridotta complessità
•Criterio di valutazione di una architettura
• Individuazione dei blocchi “congestionati”
•Limiti
–Unica memoria
–Unico BUS (Collo di Bottiglia)
Architettura Harvard
Unità
Aritmetica
Dati
Memoria
Dati
Stato
Istruzioni
Unità
di Controllo
Istruzioni
Indirizzi
Memoria
Istruzioni
Caratteristiche fondamentali
•Memoria Dati
• Accesso diretto alla ALU
• Realizzazione: RAM
•Memoria Istruzioni
• Il contenuto rimane invariato
• Realizzazione con memoria non volatile:
ROM
•Non presenta particolari “Colli di bottiglia”
•Può essere migliorata per aumentarne la
conccorrenzialità
•Architettura alla quale si ispirano gli attuali
microprocessori
La CPU – Generalità
la CPU, acronimo di Central
Processing Unit, è l’unità
centrale di elaborazione. Prende
il nome di processore poiché
svolge sistematicamente precise
operazioni, elabora dunque un
“processo”. Infatti, legge le
istruzioni e i dati dalla memoria
ed esegue le istruzioni.
Tra le più famose industri
costruttrici si annoverano: Intel,
Motorola, IBM, AMD
La CPU – Generalità
Una caratteristica fondamentale del
processore è la sua velocità, cioè la
capacità di eseguire uno o più
operazioni al secondo.
Questa velocità viene regolata da un
orologio, detto “clock”.
La cosiddetta velocità di clock viene
espressa in Hertz o cicli al secondo.
Il legame tra la velocità di clock e la
capacità elaborativa del processore è
molto complesso.
Molto spesso, tuttavia, si può
affermare che maggiore è la velocità
di esecuzione delle singole operazioni
maggiore è la potenza del
processore.
La CPU – Generalità
A livello fisico i processori sono
realizzati (con un processo detto di
“integrazione”) su chip contenenti
milioni di transistor.
Ogni transistor può essere visto
come un interruttore che con il suo
stato di “aperto” o “chiuso” può
elaborare un bit di informazione.
Il processore si connette alla scheda
madre mediante opportuni
“piedini” (ovvero piccoli connettori
elettrici).
La CPU – Generalità
Il processore viene realizzato mediante una
tecnologia detta a circuito integrato che
produce un componente detto chip. Un chip si
può descrivere come un insieme di cristalli di
silicio lavorati e assemblati.
Le piastrine di silicio vengono esposte a
sostanze chimiche, per rendere possibile il
passaggio di corrente elettrica. Il silicio così
trattato diventa semiconduttore. Le barre di
silicio vengono poi tagliate in sottili lamine
dette wafer che contengono molti chip (vedi
figura a lato).
I singoli chip vengono testati e quelli non idonei
scartati mentre quelli validi verranno estratti
dal wafer con un laser o con un diamante.
chip
wafer
La CPU – Generalità
Per poterli maneggiare facilmente i chip
vengono messi all'interno di un supporto di
plastica mediante un procedimento detto
packaging (impacchettamento).
Il packaging del 486
Dato l’elevato livello di integrazione
raggiunto (in un chip di lato 1 cm x 1 cm
sono oggi presenti milioni di transistor) uno
dei grandi problemi da affrontare è il
surriscaldamento provocato dal passaggio
della corrente.
Per evitare che il processore si surriscaldi
e lavori male, o che addirittura si guasti
completamente, viene coperto da una
sostanza morbida refrigerante e sopra di
esso viene montata una ventola a motore.
Vista ingrandita del chip