Fornire le conoscenze di base relative gli elementi fondamentali di architettura dei sistemi di calcolo e della programmazione assembly. Fornire conoscenza e comprensione con una visione critica delle moderne architetture di calcolo, caratterizzate da una complessità sempre crescente. Sviluppare la capacità di comprendere gli aspetti rilevanti delle interfacce hardware/software. Sviluppare l’autonomia nella scelta delle migliori soluzioni tecnologiche ed architetturali degli elaboratori. Sviluppare la capacità di esprimersi utilizzando un linguaggio adeguato agli standard del settore e di aggiornarsi sull’evoluzione tecnologica nell’ambito dei calcolatori elettronici.
Prerequisiti
Conoscenze di informatica (concetti di programmazione di linguaggi ad alto livello)
Metodi didattici
Lezioni frontali e laboratorio: il corso si svolge prevalentemente attraverso lezioni frontali e seminari su specifici aspetti disciplinari. Parte delle lezioni verteranno su aspetti pratici/di laboratorio, espletato prevalentemente in aula attraverso sessioni “hands on” su propri dispositivi (BYOD – Bring Your Own Device)
Verifica Apprendimento
La verifica dell'apprentimento consiste in esame orale su tutti gli argomenti trattati nel corso
Testi
- Harris, Harris - Sistemi digitali e architettura dei calcolatori - Zanichelli - ISBN: 9788808920737
Contenuti
-ARCHITETTURA Processore: Il linguaggio Assembly. L’Instruction Set Architecture. Istruzioni data processing. Istruzioni di accesso alla memoria. Istruzioni di salto. Istruzioni condizionali. Le funzioni. Lo stack. Linguaggio macchina. Il compilatore. L’assemblatore. Il linker. Il loader. Memory map. -MICROARCHITETTURA: Analisi delle prestazioni. Il Datapath. Processore a ciclo singolo. Processore multiciclo. Processore con pipeline. -IL SISTEMA DI MEMORIA: La memoria cache. Tasso di successo e di insuccesso. Cache a mappatura diretta. Cache set associative. Cache fully associative. La memoria virtuale. -