• Non ci sono risultati.

ARCHITETTURA DEGLI ELABORATORI E LABORATORIO M - Z

N/A
N/A
Protected

Academic year: 2022

Condividi "ARCHITETTURA DEGLI ELABORATORI E LABORATORIO M - Z"

Copied!
7
0
0

Testo completo

(1)

DIPARTIMENTO DI MATEMATICA E INFORMATICA Corso di laurea in Informatica

Anno accademico 2018/2019 - 1° anno

ARCHITETTURA DEGLI ELABORATORI E LABORATORIO M - Z

9 CFU - 2° semestre

Docente titolare dell'insegnamento CHRISTIAN NAPOLI

Email: napoli@dmi.unict.it

Edificio / Indirizzo: Stanza 325, II Blocco, Dipartimento di Matematica e Informatica, viale Andrea Doria 6, 95125 Catania

Telefono: 0957337233

Orario ricevimento: Martedì e Giovedì 08.00-10.00

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

(2)

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.

LABORATORIO

Lezioni compartecipate.

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

(3)

Il corso si articola in 12 lezioni (36 ore), i contenuti sono esposti nell'elenco seguente:

L01. Finalità e organizzazione dello studio. Macchine da calcolo: cenni storici.

L02. Macchine da calcolo: unità funzionali, architetture.

L03. Strutture algebriche, algebre di Boole.

L04. Realizzazione di porte logiche, circuiti sequenziali, flip- flop.

L05. Architetture RISC e CISC, modi d'indirizzamento, esempi di ISA reali.

L06. Tipi e formati di istruzioni, esempi di linguaggi assemblativi reali.

L07. Operazioni di I/O, controllo e servizio delle interruzioni.

L08. Software di supporto, linguaggi assemblativi e C, sistema operativo.

L09. Struttura di base del processore, microarchitetture RISC e CISC.

L10. Processori ad alte prestazioni, tecniche predittive, processori superscalari.

L11. Dispositivi di memoria principale, DMA, gerarchia delle memorie.

L12. Circuiti efficienti per l'aritmetica binaria.

LABORATORIO

Il corso si articola in 12 esercitazioni orientate al laboratorio (36 ore), i contenuti sono esposti nell'elenco seguente.

E01. Aritmetica Maya, sull'abaco e con simulatori.

E02. Rappresentazione binaria dei numeri e dell'informazione.

E03. Logica della commutazione, porte logiche, sintesi di funzioni logiche.

E04. Registri, componenti di chip di memoria e del processore, PLA, FPGA, ALU.

E05. Linguaggio assemblativo, direttive di assemblatore, pile e sottoprogrammi.

E06. Modi di indirizzamento complessi, esempi di programmi assemblativi.

E07. Gestione di interruzioni ed eccezioni in architetture reali.

E08. Esempi di programmi con integrazione di linguaggi C e assemblativi.

E09. Progetto di microarchitetture, microprogrammazione, pipelining.

E10. Bus e circuiti d'interfaccia, standard d'interconnessione (cenni).

E11. Memorie cache, miglioramento delle prestazioni, memoria secondaria.

E12. Moltiplicazione veloce, aritmetica binaria in virgola mobile (IEEE 754).

(4)

TESTI DI RIFERIMENTO

ARCHITETTURA DEGLI ELABORATORI

1. C. Hamacher, Z. Vranesic, S. Zaky & N. Manjikian : Introduzione all'architettura dei calcolatori.

Terza edizione, McGraw-Hill Education (Italy), 2013

2. Tre note integrative fornite dal docente durante lo sviluppo delle lezioni.

LABORATORIO

1. C. Hamacher, Z. Vranesic, S. Zaky & N. Manjikian : Introduzione all'architettura dei calcolatori.

Terza edizione, McGraw-Hill Education (Italy), 2013

2. Tre note integrative fornite dal docente durante lo sviluppo delle lezioni.

ALTRO MATERIALE DIDATTICO

ARCHITETTURA DEGLI ELABORATORI Il materiale didattico consta di:

lucidi delle lezioni e delle esercitazioni;

esercizi proposti su forum ad-hoc;

note integrative.

Il materiale didattico è pubblicato, durante lo sviluppo dell'insegnamento.

LABORATORIO

Il materiale didattico consta di:

lucidi delle lezioni e delle esercitazioni;

