Scopi del Corso Calcolatori Elettronici Prof. Ing. Gian Luca Marcialis • Il corso si occupa dei concetti fondamentali relativi alla struttura ed al funzionamento dei calcolatori elettronici http://www.diee.unica.it/~marcialis/CE Corso di Laurea in Ingegneria Elettronica — Significa che cercheremo di capire quali sono le metodiche di progetto, le tecnologie, ecc., di validità generale. Cercheremo cioè di capire quali sono i concetti che sono rimasti validi, e molto probabilmente lo resteranno almeno per i prossimi anni, nonostante i cambiamenti rapidissimi della tecnologia Capitolo 1 Introduzione • Ci occuperemo soprattutto di Organizzazione ed Architettura dei calcolatori Fonte Principale: Stallings, W., "Architettura e organizzazione dei calcolatori, progetto e prestazioni", Pearson Education Italia Srl, 2004 (ISBN: 88-7192-201-8), Capp. 1 e 2 — Cercando di analizzarle, dove possibile in questo corso, nell’ottica del paradigma costo/prestazioni che sta alla base della progettazione di un calcolatore • Esemplificheremo alcuni concetti con riferimento alle attuali architetture di calcolatore Calcolatori Elettronici Ancora due parole sugli scopi del corso Scopo principale: studiare gli aspetti relativi all’organizzazione ed architettura del calcolatore che sono rimasti validi, e molto probabilmente lo resteranno almeno per i prossimi anni, nonostante i cambiamenti rapidissimi della tecnologia Calcolatori Elettronici Cercheremo sostanzialmente di imparare bene quei concetti senza i quali si rischia, pur diventando degli “esperti”, di non essere in grado di governare le tecnologie e l’innovazione Introduzione Prof. Gian Luca Marcialis 2 Perché studiare Calcolatori Elettronici? In questo corso non impareremo né ad installare un dispositivo, hw o sw, né a utilizzare un calcolatore per “programmare” l’impianto di irrigazione del giardino…..cose utilissime…ma che un ingegnere può e deve imparare dopo aver imparato come funziona l’indirizzamento della memoria “cache” Non spiegheremo come funziona e perché si deve usare il “deframmentatore” di Windows….ma cercheremo di capire come mai il disco si “frammenta” (http://www.disi.unige.it/person/MoggiE/dicos mo.html)….per capire se e come lo si potrebbe evitare Introduzione Prof. Gian Luca Marcialis 3 • Per poter scrivere programmi efficienti —Architetture multi-processore —Controllori elettronici (sistemi di sicurezza, centraline) • Per essere in grado di valutare i compromessi tra elementi quali, ad esempio, velocità della CPU e dimensione della memoria • Per poter capire meglio il supporto architetturale fornito ai linguaggi di programmazione ed ai servizi del sistema operativo —Cose studiate a Fondamenti di Informatica 1-2, e che studierete in Ingegneria del Software e Sistemi Operativi, e Linguaggi orientati agli oggetti Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 4 Contenuti Fondamentali del Corso Obiettivi del Corso 1. 2. 3. 4. 5. 6. 7. • Alla fine del corso l’allievo deve conoscere: Introduzione Reti Logiche Unità di Memoria CPU – Set di Istruzioni Linguaggio Assembly del MIPS CPU – ALU Unità di I/O Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis — Le metodiche di base per l’analisi e la sintesi delle reti logiche combinatorie e sequenziali — I concetti e le tecniche fondamentali relativi alla organizzazione e all’architettura di un moderno calcolatore — I concetti di base del linguaggio assembly MIPS • Alla fine del corso l’allievo deve saper fare: — Risolvere esercizi di media complessità sulla analisi e sintesi di reti logiche — Risolvere esercizi di media complessità sulla analisi e progetto dei moduli fondamentali di un calcolatore (CPU, Memoria, Unità I/O), e sulla organizzazione e funzionamento di un calcolatore — Scrivere e/o leggere semplici procedure in assembly MIPS 5 6 Testo di riferimento (http://williamstallings.com/COA6e.html) • Prova scritta obbligatoria — Sostenibile durante i normali appelli di esame — Oppure mediante due prove intermedie in corso di semestre • Prova orale facoltativa se voto prova scritta è maggiore od uguale a 21/30 • Voto finale = 70% Prova Scritta, 30% Prova Orale N.B. Durante i normali appelli d’esame, gli allievi che, avendo consegnato la prova scritta dopo la correzione degli esercizi d’esame, conseguiranno un punteggio minore di 16/30 non potranno presentarsi al successivo appello d’esame N.B. In sede di prova scritta viene anche fissata la data per la comunicazione degli esiti, per la registrazione dei voti e per gli orali. Chiunque non si presenti in tale data senza una motivata e ben documentata ragione perderà il diritto di fare l’orale e comunque, per registrare l’esame ove possibile, dovrà presentare una motivata giustificazione dell’assenza. Introduzione Prof. Gian Luca Marcialis Introduzione Prof. Gian Luca Marcialis Materiale didattico: http://www.diee.unica.it/calcolatori Valutazione dell’Apprendimento Calcolatori Elettronici Calcolatori Elettronici 7 • Stallings, W., "Architettura e organizzazione dei calcolatori, progetto e prestazioni", Pearson Education Italia Srl, 2004 (ISBN: 88-7192-201-8) Altri testi Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori elettronici", Jackson Libri, Collana Università, 2000 (ISBN:8825615175) Tanenbaum, A., "Architettura dei computer: un approccio strutturato” Quarta edizione", UTET Libreria, 2000 (ISBN: 8877505931) I lucidi utilizzati a lezione dal docente, testi d’esame, esercitazioni, ecc. sono disponibili in rete al link: http://www.diee.unica.it/~marcialis/CE NOTA BENE: Gli allievi non possono prepararsi all'esame soltanto con i lucidi, che non sono dispense e pertanto presentano gli argomenti in modo sintetico. I lucidi vanno integrati con gli appunti presi a lezione e/o con lo studio dei testi di riferimento. Raccomandiamo di consultare i testi di riferimento, disponibili in Biblioteca, per chiarimenti ed approfondimenti. Per ogni capitolo del programma sono indicati sui lucidi del docente i principali testi di riferimento e di approfondimento . Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 8 Concetti di Architettura e Organizzazione Concetti di Struttura e Funzione • Architettura: tutti gli aspetti di un calcolatore che sono “visibili” al programmatore • Organizzazione: unità funzionali ed interconnessioni che realizzano l’architettura (non visibili al programmatore) • Un calcolatore elettronico è un sistema “complesso” costituito da tanti “moduli” e sotto moduli. — Es. Aspetto architetturale: disponibilità di una istruzione “macchina” per moltiplicazione in virgola mobile — Es. Aspetto organizzativo: come la moltiplicazione in virgola mobile è realizzata • Tutti i calcolatori della famiglia Intel x86 hanno la stessa architettura base, ma diversi calcolatori hanno diverse organizzazioni • Pari architettura, diversità di organizzazione —Diversi livelli di “astrazione”: approccio “top-down” • Struttura —il modo in cui i diversi moduli sono interconnessi fra di loro • Funzione —il funzionamento di ciascun modulo nell’ambito dell’intero sistema di elaborazione — Architettura lato software (portabilità) — Organizzazione lato hardware (performance) — Cambi radicali dell’organizzazione possono influire sull’architettura Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 9 Calcolatori Elettronici Peripherals di 10 La Struttura di un Calcolatore Le Funzioni di un Calcolatore •Le funzioni calcolatore sono: Introduzione Prof. Gian Luca Marcialis un Computer Central Processing Unit —Elaborazione dati Computer —Memorizzazione dati Main Memory Systems Interconnection —Trasferimento dati Input Output —Controllo Communication lines Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 11 Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 12 Calcolatore come macchina “virtuale” – Livelli di Astrazione Struttura – La CPU Corso di Fondamenti di Informatica CPU Computer Arithmetic and Login Unit Registers I/O System Bus A.S. Tanenbaum Structured Computer Organization CPU Memory Internal CPU Interconnection Corso di Sistemi Operativi Prentice Hall 2001 Control Unit Elettronica dei Sistemi Digitali Elettronica dello Stato solido Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 13 Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis Quattro livelli di descrizione di un calcolatore Breve Storia dei Calcolatori 1. Livello Gobale (Capp. 3, 7) • Processore • Memoria • Unità I/O. 2. Livello del Processore • Set Istruzioni Macchina (Capp. 4, 5) • Rappresentazione dei dati (Cap. 6) 3. Livello Registri • Elaborazione di insiemi di bit (“word”) (Cap. 6) 4. Livello Porte Logiche • Elaborazione a livello di bit (Cap. 2) L’Era “Meccanica” 14 Blaise Pascal (1642), Gottfried Liebniz (1673), George Boole (1847), etc., fino alla seconda guerra mondiale Velocità di elaborazione limitata dall’inerzia meccanica Difficoltà d’uso, scarsamente affidabili e molto costosi. L’Era Elettronica ENIAC (Electronic Numerical Integrator And Computer), Eckert and Mauchly, Univ. of Pennsylvania, 1943-1946 John Von Neumann introduce, parallelamente ad Alan Turing, il concetto di programma memorizzato e realizza il calcolatore IAS EDVAC (Elec. Discrete Variable Computer) Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 15 Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 16 ENIAC Architettura di von Neumann •Decimale (non binario) •20 accumulatori da 10 cifre •Programmato “manualmente” •18.000 tubi a vuoto •30 tonnellate di peso •140 kW di potenza consumata •5.000 addizioni per secondo Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 17 • Von Neumann, 1952 • 1000 x 40 bit “words” — Numeri binari — Istruzioni da 2 x 20 bit Set di registri della CPU — Memory Buffer Register — Memory Address Register — Instruction Register — Instruction Buffer Register — Program Counter — Accumulatore — Moltiplicatore/Quoziente 18 2^ Generazione • Cambio di tecnologia –Transistor • Aritmetica in virgola mobile • Linguaggi di alto livello 3^ Generazione (1964 – 1974) • Circuiti Integrati • Memorie a Semiconduttore • Microprogrammazione / Multiprogrammazione 4^ Generazione (1974 – oggi) • LSI / VLSI • Calcolatori Paralleli, Embedded systems, etc. 5^ Generazione (? – ?) • ULSI, PDA, Tablet PC • “Intelligenza” Artificiale Conteneva la maggior parte dei concetti fondamentali, tutt’oggi usati !! Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis Generazioni di Calcolatori Calcolatore IAS • Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 19 Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 20 Legge di Moore Crescita del numero di transistor Gordon Moore – uno dei creatori di Intel Il numero di transistors su chip raddoppierà ogni anno • Dal 1970 questo incremento è stato quasi rispettato — Raddoppio ogni 18 mesi • Il costo di un chip è rimasto quasi lo stesso • L’aumento del numero di transistor su chip (“densità” di integrazione) significa aumento delle prestazioni • Riduzione del consumo di potenza • Aumento affidabilità Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 21 Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 22 Misura delle Prestazioni Misura delle Prestazioni: Analogia - Homework Problema estremamente complesso ! Consider the problem of leaving West Virginia or civilization in Virginia. Assume that you must walk out of the mountains and that portion of the trip takes 20 hours. Once in Virginia, 200 miles are traversed in one of several modes of travel. In questo corso vedremo solo gli aspetti più semplici Es. Quanto conta la frequenza di clock della CPU ? In assoluto sapere che ho comprato un Pentium X da Y GHz non vuol dire nulla. Se almeno non ho un’idea sulla ampiezza di banda della memoria, e non ho chiaro cosa ne voglio fare. Compute the total travel time for each mode and the speedup compared to walking the entire trip. Modes: » Walk at 4 MPH Amdahl's Law » Ride a bike at 10 MPH The performance improvement to be gained from using some faster mode of execution is limited by the fraction of time the faster mode can be used » Drive a Honda Excel at 50 MPH Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 23 » Drive a Ferrari at 120 MPH » Drive a rocket car at 600 MPH Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 24 Misura delle prestazioni Per saperne di più MIPS (Millions of instructions per second) • Per la storia dei calcolatori vedi il sito del Charles Babbage Institute (www.cbi.umn.edu) Apparentemente più sono meglio è…..ma i MIPS non servono per confrontare macchine che hanno set di istruzioni diversi MFLOPS (Millions of floating point operations per second) • Produttori di Calcolatori • http://www.intel.com/ Anche in questo caso le operazioni FP possono essere diverse Programmi di Benchmark • http://www.ibm.com Altri parametri: Costo, Affidabilità, Portabilità del SW, etc • http://www.dec.com Cosa ne devo fare del calcolatore…. • http://e-www.motorola.com Per saperne di più: J. L. Hennessy, D. A. Patterson, Architetture dei Calcolatori: Metodi di Valutazione e di Progetto, Zanichelli Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 25 http://williamstallings.com/COA6e.html (sito del libro di riferimento) Calcolatori Elettronici Introduzione Prof. Gian Luca Marcialis 26