Scheda programma d'esame
COMPUTER ARCHITECTURE
GIUSEPPE LETTIERI
Academic year2016/17
CourseCOMPUTER ENGINEERING
Code078II
Credits9
PeriodSemester 2
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONIING-INF/05LEZIONI90
GRAZIANO FROSINI unimap
GIUSEPPE LETTIERI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Lo studente che segue il corso e supera l'esame acquisisce una solida conoscenza dei sistemi a singolo processore basati sull'architettura AMD64, incluso il suo linguaggio Assembler, il meccanismo delle interruzioni, i metodi di protezione e la paginazione. Inoltre, sarà in grado di capire come tali meccanismi possono essere utilizzati per realizzare un semplice, ma funzionante, nucleo di Sistema Operativo multiprogrammato.

Knowledge

The student who successfully completes the course will be able to demonstrate a solid knowledge of a (simplified) IA32 based single processor computer architecture. He or she will be able to understand the fine details of the execution of programs on this architecture, and will be able to modify a simple kernel that implements protection, shared memory multiprogramming, virtual memory and peripheral I/O access.

Modalità di verifica delle conoscenze

Le conoscenze dello studente verranno verificate durante la prova orale dell'esame finale

Assessment criteria of knowledge

- The student will be assessed on his/her demonstrated ability to discuss the main course contents using the appropriate terminology. - The student's ability to explain correctly the main topics presented during the course at the board will be assessed. - The student must demonstrate the ability to put into practice and to execute, with critical awareness, the activities illustrated or carried out under the guidance of the teacher during the course.

Methods:

  • Final oral exam
  • Final laboratory practical demonstration
Capacità

Lo studente sarà in grado di scrivere programmi misti C++/Assembler per l'architettura AMD64 e modificare un semplice nucleo didattico che implementa la multiprogrammazione con memoria condivisa, la memoria virtuale e l'accesso alle periferiche di I/O.

 

Modalità di verifica delle capacità

Le capacità dello studente saranno verificate durante la prova pratica al calcolatore, parte dell'esame finale.

Prerequisiti (conoscenze iniziali)
  • Linguaggio C++
  • Linguaggio Assembler per Intel a 32 bit
  • Reti logiche
Prerequisiti per studi successivi

Sistemi Operativi

Indicazioni metodologiche
  • lezioni frontali, per lo più alla lavagna; possono essere usate delle slide o delle proiezioni di esempi pratici al calcolatore
  • le esercitazioni sono in aula e si svolgono sulla carta o sui PC degli studenti
  • il corso ha un suo sito web che contiene tutto il materiale didattico, i vecchi testi d'esame e gli esempi pratici di software da scaricare e provare
  • gli studenti possono usufruire di 3 ore di ricevimento settimanale e possono iscriversi ad una mailing list del corso per ricevere avvisi o chiedere spiegazioni sugli argomenti del corso
Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures
  • individual study
  • Practical

Attendance: Not mandatory

Teaching methods:

  • Lectures
Programma (contenuti dell'insegnamento)

Linguaggio assembler per AMD64, programmazione mista C++/assembler, passaggio dei parametri tramite registri; la memoria cache ad accesso diretto e associativa ad insiemi; la paginazione su quattro livelli, il TLB; le periferiche di I/O: tastiera, video in modalità testo e grafica, l'interfaccia di conteggio, gli hard disk ATA; il bus PCI e il bus mastering; le interruzioni e il controllore APIC; la CPU: la tecnica della pipeline, l'esecuzione fuori ordine e speculativa; la protezione; la multiprogrammazione e i processi; la mutua esclusione e i semafori; la memoria virtuale.

Syllabus

Assembler language, mixed C++/assembler programs, stack based parameter passing; Cache memories, direct access and associative; paging, TLB; I/O peripherals: keyboard, text and graphic mode SVGA, counter, ATA hard disks; PCI bus, bus mastering; interrupts and APIC; the CPU: pipelining, out of order and speculative execution; protection; multipgramming, processes; mutual exclusion, semaphores; virtual memory.

Bibliografia e materiale didattico

Bibliografia e materiale didattico
"Archiettura dei calcolatori, vol I", G. Frosini, Pisa University Press; "Archiettura dei calcolatori, vol II", G. Frosini e G. Lettieri, Pisa University Press;

Tutte le slide utilizzate nel corso verranno rese disponibili agli studenti.

Per le parti del corso non coperte dal libro e dalle slide verranno fornite delle dispense.

Approfondimenti:
"Computer Architecture, Fifth Edition: A Quantitative Approach", 5th edition, J.L. Hennesy and D.A. Patterson, Morgan Kaufmann

Bibliography

Recommended reading includes the following works: "Archiettura dei calcolatori, vol I", G. Frosini, Pisa University Press; "Archiettura dei calcolatori, vol II", G. Frosini and G. Lettieri, Pisa University Press; "Archiettura dei calcolatori, vol III", G. Frosini and G. Lettieri, Pisa University Press. Further bibliography: "Computer Architecture, Fifth Edition: A Quantitative Approach", 5th edition, J.L. Hennesy and D.A. Patterson, Morgan Kaufmann

Modalità d'esame
  • L'esame è composto da una prova pratica al calcolatore e una prova orale
  • la prova pratica consiste in due esercizi di programmazione: uno sulla programmazione mista C++/assembler e uno sulla modifica del nucleo didattico visto a lezione, per aggiungervi nuove pritive e/o driver, sulla base degli altri esempi visti durante le esercitazioni
  • la prova pratica non è superata se lo studente non ha realizzato una funzionalità sufficiente su entrambi gli esercizi, o se ha commesso errori che tradiscono prodonde confusioni sul funzionamento dell'architettura
  • la prova orale consiste in una o due domande su gli argomenti del corso e dura in genere 20 minuti; le domande cercano di verificare che lo studente abbia chiaro come i vari argomenti del corso siano collegati tra loro
  • la prova orale non è superata se lo studente mostra una conoscenza inadeguata degli argomenti fondamentali (interruzioni, protezione e paginazione) o mostra gravi fraintendimenti sul funzionamento dell'architettura

La prova pratica deve essere sostenuta priva della prova orale. È fortemente sconsigliato presentarsi alla prova orale se la prova pratica non è stata superata con una votazione di almeno 15/30. La prova pratica viene conservata per 5 appelli.

Pagina web del corso

http://calcolatori.iet.unipi.it

Altri riferimenti web

Lucidi sulla prima parte del corso: http://www.iet.unipi.it/g.frosini/Lucidi16-17/

Updated: 15/05/2017 15:45