Programma






Parte I: Introduzione Informazione digitale - Numeri interi: rappresentazioni e operazioni - Numeri in virgola mobile rappresentazione e operazioni (standard IEEE754)

Parte II: Concetti di base Porte logiche - Reti combinatorie e principali circuiti: decodificatore e codificatore, addizionatore, comparatore logico ed aritmetico - Reti sequenziali e principali circuiti: contatore, registro a scorrimento, registro di memorizzazione - Richiamo dei numeri in complemento a due e dei numeri in virgola mobile (schema del circuito per la somma in virgola mobile) - Strutture di interconnessione (punto a punto, multiplexer, demultiplexer, mesh, buffer a 3 stati, bus)

Parte III: Macchina di Von Neumann CU: significato, componenti principali (registri ad uso speciale e generale, transcodificatore) e funzionamento - ALU: significato, componenti principali (accumulatori) e funzionamento (operazioni principali e condition code); coprocessore matematico - Memoria: significato; tipologie; Memoria in MdVN componenti principali, organizzazione fisica e logica, funzionamento. Organizzazione logica dei dati big-little endian - I/O (interfaccia e protocollo e relativi schemi) - Struttura di Interconnessione (bus, centralizzato o decentralizzato) - Un altro tipologia di calcolatore: la Macchina di Harvard

Parte IV: Dal codice sorgente all'eseguibile Compilatore - Assemblatore - Linker - Loader

Parte V: Architettura Funzionale Definizione di un set di istruzioni - Formato dell'istruzione - Classe di istruzioni - L'architettura del MIPS

Parte VI: Modi di indirizzamento Modo di indirizzamento: immediato, assoluto, a registro, con spiazzamento, relativo; varianti indirette; pre-post incremento

Parte VII: Aumento delle prestazioni: Interruzioni Classificazione (interne, esterne e software) - Polling Interruzioni vettorizzate (tabella delle interruzioni), commutazione del contesto, esecuzione della routine di gestione, priorità - Interruzioni sequenziali e interruzioni annidate (gestione) - Gestioni delle interruzioni nel MIPS

Parte VIII: Pipeline - Canalizzazione Canalizzazione: fasi, prestazioni, data e control hazard, forwarding, gestione degli stalli e mitigazione degli hazard - Canalizzazione nel MIPS: circuiteria di base; data hazard e control hazard; salto incondizionato anticipato, salto condizionato predetto e delay slot - Pipeline CISC e RISC (differenze).

Parte IX: Cache Completamente associativa - Associativa a insieme e n-vie - Ad associazione diretta - Blocchi: spostamento, piazzamento ricerca, sostituzione - Strategia di scrittura - Performance e miglioramenti

Parte X: Memoria Virtuale Processo - Paginazione - Memoria Virtuale - Architettura e politiche di rimpiazzo delle pagine

Parte XI: DMA Accesso diretto alle memoria: struttura e protocollo - Un caso reale il DMA del MOTOROLA MCF5307

Parte XII: Microprogrammazione Struttura fisica (MicroMacchina) - Struttura logica (Microprogramma, microistruzioni, mi cooperazioni - Differenze CISC e RISC

Parte XIII: Multiprocessori e MultiCore Classificazione - SISD,SIMD,MISD,MIMD - Memoria condivisa e distribuita - Parallelismo dei thread/processi (multithreading)

Parte XIV: Unità periferiche ed il problema della digital preservation Disco Magnetico - Nastro Magnetico - Dischi ottici - SSD - Digital preservation

Linguaggio assemblativo MIPS Set istruzioni - Modi di indirizzamento - Strutture dati (vettore, stringa, matrice) - Cicli - Salto a Subroutine – Subroutine ricorsive - Uso dello stack - Syscall (gestione file e formato BMP) - Programmazione con emulatore MARS