Introduzione. Organizzazione ed architettura di un calcolatore. Struttura e funzionalità. Livelli di astrazione. Tecnologia costruttiva. Breve rassegna storica.
Rappresentazione dell'informazione. Rappresentazione degli interi. Aritmetica degli interi. Rappresentazione in virgola mobile (formato IEEE 754). Aritmetica in virgola mobile. Codifica dei caratteri. Codifica ASCI, BCD.
Il linguaggio C. Fondamenti del C. Operatori ed espressioni. I/O dei dati. Preparazione ed esecuzione di un programma in linguaggio C. Istruzioni di controllo. Funzioni, Struttura dei Programmi. Array. Puntatori. Strutture. Gestione dinamica della Memoria.
Il set delle istruzioni. Il caso del MIPS. Le istruzioni. Le operazioni svolte dall'hardware. Gli operandi dell'hardware. Rappresentazione delle istruzioni all'interno del calcolatore. Modi di indirizzamento. Istruzioni aritmetiche. Istruzioni di load/store. Istruzioni di salto. Istruzioni logiche. Pseudo-istruzioni. Direttive. Chiamate di sistema. Dalla compilazione all'esecuzione di un programma: assemblatore, linker e loader. Confronto tra architetture RISC e CISC.
Circuiti Logici. Circuiti logici combinatori. Algebra di Boole. Progettazione di Reti combinatorie. Reti sequenziali sincrone ed asincrone. Progettazione di circuiti logici combinatori e sequenziali. Automi di Mealy e Moore. Il sistema calcolatore
Unità logico-aritmetica. La costruzione di una ALU.
Memoria. I sistemi di memorizzazione e le tecnologie di memorizzazione. Memoria principale. Lettura e scrittura di una RAM. Gli elementi di memoria. Introduzione alle gerarchie di memoria ed alla memoria cache.
Il processore: unità di elaborazione dati e unità di controllo. Introduzione. Progetto dell'unità di elaborazione dati: unità a ciclo singolo e multi-ciclo. L'unità di controllo per l'ALU. Definizione dell'unità di controllo. La microprogrammazione: il progetto dell'unità di controllo. Studio del caso MIPS.
Pipelining. Introduzione. L'unità di elaborazione pipelined. Il controllo. Analisi delle criticità.
La Gerarchia di Memoria e le memorie Cache: Le prestazioni. La memoria virtuale. Macchine virtuali. Controllo della cache. Coerenza della cache.
Input/Output. Tipi e caratteristiche dei dispositivi di I/O. Dischi. Bus sincroni ed asincroni.
Il DMA
Valutazione delle prestazioni. Introduzione alla valutazione delle prestazioni. La misura delle prestazioni. Relazioni tra le metriche. Benchmark.