esercizi proposti su forum ad-hoc;

note integrative.

Il materiale didattico è pubblicato, durante lo sviluppo dell'insegnamento.

PROGRAMMAZIONE DEL CORSO

ARCHITETTURA DEGLI ELABORATORI

Argomenti Riferimenti testi

1 L01. Finalità e organizzazione dello studio. Macchine da calcolo: cenni storici.

1: 1.7

2 L02. Macchine da calcolo: unità funzionali, architetture. 1: 1.0-3, 1.6

3 L03. Strutture algebriche, algebre di Boole. 2: 2

4 L04. Realizzazione di porte logiche, circuiti sequenziali, flip- flop. 1: A.5-6

(5)

5 L05. Architetture RISC e CISC, modi d'indirizzamento, esempi di ISA reali.

1: 2.0-4, A2.1-2

6 L06. Tipi e formati di istruzioni, esempi di linguaggi assemblativi reali. 1: 2.8, 2.10.2, A2.4-5 7 L07. Operazioni di I/O, controllo e servizio delle interruzioni. 1: 3.0-2.5, A3.1 8 L08. Software di supporto, linguaggi assemblativi e C, sistema

operativo.

1: 4.0-9.2

9 L09. Struttura di base del processore, microarchitetture RISC e CISC. 1: 5.0-4 10 L10. Processori ad alte prestazioni, tecniche predittive, processori

superscalari.

1: 6.6-10

11 L11. Dispositivi di memoria principale, DMA, gerarchia delle memorie. 1: 8.0-5 12 L12. Circuiti efficienti per l'aritmetica binaria. 1: 9.2-4, 9.6 LABORATORIO

Argomenti Riferimenti testi

1 E01. Aritmetica Maya, sull'abaco e con simulatori. 2:1

2 E02. Rappresentazione binaria dei numeri e dell'informazione. 1: 1.4-5, A1.1-3 3 E03. Logica della commutazione, porte logiche, sintesi di funzioni

logiche.

1: A.0-4

4 E04. Registri, componenti di chip di memoria e del processore, PLA, FPGA, ALU.

1: A.7-11, 9.1

5 E05. Linguaggio assemblativo, direttive di assemblatore, pile e sottoprogrammi.

1: 2.5-7, A2.3

6 E06. Modi di indirizzamento complessi, esempi di programmi assemblativi.

1: 2.9-10.1, 2.11-13, A2.6

7 E07. Gestione di interruzioni ed eccezioni in architetture reali. 1: 3.2.6, A3.2-3 8 E08. Esempi di programmi con integrazione di linguaggi C e

assemblativi.

2: 3

9 E09. Progetto di microarchitetture, microprogrammazione, pipelining. 1: 5.5-7, 6.0-5 10 E10. Bus e circuiti d'interfaccia, standard d'interconnessione (cenni). 1: 7.0-4 (7.5) 11 E11. Memorie cache, miglioramento delle prestazioni, memoria

secondaria.

1: 8.6-7, 8.10

12 E12. Moltiplicazione veloce, aritmetica binaria in virgola mobile (IEEE 754).

1: 9.5, 9.7-8

(6)

VERIFICA DELL'APPRENDIMENTO

MODALITÀ DI VERIFICA DELL'APPRENDIMENTO ARCHITETTURA DEGLI ELABORATORI 1. prova scritta

2. colloquio orale di convalida

3. presentazione e discussione di un progetto (opzionale) LABORATORIO

1. prova scritta

2. colloquio orale di convalida

3. presentazione e discussione di un progetto (opzionale)

ESEMPI DI DOMANDE E/O ESERCIZI FREQUENTI ARCHITETTURA DEGLI ELABORATORI

1. Come si può modificare la rappresentazione Maya dei numeri, usando gli stessi oggetti per formare le cifre, per avere una rappresentazione esadecimale (cioè in base 16)? Come cambiano le regole di equivalenza di gruppi di oggetti sull'abaco? Risolvere il problema analogo per la rappresentazione ottale (in base 8).

2. Nel pipelining del ciclo prelievo-esecuzione si possono condurre in parallelo l'esecuzione dell'istruzione corrente e il prelievo della successiva. Descrivere in cosa consiste il miglioramento di prestazioni per tale soluzione.

