ARCHITETTURA DEI CALCOLATORI ELETTRONICI
cod. 1005688

Anno accademico 2018/19
3° anno di corso - Secondo semestre
Docente
Andrea PRATI
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Ambito
Ingegneria informatica
Tipologia attività formativa
Caratterizzante
48 ore
di attività frontali
6 crediti
sede: PARMA
insegnamento
in ITALIANO

Obiettivi formativi

Conoscenza e Comprensione
Lo scopo del corso quello di illustrare i meccanismi di base di funzionamento dei sistemi di calcolo e in particolare l'interazione fra i moduli (CPU, memoria, I/O) di un calcolatore.

Capacità di applicare conoscenza e comprensione
Lo studente acquisirà la capacità di comprendere il funzionamento di base delle moderne CPU.
Lo studente al termine del corso sarà capace a scrivere anche semplici programmi a livello assembler.

Prerequisiti

- - -

Contenuti dell'insegnamento

Il corso fornisce i concetti di base delle architetture dei sistemi di elaborazione, analizzandone l'organizzazione interna e descrivendo i principi di funzionamento delle CPU, delle memorie, delle strutture di interconnessione e di ingresso/uscita. Il corso comprende le nozioni fondamentali della programmazione in linguaggio assembly. I concetti sono esposti in modo generale; quando necessario si fa diretto riferimento all’architettura dei processori INTEL. Gli argomenti principali trattati sono: architettura di base di un calcolatore, architetture moderne dei processori, funzionamento delle memorie, sottosistema di ingresso-uscita, programmazione in assembly.

Programma esteso

Il corso si articola in circa 45 ore di didattica frontale sui seguenti argomenti (durate indicative):
- introduzione al corso, macchina di Turing, storia del calcolatori, macchina di Von Neumann, legge di Moore; legge di Amdhal; (3 ore)
- Instruction Set Architecture; RISC e CISC; CPU della famiglia Intel; CPU della famiglia ARM; microarchitettura della CPU; architettura CPU monociclo e multiciclo; varianti della CPU multiciclo; confronto di prestazioni; (6 ore)
- valutazione delle prestazioni; benchmark; (1 ora)
- pipeline e alee; architettura superscalare; (3 ore)
- caratteristiche linguaggi Assembly; architettura di riferimento Assembly 8086; memorizzazione operandi; registri 8086: registri generali; altri registri; modelli di memoria; memoria segmentata; Modalità di indirizzamento; tipi di dato; istruzioni di trasferimento di dati, aritmetiche, trasferimento di controllo; chiamata a funzione; definizione di variabili in Assembly; Istruzioni per la gestione bit a bit; istruzioni su stringhe di dati; istruzioni controllo flag; accesso alle stringhe di dati; passaggio dei parametri mediante lo stack; (14 ore)
- esercizi su allineamento ed ordinamento in memoria in preparazione dello scritto; (2 ore)
- caratteristiche delle memorie; gerarchia di memorie; SRAM, DRAM, SDRAM e DDR; memorie permanenti; interfacciamento memoria-processore; protocollo MESI; memoria virtuale; (5 ore)
- interfacciamento memoria-processore ed esercizi in preparazione dello scritto; (4 ore)
- memorie cache ed esercizi in preparazione dello scritto; (4 ore)
- interfacciamento I/O; polling; interruzioni; Intel 8259; DMAC; memorie esterne; strutture di interconnessione; (3 ore)

Sono inoltre previste circa 18 ore in laboratorio con il seguente programma (indicativo):
- introduzione agli strumenti di compilazione; esempi semplici; uso del debug; (1 ora);
- esercitazioni varie e laboratorio (17 ore);

Bibliografia

- A.S. Tanenbaum e T. Austin, “Architettura dei Calcolatori: un approccio strutturale”, sesta ed., Pearson/Prentice Hall, 2013
- Giacomo Bucci, “Calcolatori elettronici – Architettura e organizzazione”, Mc Graw-Hill, 2009
- William Stallings, “Architettura e organizzazione dei calcolatori. Progetto e prestazioni”, ottava ed., Pearson Prentice-Hall, 2010
- Carl Hamacher, Zvonko Vranesic, Safwat Zaky, “Introduzione all'architettura dei calcolatori”, seconda ed., McGraw-Hill, 2007

Metodi didattici

Il corso comprende indicativamente 40 ore di lezioni tradizionali in aula e 24 ore di esercitazione in laboratorio.

Modalità verifica apprendimento

L'esame consiste in due parti, che possono essere date indipendentemente, sia come sessione sia come ordine. La prima parte è una prova orale fatta per iscritto, su domande di teoria e un esercizio. La seconda parte è una prova pratica in laboratorio che richiede lo sviluppo di un programma in Assembly x86. Il voto finale è dato dalla media dei due voti.

Altre informazioni

- - -

Obiettivi agenda 2030 per lo sviluppo sostenibile

- - -

Referenti e contatti

Numero verde

800 904 084

Segreteria studenti

E. segreteria.ingarc@unipr.it

Servizio per la qualità della didattica

Manager della didattica:
Elena Roncai
T. +39 0521033663
E. servizio dia.didattica@unipr.it 
E. del manager elena.roncai@unipr.it

Presidente del corso di studio

Gianluigi Ferrari
E. gianluigi.ferrari@unipr.it

Delegato orientamento in ingresso

Giovanna Sozzi
E. giovanna.sozzi@unipr.it

Delegato orientamento in uscita

Guido Matrella
E. guido.matrella@unipr.it

Docenti tutor

Boni Andrea
E. andrea.boni@unipr.it
Caselli Stefano
E. stefano.caselli@unipr.it
Cucinotta Annamaria
E. annamaria.cucinotta@unipr.it
Nicola Delmonte
E. nicola.delmonte@unipr.it
Mucci Domenico
E. domenico.mucci@unipr.it
Saracco Alberto
E. alberto.saracco@unipr.it
Ugolini Alessandro
E. alessandro.ugolini@unipr.it
Vannucci Armando
E. armando.vannucci@unipr.it

Delegati Erasmus

Paolo Cova
E. paolo.cova@unipr.it
Corrado Guarino
E. corrado.guarinolobianco@unipr.it
Walter Belardi
E. walter.belardi@unipr.it

Referente assicurazione qualità

Massimo Bertozzi
E. massimo.bertozzi@unipr.it

Studenti tutor

SPAGGIARI Davide E. davide.spaggiari@unipr.it
MUSETTI Alex E. alex.musetti@unipr.it
BERNUZZI Vittorio E. vittorio.bernuzzi1@studenti.unipr.it
NKEMBI Armel Asongu E. armelasongu.nkembi@unipr.it
BASSANI Marco E. marco.bassani@unipr.it
ZANIBONI Thomas E. thomas.zaniboni@unipr.it
BOCCACCINI Riccardo E. riccardo.boccaccini@unipr.it
MORINI Marco E. marco.morini@unipr.it
SHOZIB Md Sazzadul Islam E. mdsazzadulislam.shozib@studenti.unipr.it