Programma dettagliato del corso di Architetture degli Elaboratori 2 - Prof. Annalisa Massini
Richiami su moduli combinatori (linee di ingresso e di uscita, tabella di veritą, funzione). Decodificatore, codificatore, transcodificatore. Multiplexer, demultiplexer, mux-demux per la trasmissione delle informazioni. Half-adder, full-adder, sommatore a propagazione di riporto, somma algebrica di numeri rappresentati in complemento a 2. Comparatore logico e comparatore aritmetico.
Esempio di unitą aritmetico-logica. Trabocco o overflow, riporto.
Richiami su moduli sequenziali. Flip-flop. Contatori sincroni e asincroni e loro diagramma temporale, contatore preselezionabile, uso di contatori. Registri di memorizzazione.
Registri a scorrimento, uso di registri a scorrimento per la trasmissione dell'informazione.
Dai registri di memorizzazione alla memoria. Organizzazione con schema tramite bus. Organizzazione a pił dimensioni (aumento del numero di celle). Informazione su pił registri (aumento della lunghezza
del dato). Considerazioni sull'interconnessione tramite bus e tramite mux-demux.
Architettura di Von Neumann. La CPU (Central Processing Unit): descrizione, funzione e moduli (Unitą Aritmetico-Logica o ALU, Unitą di Controllo o CU, registri). Descrizione dell'unitą di controllo (Contatore di Programma PC, decodificatore di istruzione codificatore di comandi). Funzionamento dell'unitą di controllo.
Fasi di esecuzione di un'istruzione: caricamento, decodifica ed esecuzione.
Classi di istruzioni. Osservazioni sull'esecuzione di un'istruzione e registri coinvolti: i registri non essenziali MAR, MBR, IR; uno schema pił dettagliato del ciclo di esecuzione di un'istruzione.
Registri ad uso generale e registri ad uso speciale: accumulatori, registri indice e puntatori, registri di condizione e registri di stato.
Realizzazione dell'unitą di controllo.
Unitą di controllo a logica cablata. Unitą di controllo a logica microprogrammata: schema di funzionamento, organizzazione della memoria ROM di controllo. Microprogrammazione orizzontale e microprogrammazione verticale. Moduli interni di un'unitą di controllo microprogrammata e schema dettagliato di funzionamento. Vantaggi e svantaggi della microprogrammazione.
Caratteristiche delle istruzioni macchina. Modalitą di indirizzamento: immediato, assoluto, indiretto, mediante registro, indiretto mediante registro,mediante traslazione o spiazzamento.
Architetture RISC e CISC: considerazioni e caratteristiche delle due classi di architetture.
Esempio di formato di istruzione di architettura RISC:
PowerPC (istruzione aritmetica, istruzione aritmetica con operando immediato e istruzione caricamento memorizzazione dei registri). Esempio di formato di istruzione di architettura CISC: x86.
Una classificazione delle architetture: modello a stack, modello memoria-memoria, modello registri-memoria, modello registro-registro. Ordinamento dei dati in memoria: Little-Endian e Big-Endian. Allineamento dei dati in memoria.
Linguaggio macchina e linguaggio assembler. Assemblatori, collegatori e compilatori. PIC (position Independent Code). Vantaggi e svantaggi del linguaggio assemblatore. Differenze tra linguaggio assembler e linguaggi ad alto livello. Formato di uno statement in linguaggio assembler e significato dei campi. Parole riservate. Direttive.
Canalizzazione o pipeline delle istruzioni. Stadio di pipeline. Frequenza delle istruzioni. Vantaggi e situazioni critiche della pipeline. Considerazioni di progettazione della pipeline.
Cenni sui protocolli di comunicazione: protocolli sincroni, protocolli asincroni e protocolli asincroni basati su interruzioni. Interruzioni: definizione e classificazione in interruzioni interne, interruzioni esterne e trappole. Caratteristiche e differenze tra le diverse classi di interruzione. Interruzioni e ciclo di istruzione: in un'architettura sequenziale. Salvataggio di registri e ritorno dall'interruzione. Interruzioni multiple: mascheramento delle interruzioni e gestione delle interruzione in base alle prioritą.
Moduli di I/O: interfaccia con processore e memoria, interfaccia con dispositivi periferici. Motivazioni e considerazioni sull'uso di moduli di I/O. Schema generale di un dispositivo esterno: componenti e linee in ingresso e in uscita. Funzioni e requisiti di un modulo di I/O: controllo e temporizzazione, comunicazione con il processore, comunicazione con i dispositivi periferici, bufferizzazione dei dati, rilevamento degli errori. Struttura generale di un modulo di I/O: componenti e linee in ingresso e in uscita.
Tecniche per operazioni di I/O: definizione e considerazioni per I/O programmato, I/O con interruzioni, Accesso Diretto alla Memoria (DMA).
I/O programmato: azioni del processore e azioni del modulo di I/O; vantaggi e svantaggi nell'uso dell'I/O programmato. I/O con interruzioni: esempio di lettura dal punto di vista del modulo di I/O e dal punto di vista del processore. Eventi hw ed eventi sw nella gestione delle interruzioni.
Tecniche per il riconoscimento del dispositivo che lancia l'interruzione: - linee di interruzione multiple, - interrogazione sw (metodo a polling), interrogazione hw vettorizzata (daisy chain), arbitraggio del bus. Accesso diretto alla memoria (DMA): componenti di un modulo DMA; organizzazione di una operazione di lettura/scrittura. Considerazioni e conclusioni; evoluzione delle funzionalitą di I/O. Interfaccia tra periferica e modulo di I/O: seriale e parallela; punto-punto e a punti multipli.
La memoria. Caratteristiche dei sistemi di memoria: locazione, capacitą, unitą di trasferimento, metodo di accesso (sequenziale, diretto, casuale, associativo), prestazioni (tempo di accesso, tempo di ciclo di memoria, velocitą di trasferimento), tipo fisico (a semiconduttore, superficie magnetica, di tipo ottico), caratteristiche fisiche (volatile, non volatile), organizzazione.
La gerarchia di memoria. Motivazioni all'introduzione della gerarchia di memoria.
Memoria principale. Memoria a semiconduttore. RAM statica e RAM dinamica e loro differenze. Read Only Memory: ROM, PROM, EPROM, EEPROM e Memoria flash. Organizzazione dellla memoria.
Memoria cache. Interfaccia memoria cache - memoria principale. Elementi di progettazione della cache. Dimensione della cache. Funzione di corrispondenza. Corrispondenza diretta: caratteristiche, vantaggi e svantaggi. Corrispondenza associativa: caratteristiche, vantaggi e svantaggi.
Corrispondenza set-associativa: caratteristiche, vantaggi e svantaggi. Algoritmo di rimpiazzamento: LRU, FIFO, LFU, Random. Caratteristiche e confronto tra i diversi algoritmi. Politica di scrittura: tecnica "write through" e tecnica "write back". Dimensione di una linea/blocco. Numero di cache. Organizzazione a due livelli. Cache unificate e divise.
Memoria virtuale. Indirizzi virtuali e logici. Unitą di gestione della memoria (MMU). Schema di organizzazione e connessione per ottenere la memoria virtuale.
Traduzione dell'indirizzo, tabella delle pagine, registro base delle pagine. Errore di pagina, pagine da rimuovere, pagine modificate.
Memoria esterna. Disco magnetico. Testina di lettura/scrittura, meccanismo di scrittura, meccanismo di lettura. Organizzazione dei dati su disco. Dischi Winchester. Floppy disk. Dischi RAID. Parametri di valutazione delle prestazioni. CD-ROM. Nastri magnetici.
Cenni su terminali video (tastiera/monitor).
--
AnnalisaMassini - 13 Jun 2002