Modules | Area | Type | Hours | Teacher(s) | |
CALCOLATORI ELETTRONICI | ING-INF/05 | LEZIONI | 90 |
|
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.
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.
Le conoscenze dello studente verranno verificate durante la prova orale dell'esame finale
The student's acquired knowledge will be assessed during the final oral exam.
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.
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.
Le capacità dello studente saranno verificate durante la prova pratica al calcolatore, parte dell'esame finale.
The student's abilities will be assessed during the final laboratory practical demonstration.
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.
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.
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.
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.
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.
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
"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
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
Modalità provvisoria per emergenza COVID-19:
L'esame (progettino più orale) si deve svolgere in un'unica sessione.
Modalità normale:
La prova pratica deve essere sostenuta prima 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 3 appelli.
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.