Calcolatori Elettronici

Anno Accademico 2021/2022

Informazioni generali

Il corso verrà tenuto dai Proff. Francesco Lo Presti e Alessandro Pellegrini.

Il corso si terrà in presenza. Verrà utilizzata la piattaforma Teams per fornire supporto agli studenti con certificata impossibilità a partecipare alle lezioni mediante questo link. Il canale Teams verrà anche utilizzato per la consegna degli elaborati della prova pratica.

La pagina principale del corso è disponibile qui.

Il materiale didattico verrà pubblicato sul canale Teams del corso.

Regole d’esame

L’esame si compone di:

  • Prova scritta;
  • Prova di laboratorio.

Tali prove si terranno nelle sessioni di esami previste. Non ci sono vincoli sulla partecipazione alle prove (eccetto la prenotazione obbligatoria per le prove scritte). Tuttavia, la partecipazione ad una prova scritta (anche in caso di ritiro dalla prova) comporta la rinuncia automatica ad un voto sufficiente conseguito in una prova scritta precedente. L’esame orale è solo su eventuale richiesta dei docenti. È necessario ottenere la sufficienza ad entrambe le prove per superare l’esame.

Prova scritta

La prova scritta verte sugli argomenti dell’intero corso e prevede domande a risposta aperta ed esercizi.

È prevista una prova in itinere durante il mese di novembre sulla prima parte del programma. Il superamento con esito positivo della prova in itinere esonera lo studente - per la sola sessione invernale - dal dover svolgere la parte di prova scritta che verte sulla prima parte del programma.

Prova di laboratorio

La prova di laboratorio mira a verificare le conoscenze e la capacità di realizzazione di programmi in linguaggio C. In linea generale, la prova si terrà nello stesso giorno della prova scritta.

Libro di testo consigliato

oppure

Per la parte di programmazione in C:

  • Brian W. Kernighan, Dennis M. Ritchie
    The C Programming Language (2nd edition)
    Prentice Hall
    ISBN: 978-0131103627
  • Zed A. Shaw
    Learn C the Hard Way
    Addison-Wesley Professional
    ISBN: 978-0321884923

Programma del corso (preliminare)

  • Introduzione. Organizzazione ed architettura di un calcolatore. Struttura e funzionalità. Livelli di astrazione. Tecnologia costruttiva. Breve rassegna storica.
  • Rappresentazione dell’informazione. Rappresentazione degli interi. Aritmetica degli interi. Rappresentazione in virgola mobile (formato IEEE 754). aritmetica in virgola mobile. Codifica dei caratteri.
  • Reti logiche.
  • Programmazione in C.
  • Il set delle istruzioni. Le istruzioni. Le operazioni svolte dall’hardware. Gli operandi dell’hardware. Rappresentazione delle istruzioni all’interno del calcolatore. Modi di indirizzamento. Istruzioni aritmetiche. Istruzioni di load/store. Istruzioni di salto. Istruzioni logiche. Pseudo-istruzioni. Direttive. Chiamate di sistema. Dalla compilazione all’esecuzione di un programma: assemblatore, linker e loader. Confronto tra architetture RISC e CISC.
  • Unità logico-aritmetica. La costruzione di una ALU. Memoria. I sistemi di memorizzazione e le tecnologie di memorizzazione. Memoria principale. Lettura e scrittura di una RAM. Gli elementi di memoria.
  • Il processore: unità di elaborazione dati e unità di controllo. Introduzione. Progetto dell’unità di elaborazione dati: unità a ciclo singolo. L’unità di controllo per l’ALU. Unità di controllo.
  • Pipelining. Introduzione. L’unità di elaborazione pipelined. Il controllo. Introduzione alle criticità.
  • La gerarchia di memorie. Introduzione. Memorie cache.

Per la parte di programmazione in C:

  • Introduzione al linguaggio C
  • Strutture di controllo e tipi di dato
  • Memoria dinamica
  • Input e Output
  • Il preprocessore