elenco    
        corso    

Processori ad Alte Prestazioni

Codice: AA289Crediti: 3Semestre: 2Sigla: PAP 
 
Settore disciplinare: INF/01 - Informatica

Docente

Fabrizio Baiardi   baiardi@di.unipi.it  Home Page di Fabrizio Baiardi

Descrizione

Scopo del corso è quello di approfondire la conoscenza di alcune classi di architetture parallele introdotte nei corsi di architetture 1 e 2.
In particolare vengono analizzate approfonditamente le principali caratteristiche di una architettura superscalare e vengono descritte le principali tecniche per la progettazione di compilatori ottimizzanti per questo tipo di architetture.
Vengono inoltre definiti i principi generali per la progettazione di sistemi affidabili.

English Description

This course describes superscalar architectures: in particular out of order issue and speculative execution of instructions and register renaming are introduced. Optimizing compilers for this class of architectures are also described. The second part of the course defines the requisites for the definition of robust systems.

Programma

  1. Architetture uniprocessor pipeline
    • Richiami su architetture pipeline:
      Modello generale (SFK 5)
      Tecniche di gestione dei salti: delayed branch, predizione statica del salto (SFK 8.3,8.4, BTV 11)
    • Progettazione di processori pipeline: alternative di progetto (SFK5)
  2. Modello dataflow
    • caratteristiche generali del modello (BTV 12.1.1)
    • rappresentazione di un programma data-flow, cenni ad architetture data-flow (BTV 12.1.2)
    • modello tagged token (BTV 12.2.3)
  3. Architetture superscalari (SFK 7)
    • Esecuzione in odine vs. esecuzione fuori ordine
    • Esecuzione fuori ordine: uso di shelving buffers, esecuzione data flow-like
    • Sincronizzazione dinamica delle istruzioni: scoreboarding
    • Eliminazione di riuso di memoria: tecniche di renaming dei registri
    • Ordinamento di load/stores: alternative possibili
    • Esecuzione speculativa: uso di reorder buffers
    • Tecniche di predizione dinamica dei salti (SFK 8)
      classificazione dei salti
      meccanismi di predizione del salto e dell'indirizzo target implementazione: branch target buffer, branch history table, uso di informazione aggiuntive nel cache
  4. Parallelismo a livello di istruzione: tecniche di compilazione
    • Parallelismo a livello di istruzioni: tecniche di scheduling (SFK 9)
      list scheduling : algoritmi basati su euristiche, esempi
      trace scheduling : trace selection, trace compaction, bookeeping, cenni ad architetture VLIW
      scheduling di loop: loop unrolling, cenni a software pipelining
  5. Principi generali per la progettazione di sistemi affidabili
    • Modelli di protezione e principi di Denning [BTV 3.5, 3.6]
    • Meccanismi per la definizione di canali dinamici nel linguaggio ECSP [BV]
    • Schemi di risorsa protetta in programmi concorrenti [BV]
    • Mediazione completa con liste di capabilities; passaggio dinamico di capabilities [V98]
    • Procedura protetta [V98]
  6. Architetture multiprocessor a memoria comune e distribuita
    • Gestione dei cache in architetture multiprocessors: il problema della consistenza dei cache
    • snoopy cache: protocolli write update e write invalidate, relazioni tra protocolli e meccanismi di sincronizzazione
    • protocolli basati su directories
     

Bibliografia

Modalità di esame

Scritto e orale

home


email