Heterogeneous Systems Architectures
Keywords |
Classification |
Keyword |
OFICIAL |
Systems Electronics and Digital Systems |
Instance: 2023/2024 - 1S 
Cycles of Study/Courses
Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
M.EEC |
9 |
Syllabus |
2 |
- |
6 |
39 |
|
Teaching language
Portuguese and english
Objectives
In recent decades, computer users have enjoyed the seemingly unlimited availability of transistors. Computer platforms evolved from a single processor core to multipurpose multicores and specialized cores that deliver unprecedented performance thanks to the high degree of parallelism. Recently, power efficiency has become a major issue as most emerging applications in image processing and machine learning need to perform large amounts of computation while meeting strict power and performance constraints. This has led to systems with custom computational units in the form of Field-Programmable Gate Arrays (FPGA) and other forms of reconfigurable computational units.
These trends are having a major impact on the embedded computing domain, particularly high-performance embedded computing systems. To achieve these goals, engineers are increasingly building specialized compute engines tailored to these specific tasks. The resulting computing systems are heterogeneous and contain multiple compute cores with very different execution models. Therefore, developers must understand the fundamental mapping between the application and the target computer architectures in order to fully exploit their capabilities.
Learning outcomes and competences
The course provides students with the necessary skills to:
- Analyse the performance requirements of computational applications to design, justify and characterize solutions based on heterogeneous computing systems, involving diverse categories of general purpose processors and specialized accelerators built on FPGA, with the objective of obtaining competitive proposals against solutions built on conventional processors or homogeneous processor aggregates.
- Develop solutions for heterogeneous computing platforms based on reconfigurable System-on-Chip devices (such as the XILINX Zynq family) with two or more integrated processor cores, making use of high level-synthesis tools and design flow for FPGAs.
Working method
Presencial
Pre-requirements (prior knowledge) and co-requirements (common knowledge)
Fundaments of computer architectures
Fundaments of digital design for integrated technologies (HDL-based design)
C programming
Program
- Computing platforms: application domains, requirements, history and trends.
- General purpose programmable platforms (CPU, GPU, MCU, DSP) and FPGA-based specialized accelerators.
- Characterization of performance metrics: speed (throughput), power and energy consumption.
- Communication systems between computing units: topologies, technologies and performance metrics.
- Memory system: technologies, hierarchy, and performance metrics.
- Quantification of software application performance by profiling.
- Computation models and application partitioning in heterogeneous systems.
- Application mapping for programmable “System-on-Chip” devices integrating general-purpose processors and FPGAs.
- High-level synthesis of digital hardware for FPGA devices; optimization and design space exploration: source code transformations, loop transformations, function specialization.
- Dynamic Hardware Reconfiguration.
Mandatory literature
Coussy, P., & Morawiec, A. ;
High-Level synthesis: from algorithm to digital circuit, Springer, 2008
Terzo, O., Djemame, K., Scionti, A., & Pezuela, C. ;
Heterogeneous computing architectures: challenges and vision., CRC Press, 2019
Wolf, M.;
Computers as components: principles of embedded computing system design. , Elsevier/Morgan Kaufmann, 2017
Zahran, M; Heterogeneous computing: hardware and software perspectives., ACM Press, 2019
Teaching methods and learning activities
This course uses a flipped-classroom approach. Sessions are used to discuss the main points of the subject, apply that knowledge to case studies, and experiment with design flows and tools.
Software
Xilinx Vitis HLS (high-level synthesis)
Xilinx Vivado
Xilinx Vitis SDK
Evaluation Type
Distributed evaluation with final exam
Assessment Components
Designation |
Weight (%) |
Exame |
40,00 |
Trabalho laboratorial |
40,00 |
Teste |
20,00 |
Total: |
100,00 |
Amount of time allocated to each course unit
Designation |
Time (hours) |
Elaboração de projeto |
50,00 |
Frequência das aulas |
39,00 |
Estudo autónomo |
73,00 |
Total: |
162,00 |
Eligibility for exams
To obtain the "frequencia" status the students must participate in all the points of the distributed evaluation.
Calculation formula of final grade
Grading will include a distributed evaluation component and a final written exam, with weights of 60% and 40%, respectively.
The distributed evaluation will be formed by the development of a set of laboratory projects (40% of the final grading) and a mid-term (20% of the final grading).
The laboratory projects will be done by groups of 2 students, presented and discussed in class, but mainly done outside class hours; the practical work focuses on the performance analysis of an application and its mapping to a reconfigurable SoC platform with high-level hardware synthesis tools.Classification improvement
The grades of the test and of the final exam may be improved by doing the second exam ("recurso" / retake) of similar (combined) complexity. The grades of the projects cannot be improved.