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