Lo studente apprenderà elementi dei sistemi di elaborazione moderni attraverso una combinazione di comprensione teorica e conoscenze tecniche e pratiche. I principi di base e le soluzioni architetturali sono discussi analizzando gli attuali sistemi multicore ARM e Intel. Lo studente che completa con successo il corso è in grado di segliere il sistema di elaborazione adatto ad una specifica applicazione, di tener conto delle caratteristiche dell'architettura nello sviluppo di software efficente, usare benchmark per fare previsioni sulle prestazioni finali di un'applicazione, di essere in grado di ottimizzare applicazioni inefficienti già sviluppate.
Lo studente apprenderà la capacità di gestire l'esplorazione dello spazio di progetto nella progettazione di circuiti integrati digitali secondo le principale metriche di progetto (complessità, velocità di elaborazione, consumo di potenza, robustezza e flessibilità). Saranno considerate le più moderne metodologie e strumenti software di ausilio alla progettazione e alla verifica per tecnologie integrate semi-custom ed FPGA. Inoltre lo studente apprenderà come progettare sistemi elettronici embedded basati su sensori con particolare riferimento all'acquisizione dei dati, al condizionamento dei segnali e alla loro elaborazione.
The student who successfully completes the course will be able to demonstrate a solid knowledge of the main issues related to computer architecture and digital systems. The basic principles and architectural solutions are discussed by analyzing the current ARM and Intel multicore systems. The student who successfully completes the course is able to choose the processing system suitable for a specific application, to take into account the characteristics of the architecture in the development of efficient software, to use benchmarks to make predictions about the final performance of an application, to be able to optimize inefficient applications.The student will understand the high-performance and energy-efficient computer architecture, as a basis for informed software performance engineering and as a foundation for advanced work in computer architecture, compiler design, operating systems and parallel processing.
The student will also acquire the ability to master digital integrated circuit design trade-offs according to main performance metrics (area, speed, power consumption and flexibility) by exploiting state-of-the-art electronic design automation tools and high-level design methodologies for FPGA and semi-custom technologies. He or she will acquire the ability to understand sensor based electronic systems including sensor data acquisition, sensor conditioning and sensor data fusion.
Lo studente sarà valutato sulla sua capacità di discutere i contenuti del corso utilizzando la terminologia appropriata. Lo studente deve dimostrare la capacità di mettere in pratica ed eseguire le attività illustrate o svolte sotto la guida dell'insegnante durante il corso. Allo studente viene chiesto eseguire un progetto in gruppo per le due parti (architettura del computer e progettazione del sistema digitale).
metodi:
Prova orale finale
Rapporto orale
Rapporto scritto
The student will be assessed on his/her demonstrated ability to discuss the main course contents using the appropriate terminology. The student must demonstrate the ability to put into practice and to execute, with critical awareness, the activities illustrated or carried out under the guidance of the teacher during the course. At the student is also requested to perform a practical design project for both parts (computer architecture and digital system design).
Methods:
Lo studente che completa con successo il corso è in grado di segliere il sistema di elaborazione adatto ad una specifica applicazione, di tener conto delle caratteristiche dell'architettura nello sviluppo di software efficente, usare benchmark per fare previsioni sulle prestazioni finali di un'applicazione, di essere in grado di ottimizzare applicazioni inefficienti già sviluppate.
Lo studente che completa con successo il corso è in grado di gestire l'esplorazione dello spazio di progetto per un circuito integrato digitale secondo le principali metriche di costo (area, velocità, costo, consumo di potenza, robustezza e flessibilità) e sfruttando le più moderne metodologie e strumenti software di ausilio alla progettazione ad alto livello di astrazione per tecnologie semi-custom ed FPGA. Inoltre lo studente è in grado di progettare sistemi elettronici embedded basati su sensori con particolare riferimento all'acquisizione dei dati, al condizionamento dei segnali e alla loro elaborazione.
The student who completes the course is able to choose the processing system suitable for a specific application, to take into account the features of the processing system in the development of efficient software, to use benchmarks to make predictions about the final performance of an application, to be able to optimize inefficient applications.
The student who completes the course is also able to master digital integrated circuit design trade-offs according to main performance metrics (area, speed, cost, power consumption, robustness and flexibility) by exploiting state-of-the-art computer aided design tools and high-level design methodologies for FPGA and semi-custom technologies. The student is able to design sensor based electronic systems including sensor data acquisition, conditioning and data fusion.
Lo studente deve preparare e presentare i documenti relativi all'attività del progetto (come parte dell'esame).
Durante la discussione del progetto, lo studente deve dimostrare la capacità di mettere in pratica e di eseguire le attività illustrate o svolte durante il corso.
The student must prepare and present the documents related to the activity of the project (as part of the exam).
During the discussion of the project, the student must demonstrate the ability to put into practice, with critical awareness, the activities illustrated or carried out in the course.
Gli studenti acquisiranno consapevolezza nella risoluzione dei problemi relativi alla progettazione di sistemi di elaborazione con determinati requisiti di performance, consumo e costo.
Gli studenti saranno in grado di svolgere lavoro di gruppo in modo efficace.
Students will acquire awareness in solving problems related to the design of processing systems with specific performance, consumption and cost requirements. Students will be able to perform group work effectively.
Verranno valutati i comportamenti durante le attività di gruppo relative allo sviluppo del progetto.
Behaviors during group activities in project development will be evaluated.
Conoscenze di base di architetture dei sistemi di elaborazione e sistemi digitali.
Basic knowledge of computer systems architectures and digital systems.
Conoscenze di base di architetture dei sistemi di elaborazione e sistemi digitali.
Basic knowledge of computer systems architectures and digital system.
Attività didattiche:
frequentando le lezioni
partecipazione al seminario
partecipazione alle discussioni
lavoro di gruppo
Lavoro di laboratorio
Frequenza: consigliata
Metodi di insegnamento:
lezioni
Seminario
laboratorio
lavoro di progetto
Learning activities:
Attendance: Advised
Teaching methods:
Il corso è organizzato in due parti. La prima comprende:
-Classi di computer, tendenze tecnologiche, consumo energetico, prestazioni, valutazione e benchmark
-gerarchie di memoria, cache e memoria virtuale
-Instruction Level Parallelism, dynamic planning, multiple issue, speculation e multithreading
-Sistemi paralleli, processori vector, SIMD and GPU, multiprocessore simmetrico a memoria condivisa, multiprocessore a memoria condivisa distribuita, coerenza della cache e modelli di coerenza della memoria-
La seconda parte comprende:
- Metriche e metodologie per la progettazione di circuiti integrati digitali semi-custom ed FPGA.
- Strumenti software di ausilio alla progettazione (HW/SW) e alla verifica di circuiti integrati digitali.
- Progettazione di circuiti ed architetture (MAC, ALU, etc,) per l’elaborazione digitale dei segnali con cui sintetizzare sistemi complessi rispetto ai requisiti di area, velocità di elaborazione, consumo di potenza ed affidabilità
- Tecniche di progetto per la riduzione del consumo di potenza.
- Progettazione di sistemi elettronici embedded basati su sensori. Acquisizione dei dati, condizionamento dei segnali e loro elaborazione con particolare riferimento ai sensori di temperatura, MEMS inerziali e per la misurazione di parametri vitali.
The course is organized in two parts. The first one covers:
-Classes of computers, technology trends, power consumption, performance, evaluation and benchmarks -Memory hierarchy, cache and virtual memory
-Instruction Level Parallelism, dynamic scheduling, multiple issue, speculation and multithreading
-Vector architecture, SIMD and Graphics Processing Unit
-Symmetric shared-memory multiprocessors, distributed shared-memory multiprocessor, cache coherence and memory consistency
The second part covers:
-Design metrics and methodologies for digital integrated circuits design including FPGA.
-High-level EDA tools including HW/SW co-design.
-CMOS logic, latch and flop, ALU and MAC, power supply and clock distribution and I/O design.
-Design techniques for reduction of CMOS power consumption
-Sensor data acquisition, compensation, and fusion with emphasis on temperature, inertial MEMS sensors and human vital parameters.
Per la parte di computer architecture:
- Computer Architecture, Fifth Edition: A Quantitative Approach, John L. Hennessy, David A. Patterson. - Advanced Computer Architecture and Computing, S.S. Jadhav.
- Microprocessor Architecture: From Simple Pipelines to Chip Multiprocessors, Jean-Loup Baer
- Parallel computer organization and design, M. Dubois, M. Annavaram, P. Stenstrom
Per la parte di digital system design:
- J. M. Rabaey, A. Chandrakasan, B. Nikolic, Digital Integrated Circuits 2/E, Prentice-Hall
- K.C. Chang, “Digital Systems Design with VHDL and Synthesis”, IEEE Computer Society.
Ulteriori materiali saranno forniti dai docenti.
Recommended reading includes:
For the computer architecture part:
- Computer Architecture, Fifth Edition: A Quantitative Approach, John L. Hennessy, David A. Patterson. - Advanced Computer Architecture and Computing, S.S. Jadhav.
- Microprocessor Architecture: From Simple Pipelines to Chip Multiprocessors, Jean-Loup Baer
- Parallel computer organization and design, M. Dubois, M. Annavaram, P. Stenstrom
For the digital system design part:
- J. M. Rabaey, A. Chandrakasan, B. Nikolic, Digital Integrated Circuits 2/E, Prentice-Hall
- K.C. Chang, “Digital Systems Design with VHDL and Synthesis”, IEEE Computer Society .
Further materials will be provided by the lecturers.
La frequenza non è obbligatoria ma fortemente consigliata.
Attendance is not mandatory but strongly recommended.
Gli studenti devono svolgere un'attività di progetto (in gruppo) come parte dell'esame.
L'esame consiste nella presentazione e nella discussione del progetto tecnico e di una prova orale.
Students must perform a project activity (in a group) as part of the exam.
The exam consists of a presentation and discussion of the technical project and of an oral exam.