Tu sei qui

Architettura degli elaboratori

Architettura degli Elaboratori
Corso di Laurea Triennale in Informatica

SCV0016
Docente: Luigi Lavazza


CFU SSD LEZIONI ESERCITAZIONI ANNO LINGUA
9 ING-INF/05 56 24 I Italiano


Obiettivi dell’insegnamento e risultati di apprendimento attesi
Il corso si propone di fornire le conoscenze e le abilità minime necessarie al progetto e alla programmazione degli elementi costruttivi degli elaboratori. Gli argomenti in programma sono selezionati sulla base di una consolidata tradizione nell’insegnamento dell’argomento, basata sull avisione della macchina come stratificazione di macchine reali o virtuali. Più in dettaglio, il corso mira a fornire:

  • I fondamenti dei circuiti elettronici (visti a livello logico) e le capacità fondamentali di progettazione;
  • la conoscenza di base dell'organizzazione dell'hardware degli elaboratori;
  • la capacità di programmazione in linguaggio assembly;
  • comprendere le funzioni svolte dall'hardware e utilizzate dai sistemi operativi e dai programmi applicativi;
  • la conoscenza di un processore reale (macchina MIPS).

Il corso vuole anche abituare lo studente al linguaggio tecnico del settore, con particolare riferimento alla terminologia in lingua inglese.

I risultati di apprendimento attesi sono i seguenti.
Conoscenza e capacità di comprensione

  • Conoscenza dei principi costruttivi e delle caratteristiche delle memorie elettroniche comunemente usate nei calcolatori.
  • Conoscenza dei principi costruttivi e delle caratteristiche funzionali delle memorie cache.
  • Conoscenza dei principi costruttivi delle unità di elborazione (datapath) e delle unità di controllo. Conoscenza e capacità di progettare unità di controllo mediante microprogrammazione.
  • Conoscenza dei principi costruttivi e delle modalità di funzionamneto dei bus di connessione tra elementi dell’elaboratore.
  • Conoscenza dell’organizzazione e delle modalità d’uso e di programmazione dei dispositivi di input/output.

Conoscenza e capacità di comprensione applicate

  • Capacità di analizzare, progettare, ottimizzare circuiti combinatori, sia mediante tecniche basate sulla conoscenza dell’algebra Booleana sia utilizzando componenti di libreria comunemente disponibili sul mercato. Capacità di valutare le prestazioni dei circuiti.
  • Capacità di analizzare, progettare, ottimizzare circuiti sequenziali,eventualmente utilizzando componenti di libreria comunemente disponibili sul mercato.
  • Capacità di valutare le prestazioni delle memorie cache.
  • Conoscenza del linguaggio di programmazione assembly della macchina usata come riferimento durante il corso, e capacità di usare tale linguaggio per scrivere programmi anche complessi (ad es. con uso della ricorsione).

Autonomia di giudizio
Capacità di valutare le esigenze contrastanti che si presentano nella progettazione di circuiti (costo di progettazione, costo dei componenti, velocità di elaborazione) e prendere decisioni in merito.
Capacità di apprendere
Grazie alla capacità –sviluppata durante tutto il corso– di rapportare puntualmente tecniche, metodi e strumenti alle caratteristiche dell’organizzazione e della progettazione degli elaboratori e delle loro componenti, lo studente sviluppa la capacità di apprendere nuove tecniche, metodi e strumenti, e anche ad affinare ed adattare autonomamente quanto appreso nel corso.
Abilità comunicative

  • Conoscere e saper usare i formalismi normalmente usati per descrivere circuiti e parti dei calcolatori.
  • Conoscere la terminologia inglese comunemente usata nel campo.

Prerequisiti
Non è richiesta alcuna conoscenza particolare di tipo tecnico scientifico.
È invece opportuna una buona comprensione della lingua inglese scritta, che permetta l’accesso alla grande quantità di materiale didattico, pubblicazioni, manuali, programmi, ecc. disponibili sull’argomento.

