Parte I Evoluzione dei Sistemi di Elaborazione Calcolatori Elettronici (5 crediti) Prof. S. Salza a.a. 00-01 I.1
Contenuti del Corso Struttura dell elaboratore e sue componenti principali Evoluzione storica Struttura a livelli CPU, memoria, dispositivi di I/O Sottosistemi di I/O Periferiche Rappresentazione delle informazioni Stringhe alfanumeriche Sistemi di numerazione binaria Notazioni in virgola mobile Il livello della logica digitale Cenni di logica digitale L unità aritmetico logica La memoria centrale I bus e la gestione dell I/O I.2
Il governo dell unità centrale Governo a microprogramma Pipelining Memorie cache L architettura della macchina standard Formato delle istruzioni Modalità di indirizzamento Istruzioni di I/O Trap e interruzioni Traduzione e collegamento Linguaggi di programmazione Assemblatori Collegatori e caricatori Architetture parallele Architetture SIMD e MIMD Topologie di interconnessione Architetture Shared-Memory I.3
Riferimenti Materiale distribuito a lezione 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 I.4
Modalità dell esame Prova scritta unica di valutazione Durata due ore Esercizi e domande a risposta multipla Colloquio: la prima volta in assoluto che ci si presenta all esame conta come colloquio (rispondere all appello equivale a sostenere il colloquio) Oltre il colloquio (uno solo nella vita) si può sostenere l esame al massimo 2 volte per anno accademico, e una per sessione I.5
Evoluzione degli Elaboratori N.B. Quasi tutta l evoluzione ha avuto luogo negli ultimi 50 anni I.6
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 I.7
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 I.8
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 I.9
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 I.10
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 I.11
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 I.12
Tipologie di sistemi 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 I.13
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 I.14
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 I.15
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 I.16
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 I.17
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 I.18
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 I.19
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 I.20
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 I.21
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... I.22
Tipologie di Computer I.23
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 I.24
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 Ma si avvicina il giorno del giudizio: 31-12-1999 ore 24:00 I.25
La famiglia Intel I.26
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 I.27
Portabilità delle applicazioni Java Codice JAVA JAVA Compiler Codice JVM JAVA Machine (HW) Interprete JVM (SW) Codice piattaforma HW Compilatore Just In Time (SW) R E T E I.28
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 I.29
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 I.30