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

ModulesAreaTypeHoursTeacher(s)
CALCOLATORI ELETTRONICIING-INF/05LEZIONI90
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) AMD64 based single processor computer architecture, including its Assembly language, the interrupt mechanism, protection and paging. He or she will be also able to understand how these mechanisms can be used to build a simply, yet working, kernel of a multiprogrammed Operating System.

Modalità di verifica delle conoscenze

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

Assessment criteria of knowledge

The student's acquired knowledge will be assessed during the final oral exam.

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.

 

Skills

The student will be abel to write mixed C++/Assembly programs for the AMD64 architecture.
He or she will also be able to modify a simple kernel that implements protection, shared memory multiprogramming, virtual memory and peripheral I/O access.

Modalità di verifica delle capacità

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

Assessment criteria of skills

The student's abilities will be assessed during the final laboratory practical demonstration.

Comportamenti

Lo studente può aumentare la propria capacità di identificare e correggere le vere cause del malfunzionamento di un sistema di elaborazione, soprattutto quelle causate dai propri errori di programmazione.

Behaviors

The student will increase his or her ability to identify the real causes of computer malfunctions, expecially the ones caused by his or her own programming errors.

Modalità di verifica dei comportamenti

Lo studente si troverà ad operare in un sistema di cui conosce tutte le componenti, sia hardware che software. Inoltre, nel caso lo studente consegni all'esame una programma non funzionante, dovrà poi essere lui stesso a trovarne gli errori.

Assessment criteria of behaviors

The student will face a system where all hardare and software components are known to him or her. Moreover, if he or she produces a non-working program during the finaly laboratory demonstration, then it will be up to him or her to make it work before the final oral exam.

Prerequisiti (conoscenze iniziali)
  • Linguaggio C++
  • Linguaggio Assembler per Intel a 32 bit
  • Reti logiche
Prerequisites
  • The C++ language
  • The IA32 Assembly language
  • Logical Circuits
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
  • face to face lectures, mostly using the blackboard; slides of computer projections may be used occasionally
  • practical excercises are completed on paper or on the student's own laptopts
  • there is a course-specific site that contains all the didactic material, including all the past exam papers and the software to download
  • there are 3 office hours per week; the students may subscribe to a course mailing list to ask questions and receive explanations and advices
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; four level 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 II", G. Frosini and G. Lettieri, Pisa University Press; 

Slides and handouts downloadable from the course site;

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

Indicazioni per non frequentanti

 

 

Modalità d'esame

Modalità provvisoria per emergenza COVID-19:

  • L'esame è composto da un progettino da svolgere autonomamente e da una prova orale
  • Il testo del progettino e un insieme di casi di test verrà inviato, a tutti gli iscritti all'esame, la mattina del giorno calendarizzato come "prova pratica"
  • Gli studenti dovranno inviare il loro elaborato entro l'orario indicato nel testo ricevuto. l'orario di consegna cadrà nel pomeriggio del giorno stesso.
  • Il soggetto del progettino sarà del tutto analogo al secondo esercizio delle normali prove pratiche.
  • L'accesso alla prova orale sarà possibile solo se l'elaborato passa un sottoinsieme dei casi di test indicati come "obbligatori" nel testo del progettino.
  • Gli orali iniziano il giorno successivo a quello dedicato al progettino.
  • Ogni orale inizierà con una difesa del proprio elaborato da parte del candidato, proseguendo con domande di approfondimento sugli argomenti del corso, inclusa la parte precedentemente coperta dal primo esercizio della prova pratica (corrispondenza C++/Assembler)

L'esame (progettino più orale) si deve svolgere in un'unica sessione.

Modalità normale:

  • L'esame è composto da una prova pratica al calcolatore e una prova orale
  • la prova pratica dura 2 ore e mezza e 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 nel tempo assegnato, 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.

Assessment methods

The final exam consists of a laboratory demonstration followed by an oral exam;

for the laboratory demonstration the student must complete to programming assignments: the first one is related to the mixed C++/Assembly programming technique, and the second one consists in modifying the didactic kernel to add primitives and/or drivers, drawing on the examples studied during the course; the laboratory demonstration takes 2.5 hours.

the student fails the practical demonstration if he or she has not implemented sufficient functionality in the allotted time, or if he or she has introduced errors that betray an unacceptable state of confusion about the inner workings of the computer;

the oral exam consists of one or two questions exploring the topics discussed during the lectures; it usually takes 20 min; the questions are meant to probe the student's aquired clarity of though on these topics and his or she ability to put the different parts together;

the student fails the oral exam if he or she has an insufficient knowledge of the most important topics (interrupts, protection and paging) or if he or she has unacceptably misunderstood the inner workings of the system.

The laboratory demonstration must be successfully completed before trying the oral exam. It is not reasonable to try the oral exam if the score of the practical one is lower than 15/30. After having successfully complted the practical exam, the student may try the oral exam in one of the later 5 exam dates.

 

Altri riferimenti web

Additional slides from the other Professor: http://www.iet.unipi.it/g.frosini/

Updated: 26/02/2021 23:16