Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Sede di Reggio Emilia Corso di Laurea Specialistica in Ingegneria Meccatronica a.a. 2008/2009 Corso di CALCOLATORI ELETTRONICI Capitolo 1: Introduzione ai Calcolatori Elettronici Andrea Prati
Come contattarmi: Informazioni sul corso Docente: Andrea Prati Telefono: 0522/522232 (Reggio Emilia) 059/2056274 (Modena) Ufficio: San Lazzaro Pad. Morselli (primo piano) Email: andrea.prati@unimore.it Durata del corso: circa 60 ore Orari di lezione: martedì 14-16 16 (aula 1.5) mercoledì 10-13 (aula 0.6) mercoledì 14-16 (aula 0.6) Ricevimento: mercoledì 8-10 (ufficio) CAPITOLO 1 Introduzione ai Calcolatori Elettronici 2
Modalità d esame Modalità d esame: esame scritto + orale obbligatorio Scritto (durata 2h 30 ): 4 domande: una sulle reti logiche combinatorie (sintesi, analisi o semplificazione di espressioni booleane) una sulle reti logiche sequenziali (sintesi o analisi) una sull assembler una varia (interfacciamento memorie-processore, allineamento, memorie cache, prestazioni, ) Punteggi domande non noti, ma somma 32 Orale: solo se superato scritto, +/- 4 dal voto scritto (salvo casi speciali), validità teoricamente infinita dello scritto (ma meglio entro 1 anno), se non sufficiente si deve ridare solo l orale lorale (salvo eccessi) CAPITOLO 1 Introduzione ai Calcolatori Elettronici 3
Materiale d esame: Dispense a cura del docente Informazioni sul corso LIBRI CONSIGLIATI: - G. Bucci, Architetture e organizzazione dei calcolatori elettronici, McGraw-Hill, 2005 (reti+architettura dei calcolatori elettronici) - A.S. Tanenbaum, Architettura dei Calcolatori: un approccio strutturale, quinta ed., Pearson/Prentice Hall, 2006 - C. Biolchini, C. Brandolese, F. Salice, D. Sciuto, Reti Logiche, Apogeo, 2004 - G. Bucci, Architetture dei calcolatori elettronici, McGraw-Hill, 2001 (parte di calcolatori elettronici) - R.H. Katz, Contemporary Logic Design, Benjamin/Cummings Publishing, 1996 (parte di reti logiche in inglese) ALTRI LIBRI: - W. Stallings, Computer Organization & Architecture: designing for performance, International Edition (VI ed.), Pearson Education International, 2003 (molto recente in inglese) - Carl Hamacher, Zvonko Vranesic, Safwat Zaky, Introduzione all'architettura dei calcolatori, McGraw-Hill, 1997 Sito web: http://imagelab.ing.unimo.it/calcolatorire - news, appelli d esame, informazioni varie, - dispense in PDF protette da password - esami degli anni precedenti risolti CAPITOLO 1 Introduzione ai Calcolatori Elettronici 4
Obiettivi del corso 1. Fornire strumenti per l analisi e la sintesi delle reti logiche digitali 2. Studiare l architettura dei calcolatori elettronici 3. Studiare il linguaggio di basso livello Assembler per analizzare praticamente l architettura dei calcolatori 4. Analizzare le prestazioni dei calcolatori 5. Analizzare nel dettaglio le parti fondamentali dei moderni calcolatori elettronici: il processore o CPU (Central Processing Unit) la gerarchia di memorie le periferiche di Input/Output CAPITOLO 1 Introduzione ai Calcolatori Elettronici 5
Rappresentazione binaria dell'informazione Introduzione alle reti logiche Sintesi di reti combinatorie Sintesi di reti sequenziali Componenti di base di un calcolatore Programma del corso Reti Logiche Architettura dei calcolatori Architettura dei calcolatori: Architettura di Von Neumann, RISC-CISC, prestazioni di CPU. Architettura della CPU: data path ed unità di controllo. Ciclo di istruzione in pipeline. Instruction Set Architecture. Formato delle istruzioni e metodi di indirizzamento. ISA del processore Intel 8086 Linguaggio Assembler: sintassi delle istruzioni, modalità di indirizzamento nell'assembler per 8086, segmentazione. Interfaccia CPU e memorie: il bus di sistema e le sue modalità di funzionamento. L'interfaccia dell'8086 e del Pentium, trasferimento a burst ed in pipeline bus a transazioni suddivise. Memorie centrali, memorie RAM statiche e dinamiche. Indirizzamento della memoria trasferimenti a multipleword. Gerarchia di memorie e memorie cache. Periferiche di I/O: Accesso alle periferiche. Struttura delle interfacce con le periferiche di ingresso/uscita e loro modalità di funzionamento. Interruzioni e DMA. Esempi di dispositivi commerciali: CPU (Famiglia Intel), interfaccia parallela, timer, gestore di interruzioni, gestore di DMA. CAPITOLO 1 Introduzione ai Calcolatori Elettronici 6
Cos è un Calcolatore Elettronico L elaboratore o calcolatore elettronico svolge in automatico l operazione di elaborare i dati a seconda delle istruzioni ricevute CAPITOLO 1 Introduzione ai Calcolatori Elettronici 7
La Macchina di von Neumann (1946) Input Memoria Secondaria Output Memoria Centrale CPU STORED PROGRAM COMPUTER Componenti principali: MEMORIA: per dati e istruzioni Meccanismi di Input/Output: interfaccia mondo esterno CPU: unità di controllo + unità aritmetico-logica CAPITOLO 1 Introduzione ai Calcolatori Elettronici 8
L uso dei calcolatori elettronici Strumento di word processing data analysis... Componente essenziale di robot e Veicoli, strumenti di comunicazione Strumento t di gestione delle? informazioni (server) Strumento t di progettazione CAD-CAM Strumento di controllo di sistemi complessi.. CAPITOLO 1 Introduzione ai Calcolatori Elettronici 9
La storia dei calcolatori elettronici (1/3) 1834 Analytical Engine (Babbage) primo computer digitale. 1946 ENIAC (Electronic Numerical Integrator And Calculator) University of Pennsylvania (DoD) J.P. Eckert, J. Mauchly (120 m 3, 180 m 2, 30 ton, 20 registri a 10 cifre, 1900 somme/s) 1951 UNIVAC-I primo calcolatore comm. 250,000 $ - 48 esempl. 1952 IBM 701 (prima solo macchine da ufficio) 1952 Macchina IAS di Princeton (macchina di Von Neumann) 1964 IBM S/360 primo tentativo di def. di architettura 1964 CDC 6600 primo supercalcolatore (poi Cray) primi MAINFRAME 1965 DEC PDP 8 primo minicalcolatore (< $20.000) accum. a 8 bit 1970 DEC PDP 11 calcolatore a 16 bit, unico bus 1971 microprocessore (Intel) CPU 4004 (sistema MCS-4) a 4 bit 1972 Intel 8008 prima CPU a 8 bit (30 micros./istr.) CAPITOLO 1 Introduzione ai Calcolatori Elettronici 10
La storia dei calcolatori elettronici (2/3) 1974 National PACE prima CPU single chip a 16 bit 1974 Intel 8080 seguito da Motorola MC6800 e Zilog Z80 1974 Cray-1 primo supercomputer vettoriale 1978 Intel 8086 primo processore di seconda generazione in grado di di indirizzare oltre a 64kB seguito da MC68000 e Z8000 1978 DEC VAX riferimento per i mainframe futuri 1979 Intel 8088 processore a 8 bit con architettura int. a 16 bit 1979 IBM 801 primo processore RISC (32 bit) fine 70 IBM S/370 compatibile con S/360 1982 RISC I University of Berkley 1984 MC68020 prima CPU a 32 con cache istruzioni integrata + MMU 1985 MIPS University of Standford 1985 Intel 80386 CPU a 32 bit con MMU integrata 1987 MC68030 prima CPU con cache separate e MMU (32 bit) CAPITOLO 1 Introduzione ai Calcolatori Elettronici 11
La storia dei calcolatori elettronici (3/3) 1989 MC68040 prima CPU con anche FPU 1989 Intel 80486 cache integrata inizi i i 90 PowerPC PC archit. RISC, da unione IBM, Apple e Motorola 1993 Pentium nuova architettura superscalare 1995 Pentium Pro esecuzione speculativa, predizione salti, 1997 Pentium II tecnologia MMX (modifica ISA) 1999 Pentium III istruzioni per la gestione della grafica 3D 2000 Pentium 4 istruzioni multimediali 6/2001 Itanium Merced IA-64 congiunta Intel-HP esperimento 6/2002 Itanium 2 McKinley commerciale 6/2003 Itanium 2 Madison 5/2005 Intel Pentium D (EE 840), AMD 64 X2 arch. dual-core 7/2006 Intel Core 2 Duo (Core microarch.) fine Pentium 2008 Intel Core 2 Quad fino al recente Q9300 (2.4 GhZ, L2 6MB) CAPITOLO 1 Introduzione ai Calcolatori Elettronici 12
Concetto del multi-core Standard single- core processor Single-core processor con hyper-threading Dual-core processor CAPITOLO 1 Introduzione ai Calcolatori Elettronici 13
Generazioni dei calcolatori (1/2) GENERAZIONE 0 Computer Meccanici (1642-1945): Pascalina (1642) solo somme e sottrazioni Macchina di Von Leibnitz it (1672) anche molt. e divisioni i i i Analytical Engine (Babbage 1834) programmi su schede perf. GENERAZIONE 1 Valvole (1945-1955): 1955): Guidata da necessità belliche/militari Enormi e consumavano molta energia ENIAC, EDVAC, UNIVAC, IAS GENERAZIONE 2 Transistor (1955-1965): 1965): Più piccoli e efficienti grazie ai transistor Sviluppo hardware (organ. bus, ) e software (ling. alto livello) PDP, Cray, IBM, CAPITOLO 1 Introduzione ai Calcolatori Elettronici 14
Generazioni dei calcolatori (2/2) GENERAZIONE 3 Circuiti integrati (1965-1980): Necessità di capacità computazionali sempre maggiori Concetto di architettura tt IBM S/360 Nasce il concetto di multiprogrammazione Spazio indirizzi a 24 bit GENERAZIONE 4 Integrazione a grandissima scala (1980-oggi) Espansione esponenziale di tutti i componenti Migrazione verso GUI Nascita dei microprocessori GENERAZIONE 5 Computer avanzati (wearable, intelligenti, ) (???) Ancora in sviluppo Molti esperimenti, ma niente ancora di commerciale Esempi: MPP, quantum computing, biological computing, CAPITOLO 1 Introduzione ai Calcolatori Elettronici 15
Complessità dei microprocessori (1/2) CAPITOLO 1 Introduzione ai Calcolatori Elettronici 16
Complessità dei microprocessori (2/2) Pentium 4 CAPITOLO 1 Introduzione ai Calcolatori Elettronici 17
Potenza dei calcolatori elettronici Intel Core 2 Quad [ACM Communications, issue October 2003] CAPITOLO 1 Introduzione ai Calcolatori Elettronici 18
Classificazione dei calcolatori elettronici (1/2) Supercalcolatori (o supercomputer): sono calcolatori molto specializzati, con poca dotazione di software e progettati per svolgere operazioni matematiche e scientifiche molto velocemente. Mainframe: sono calcolatori molto potenti utilizzati per collegare molti utenti. Attualmente si tende ad utilizzarli prevalentemente per gestire grosse basi di dati, o applicazioni multimediali e Web. Spesso sono calcolatori paralleli, SMP (symmetric multiprocessor). Ad es., IBM S/390 e cluster di calcolatori Minicalcolatori: sono calcolatori che gestiscono un certo numero di utenti (10-100). Sono per lo più utilizzati come server e gli utenti collegati hanno una interfaccia grafica di tipo più raffinato che nel caso dei mainframe. Workstation: sono minicalcolatori dedicati ad un solo utente e dotati di un interfaccia grafica ad alte prestazioni. Personal computer: sono calcolatori simili alle workstation ma con prestazioni ridotte (non sempre!). Laptop computer PDAs, HHCs, CAPITOLO 1 Introduzione ai Calcolatori Elettronici 19
Classificazione dei calcolatori elettronici (2/2) Una classificazione più attuale è la seguente: sistemi general-purpose (programmabili): i calcolatori elettronici più propriamente detti: composti da 1 o più cpu dotati di sistema operativo la cui funzione è specificata nel software sistemi embedded (dedicati): composti da 1 o più cpu specializzate e da reti logiche dedicate con CPU speciali (microcontrollori, DSP) la cui funzione è specificata sia nel software che nell hardware ASIC (Application Specific Integrated Circuit): in cui CPU, memorie e periferiche sono cablate nell hardware e progettate specificatamente non sono programmabili dal software CAPITOLO 1 Introduzione ai Calcolatori Elettronici 20