INFORMAZIONI SU

Calcolatori elettronici e sistemi operativi

Programma dell'insegnamento di Calcolatori elettronici e sistemi operativi - cdl magistrale in Ingegneria Elettronica

Docente

prof. aggr. Mirko LOGHI

Crediti

6 CFU

Obiettivi formativi specifici

Il corso illustra la progettazione di un processore, partendo dai blocchi elementari combinatori e sequenziali studiati nel corso di metodologie della sintesi logica. Vengono mostrate architetture di calcolo e illustrati i fondamenti dei sistemi operativi.

Competenze acquisite

- Progetto di dispositivi digitali special purpose.
- Progetto di processori general purpose.
- Architetture avanzate di microprocessori.
- Architettura di un sistema digitale programmabile.
- Assembly per architetture RISC.
- Struttura dei sistemi operativi.
- Sviluppo di device driver.

Programma

Suddivisione in control-unit e datapath: motivazioni; esempi (2 ore).
Fondamenti di VHDL: descrizione comportamentale e strutturale di elementi circuitali; descrizione di macchine a stati finiti; inferenza; testbench (4 ore).
Flusso di sintesi logica:  mapping tecnologici; full-custom, standard cell, cell-array, FPGA (2 ore).
Progetto di control-unit e datapath: diagrammi ASM; analisi dei vincoli temporali; strategie ed esempi di progetto; sintesi della control unit; strategie di ottimizzazione; microprogrammazione (10 ore).
Progetto di processori general purpose: architettura single-cycle; architettura multi-cycle, controllo cablato e microprogrammato; pipeline e conflitti; soluzioni architetturali per alte prestazioni, esecuzione fuori ordine, superscalarità, hardware multithreading; Architetture VLIW (6 ore).
Architetture dei calcolatori: gerarchia di memoria (cache, cache a più livelli, memoria principale); interconnessioni (bus, crossbar, network on chip); input-output (polling, interrupt, DMA (6 ore).
Processori CISC e RISC: architettura CISC: x86; confronto architetture RISC, MIPS e ARM; programmazione in assembly per MIPS e ARM, linguaggio, convenzioni sull'uso dei registri, convenzioni sull'uso dello stack, esempi di implementazione di funzionii (6 ore).
Sistemi operativi: livelli di protezione; processi e threads; scheduling; sincronizzazione; gestione della memoria; gestione della memoria di massa; sottosistema di input/output; filesystem (16 ore).
Laboratorio (8 ore).

Bibliografia

- Morris Mano, Charles Kime, "Logic and Computer Design Fundamentals", Prentice Hall.
- David Harris, Sarah Harris, "Digital Design and Computer Architecture", Elsevier.
- William Stallings, "Computer Organization and Architecture, 8th Edition", Prentice Hall.
- John Hennessy, David Patterson, "Computer Architecture: A Quantitative Approach", Morgan Kaufmann.
- Steve Furber, "ARM system-on-chip architecture", Addison Wesley.
- William Stallings, "Operating Systems: Internals and Design Principles, 7th Edition", Prentice Hall.
- Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman, "Linux Device Drivers", O'Reilly.
- Daniel Bovet, Marco Cesati, "Understanding the Linux Kernel".

Modalità d'esame

prova scritta

Ulteriore materiale didattico o informazioni reperibili alla pagina