3. Sintetizzare una rete combinatoria di costo minimo, secondo il criterio di costo dei letterali, della funzione booleana f(x 1 ,x 2 ,x 3 ,x 4 ), dove f = 1 se almeno una e non più di due delle variabili 'ingresso hanno valore logico 1, altrimenti f = 0.

4. Scrivere un sottoprogramma assemblativo MEMCOMP per effettuare un confronto byte per byte di due sequenze di byte nella memoria principale. Le due sequenze hanno la stessa lunghezza. Il sottoprogramma dovrebbe accettare tre parametri di input inseriti nei registri per rappresentare il primo indirizzo, il secondo indirizzo e la lunghezza delle sequenze da confrontare. Dovrebbe usare un registro per fornire quale valore di ritorno il conteggio del numero di confronti non corrispondenti.

LABORATORIO

1. Si assuma che il 20 percento del conteggio dinamico delle istruzioni eseguite per un programma siano istruzioni di salto. Si usi il salto differito, con un posto del ritardo. Si assuma che non ci siano stalli causati da altri fattori. Dapprima, determinare un'espressione per il tempo di esecuzione espresso in cicli qualora tutti i posti del ritardo siano occupati con istruzioni NOP. Quindi determinare un'altra espressione che rifletta il tempo di esecuzione con il 70 percento di posti di ritardo occupati con istruzioni utili dal compilatore ottimizzante. Da queste espressioni, determinare il contributo del compilatore all'incremento delle prestazioni, espresso come percentuale di accelerazione.

2. Nell'esempio di protocollo di arbitraggio illustrato in Figura 7.9, il master che riceve una concessione del bus mantiene la sua linea di richiesta nello stato asserito finché non è pronto a

(7)

rilasciare il bus. Si assuma che sia disponibile una linea detta Busy, che viene asserita dal master che sta usando il bus. L'arbitro concede il bus solo quando Busy è inattiva. Quando un master riceve una concessione, asserisce Busy e annulla la sua richiesta, e in risposta l'arbitro annulla la concessione. Il master disattiva Busy quando ha finito di usare il bus. Tracciare un diagramma di sincronizzazione equivalente alla Figura 7.9 per questo modo di funzionamento.

3. Un calcolatore indirizzabile a byte ha una piccola cache di dati capace di tenere otto parole da 32 bit. Ciascun blocco della cache consiste di una parola da 32 bit. Quando un certo programma viene eseguito, il processore legge i dati sequenzialmente dai seguenti indirizzi esadecimali:

200, 204, 208, 20C, 2F4, 2F0, 200, 204, 218, 21C, 24C, 2F4

Questa sequenza di letture è ripetuta in quattro iterazioni di un ciclo. Si assuma che la cache sia inizialmente vuota. Mostrare i contenuti della cache alla fine di ciascuna iterazione del ciclo, e calcolare il tasso di successo, nell'ipotesi di cache a corrispondenza diretta.

4. Moltiplicare ciascuna delle seguenti coppie di numeri interi con segno in complemento a due usando l'algoritmo di Booth. Assumere in ciascun caso che A sia il moltiplicando e B il moltiplicatore.

(a) A = 010111, B = 110110 (b) A = 110011, B = 101100 (c) A = 001111, B = 001111

Riferimenti

Documenti correlati

[r]

[r]

•  NOTA: ciascuna somma vale 0 solo per quella data combinazione degli addendi (dei valori delle variabili in input)... Dalle forme canoniche ai circuiti

  VLSI (Very Large Scale Integrated): > 100.000 porte!. Con tecnologia SSI, gli IC contenevano poche porte, direttamente collegate ai

•  Set deve essere ridiretto verso la 1-bit ALU che fornirà in output il bit meno significativo del risultato!. Il blocco che controlla lʼoverflow lo fa sulla

  ogni passo da eseguire in un ciclo di clock (ciclo più corto rispetto alla CPU a ciclo singolo)!..   importante il bilanciamento della quantità di

produzione di rifiuti da costruzione e produzione di rifiuti da costruzione e produzione di rifiuti da costruzione e produzione di rifiuti da costruzione e demolizione in Italia,

24-26: Discreta conoscenza e comprensione degli argomenti; discreta capacità di analisi e sintesi e capacità di argomentare in modo rigoroso i contenuti richiesti; discreta capacità