Servizi per la didattica
PORTALE DELLA DIDATTICA
Set-Cookie: language=it; path=/; domain=.polito.it;

Architetture dei sistemi di elaborazione

02GOLOV

A.A. 2019/20

Lingua dell'insegnamento

Italiano

Corsi di studio

Corso di Laurea Magistrale in Ingegneria Informatica (Computer Engineering) - Torino

Organizzazione dell'insegnamento
Didattica Ore
Lezioni 71
Esercitazioni in aula 9
Esercitazioni in laboratorio 20
Tutoraggio 20
Docenti
Docente Qualifica Settore h.Lez h.Es h.Lab h.Tut Anni incarico
Bernardi Paolo - Corso 1 Professore Associato ING-INF/05 71 9 0 0 2
Sanchez Sanchez Edgar Ernesto - Corso 2 Professore Associato ING-INF/05 80 0 0 0 2
Collaboratori
Espandi

Didattica
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 10 B - Caratterizzanti Ingegneria informatica
2019/20
Il corso è insegnato in italiano Insegnamento obbligatorio per Laurea Magistrale in Ingegneria Informatica, collocato al I periodo didattico del I anno. Il corso ha lo scopo di fornire una conoscenza sull'architettura dei sistemi di elaborazione, con particolare riferimento ai sistemi basati su microprocessore. Il corso analizzerà le varie componenti di un sistema di elaborazione: dall'architettura interna dei microprocessori alla gestione dei principali periferici.
The course is taught in Italian. Mandatory course for Laurea Magistrale in Computer Science Engineering, didactic period I in the first year of course The purpose of the course is to provide knowledge on the elaboration system architecture, with a particular attention to microprocessor based sistems. The course analyzes the several components of an elaboration system: from the microprocessor internal architecture, peripheral devices management.
- Conoscenza delle architetture delle diverse classi di processore, con particolare riferimento ai processori pipelined e ARM. - Conoscenza delle architetture superscalari e multi-process and multithread - Conoscenza delle architetture della memoria centrale nelle sue varie gerarchie (ad esempio cache L1, L2,') - Conoscenza delle caratteristiche dei bus di sistema, di cpu e di I/O - Conoscenza delle tecniche per la programmazione delle funzionalità del processore e per il controllo degli I/O. - Capacità di scrivere firmware in codice in assembler e C, inclusa la gestione di dispositivi di I/O - Uso di ARM-based boards, incluso programmazione e debug
- Knowledge of several processor architectures, with particular attention paid to pipelined processors and ARM family - Superscalar and multi-process and multithreaded architectures - Central memory organization, taking the hierarchies (i.e., cache L1, L2) into account - Knowledge about system bus, cpu and I/O characteristics - Competences about CPU and I/O functionality management - Assembly and C language code implementation for CPU and I/O device management - Usage of ARM-based boards, including programming and debug
- Conoscenza dell'architettura dei sistemi di elaborazione: struttura del processore e organizzazione della memoria - Conoscenza delle funzioni basilari dei sistemi operativi - Capacità di sviluppare programmi in linguaggio C e assembler
- Knowledge of elaboration systems architecture: processor structure and memory organization - Knowledge of basic functionalities of operative systems - Capability to develop programs in C and assembler language
• Approfondimenti sull'architettura base di un microprocessore • Introduzione alle architetture moderne dei microprocessori • Architetture dei processori CISC, RISC e superscalari: analisi delle caratteristiche e delle prestazioni • Pipeline, hazards, stalls and counter-measurements • Flusso di sviluppo di applicazioni di sistemi embedded attraverso l'utilizzo di una scheda di sviluppo basata su processore ARM • Tecniche avanzate di programmazione di sistemi embedded in C e ASM: teoria e pratica. • Tecniche avanzate di programmazione di un sistema su board: LEDs, pulsanti, timer, GPI0, loudspeaker, potenziometro, UART port.
• Basic microprocessor architecture background • Introduction to modern microprocessor architectures • CISC, RISC and superscalar processor architectures, behavior and performance • Pipeline, hazards, stall, and counter-measurements • Development flow of embedded system applications using a development board based on ARM processor • Advanced programming techniques for embedded systems in C and ASM: theory and practice • Advance assembly programming techniques for a board system: LEDs, buttons, timers, GPI0s, loudspeaker, potentiometer, UART port.
Programma dettagliato: Intro to computer design Instruction set principles MIPS intro + WinMIPS64 intro Pipelining intro, hazards, forwarding and stalls. Integer operations Multy cycle pipelined processors ILP and static optimization techniques Branch Prediction Unit Dynamic scheduling HW-based speculation Multiple issue and i7, a8, vliw processors Task Level Parallelism Cache memories Vitual memory Intro ARM processors ARM processor instruction set ARM software interrupts ARM based System-on-Chip - HW interrupt - interrupt controller ARM based System-on-Chip - HW interrupt II - GPIO Cross-compile C + ASM - use of libraries Cross-compile ASM + C - ABI standard ARM based System-on-Chip - clock/power management ARM based System-on-Chip - HW interrupt III - timers UART Standard and Button Bouncing Display and speakers libraries ARM based System-on-Chip - HW interrupt - advance interrupt controller.
Detailed program: Intro to computer design Instruction set principles MIPS intro + WinMIPS64 intro Pipelining intro, hazards, forwarding and stalls. Integer operations Multy cycle pipelined processors ILP and static optimization techniques Branch Prediction Unit Dynamic scheduling HW-based speculation Multiple issue and i7, a8, vliw processors Task Level Parallelism Cache memories Vitual memory Intro ARM processors ARM processor instruction set ARM software interrupts ARM based System-on-Chip - HW interrupt - interrupt controller ARM based System-on-Chip - HW interrupt II - GPIO Cross-compile C + ASM - use of libraries Cross-compile ASM + C - ABI standard ARM based System-on-Chip - clock/power management ARM based System-on-Chip - HW interrupt III - timers UART Standard and Button Bouncing Display and speakers libraries ARM based System-on-Chip - HW interrupt - advance interrupt controller.
• Lezioni in aula: 50% della durata del corso; • Esercitazioni in aula: 30% della durata del corso; • Laboratori assistiti: 20% della durata del corso. Gli studenti sono invitati a interagire con i docenti, a lezione, esercitazioni in aula ed in laboratorio.
• Class lectures: 50% of the course duration; • Extensive Class exercise time: 30% of the course duration; • Assisted laboratories: 20% of the course duration. Students are highly invited to interact with Lecturers, at lecture, exercise, and laboratory slots.
• J.L. Hennessy, D.A. Patterson, Computer Architecture: a Quantitative Approach, Morgan Kaufmann Publishers, Inc., VI Edition, 2017 • Steve Furber, ARM system-on-chip architecture, Addison-Wesley, 2000. • Muhammad Ali Mazidi, Sepehr Naimi, Sarmad Naimi, Shujen Chen, Arm Assembly Language Programming and Architecture, MicroDigitalEd, 2016 Materiale aggiuntivo (slides ed esercizi) fornito dal Docente dell'insegnamento. www.cas.polito.it
• J.L. Hennessy, D.A. Patterson, Computer Architecture: a Quantitative Approach, Morgan Kaufmann Publishers, Inc., VI Edition, 2017 • Steve Furber, ARM system-on-chip architecture, Addison-Wesley, 2000. • Muhammad Ali Mazidi, Sepehr Naimi, Sarmad Naimi, Shujen Chen, Arm Assembly Language Programming and Architecture, MicroDigitalEd, 2016 Additional material (slides and exercises) provided by the Lecturers. www.cas.polito.it
Modalità di esame: Test informatizzato in laboratorio; Prova orale facoltativa; Prova di laboratorio; Progetto individuale;
L'esame è costituito da una prova scritta e da una prova orale (opzionale), delle quali la prima e' articolata in due parti. Parte 1) consiste in esercizi sugli argomenti svolti a lezione e svolta su foglio protocollo. Gli argomenti possibili sono la valutazione della durata, il costo hardware e l'ottimizzazione di codice ASM per architetture moderne. Durante lo svolgimento della prova non è possibile consultare testi o appunti. Durata 1 ora. Parte 2) consiste nello sviluppo al PC (prova svolta in laboratorio) di un programma in linguaggio C + ASM ARM funzionante sulla board di riferimento, includendo temporizzazioni, interrupt e capacità di gestire l'output. Durante lo svolgimento della prova è consentito consultare testi e materiale. Durata 2 ore. Punteggio massimo = 30/30 punti; punteggio minimo per superare la prova = 18 punti. La durata totale delle due prove scritte (parte 1 + parte 2) e' di 3 ore. Un progetto finale realizzato durante i laboratori finali sarà oggetto di valutazione e può portare fino a 4 punti extra da sommarsi al voto della prova qualora positivo. Entrambe le prove vanno superate singolarmente nel medesimo appello; il non superamento anche di una sola delle due comporta la registrazione della bocciatura ed il dover ripetere entrambe le prove in un appello successivo. Il docente ha, indipendentemente dalla scelta dello studente, la facoltà di procedere all'esame orale nel caso ritenga sia opportuno un approfondimento. Se il punteggio totale conseguito sara' superiore o uguale a 31.5 (prima dell'arrotondamento) comporterà l'attribuzione della lode.
Exam: Computer lab-based test; Optional oral exam; Practical lab skills test; Individual project;
The exam consists of a written plus an (optional) oral part; The latter divided into two sub-parts: Part 1) consists in practical exercises to be solved on a paper sheet about lecture subjects. The possible subjects include the duration, hw cost and optimization of ASM code for modern architectures. Along this part, books and notes cannot be used. Duration 1 hour. Part 2) consists in writing at the PC (in the lab) a C language + ASM ARM code, working on the reference boards, including timing, interrupt and output functionalities. Along this part of the exam, it is possible to use books and notes. Duration 2 hours. Maximum grade= 30/30 points; minimum grade to successfuly take the exam = 18 points. Overall amount of time for the final exam is 2 to 3 hours. A final projects developed during the last labs of the course will also be evaluated, bringing up to 4 extra points to be summed to the written part mark, in case it is positive. Both parts of the exam must be taken successfully in the same try; the success in a single part is not sufficient to pass the exam and the complete exam have to be fully retook in a successive try. The teacher has, independently on the student decision, the right to proceed to an oral exam in case the student preparation needs to be evaluated more deeply. If the final mark is >=31.5, the mark will be 30/30 with laude.


© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
m@il