Esci dai Frame

  ARCHITETTURE AVANZATE DEI CALCOLATORI Docente: Marco Lusini Email: marco.lusini@uniroma2.it
    Programma del Corso
 
TESTO CONSIGLIATO
Computer Organization and Design - The Hardware/Software Interface
David Patterson - John Hennessy
Morgan Kaufmann Press

1. Richiami sulla architettura di una CPU RISC
    a. Introduzione
    b. Presentazione elementi e istruzioni base di una CPU RISC
2. Migliorare le prestazioni con le pipeline
    a. Concetto di pipeline e problematiche legate
    b. Implementazione di una pipeline
    c. Conflitti sui dati
        i. Scheduling statico delle istruzioni
    ii. Condizioni di conflitto
    iii. Propagazione in avanti
    d. Stalli
    e. Conflitti di controllo
        i. Salto non eseguito
    ii. Predizione dinamica dei salti
    f. Eccezioni e pipeline
    g. Pipeline superscalari e dinamiche
        i. Esempio di CPU superscalare
    ii. Scheduling statico e loop unrolling
    iii. Scheduling dinamico delle istruzioni
3. Gerarchie di memoria
    a. Concetti fondamentali
        i. Localitą temporale e spaziale
    b. Introduzione alle cache
        i. Cache direct mapped
    ii. Accesso alla cache
    iii. Gestire i miss
    iv. Sfruttare la localitą spaziale
    c. Sistemi di memoria per il supporto alle cache
        i. Organizzazione di memoria interleaved
    d. Migliorare le prestazioni delle cache
        i. Ridurre i miss con un posizionamento migliore dei blocchi
    ii. Cache fully associative
    iii. Cache set-associative a n vie
    iv. Dimensione dei tag al variare dell'associativitą
        v. Strategie di rimpiazzamento dei blocchi
    vi. Cache multilivello
    e. Memoria virtuale
        i. Concetti fondamentali
    ii. Tabella delle pagine e registro della tabella delle pagine
    iii. Fault di pagina
    iv. Strategie per gestire la scrittura
        v. Translation Lookaside Buffer
    vi. Integrare cache e memoria virtuale
    vii. Implementare la protezione della memoria con la memoria virtuale
4. Interfacce tra processori e periferiche
    a. Introduzione
    b. Bus
        i. Tipi di bus
    ii. Bus sincroni e asincroni
    iii. Accesso al bus
    iv. Arbitraggio del bus
        v. Cenni ai principali bus standard
    c. Dispositivi di memorizzazione
        i. Dischi rigidi
    ii. Introduzione al RAID
    iii. Livelli RAID: RAID0, RAID1, RAID5 e RAID10
    iv. Cenni agli altri livelli RAID
    d. Bus di interconnessione ad alte prestazioni
        i. Richiami al bus SCSI
    ii. Introduzione al Fibre Channel
    iii. FC: connessioni punto punto, Arbitrated Loop e Fabric
    iv. FC: hub e switch
5. Multiprocessori
    a. Classificazione classica
        i. SISD
    ii. SIMD
    iii. MISD
    iv. MIMD
    b. Classificazione ''moderna''
        i. UMA (SMP)
    ii. NUMA
    iii. Cluster (HPC, HA, SSI)
    c. Multiprocessori a bus singolo
        i. Coerenza della cache
    ii. Protocollo snoop
    iii. Sincronizzazione con spin-lock
    d. Multiprocessori a bus multiplo
        i. Spazio di indirizzamento e organizzazione della memoria
    ii. Topologie di interconnessione
    e. Cluster HA
        i. Scopo e tipologie di cluster HA
    ii. Integritą dei dati: mirroring, shared nothing, shared everything
    iii. Heartbeat
    iv. Sindrome split-brain (Quorum, SCSI reservation, STONITH)