Home Ca' 
FoscariHome Dipartimento 
Informatica Architettura degli Elaboratori 
> News
> Introduzione al corso
> Docenti e orari
> Modalità di esame
> Materiale didattico
> Lezioni
> Esami
> Tutor

Introduzione al corso

Prerequisiti

Conoscenze di base di matematica, normalmente acquisite durante gli studi superiori.
Essendo un corso che si protrae per entrambi i semestri, si richiede un'infarinatura di programmazione (C) per gli argomenti trattati durante il secondo semestre.

Obiettivi formativi

Acquisire conoscenze su rappresentazione digitale dell'informazione, sul livello della logica digitale nei calcolatori elettronici, sulla realizzazione tramite circuiti delle operazioni aritmetiche principali e sul livello linguaggio macchina di un calcolatore convenzionale. Acquisire inoltre i fondamenti teorici e le tecniche per la progettazione dell'architettura convenzionale di un elaboratore nelle sue componenti principali, ovvero Processore - Input/Output - Memoria.
Approfondire la conoscenza sul livello macchina di un processore convenzionale. Acquisire i rudimenti della programmazione assembler, e le sue relazioni con un linguaggio ad alto livello ( in particolare, le strutture di controllo e i tipi di dati) nel linguaggio assembler di un semplice processore RISC.
Il corso enfatizza le tecniche per la valutazione delle prestazioni di un calcolatore, e l'interfaccia tra l'hardware e il software di un elaboratore.

Programma

Primo Semestre
  • Organizzazione di base di un calcolatore (CPU, memoria, I/O) e livelli di astrazione.
  • Rappresentazione informazione, e arimetica dei calcolatori.
  • Algebra booleana (Tabelle di verità, Forme canoniche di espr. booleane), Circuiti combinatori (multiplexer, decoder, PLA), ALU.
  • Memoria: Latch, Clock, Flip-flop, Registri, RAM.
  • Circuiti sequenziali sincroni.
  • Principali istruzioni MIPS (aritmetico-logico, di controllo)
  • Progetto della CPU:
    • Progettazione ALU e Register File
    • Parte controllo e parte operativa.
    • Organizzazione a singolo e multiplo ciclo.
    • Progetto del controllo.
  • Valutazione delle prestazioni: Tempo di CPU. Throughput. CPI. Misure di prestazioni e benchmarks.
Secondo Semestre
  • Gerarchie di memoria
  • Principio di località
  • Memoria cache (Organizzazioni della cache - Mapping degli indirizzi).
  • Memoria virtuale (Indirizzo virtuale e fisico - Memoria paginata e meccanismi di traduzione).
  • Input/Output:
    • Esempi di dispositivi.
    • Organizzazione sottosistema di I/O (bus, controllori, dispositivi) e casi di studi.
    • Misure di prestazioni. Cooperazione tra controllori dei dispositivi, CPU e memoria. Tipi di bus e arbitraggio.
    • Programmazione dell'I/O. Interruzioni, polling, DMA. Driver dei dispositivi.
  • Progetto della CPU avanzato:
    • Parallelismo a livello di istruzioni:
    • Organizzazione della CPU con pipeline.
    • Dipendenze sui dati e problemi dovuti a salti e eccezioni.
  • Esecuzione dei programmi: compilatore, assemblatore, linker, loader
  • Il processo di compilazione:
    • Traduzione assembler delle principali strutture di controllo di un linguaggio ad alto livello
    • Funzioni e allocazione della memoria (text, data e stack).
    • Strutture dati (array unidimensionale)
  • Uso del simulatore SPIM.

Testi di riferimento

  • Note dei docenti
  • David A. Patterson, John L. Hennessy. Computer Organization and Design: The Hardware/Software Interface - Fifth edition. Morgan Kaufmann Publisher, 2014.
  • David A. Patterson, John L. Hennessy. Struttura e Progetto dei Calcolatori: l'interfaccia hardware-software - Quarta Edizione. Zanichelli, 2015.

Informazioni e spiegazioni

Se non ti fosse possibile chiedere informazioni o spiegazioni durante le lezioni o durante l'orario di ricevimento, scrivi a architettura@dsi.unive.it.