Ing Ind - Inf (Mag.)(ord. 270) - MI (486) ENGINEERING PHYSICS - INGEGNERIA FISICA
097504 - COMPUTING SYSTEMS FOR ENGINEERING PHYSICS
052547 - COMPUTING SYSTEMS
The objective of this course is to introduce the main aspects of the design and programming for computing systems, with particular emphasis on the interaction with the external physical environment. These systems, also called embedded and cyber-physical systems, are typically based on micro-controllers connected to dedicated sensors and actuators. They are neither perceived nor used as general-purpose computers, but designed to be part of more complex systems (e.g. hybrid vehicles, airplanes, medical equipment, traffic lights, factory controllers, videogame consoles, and digital cameras). The course covers the main aspects of embedded and cyber-physical system design, starting from their technological and economic roots, to the characteristics of their main components and interfaces, to the practical usage of modern embedded system board and development environments (e.g. Arduino and STM32-Nucleo/MBED).
Risultati di apprendimento attesi
- Knowledge and understanding (DD 1) The students will learn how to design and program a computing system, with particular emphasis on the interaction with the external physical environment. The student will learn how to make a combinational and sequential digital circuit and how the HW of a microprocessor works;
- Apply knowledge and understanding (DD2) The students will be able to design autonomously a digital circuit The students will be able to write small assembly programs; The students will be able to evaluate the performance of computer architectures considering different metrics The students will be able to write small embedded programs interacting with the physical environment;
- Making Judgements (DD3) Given a specific problem and project cases, students will have the ability to analyze the functional and extra-functional characteristics and to compare autonomously different choices in terms of HW and SW.
- Lifelong learning skills (DD5) Students will be capable to understand how to develop a real embedded system project; Students will be capable to learn autonomously how to use and program state of the art embedded computing systems; Students will be capable to autonomously learn the new micro-architectural features of computing systems.
This course program draws together concepts from across the computer-engineering area including digital logic design, computer architecture and, embedded system programming. The program contextualizes them into the physical world, introducing the concept of cyber-physical system, and including real-world perspectives up to the new era of makers and internet-of-things devices.
Embedded systems: structure and classification; life cycle; design constraints.
From Zero to One: the digital abstraction; number system and data format.
Combinatorial logic design: Boolean algebra and logic minimization techniques; sources of delay in combinational circuits and effect on circuit performance.
Sequential logic design: synchronous logic and finite state machine design and analysis; timing analysis of sequential circuits.
Digital building blocks: arithmetic circuits, counters, memory and logic arrays: programmable logic arrays and field programmable gate arrays (FPGAs).
Real-world perspectives:designing digital systems for controlling real-world devices: Traffic light, alarm clock, washing machine, home security system, speed camera.
Basis of computer design: analysis of simple computer architecture: data-path, control logic, memories and peripherals.
Instruction set architecture: assembly and machine languages: operands and addressing modes; implementation of programming structures.
Microarchitecture: single- and multi-cycle processor implementation; performance analysis; the concept of pipelining; Advanced techniques (e.g. deep-pipeline, superscalar processors, multithreading, multiprocessors).
Real-world perspectives: MIPS, ARM and Intel architectures.
Embedded System Design and Programming
Embedded Programming: the concept of embedded C; interacting with the environment: usage of digital and Analog I/O, PWM, timers and Interrupts; communication protocols; debouncing and calibration.
Microcontroller Boards: Arduino and STM32 boards and development environments; extension shields for managing sensors, actuators and communication networks.
Advanced Programming: parallel programming; real-time operating systems; Internet of Things.
Real-World Perspectives: visitor access control system, wake-up light, pedestrian traffic light system, temperature controller, home security system, and vehicle parking sensors.
Modalità di valutazione
The final examination consists of a written exam and a discussion about a course project that will be part of the final score. The written exam is composed of numerical problems, exercises focusing on design aspects, and by theoretical questions on the course topics. The written exam assigns up to 25 points and will be considered sufficient when the score will be equal to or higher than 12. The project will assign up to 8 points. The exam is considered passed when the sum of the two scores is higher or equal to 18. Students can take the written part at any exam session during the year. The project should be concluded within the same academic year as the passed written exam. 30cum Laude will be assigned when the total score is higher or equal to 31.
David Money Harris and Sarah L. Harris, Digital Design and Computer Architecture (Second Edition), Editore: Morgan Kaufmann, ISBN: 9780123944245
Tipo Forma Didattica
Ore di attività svolte in aula
Ore di studio autonome
Laboratorio Di Progetto
Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua
Disponibilità di materiale didattico/slides in lingua inglese
Disponibilità di libri di testo/bibliografia in lingua inglese
Possibilità di sostenere l'esame in lingua inglese
Disponibilità di supporto didattico in lingua inglese