Salta al contenuto principale
CODICE 67425
ANNO ACCADEMICO 2023/2024
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
SEDE
  • GENOVA
MODULI Questo insegnamento è composto da:
MATERIALE DIDATTICO AULAWEB

PRESENTAZIONE

I calcolatori hanno dato vita alla terza rivoluzione della società, dopo quella agricola e quella industriale. Se l'industria dei trasporti avesse tenuto il passo di quella dei calcolatori, oggi si potrebbe andare da Londra a New York in circa un secondo spendendo qualche centesimo di dollaro.I programmatori di maggior successo hanno sempre tenuto in considerazione le prestazioni dei loro programmi, e questo non può prescindere da una comprensione dei concetti principali alla base dello sviluppo dei calcolatori utilizzati per la loro esecuzione. Il presente insegnamento ha l'obiettivo di presentare le idee e le tecnologie alla base dei moderni calcolatori multicore. 

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

Acquisire i principi fondametali sottostanti l'organizzazione e la struttura dei calcolatori per quanto riguarda i linguaggi (assembler e macchina), la rappresentazione dei numeri e l'aritmetica, i circuiti combinatori e sequenziali, il processore e le gerarchie di memoria. Acquisire, inoltre, i concetti base necessari a scrivere codice efficiente, quali la vettorizzazione ed il multithreading.

MODALITA' DIDATTICHE

Mista: In aggiunta alle lezioni e laboratori negli orari previsti, sono assegnati esercizi di laboratorio da svolgere autonomamente tramite Aulaweb volti a integrare lo studio teorico con applicazioni pratiche.

PROGRAMMA/CONTENUTO

l corso si articola in quattro parti. Nella prima parte si introducono i concetti fondamentali relativi alla codifica binaria delle informazioni e alla logica circuitale (circuiti combinatori e sequenziali) per la realizzazione delle principali componenti a livello hardware. Nella seconda parte si introduce il modello computazione della cosiddetta Macchina di Von Neumann, con una panoramica della evoluzione tecnologica dalla meta` degli anni '50 del secolo scorso ad oggi, introducendo in particolare i concetti di efficienza, virtualizzazione e di sicurezza, sia a livello hardware che a livello di nucleo del sistema operativo (interruzioni, trap, MMU, protocolli per Bus, trasferimenti DMA, memorie cache, etc.). La terza parte e` dedicata specificamente allo studio delle architetture RISC, introducendo i concetti fondamentali di pipeline, insiemi di istruzioni di tipo Load/Store e ottimizzazioni del codice introdotte da un compilatore, e prendendo come riferimento un processore open-source della famiglia ARM.
La quarta e ultima parte introduce le nozioni principali utili ad affrontare le tematiche dei sistemi operativi, con particolare riferimento ai sistemi POSIX, quali System Call, Buffer per la gestione dei dispositivi di ingresso e uscita, rappresentazione e gestione dell'avanzamento del tempo (clock a livello hardware e software), programmazione sotto interruzione, tecniche di virtualizzazione, sinergia tra hardware firmware e software di base, ecc.

TESTI/BIBLIOGRAFIA

 Verranno fornite dal docente mediante Aulaweb dispense, manuali e programmi di simulazione.

DOCENTI E COMMISSIONI

Commissione d'esame

GIORGIO DELZANNO (Presidente)

MATTEO DELL'AMICO

DANIELE D'AGOSTINO (Presidente Supplente)

DANIELE D'AGOSTINO (Presidente)

GIORGIO DELZANNO (Presidente)

LEZIONI

INIZIO LEZIONI

In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica

Orari delle lezioni

L'orario di tutti gli insegnamenti è consultabile all'indirizzo EasyAcademy.

ESAMI

MODALITA' D'ESAME

Durante l'anno verranno assegnati esercizi di laboratorio a consegna facoltativa che verranno corretti e valutati come punteggio aggiuntivo rispetto a quello conseguito nella prova scritta. Tali esercizi hanno l'obiettivo di favorire l'autovalutazione delle conoscenze e competenze degli studenti rispetto alle tematiche principali affrontate durante il corso.

La prova scritta si compone di un quiz, basato su 15 domande a risposta chiusa (vero/falso o scelta), ed una prova basata su domande a risposta aperta ed esercizi. Il quiz dura 20 minuti ed è superato con votazione di almeno 10 punti su 15. Solo chi supera il quiz può proseguire la prova scritta. 

La prova scritta è superata con una votazione complessiva (quiz, domande aperte ed esercizi) di almeno 18 punti. A tale risultato verranno aggiunti i punti conseguiti negli esercizi svolti durante l'anno.

Lo studente può decidere di accettare il voto o accedere alla prova orale.

La prova orale può essere di tipo domanda singola o tradizionale. Con la domanda singola è possibile conseguire un punteggio nell'intervallo [+2, -1], da sommarsi al voto precedente.

Durante la prova scritta non è possibile consultare alcuna documentazione TRANNE uno o più fogli foglio contenenti le istruzioni dell'assembler del RISC-V.

MODALITA' DI ACCERTAMENTO

L'esame scritto valuterà la capacità dello studente di

  • identificare e descrivere sinteticamente e componenti principali dell'architettura RISC-V;
  • scrivere o comprendere brevi programmi utilizzando l'assembler del Risc-V;
  • comprendere e realizzare semplici circuiti combinatori;
  • risolvere esercizi di calcolo e comprensione sull abase degli esercizi di laboratorio asssegnati durante l'anno.

L'eventuale esame orale valuterà le conoscenze teoriche dello studente sugli aspetti più importanti trattati nel corso non oggetto della prova pratica.