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
Slides;
Lecture slides;
Modalità di esame: Test informatizzato in laboratorio; Prova orale facoltativa; Prova pratica di laboratorio;
...
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.
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.
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 2 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.
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
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.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.