ARCHITETTURA DEGLI ELABORATORI E LABORATORIO A - L
Anno accademico 2020/2021 - 1° anno - Curriculum Elaborazione Dati e Applicazioni e Curriculum Sistemi e Applicazioni- ARCHITETTURA DEGLI ELABORATORI: Corrado SANTORO e Emiliano Alessio TRAMONTANA
- LABORATORIO: Corrado SANTORO
Organizzazione didattica: 225 ore d'impegno totale, 153 di studio individuale, 36 di lezione frontale, 24 di esercitazione, 12 di laboratorio
Semestre: 1°
Obiettivi formativi
- ARCHITETTURA DEGLI ELABORATORI
Conoscenza e capacità di comprensione: acquisire conoscenza e capacità di comprensione dei concetti fondamentali di architettura dei sistemi di calcolo e dei principi metodologici che ne ispirano lo sviluppo, nella prospettiva storica della loro evoluzione;
Capacità di applicare conoscenza e comprensione: acquisire capacità di risolvere problemi di progetto di sistemi di calcolo, cimentandosi con esercizi proposti a tal fine, e di adoperare, progettare e realizzare strumenti software, quali simulatori ed interpreti, per macchine astratte relative ai livelli più bassi della organizzazione dei sistemi di calcolo.
Autonomia di giudizio: essere in grado di confrontare e valutare la qualità di soluzioni a problemi di progetto di sistemi di calcolo.
Abilità comunicative: acquisire abilità comunicativa e proprietà di linguaggio utili alla comunicazione di problematiche inerenti il funzionamento, la progettazione, la realizzazione e la valutazione di sistemi di calcolo, anche con interlocutori non esperti.
Capacità di apprendimento: sviluppare capacita di adattamento delle proprie conoscenze alla rapida evoluzione della disciplina e di aggiomamento mediante la consultazione di fonti specialistiche del settore.
- LABORATORIO
Conoscenza e capacità di comprensione: acquisire conoscenza e capacità di comprensione dei concetti fondamentali di architettura dei sistemi di calcolo e dei principi metodologici che ne ispirano lo sviluppo, nella prospettiva storica della loro evoluzione;
Capacità di applicare conoscenza e comprensione: acquisire capacità di risolvere problemi di progetto di sistemi di calcolo, cimentandosi con esercizi proposti a tal fine, e di adoperare, progettare e realizzare strumenti software, quali simulatori ed interpreti, per macchine astratte relative ai livelli più bassi della organizzazione dei sistemi di calcolo.
Autonomia di giudizio: essere in grado di confrontare e valutare la qualità di soluzioni a problemi di progetto di sistemi di calcolo.
Abilità comunicative: acquisire abilità comunicativa e proprietà di linguaggio utili alla comunicazione di problematiche inerenti il funzionamento, la progettazione, la realizzazione e la valutazione di sistemi di calcolo, anche con interlocutori non esperti.
Capacità di apprendimento: sviluppare capacita di adattamento delle proprie conoscenze alla rapida evoluzione della disciplina e di aggiomamento mediante la consultazione di fonti specialistiche del settore.
Modalità di svolgimento dell'insegnamento
- ARCHITETTURA DEGLI ELABORATORI
-
Lezioni frontali
-
Esercitazioni in aula
-
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
-
- LABORATORIO
- Lezioni frontali
- Esercitazioni in aula
Prerequisiti richiesti
- ARCHITETTURA DEGLI ELABORATORI
Nessun prerequisito è richiesto.
- LABORATORIO
Nessun prerequisito è richiesto.
Frequenza lezioni
- ARCHITETTURA DEGLI ELABORATORI
Per una piena comprensione degli argomenti del corso e delle tecniche presentate, la frequenza delle lezioni e delle esercitazioni è fortemente consigliata.
- LABORATORIO
Per una piena comprensione degli argomenti del corso e delle tecniche presentate, la frequenza delle lezioni e delle esercitazioni è fortemente consigliata.
Contenuti del corso
- ARCHITETTURA DEGLI ELABORATORI
- Finalità e organizzazione dello studio. Macchine da calcolo: cenni storici.
- Macchine da calcolo: unità funzionali, architetture.
- Strutture algebriche, algebre di Boole.
- Realizzazione di porte logiche, circuiti sequenziali, flip-flop.
- Architetture RISC e CISC, modi d'indirizzamento, esempi di ISA reali.
- Tipi e formati di istruzioni, esempi di linguaggi assemblativi reali.
- Operazioni di I/O, controllo e servizio delle interruzioni.
- Software di supporto, linguaggi assemblativi e C, sistema operativo.
- Struttura di base del processore, microarchitetture RISC e CISC.
- Processori ad alte prestazioni, tecniche predittive, processori superscalari.
- Dispositivi di memoria principale, DMA, gerarchia delle memorie.
- Circuiti efficienti per l'aritmetica binaria.
- LABORATORIO
- Rappresentazione binaria dei numeri e dell'informazione.
- Logica della commutazione, porte logiche
- Analisi e sintesi di funzioni logiche.
- Registri, componenti di chip di memoria e del processore, ALU.
- Linguaggio assemblativo, direttive di assemblatore, pile e sottoprogrammi.
- Modi di indirizzamento complessi, esempi di programmi assemblativi.
- Gestione di interruzioni ed eccezioni in architetture reali.
- Esempi di programmi con integrazione di linguaggi C e assemblativi.
- Progetto di microarchitetture, microprogrammazione, pipelining.
- Bus e circuiti d'interfaccia, standard d'interconnessione (cenni).
- Memorie cache, miglioramento delle prestazioni, memoria secondaria.
- Moltiplicazione veloce, aritmetica binaria in virgola mobile (IEEE 754).
Testi di riferimento
- ARCHITETTURA DEGLI ELABORATORI
- C. Hamacher, Z. Vranesic, S. Zaky & N. Manjikian : Introduzione all'architettura dei calcolatori. Terza edizione, McGraw-Hill Education (Italy), 2013
- Note integrative fornite dal docente durante lo sviluppo delle lezioni.
- LABORATORIO
- C. Hamacher, Z. Vranesic, S. Zaky & N. Manjikian : Introduzione all'architettura dei calcolatori. Terza edizione, McGraw-Hill Education (Italy), 2013
- Note integrative fornite dal docente durante lo sviluppo delle lezioni.
Programmazione del corso
ARCHITETTURA DEGLI ELABORATORI | |||
Argomenti | Riferimenti testi | ||
---|---|---|---|
1 | Finalità e organizzazione dello studio. Macchine da calcolo: cenni storici. | 1: 1.7 | |
2 | Macchine da calcolo: unità funzionali, architetture | 1: 1.0-3, 1.6 | |
3 | Strutture algebriche, algebre di Boole. | 2 | |
4 | Realizzazione di porte logiche, circuiti sequenziali, flip-flop. | 1: A.5-6 | |
5 | Architetture RISC e CISC, modi d'indirizzamento, esempi di ISA reali. | 1: 2.0-4, A2.1-2 | |
6 | Tipi e formati di istruzioni, esempi di linguaggi assemblativi reali. | 1: 2.8, 2.10.2, A2.4-5 | |
7 | Operazioni di I/O, controllo e servizio delle interruzioni. | 1: 3.0-2.5, A3.1 | |
8 | Software di supporto, linguaggi assemblativi e C, sistema operativo. | 1: 4.0-9.2 | |
9 | Struttura di base del processore, microarchitetture RISC e CISC. | 1: 5.0-4 | |
10 | Processori ad alte prestazioni, tecniche predittive, processori superscalari. | 1: 6.6-10 | |
11 | Dispositivi di memoria principale, DMA, gerarchia delle memorie. | 1: 8.0-5 | |
12 | Circuiti efficienti per l'aritmetica binaria. | 1: 9.2-4, 9.6 | |
LABORATORIO | |||
Argomenti | Riferimenti testi | ||
1 | Rappresentazione binaria dei numeri e dell'informazione. | 1: 1.4-5, A1.1-3 | |
2 | Logica della commutazione, porte logiche, sintesi di funzioni logiche. | 1: A.0-4 | |
3 | Registri, componenti di chip di memoria e del processore, ALU. | 1: A.7-11, 9.1 | |
4 | Linguaggio assemblativo, direttive di assemblatore, pile e sottoprogrammi. | 1: 2.5-7, A2.3 | |
5 | Modi di indirizzamento complessi, esempi di programmi assemblativi. | 1: 2.9-10.1, 2.11-13, A2.6 | |
6 | Gestione di interruzioni ed eccezioni in architetture reali. | 1: 3.2.6, A3.2-3 | |
7 | Esempi di programmi con integrazione di linguaggi C e assemblativi. | ||
8 | Progetto di microarchitetture, microprogrammazione, pipelining. | 1: 5.5-7, 6.0-5 | |
9 | Progetto di microarchitetture, microprogrammazione, pipelining. | 1: 5.5-7, 6.0-5 | |
10 | Bus e circuiti d'interfaccia, standard d'interconnessione (cenni). | 1: 7.0-4 (7.5) | |
11 | Memorie cache, miglioramento delle prestazioni, memoria secondaria. | 1: 8.6-7, 8.10 | |
12 | Moltiplicazione veloce, aritmetica binaria in virgola mobile (IEEE 754). | 1: 9.5, 9.7-8 |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
- ARCHITETTURA DEGLI ELABORATORI
- prova scritta
- colloquio orale di convalida
- presentazione e discussione di un progetto (opzionale)
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
- LABORATORIO
- prova scritta
- colloquio orale di convalida
- presentazione e discussione di un progetto (opzionale)
Esempi di domande e/o esercizi frequenti
- ARCHITETTURA DEGLI ELABORATORI
- Conversione binario/decimale, binario/esadecimale, decimale/esadecimale
- Somma in complemento a 2
- Analisi di funzioni logiche (da funzione a tabella della verita')
- Sintesi di funzioni logiche (da tabella della verita' a funzione), mappe di Karnaugh
- Circuito sommatore binario
- Allineamento delle word in memoria
- Instruction-Set Architecture
- Data Path
- Pipeline
- Cache Memory
- Somma di vettori
- Ricerca all'interno di un vettore
- Filtraggio di un vettore
- LABORATORIO
- Algoritmo della moltiplicazione intera
- Algoritmo della divisione intera
- Algoritmo del massimo comun divisore
- Somma degli elementi di un vettore
- Ricerca lineare in un vettore
- Filtraggio degli elementi di un vettore