Contenuti e programma del corso

  • L’architettura strutturata (a ‘layer’) dei calcolatori. Principi ed elementi costitutivi di un tipico calcolatore elettronico.
    lezioni ore 3; esercitazioni ore 0
  • Rappresentazione binaria dei numeri, dei caratteri e di altre informazioni
    lezioni ore 7; esercitazioni ore 1
  • Operatori e proprietà dell’algebra di Boole. Corrispondenza tra operatori Booleani e porte logiche.
    lezioni ore 4; esercitazioni ore 1
  • Circuiti combinatori - Sintesi di reti combinatorie, forme normali, mappe di Karnaugh.
    lezioni ore 4; esercitazioni ore 3
  • Librerie di circuiti combinatori, ALU, sintesi di circuiti combinatori mediante elementi di libreria.
    lezioni ore 3; esercitazioni ore 2
  • Bistabili, elementi sequenziali di libreria (vari tipi di registri). Progettazione di circuiti sequenziali.
    lezioni ore 5; esercitazioni ore 1
  • Memorie. Principio di località e gerarchie di memoria (memorie cache), memoria virtuale, paginazione
    lezioni ore 4; esercitazioni ore 2
  • Costruzione di un data path. CPU a ciclo singolo e suo controllo. CPU multiciclo.
    lezioni ore 6; esercitazioni ore 0
  • Unità di controllo cablata e microprogrammata. Implementazione di istruzioni mediante microprogrammazione
    lezioni ore 6; esercitazioni ore 2
  • Architetture a pipeline (cenni)
    lezioni ore 2; esercitazioni ore 0
  • I/O (programmato, a interrupt, DMA), BUS
    lezioni ore 4; esercitazioni ore 0
  • Struttura e istruzioni del linguaggio macchina. Instruction Set Architecture della macchina MIPS
    lezioni ore 4; esercitazioni ore 0
  • Programmazione in assembly MIPS: uso dell eistruzioni, procedure; uso della pila; record di attivazione; ricorsione.
    lezioni ore 4; esercitazioni ore 12

Tipologia delle attività didattiche
Vengono tenute lezioni frontali (per complessive 56 ore) ed esercitazioni (per complessive 24 ore).
Le lezioni sulla programmazione assembly sengono svolte con l’ausilio di uno strumento di programmazione e di simulazione del comportamento della macchina MIPS, propedeutico alle attività che gli studenti dovranno poi svolgere nel successivo corso “Laboratorio I”.
La quantità di ore dedicate alle esercitazioni rispetto a quelle dedicate alle lezioni varia molto in base all’argomento. In alcuni casi – dove l’obiettivo è la conoscenza di principi e meccanismi, piuttosto che lo sviluppo di abilità progettuali o programmative– le esercitazioni sono praticamente assenti.
Alcune esercitazioni sono svolte con il supporto di strumenti informatici, sia di uso generale (come i fogli di calcolo) sia specifici (mappe di Karnaugh, simulatori di data path, ecc.).
L’impegno personale di rielaborazione autonoma da parte dello studente è tarato sul valore canonico di 25 ore complessive per CFU.

Testi e materiale didattico
Le slide usate a supporto di lezioni ed esercitazioni sono disponibili sul sito dell’e-learning.
Sono consigliati anche i seguenti testi:

  • Patterson & Hennessy, “Computer organization and design – The hardware/software interface”, Elsevier
  • Bolchini & Sciuto, “Informatica 2 sistemi digitali”, Progetto Leonardo, Soc. Editrice Esculapio Bologna

Per consentire agli studenti di prepararsi adeguatamente agli esami e di verificare la propria preparazione, sul sito dell’e-learning dell’Università sono anche disponibili i temi d’esame dal 2006 a oggi, e le relative tracce di soluzione.

Modalità di verifica dell’apprendimento
L’apprendimento è verificato mediante un esame che accerta l’acquisizione delle conoscenze e delle abilità attese tramite lo svolgimento di una prova scritta della durata di un’ora e mezza, senza l'aiuto di appunti o libri. La prova scritta consiste nello svolgimento di 4 esercizi, dei quali 3 richiedono capacità progettuali, e uno serve invece a verificare conoscenze acquisite. Ogni esercizio si riferisce ad uno specifico argomento (ad es. progetto di circuito combinatorio o sviluppo di un programma assembly) e consente di ottenere un massimo di 8 punti. La prova orale viene sostenuta solo su richiesta del docente nel caso lo scritto lasci dei dubbi sulla preparazione dello studente, e comporta una variazione massima di tre punti del punteggio acquisito nello scritto. In ogni caso, lo studente può prendere visione della correzione del proprio elaborato e discuterne la valutazione. Questo può talvolta portare a una revisione del punteggio.
L’eventuale prova orale verte sull’accertamento della capacità di sintesi delle conoscenze acquisite, con particolare riguardo alla capacità di identificare gli elementi di teoria da utilizzare in attività di progettazione o programmazione.

Orario di ricevimento
Durante il periodo in cui si svolge il corso il docente riceve nei pomeriggi dei giorni in cui c’è lezione. Al di fuori di tale periodo, su appuntamento.

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer