Fondamenti di Informatica Ingegneria delle Comunicazioni ed Ingegneria Elettronica Parte I - Architetture di Elaborazione prof. Silvio Salza Programma svolto nell’a.a. 2015 -2016 • Evoluzione dei sistemi di elaborazione. Struttura a livelli dell’organizzazione hardware e software del sistema di elaborazione – Evoluzione storica dei sistemi di elaborazione – Generazioni di sistemi di elaborazione – Dalla macchina di Babbage al Personal Computer – Leggi di Moore e di Nathan – Tipologie di computer – Le famiglie Intel, SPARC e ARM. • Struttura del sistema di elaborazione. Il processore e la sua organizzazione interna – Esecuzione ed interpretazione delle istruzioni – Il ciclo fetch-decode-execute – Architetture CISC e RISC – Forme di parallelismo, pipelining, architetture superscalari – La memoria centrale, organizzazione interna, ordinamento dei dati – Codici a rilevazione e correzione di errore – Gerarchie di memoria, memorie cache – Dischi magnetici, dischi IDE, EIDE, Serial ATA e SCSI – Dischi RAID – Dischi ottici, CD ROM, DVD, DVD Blue ray – Monitor e Display Flat-Panel – Terminali a mappa di caratteri e di bit – Stampanti ink-jet e laser – Tastiere e mouse – Interfacce tattili – Interfacce vocali – Modem – Modem ADSL– Codifica di caratteri, codici ASCII, ISO-IEC 8859, UNICODE, UTF 8. • Logica digitale, memorie, microprocessori e bus. Richiami sull’algebra booleana, porte logiche – Circuiti logici di base: multiplexer, decodificatori, comparatori, PLA – I circuiti dell’Unità Aritmetico Logica, latch, flip-flop, registri, addizionatori – Memoria centrale e sua organizzazione interna – Matrici di selezione bidimensionali – RAM statiche e dinamiche, ROM, EPROM, memorie flash – Chip di memoria e schede di memoria, SIMM e DIMM – Memorie SDRAM e DDR – Memorie DDR-2, DDR-3 e Dual Channel – Dischi allo sto solido (SSD). • Bus e microprocessori Architettura a bus – Prestazioni dei bus – Tipologie di bus: paralleli, seriali, sincroni ed asincroni – Standardizzazione dei bus – Protocolli di bus sincroni ed asincroni – Arbitraggio dei bus – Pinout del microprocessore – Esempi di microprocessori, il Pentium 4 – Architetture multicore – Intel Core – Architettura classica della piattaforma Intel, bus PCI, AGP, local bus – Bus PCI Express – Nuova piatatforma Intel: Core i3-i7 – Bus USB 1, USB 2, USB 3, specifiche e struttura dei frame – Gestione dell’I/O – Gestione delle interruzioni. • Microarchitetture, cache e pipeline. La microarchitettura, il cammino dei dati – Ciclo di esecuzione delle microistruzioni – Accesso alla memoria – Formato delle microistruzioni – La sezione di controllo – Memorie cache, memorie associative pure, a mappa diretta, associative ad insiemi – Gestione della cache in lettura e scrittura – Pipeline e architetture superscalari – Gestione dei salti, previsione statica e dinamica – Esecuzione in-order e out-of-order – Microarchitettura Sandy Bridge (Intel Core) • Il livello delle istruzioni macchina. Registri, Program Status Word e modello della memoria – Architetture ad n bit – Architettura IA-64 Itanium – Architettura AMD-64 – Architettura x86-64 – Vantaggi delle architetture a 64 bit – Registri nelle architetture IA-32 e x86-64 – Modi di funzionamento e livelli di privilegio – Tipi di dati – Formato delle istruzioni – Espansione dei codici operativi – Formato delle istruzioni nel Pentium 4 – Modalità di indirizzamento – Indirizzamento a stack – Gestione dell’I/O, I/O programmato, con interruzioni e DMA – Repertorio di istruzioni nell’architettura x86-64 – Gestione delle trap e delle interruzioni • Traduzione e collegamento Linguaggi macchina e linguaggi ad alto livello – Traduttori: interpreti compilatori ed assemblatori – Linguaggi assemblativi – Istruzioni e pseudoistruzioni – Macro, macro con parametri procedure – Funzionamento degli assemblatori – Assemblatori a due passate – Struttura del modulo oggetto – Collegamento e aggiornamento degli indirizzi – Collegamento dinamico – Librerie DLL. • Sistemi di numerazione binaria. Numeri e numerali – Rappresentazioni a precisione finita – Sistemi di numerazione posizionale – Conversioni di base, binario, decimale esadecimale – Rappresentazione degli interi negativi, notazioni in complemento a uno e a due, in eccesso 2e e relative conversioni – Addizioni e moltiplicazioni fra interi – Rappresentazioni in virgola mobile, overflow, underflow – Addizioni e moltiplicazioni in virgola mobile – Lo standard IEEE 754, numeri denormalizzati – Stima dell’errore assoluto e relativo RIFERIMENTI - A.S. Tanembaum, Todd Austin Architettura dei calcolatori: un approccio strutturato, 6a Ed., Pearson Italia 2013. - Materiale distribuito dal docente Materiale didattico in formato elettronico Copia delle trasparenze, testi di esercizi di esame ed altro materiale didattico sono disponibili all’indirizzo: http://www.dis.uniroma1.it/~salza/FI-architetture.htm