ARCHITETTURA DEGLI ELABORATORI |
Codice
|
1015881 |
Lingua
|
ITA |
Corso di laurea
|
Informatica |
Programmazione per l'A.A.
|
2020/2021 |
Curriculum
|
Metodologico |
Anno
|
Primo anno |
Unità temporale
|
Secondo semestre |
Tipo di attestato
|
Attestato di profitto |
Crediti
|
6
|
Settore scientifico disciplinare
|
INF/01
|
Ore Aula
|
36
|
Ore Esercitazioni
|
24
|
Ore Studio
|
-
|
Attività formativa
|
Attività formative di base
|
Canale: 1
Docente
|
Liberati Franco
(programma)
Parte I: Introduzione
Nozioni Storiche e fondamenti di Teoria dell'Informazione; 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; 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: 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)
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
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); 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, microperazioni; Differenze CISC e RISC
Parte XIII: Multiprocessori e MultiCore
Multithreading; Architetture con multiprocessori a memoria condivisa (UMA, NUMA, COMA); Architetture con multiprocessori a memoria distribuita (NORMA, MPP, Cluster of workstation); Processori vettoriali
Parte XIV: Unità periferiche ed il problema della digital preservation
Disco Magnetico; Nastro Magnetico; Dischi ottici; SSD
Linguaggio assemblativo MIPS
Architettura MIPS; Programmazione con emulatore MARS; Set istruzioni; Modi di indirizzamento; Strutture dati statiche (vettore, stringa, matrice) e dinamiche (lista); Cicli; Salto a Subroutine; Subroutine ricorsive; Stack; Syscall (gestione file e formato BMP);
D. A. Patterson & J. L. Hennessy, 2014. Struttura e progetto dei calcolatori IV edizione. A cura di M. Borghese. Zanichelli. ISBN: 978-8808352026
Ulteriori testi, articoli scientifici consigliati e appunti delle lezioni: http://arch2.000webhostapp.com/
|
Date di inizio e termine delle attività didattiche
|
-- -
-- |
Date degli appelli
|
Date degli appelli d'esame
|
Modalità di erogazione
|
Tradizionale
A distanza
|
Modalità di frequenza
|
Non obbligatoria
|
Metodi di valutazione
|
Prova scritta
Prova orale
|
Canale: 2
Docente
|
PANNONE DANIELE
(programma)
# Programma di Massima
Parte I
Introduzione al calcolatore e alle istruzioni MIPS. Rapresentazione delle istruzioni nel calcolatore in assembly MIPS, utilizzo della memoria per salvare variabili e dati. Utilizzo degli operatori logici. Strutture di controllo, vettori e matrici.
Chiamate di sistema e funzioni. Gestione dello stack. Chiamata di funzioni annidate e ricorsione singola/multipla.
Parte II
Progettazione della CPU MIPS a singolo ciclo di clock. Progettazione delle istruzioni assembly MIPS per architettura a singolo ciclo di clock. Introduzione alla pipeline e agli hazard. Progettazione della CPU con
Pipeline e gestione dei data e control hazard.
Parte III
Introduzione alla memoria cache. Associatività e multilivello. Cache multilivello e memoria virtuale. Caches multiple e gestione delle eccezioni.
# Programma Dettagliato
[S&PdC] si riferisce al libro di testo “Struttura e progetto dei calcolatori”
3 ore
Introduzione al corso
[S&PdC, Capitolo 1]
- Presentazione corso, Intro docente. Promesse del corso. Obiettivi e Programma.
- Quattro chiacchiere sui calcolatori, la loro storia, e su un futuro prossimo.
- Concetto di Astrazione e Gerarchia.
- Linguaggio Alto livello, Compilatore, Assemblatore. Linguaggio Macchina.
- Alcune leggi non ovvie sulla costruzione dei calcolatori.
- Architettura di Von Neumann: programma memorizzato. Cenni alla IAS machine
2 ore
Le istruzioni della CPU MIPS - parte 1
[S&PdC, Sezioni 2.3, 2.5-2.6]
- Ripasso del sistema di codifica numerica posizionale
- Approfondimento sull’architettura IAS
- Introduzione alle istruzioni MIPS
3 ore
Le istruzioni della CPU MIPS - parte 2
[S&PdC, Sezioni 2.7, 2.10 ]
- Le istruzioni della architettura MIPS
- Il Processore MIPS e i co-processori
- I vari modi di indirizzare la memoria
- Organizzazione della Memoria
- Istruzioni Logiche
- Cenni alle Istruzioni per prendere decisioni
- Breve preview di MARS
2 ore
Le istruzioni della CPU MIPS - parte 3
[S&PdC, Sezioni 2.7, 2.9, 2.10]
- Istruzioni per prendere decisioni (implementare if-then-else, while, for loop)
- Le pseudo istruzioni (registro $zero,$at)
- Esercitazione sul Simulatore MARS
3 ore
Le istruzioni della CPU MIPS - parte 4
[S&PdC, Sezioni 2.9, 2.10, 2.14]
- Soluzione esercizio Due Somme con for loop e registro che punta agli indici pari
- Recap Istruzioni per prendere decisioni (do while, switch case statment)
- Direttiva globl
- Vettori (scorrimento con indice e con puntatori, i.e. accesso diretto in memoria)
- Matrici 2D e Matrici N-Dimensionali (caso matrice 3D)
2 ore
Le istruzioni della CPU MIPS - parte 5
[S&PdC, Sezioni 2.9, 2.10, 2.14]
- Recap Vettori, Matrici 2D e Matrici 3D
- Indicizzazione dei suddetti
- Pezzi di listato assembly che mostrano come navigare la diagonale di una matrice quadrata caricata nel data segment:
in maniera inefficiente (complessità quadratica)
in maniera efficiente (complessità lineare)
- System calls (come interagire con utente, stampare a video, leggere valori da tastiera)
- Programma ASM (assembly MIPS) che implementa lettura di valori da tastiera da utente e in seguito utente decide se fare somma o prodotto in base ad input 0/1; il risultato è mostrato a video
3 ore
Le istruzioni della CPU MIPS - parte 6
[S&PdC, Sezioni 2.9, 2.10, 2.14]
-Esercitazione su lettura di immagine raw binaria scala di grigi 3x3, 10x10 pixels; conteggio dei pixel bianchi di un’immagine
- Come ottenere indirizzamente 32 bit su MIPS se al massimo jump codifica su 26 bit? lui + ori
- Chiarimenti su salti assoluti con jump e salti relativi al PC (branch)
- Ripasso procedure con jal and jr $ra
- Funzioni nidificate e introduzione allo stack (LIFO)
- Stack Pointer $sp e cenni al Frame Pointer $fp
2 ore
Le istruzioni della CPU MIPS - parte 7
[S&PdC, Sezioni 2.9, 2.10, 2.14]
- Record di attivazione di una funzione (Frame Pointer $fp)
- Chiamate a funzioni annidate e uso dello stack
- Introduzione alla ricorsione in assembly
- Calcolo del fattoriale in assembly con approccio ricorsivo
3 ore
Le istruzioni della CPU MIPS - parte 8
[S&PdC, Sezioni 2.9, 2.10, 2.14]
- Breve recap sui salti incondizionati (j,jal e jr)
- Breve recap dello stack
- Analisi in dettaglio il calcolo ricorsivo in assembly del fattoriale
2 ore
Le istruzioni della CPU MIPS - parte 9
[S&PdC, Sezioni 2.9, 2.10, 2.14]
- Implementazione dettagliata doppia ricorsione per il calcolo del numero di Fibonacci.
3 ore
CPU a Singolo ciclo di clock
[S&PdC, Sezioni 4.1 - 4.2]
- Breve test sui casi non di base di Fibonacci
- Introduzione all’ architettura a singolo colpo di clock.
2 ore
Progettazione della CPU a singolo ciclo di clock
[S&PdC, Sezioni 4.1- 4.4]
- Progettare la CPU MIPS
- Ripasso campi istruzioni R, I e J
- Control Unit, Data Path e ALU
- Fasi di esecuzione di una istruzione
- Unità funzionali: adder, AUL, memoria istruzioni, memoria dati, PC, MUX, register file
- Progettazione della CPU a singolo ciclo di clock per istruzioni tipo R e tipo I (add,sub, lw, sw, beq).
3 ore
Progettazione della CPU a singolo ciclo di clock, CU, istruzione Jump
[S&PdC, Sezioni 4.1- 4.4]
- Proprietà dell’encoding ASCII
- Progettazione CPU a singlo ciclo di clock
- Attivazione della circuiteria per Istruzione di tipo R
- Per Istruzioni di tipo I, lettura/scrittura in memoria (lw,sw)
- Per salto condizionato tramite istruzione beq (branch if equal)
- Datapath CPU Completo
- Control Unit (CU) e Tabella di verità con logica di controllo a cascata (AluOp, e campo funct)
- Segnali di controllo della CU
- Esercizio per aggiungere l’istruzione J (Jump di salto assoluto)
2 ore
Progettazione della CPU a singolo ciclo di clock
[S&PdC, Sezioni 4.1- 4.4]
- Ripasso progetto CPU MIPS (Istruzione Set Less than e altro)
- Aggiunta Istruzione J
- Aggiunta Istruzione Jump and Link (JAL)
- Aggiunta Isutrzione Jump to Register (JR)
- Esercizio su Jump Relative to Register
3 ore
Progettazione della CPU a singolo ciclo di clock, Esercizi e Malfunzionamento CU
[S&PdC, Sezioni 4.1- 4.4]
- Soluzione esercizio su Jump Relative to Register (jrr)
- Svolto esercizio su Jumpt to Register and Link (jral)
- Malfunzionamento CU. Cosa accade e come si puo’ rilevare con un piccolo programma ASM.
- caso del segnale RegWrite ⇐ Branch (Branch sovrascrive RegWrite)
- MemWrite ⇐ not(RegWrite) , MemWrite prende il valore negato di RegWrite
- Esercizio per casa di vectorized jump (vj)
2 ore
Introduzione alla Pipeline
[S&PdC, Sezione 4.5]
- Introduzione al pipelining in architetture MIPS
- Definizione di hazard strutturali, sui dati e sul controllo
3 ore
Progettazione della CPU a singolo ciclo di clock: altri esercizi
[S&PdC, Sezioni 4.1 – 4.4]
- Identificazione di malfunzionamenti della Control Unit tramite script in assembly: il caso del segnale MemWrite dal complemento di RegWrite; il caso del segnale Jump dal complemento di MemRead
- Il comando vj
2 ore
Progettazione della CPU: pipeline e gestione dei data hazard
[S&PdC, Sezione 4.4 – 4.7]
Soluzione dell’esercizio per casa per l’identificazione di hazard in un listato di codice assembly MIPS senza bypassing
Architettura della CPU con registri inter-fase e gestione dei data hazard tramite forwarding e stalli
Gestione dei data hazard, forwarding, conteggio degli stalli, monitoring dei registri di pipeline
3 ore
Progettazione della CPU: pipeline e gestione dei control hazard
[S&PdC, Sezione 4.8]
Parte 1: control hazard e forwarding; architettura della CPU con pipeline, forwarding e gestione degli stalli
Parte 2: predizione dinamica dei salti
2 ore
Introduzione alla cache
[S&PdC, Sezioni 5.1, 5.2–5.4]
- Cache con direct mapping
- Cache: associatività e multilivello
[S&PdC, Sezioni 5.1, 5.2–5.4]
- Full e set-associative mapping
- Politiche di scrittura, effetto del setup della cache sulle prestazioni, cache multilivello
3 ore
Cache multilivello e memoria virtuale
[S&PdC, Sezioni 5.4, 5.7–5.8]
- Riepilogo con esercizio su cache multilivello
- Memoria virtuale
- Cache multilivello e memoria virtuale, gestione delle eccezioni, cache multiple e sistemi multi-processore
[S&PdC, Sezioni 4.9, 5.8–5.10]
- Memoria virtuale, gestione di translation lookaside buffer e page table
- Gestione di eccezioni ed interrupt
- Funzionamento e registri del Co-processore 0 del MIPS
2 ore
Controllore della cache
- Cache multiple per sistemi multi-processore
- Coerenza e consistenza
- Protocollo di snooping
3 ore
Esercizi su cache e memoria virtuale
[S&PdC] 5.3 – 5.10
D. A. Patterson e J. L. Hennessy. “Struttura e progetto dei calcolatori”, 4a edizione (basata sulla 5a edizione USA), Zanichelli, 2015. ISBN: 9788808352026.
|
Date di inizio e termine delle attività didattiche
|
-- -
-- |
Date degli appelli
|
Date degli appelli d'esame
|
Modalità di erogazione
|
Tradizionale
A distanza
|
Modalità di frequenza
|
Non obbligatoria
|
Docente
|
MASI IACOPO
(programma)
== Programma di Massima
Parte I
Introduzione al calcolatore e alle istruzioni MIPS. Rapresentazione delle istruzioni nel calcolatore in assembly MIPS, utilizzo della memoria per salvare variabili e dati. Utilizzo degli operatori logici. Strutture di controllo, vettori e matrici.
Chiamate di sistema e funzioni. Gestione dello stack. Chiamata di funzioni annidate e ricorsione singola/multipla.
Parte II
Progettazione della CPU MIPS a singolo ciclo di clock. Progettazione delle istruzioni assembly MIPS per architettura a singolo ciclo di clock. Introduzione alla pipeline e agli hazard. Progettazione della CPU con
Pipeline e gestione dei data e control hazard.
Parte III
Introduzione alla memoria cache. Associatività e multilivello. Cache multilivello e memoria virtuale. Caches multiple e gestione delle eccezioni.
== Programma nel dettaglio
📘 [S&PdC] si riferisce al libro di testo “Struttura e progetto dei calcolatori”
22/02/2021 - 3 ore
Introduzione al corso
📘 [S&PdC, Capitolo 1]
- Presentazione corso, Intro docente. Promesse del corso. Obiettivi e Programma.
- Quattro chiacchiere sui calcolatori, la loro storia, e su un futuro prossimo.
- Concetto di Astrazione e Gerarchia.
- Linguaggio Alto livello, Compilatore, Assemblatore. Linguaggio Macchina.
- Alcune leggi non ovvie sulla costruzione dei calcolatori.
- Architettura di Von Neumann: programma memorizzato. Cenni alla IAS machine
25/02/2021 - 2 ore
Le istruzioni della CPU MIPS - parte 1
📘 [S&PdC, Sezioni 2.3, 2.5-2.6]
- Ripasso del sistema di codifica numerica posizionale
- Approfondimento sull’architettura IAS
- Introduzione alle istruzioni MIPS
01/03/2021 - 3 ore
Le istruzioni della CPU MIPS - parte 2
📘 [S&PdC, Sezioni 2.7, 2.10 ]
- Le istruzioni della architettura MIPS
- Il Processore MIPS e i co-processori
- I vari modi di indirizzare la memoria
- Organizzazione della Memoria
- Istruzioni Logiche
- Cenni alle Istruzioni per prendere decisioni
- Breve preview di MARS
04/03/2021 - 2 ore
Le istruzioni della CPU MIPS - parte 3
📘 [S&PdC, Sezioni 2.7, 2.9, 2.10]
- Istruzioni per prendere decisioni (implementare if-then-else, while, for loop)
- Le pseudo istruzioni (registro $zero,$at)
- Esercitazione sul Simulatore MARS (necessita di Java Virtual Machine)
08/03/2021 - 3 ore
Le istruzioni della CPU MIPS - parte 4
📘 [S&PdC, Sezioni 2.9, 2.10, 2.14]
- Soluzione esercizio Due Somme con for loop e registro che punta agli indici pari
- Recap Istruzioni per prendere decisioni (do while, switch case statment)
- Direttiva globl
- Vettori (scorrimento con indice e con puntatori, i.e. accesso diretto in memoria)
- Matrici 2D e Matrici N-Dimensionali (caso matrice 3D)
11/03/2021 - 2 ore
Le istruzioni della CPU MIPS - parte 5
📘 [S&PdC, Sezioni 2.9, 2.10, 2.14]
- Recap Vettori, Matrici 2D e Matrici 3D
- Indicizzazione dei suddetti
- Pezzi di listato assembly che mostrano come navigare la diagonale di una matrice quadrata caricata nel data segment:
in maniera inefficiente (complessità quadratica)
in maniera efficiente (complessità lineare)
- System calls (come interagire con utente, stampare a video, leggere valori da tastiera)
- Programma ASM (assembly MIPS) che implementa lettura di valori da tastiera da utente e in seguito utente decide se fare somma o prodotto in base ad input 0/1; il risultato è mostrato a video
- La prossima lezione vediamo come leggere un’immagine
15/03/2021 - 3 ore (da remoto)
Le istruzioni della CPU MIPS - parte 6
📘 [S&PdC, Sezioni 2.9, 2.10, 2.14]
-Esercitazione su lettura di immagine raw binaria scala di grigi 3x3, 10x10 pixels; conteggio dei pixel bianchi di un’immagine
- Come ottenere indirizzamente 32 bit su MIPS se al massimo jump codifica su 26 bit? lui + ori
- Chiarimenti su salti assoluti con jump e salti relativi al PC (branch)
- Ripasso procedure con jal and jr $ra
- Funzioni nidificate e introduzione allo stack (LIFO)
- Stack Pointer $sp e cenni al Frame Pointer $fp
18/03/2021 - 2 ore (da remoto)
Le istruzioni della CPU MIPS - parte 7
📘 [S&PdC, Sezioni 2.9, 2.10, 2.14]
- Record di attivazione di una funzione (Frame Pointer $fp)
- Chiamate a funzioni annidate e uso dello stack
- Introduzione alla ricorsione in assembly
- Calcolo del fattoriale in assembly con approccio ricorsivo
22/03/2021 - 3 ore (da remoto, Prof. Pannone)
Le istruzioni della CPU MIPS - parte 8
📘 [S&PdC, Sezioni 2.9, 2.10, 2.14]
- Breve recap sui salti incondizionati (j,jal e jr)
- Breve recap dello stack
- Visto in dettaglio il calcolo ricorsivo in assembly del fattoriale
25/03/2021 - 2 ore (da remoto, Prof. Pannone)
Le istruzioni della CPU MIPS - parte 9
📘 [S&PdC, Sezioni 2.9, 2.10, 2.14]
- Implementazione dettagliata doppia ricorsione per il calcolo del numero di Fibonacci.
29/03/2021 - 3 ore (da remoto, Prof. Pannone)
CPU a Singolo ciclo di clock
📘 [S&PdC, Sezioni 4.1 - 4.2]
- Breve test sui casi non di base di Fibonacci
- Introduzione all’ architettura a singolo colpo di clock.
01/04/2021 - 2 ore
Sospensione della didattica per vacanze pasquali
05/04/2021 - 3 ore
Sospensione della didattica per vacanze pasquali
08/04/2021 - 2 ore (da remoto)
Progettazione della CPU a singolo ciclo di clock
📘 [S&PdC, Sezioni 4.1- 4.4]
- Progettare la CPU MIPS
- Ripasso campi istruzioni R, I e J
- Control Unit, Data Path e ALU
- Fasi di esecuzione di una istruzione
- Unità funzionali: adder, AUL, memoria istruzioni, memoria dati, PC, MUX, register file
- Progettazione della CPU a singolo ciclo di clock per istruzioni tipo R e tipo I (add,sub, lw, sw, beq).
12/04/2021 - 3 ore
Progettazione della CPU a singolo ciclo di clock, CU, istruzione Jump
📘 [S&PdC, Sezioni 4.1- 4.4]
- Soluzione esercizio su Stringa Palindroma con Case Invertito
- Proprietà dell’encoding ASCII
- Progettazione CPU a singlo ciclo di clock
- Attivazione della circuiteria per Istruzione di tipo R
- Per Istruzioni di tipo I, lettura/scrittura in memoria (lw,sw)
- Per salto condizionato tramite istruzione beq (branch if equal)
- Datapath CPU Completo
- Control Unit (CU) e Tabella di verità con logica di controllo a cascata (AluOp, e campo funct)
- Segnali di controllo della CU
- Esercizio per aggiungere l’istruzione J (Jump di salto assoluto)
15/04/2021 - 2 ore
Progettazione della CPU a singolo ciclo di clock
📘 [S&PdC, Sezioni 4.1- 4.4]
- Ripasso progetto CPU MIPS (Istruzione Set Less than e altro)
- Aggiunta Istruzione J
- Aggiunta Istruzione Jump and Link (JAL)
- Aggiunta Isutrzione Jump to Register (JR)
- Esercizio su Jump Relative to Register
19/04/2021 - 3 ore
Progettazione della CPU a singolo ciclo di clock, Esercizi e Malfunzionamento CU
📘 [S&PdC, Sezioni 4.1- 4.4]
- Soluzione esercizio su Jump Relative to Register (jrr)
- Svolto esercizio su Jumpt to Register and Link (jral)
- Malfunzionamento CU. Cosa accade e come si puo’ rilevare con un piccolo programma ASM.
- caso del segnale RegWrite ⇐ Branch (Branch sovrascrive RegWrite)
- MemWrite ⇐ not(RegWrite) , MemWrite prende il valore negato di RegWrite
- Esercizio per casa di vectorized jump (vj)
22/04/2021 - 2 ore
Introduzione alla Pipeline
📘 [S&PdC, Sezione 4.5]
- Introduzione al pipelining in architetture MIPS
- Definizione di hazard strutturali, sui dati e sul controllo
Progettazione della CPU a singolo ciclo di clock: altri esercizi
📘 [S&PdC, Sezioni 4.1 – 4.4]
- Identificazione di malfunzionamenti della Control Unit tramite script in assembly: il caso del segnale MemWrite dal complemento di RegWrite; il caso del segnale Jump dal complemento di MemRead
- Il comando vj
Progettazione della CPU: pipeline e gestione dei data hazard
📘 [S&PdC, Sezione 4.4 – 4.7]
Soluzione dell’esercizio per casa per l’identificazione di hazard in un listato di codice assembly MIPS senza bypassing
Architettura della CPU con registri inter-fase e gestione dei data hazard tramite forwarding e stalli
Gestione dei data hazard, forwarding, conteggio degli stalli, monitoring dei registri di pipeline
Progettazione della CPU: pipeline e gestione dei control hazard
📘 [S&PdC, Sezione 4.8]
Parte 1: control hazard e forwarding; architettura della CPU con pipeline, forwarding e gestione degli stalli
Parte 2: predizione dinamica dei salti
Introduzione alla cache
📘 [S&PdC, Sezioni 5.1, 5.2–5.4]
- Cache con direct mapping
- Cache: associatività e multilivello
📘 [S&PdC, Sezioni 5.1, 5.2–5.4]
- Full e set-associative mapping
- Politiche di scrittura, effetto del setup della cache sulle prestazioni, cache multilivello
Cache multilivello e memoria virtuale
📘 [S&PdC, Sezioni 5.4, 5.7–5.8]
- Riepilogo con esercizio su cache multilivello
- Memoria virtuale
- Cache multilivello e memoria virtuale, gestione delle eccezioni, cache multiple e sistemi multi-processore
📘 [S&PdC, Sezioni 4.9, 5.8–5.10]
- Memoria virtuale, gestione di translation lookaside buffer e page table
- Gestione di eccezioni ed interrupt
- Funzionamento e registri del Co-processore 0 del MIPS
Controllore della cache
- Cache multiple per sistemi multi-processore
- Coerenza e consistenza
- Protocollo di snooping
Esercizi su cache e memoria virtuale
📘 [S&PdC] 5.3 – 5.10
[ITA] D. A. Patterson e J. L. Hennessy. “Struttura e progetto dei calcolatori”, 4a edizione (basata sulla 5a edizione USA), Zanichelli, 2015. ISBN: 9788808352026.
[EN] D. A. Patterson and J. L. Hennessy. “Computer Organization and Design, The Hardware/Software Interface”, 5th edition, Morgan Kaufmann, 10 Oct 2013. ISBN: 9780124077263.
|
Date di inizio e termine delle attività didattiche
|
-- -
-- |
Modalità di erogazione
|
Tradizionale
A distanza
|
Modalità di frequenza
|
Non obbligatoria
|
Metodi di valutazione
|
Prova scritta
|
|
|