Università di Messina - Facoltà di Ingegneria Calcolatori 1 Obiettivi del corso: L'obiettivo principale del corso è l’insegnamento delle conoscenze di base relative alle metodologie per l'analisi ed il progetto dei circuiti logici e lo studio degli elementi fondamentali di architettura dei sistemi di calcolo. Docente: Dott. Dario Bruneo, PhD e-mail: [email protected] tel: +39 090 3977343 ricevimento: lun 16:00 18:00 Il concetto di informazione Rappresentazione delle informazioni. Sistemi numerici. Rappresentazione dei numeri naturali. Rappresentazione dei numeri relativi. Numeri con segno e senza segno. Operazioni aritmetiche. Rappresentazione dei numeri razionali. Numeri in virgola fissa e mobile. Lo standard IEEE 754. Codici numerici. Il codice BCD. ll codice ASCII. Il codice UNICODE. Algebra di Boole e dei circuiti di commutazione Logica binaria. Il concetto di porte logica. Algebra booleana. Identità dell’algebra booleana. Espressioni e funzioni. Circuiti logici. Semplificazioni algebriche. Teorema del consenso. Funzioni in forma complementata. Forme canoniche. Mintermini e maxtermini. Implementazioni a due livelli. Le mappe di Karnaugh. Minimizzazione di funzioni con il metodo delle k-map- Condizioni di don’t care. Funzioni booleane di due variabili. Principali porte logiche. Funzione dispari. Generatore di parità. Cenni sulle famiglie logiche. Ritardo di propagazione. Alee. Logica positiva e negativa. Logica tri-state. Circuiti logici combinatori Definizione di circuito combinatorio. Tecniche di progettazione (gerarchica, top-down, bottom-up, CAD). Linguaggi HDL. Sintesi logica. Procedura di analisi. Individuazione delle funzioni booleane. Simulazione logica. Procedura di sintesi. Convertitore BCD - 7 segmenti. Decodificatori. Codificatori. Codificatore con priorità. Multiplexer. Demultiplexer. Circuiti aritmetici. Half adder. Full adder. Sommatore parallelo. Sommatore carry lookahead. Circuiti sottrattori. Circuito sommatore/sottrattore. Overflow. Moliplicatori binari. La ALU. Dispositivi logici programmabili (ROM, PLA, PAL, FPGA). Circuiti logici sequenziali Definizione di circuito sequenziale. Circuiti asincroni e sincroni. Memorizzazione delle informazioni. Circuiti bistabili. Latch (SR, S’R’, D). Flip-flop master-slave (SR, JK,T). Flip-flop edge triggered (D, JK,T). Tabelle caratteristiche. Caratteristiche temporali dei flip-flop. Ingressi diretti. Procedura di analisi. Modelli di Mealy e di Moore. Diagrammi di stato. Procedura di sintesi. Registri (paralleli, a scorrimento, universali, bidirezionali). Contatori (a cascata, sincroni, a incremento e decremento, a caricamento parallelo, generici). Le memorie RAM. Lettura e scrittura di una RAM. Temporizzazioni. SRAM. DRAM. Cenni sul controller DRAM. RAM a banchi. Calcolatori 1 - Programma del corso a.a. 2006/2007 1 Calcolatori 1 Calcolatori 1 Architettura dei calcolatori Cenni storici. La legge di Moore. Classi di calcolatori. L’interfaccia hw/sw. I componenti di un calcolatore. Modello di Von Neumann. Architettura e organizzazione. Il livello ISA. L’architettura MIPS 32 Introduzione alla programmazione assembler. Le istruzioni. Filosofie RISC e CISC. Panoramica del procesore MIPS 32. Istruzioni aritmetiche di base. Operandi. Operandi allocati in memoria. Indirizzamento dei byte (little endian, big endian). Operandi immediati. Rappresentazione delle istruzioni. Tipi di istruzione. Istruzioni logiche. Istruzioni condizionali. I cicli. Istruzioni di test. Gestione delle procedure. Passaggio dei parametri. Lo stack. Record di attivazione. Registri caller-saved e callee-saved. Procedure annidate. Procedure ricorsive. Dati statici. L’heap. Segmenti. Direttive MIPS. Istruzioni di trasferimento dati. Indirizzamento. Aritmetica del MIPS. Gestione dell’overflow. Aritmetica in virgola mobile. Architettura MIPS R2000. L’ambiente SPIM. Chiamate di sistema. Il compilatore. L’assemblatore. File oggetto. Il linker. Il loader. Librerie dinamiche. Cenni sull’architettura IA32. Il processore Cenni sulle prestazioni della CPU. Progetto della CPU. Stati di fetch, decode, execute. Il datapath. Temporizzazione. Datapath a ciclo singolo. Progetto dell’unità di controllo per datapath a ciclo singolo. Limiti della realizzazione a ciclo singolo. Datapath multiciclo. Progetto dell’unità di controllo per datapath multiciclo. Unità di controllo in logica cablata. Valutazione delle prestazioni. Granularità del clock. Le eccezioni. La microprogrammazione. Formato delle microistruzioni. Unità di controllo in logica microprogrammata. Introduzione al pipelining. Alee nella pipeline (strutturali, sui dati, sul controllo). Datapath con pipeline. Rappresentazione grafica della pipeline. Unità di controllo con pipeline. La propagazione. La forwarding unit. Lo stallo. L’hazard detection unit. Libri di testo Mano - Kime: Reti Logiche. Addison-Wesley. 2002 Patterson - Hennessy: Struttura e progetto dei calcolatori - l’interfaccia hw-sw. Zanichelli. 2006 Modalità d’esame L’esame è composto da una prova scritta sulla programmazione assembler e da una prova orale. Calcolatori 1 - Programma del corso a.a. 2006/2007 2