Parte I - Dipartimento di Informatica e Sistemistica

Parte I
Evoluzione dei Sistemi
di Elaborazione
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.1
Contenuti del Corso
• L’architettura dell’elaboratore e le
sue componenti
– Struttura a livelli
– CPU, memoria, dispositivi di I/O
– Sottosistemi di I/O
– Periferiche
• Il livello della logica digitale
– Circuiti logici di base
– L’unità aritmetico logica
– La memoria centrale
– I bus e la gestione dell’I/O
• Il governo dell’unità centrale
– Governo a microprogramma
– Pipelining
– Memorie cache
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.2
• L’architettura della macchina standard
– Formato delle istruzioni
– Modalità di indirizzamento
– Istruzioni di I/O
– Trap e interruzioni
• Il Sistema Operativo
– Gestione della memoria
– Gestione dei processi
– Il File System
• Traduzione e collegamento
– Linguaggi di programmazione
– Assemblatori
– Collegatori e caricatori
• Architetture parallele
– Architetture SIMD
– Architetture Shared-Memory
– Massive Parallel Processors
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.3
Esercitazioni
• Programmazione in linguaggio C
• Enfasi sulle caratteristiche del
linguaggio e non sugli algoritmi
• Gestione dell’ I/O
• Manipolazione di stringhe
• Accesso al Laboratorio di Calcolo
della Facoltà
• Distribuzione di Software:
compilatori C ecc.
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.4
Riferimenti
• A.S. Tanenbaum: Architettura dei computer: un approccio strutturato, 4a ed.,
UTET, 2000.
Edizione originale:
• A.S. Tanenbaum: Structured Computer
Organization, 4th ed., Prentice-Hall, 1999
Per il linguaggio C:
• Darnell-Margolis, C Manuale di Programmazione, Mc Graw-Hill (ristampa)
• Dispensa, Esercizi d’esame svolti di
programmazione in C, a cura di S. Salza,
G. Santucci, A. Scharef
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.5
Modalità di esame
• Prova scritta
– Teoria: esercizi e domande 1.5 h
– C: programmi e domande
1.5 h
• Orale
– Discussione della prova di teoria
– Discussione della prova di C e dei
programmi svolti su calcolatore
• Colloquio: la prima volta in assoluto
che ci si presenta all’esame (rispondere
all’appello equivale a sostenere il colloquio)
• Oltre il colloquio (uno nella vita) si
può sostenere l’esame al massimo 2
volte per anno accademico, e una per
sessione
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.6
Prenotazioni esami
• Le prenotazioni vanno effettuate via
Internet, all’indirizzo:
http://151.100.8.33:8080/index.html
• È possibile sia prenotarsi che
cancellarsi fino ad una settimana prima
dell’esame
• Si raccomanda di cancellarsi, quando
si decide di non venire
Prenotarsi per due volte all'esame
senza poi sostenerlo e senza aver
annullato la prenotazione verrà
considerato come aver sostenuto
una prova con esito negativo
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.7
Evoluzione degli Elaboratori
N.B. Quasi tutta l’evoluzione ha avuto
luogo negli ultimi 50 anni
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.8
Generazione 0 (1600-1945)
• Pascal (1623-1662)
– Pascaline: addizioni e sottrazioni
• Leibniz (1646-1716)
– Anche moltoplicazioni e divisioni
• Charles Babbage (1792-1871)
A) Macchina Differenziale
• Algoritmo fisso (differenze finite)
• Output su piastra di rame
B) Macchina Analitica
• Prima macchina programmabile
• Primo programmatore: Ada
Lovelace (figlia di Lord Byron)
• Memoria: 1000 x 50 cifre decimali
• Mulino (CPU)
• I/O su schede perforate
• Limite: tecnologia meccanica
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.9
Generazione 0 (continua)
(Macchine elettromeccaniche)
• Konrad Zuse (~1930 Germania)
–Macchina a relè
– Distrutte nella guerra
• John Atanasoff (~1940 USA)
– Aritmetica binaria
– Memoria a condensatori
• Howard Aiken (~1940 USA)
– MARK 1: versione a relè della
macchina di Babbage
– Memoria: 72 x 23 cifre decimali
– tempo di ciclo: 6 sec.
– I/O su nastro perforato
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.10
I Generazione (1945-1955)
(Tecnologia a tubi termoionici)
• COLOSSUS (~1940 GB)
– Gruppo di Alan Turing
– Decifrazione del codice Enigma
– Progetto mantenuto segreto
• ENIAC (~1946 USA)
– J. Mauchley, J. Eckert
– 18.000 valvole
– 30 tonnellate di peso
– 140kw assorbimento
– Programmabile tramite 6000
interruttori e pannelli cablati
– 20 registri da 10 cifre
• EDVAC (~1950 USA)
– Successore dell’ENIAC
– Mai giunto a termine
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.11
La Macchina di Von Neumann
• IAS (~ 1950, Princeton USA)
– Programma memorizzato
– Aritmetica binaria
– Memoria: 4096 x 40 bit
– Formato istruzioni a 20 bit:
OPCODE
8
INDIRIZZO
12
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.12
Sistemi Commerciali
• Inizialmente il mercato è dominato
dalla UNIVAC
• L’IBM entra nel mercato nel 1953, e
assume una posizione dominante che
manterrà fino agli anni ‘80:
– IBM 701 (1953):
• Memoria: 2k word di 36 bit
• 2 istruzioni per word
– IBM 704 (1956):
• Memoria: 4k word di 36 bit
• Istruzioni a 36 bit
• Floating-point hardware
– IBM 709 (1958)
• Praticamente un 704 potenziato
• Ultima macchine IBM a valvole
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.13
II Generazione (1955-1965)
(Tecnologia a transistor)
• TXO e TX2 macchine sperimentali
costruite allo MIT
• Uno dei progettisti del TX2 fonda
una propria società la Digital
Equipment Corporation (DEC)
• La DEC produce il PDP-1 (1951):
– 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
(primi videogiochi)
– Comincia la produzione di massa
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.14
Sistemi Commerciali
Mainframe : grossi calcolatori per
applicazioni scientifiche, militari e PA
• IBM 7090
– Versione transistorizzata del 709
– Memoria 32k word a 36 bit
– Tempo di ciclo 2 µsec
– Domina il mercato fino agli anni ‘70
– Pochi esemplari, costano milioni di $
Piccoli sistemi: per medie aziende o di
appoggio ai mainframe
• IBM 1401
– Stessa capicità di I/O del 7090
– Memoria 4k word 8bit (1byte)
– Orientata a caratteri
– Istruzioni per la manipolazione di
stringhe
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.15
Il 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
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.16
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
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.17
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
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.18
Serie IBM System/360
• L’IBM introduce una famiglia di
elaboratori (passo decisivo)
• Serie IBM System/360
• Macchine con lo stesso linguaggio
• Range di prestazioni (e prezzo) 1-20
• Completa compatibilità
• Portabilità totale delle applicazioni
• Sistema Operativo comune OS/360
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.19
Serie DEC PDP-11 e UNIX
• Evoluzione diretta del PDP-8
• Parole di memoria e istruzioni a 16 bit
• Architettura a bus (Unibus)
• Grande flessibilità nella gestione e
nell’interfacciamento di periferiche e
strumentazione al bus
• Domina il mercato fino alla fine degli
anni ’70
• Prodotto in milioni di esemplari
• Diffusissimo nelle università
• Supporta il sistema operativo UNIX,
indipendente dalla piattaforma
• Influenzerà un’intera generazione di
progettisti e di utenti
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.20
IV Generazione: il PC
• Diretto discendente del minicomputer:
– Architettura a bus
– Parole e istruzioni a 16 bit
• Nasce nel 1980 all’ IBM (che dà così
avvio alla propria decadenza)
• Esplosione del mercato dei ‘cloni’
• Crollo dei costi ed enorme espansione
dell’utenza
• Dai grandi Centri di Elaborazione a
un contesto di Informatica Distribuita
• L’espansione del PC è trainata da tre
fattori:
– Aumento della capacità della CPU
– Discesa dei costi della memoria
– Discesa dei costi dei dischi
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.21
La legge di Moore (1965)
Il numero di transistor su di un chip
raddoppia ogni 18 mesi
• Circa un aumento del 60% all’anno
• Conseguenze:
– Aumento della capacità dei chip di
memoria
– Aumento della capacità delle CPU
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.22
Legge di Moore per le CPU
• Più transistor in una CPU significano:
– Eseguire direttamente istruzioni più
complesse
– Maggiore memoria sul chip (cache)
– Maggiore parallelismo interno
N.B. Altro fattore tecnologico decisivo
è la frequenza di funzionamento
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.23
Legge di Nathan
Il software è un gas: riempie sempre
completamente qualsiasi contenitore
in cui lo si metta
(ma sicuramente non è un gas perfetto!)
• Al calare dei costi e all’aumentare
della memoria disponibile, le dimensioni del software sono sempre cresciute in proporzione
• Il Circolo Virtuoso
– Costi più bassi e prodotti migliori
– Aumento dei volumi di mercato
– Fattori di scala nella produzione
– Costi più bassi …...
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.24
Tipologie di Computer
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.25
Tipologie di computer (2)
• Personal Computer
– Sappiamo chi è
• Server
– Su rete locale o Web server
– Memorie fino a qualche Gbyte
– Molti Gbyte di disco
– Gestione di rete efficiente
• COW (Cluster of workstations)
– Sistema multiprocessore ad
accoppiamento lasco
– Hardware di tipo standard: costi
contenuti
– Strutture di connessione veloci
– Elevata capacità di elaborazione
complessiva
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.26
Tipologie di Computer (3)
• Mainframe
– Diretti discendenti della serie 360
– Gestione efficiente dell’I/O
– Periferie a dischi di molti Tbyte
– Centinaia di terminali connessi
– Costi di parecchi miliardi
Perché sopravvivono?
– Gestiscono applicazioni legacy
– Costi di migrazione delle applicazioni molto superiori a quelli
dell’HW
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.27
La famiglia Intel
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.28
La Famiglia SPARC
• Scalable Processor ARChitecture
• Proposta da Sun Microsystems nel ’87
• Dedicata a workstation Unix
• Non prodotta direttamente da Sun
• Caratteristiche principali
– Insieme ridotto di istruzioni (55)
– Esecuzione non interpretata
– Architettura a 32 bit
– Unità FP addizionale (14 istr.)
• UltraSPARC I (1995)
– Registri e indirizzi a 64 bit
– VIS (Visual Instruction Set)
– Dedicata a sistemi high-end :
dozzine di CPU, memorie di Tbyte
• Ultra SPARC II e III
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.29
Java e Java Virtual Machine
• Java: linguaggio di programmazione
orientato agli oggetti introdotto da Sun:
– In alternativa al C++
– Risolve i problemi di sicurezza
– Gestione della multimedialità
• JVM (Java Virtual Machine):
– Macchina virtuale che esegue un
codice speciale (Java byte code)
– Il codice JVM può essere eseguito
da interpreti software su diverse
piattaforme
• Obiettivo:
distribuire, eventualmente su rete,
software indipendente dalla piattaforma
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.30
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
Portabilità delle applicazioni Java
Codice JAVA
JAVA
Compiler
Codice JVM
Codice piattaforma HW
JAVA
Machine
(HW)
Interprete
JVM
(SW)
RETE
Compilatore
Just In Time
(SW)
I.31
Portabilità ed efficienza
• Vantaggi di Java:
– Indipendenza dalla piattaforma
– Totale portabilità delle applicazioni
• Svantaggi di Java:
– Inefficienza degli interpreti
– Inefficienza del linguaggio
• Tipico contesto applicativo: il Web
– Applets: piccoli programmi inseriti
nelle pagine html
– I browser hanno al loro interno
interpreti JVM
– Semplice sviluppo di applicazioni
client-server su Internet
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.32
Java: Soluzioni HW e SW
• Soluzione SW (parziale):
– Compilatori JIT (Just In Time)
– Compilazione al volo subito prima
dell’esecuzione
– Ritardo di compilazione
• Soluzione HW:
– Java Machine: implementazione
HW della Java Virtual Machine
– PicoJava I e II:
• Architettura definita da Sun
• Diverse implementazioni
disponibili
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
I.33