Scheda programma d'esame
CALCOLATORI ELETTRONICI
GIUSEPPE LETTIERI
Anno accademico2023/24
CdSINGEGNERIA INFORMATICA
Codice078II
CFU9
PeriodoSecondo semestre
LinguaItaliano

ModuliSettore/iTipoOreDocente/i
CALCOLATORI ELETTRONICIING-INF/05LEZIONI90
FEDERICO ANDREA GALATOLO 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 Assembly, 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 takes the course and passes the exam will gain a solid understanding of single-processor systems based on the AMD64 architecture, including its Assembly language, interrupt mechanism, protection methods, and paging. In addition, he or she will be able to understand how these mechanisms can be used to implement a simple, but workable, multiprogrammed Operating System kernel.

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 knowledge will be tested during the oral examination of the final exam.

Capacità

Lo studente sarà in grado di scrivere programmi misti C++/Assembly 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 able to write mixed C++/Assembly programs for the AMD64 architecture and modify a simple educational kernel that implements multiprogramming with shared memory, virtual memory, and access to I/O peripherals.

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 skills will be tested during the practical computer test, part of the final exam.

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 can increase his or her ability to identify and correct the true causes of a computing system's malfunction, especially those 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 be operating in a system of which he knows all the components, both hardware and software. In addition, in case the student delivers a non-functioning program to the exam, he will then have to find the errors himself.

Prerequisiti (conoscenze iniziali)
  • Linguaggio C++
  • Linguaggio Assembly per Intel a 32 bit
  • Reti logiche
Prerequisites
  • C++ language
  • Assembly language for 32-bit Intel
  • Logic networks
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 parte in aula, dove si svolgono sulla carta o sui PC degli studenti; una volta a settimana è prevista una esercitazione in aula informatica;
  • 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, in presenza o in remoto tramite piattaforma Teams.
Teaching methods
  • face-to-face lectures, mostly on the blackboard; slides or projections of practical examples on the computer may be used;
  • tutorials are partly in the classroom, where they are carried out on paper or on students' PCs; a computer room tutorial is scheduled once a week;
  • the course has its own website that contains all the course materials, old exam texts, and practical examples of software to download and try out;
  • students can take advantage of 3 office hours a week, either in person or remotely via Teams platform.
Programma (contenuti dell'insegnamento)

Linguaggio assembly per AMD64, programmazione mista C++/assembly, 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

Assembly language for AMD64, mixed C++/assembly programming, parameter passing via registers; direct access and associative set cache memory; four-level paging, the TLB; the I/O peripherals: Keyboard, text-mode and graphics-mode video, the counting interface, ATA hard drives; the PCI bus and bus mastering; interrupts and the APIC controller; the CPU: the pipeline technique, out-of-order and speculative execution; protection; multiprogramming and processes; mutual exclusion and semaphores; virtual memory.

Bibliografia e materiale didattico

Dispense fornite dal docente, registrazioni delle lezioni online degli A/A 2020/21 e 2021/22.

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

Bibliography

Handouts provided by lecturer, online lecture recordings of A/A 2020/21 and 2021/22.

Insights:
"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

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++/assembly (5 punti) 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 (25 punti)
  • la prova pratica non è superata se lo studente non ha realizzato una funzionalità sufficiente sul secondo esercizio nel tempo assegnato, o se ha commesso errori che tradiscono profonde 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 prima della prova orale. Per accedere alla prova orale è necessario aver ottenuto una votazione di almeno 15/30 alla prova pratica. La prova pratica viene conservata per 3 appelli.

Assessment methods

The exam consists of a practical computer test and an oral test

  • the practical test lasts 2 1/2 hours and consists of two programming exercises: one on mixed C++/assembly programming (5 points) and one on modifying the educational kernel seen in class, to add new pritives and/or drivers, based on the other examples seen during the exercises (25 points)
  • the practical test is failed if the student has not achieved sufficient functionality on the second exercise in the allotted time, or has made errors that betray deep confusions about how the architecture works
  • the oral test consists of one or two questions on the topics of the course and usually lasts 20 minutes; the questions seek to verify that the student is clear about how the various topics of the course are related to each other
  • The oral test is failed if the student shows inadequate knowledge of key topics (interrupts, protection, and paging) or shows serious misunderstanding of how architecture works

The practical test must be taken before the oral test. A grade of at least 15/30 on the practical test is required to enter the oral test. The practical test is retained for 3 appeals.

Pagina web del corso

https://calcolatori.iet.unipi.it

Ultimo aggiornamento 12/09/2023 14:02