Checking date: 21/02/2025


Course: 2024/2025

Computer Architecture
(13888)
Bachelor in Computer Science and Engineering (Study Plan 2022) (Plan: 489 - Estudio: 218)


Coordinating teacher: GARCIA SANCHEZ, JOSE DANIEL

Department assigned to the subject: Computer Science and Engineering Department

Type: Compulsory
ECTS Credits: 6.0 ECTS

Course:
Semester:

Branch of knowledge: Engineering and Architecture



Requirements (Subjects that are assumed to be known)
+ Programming (Year 1 / Term 1) + Computer structure (Year 2 / Term 1) + Operating Systems (Year 2 / Term 2)
Objectives
The main goal of this course is that the student knows the basic concepts around the computer architecture and the impact that they have in the performance of applications and computer systems. To achieve this goal: + Advanced aspects of computer architecture are covered in detail such as optimizations in memory hierarchy, instruction level parallelism, or multiprocessors design. + Basic concept in concurrent programming and its relationship with the computer architecture are enforced. + Parallel programming concepts are introduced. + A constant concern about application performance and energy consumption is encouraged.
Learning Outcomes
RA1.2: Knowledge and understanding of engineering disciplines underlying their specialisation, at a level necessary to achieve the other programme outcomes, including some awareness at their Forefront. RA2.1: Ability to analyse complex engineering products, processes and systems in their field of study; to select and apply relevant methods from established analytical, computational and experimental methods; to correctly interpret the outcomes of such analyses. RA3.2: Ability to design using some awareness of the forefront of their engineer ing specialisation. RA5.1: Understanding of applicable techniques and methods of analysis, design and investigation and of their limitations in their field of study. RA5.3: Understanding of applicable materials, equipment and tools, engineering technologies and processes, and of their limitations in their field of study. CB2: Students are able to apply their knowledge to their work or vocation in a professional manner and possess the competences usually demonstrated through the development and defence of arguments and problem solving within their field of study. CGO4: Ability to define, evaluate and select hardware and software platforms for the development and execution of computer systems, services and applications, in accordance with the knowledge acquired. CGO6: Ability to conceive and develop centralised or distributed computer systems or architectures integrating hardware, software and networks in accordance with the knowledge acquired. CECRI9: Ability to know, understand and evaluate the structure and architecture of computers, as well as their basic components. CECRI14: Knowledge and application of the fundamental principles and basic techniques of parallel, concurrent, distributed and real-time programming.
Description of contents: programme
1. Fundamentals of computer design. 1.1. Introduction. 1.2. Historical perspective. 1.3. Classification of Computers. 1.4. Parallelism. 1.5. Computer Architecture. 2. Performance Evaluation of computer systems. 2.1. Classification of architectures and evaluation. 2.2. Computer Systems Reliability. 3. Memory hierarchy. 3.1. Cache memory optimizations. 3.2. Advanced cache optimizations. 4. Instruction Level Parallelism. 4.1. Introduction to Instruction Level Parallelism. 4.2. Exploitation of Instruction Level Parallelism. 5. Multiprocessors. 5.1. Symmetric shared memory architectures. 5.2. Distributed shared memory. 5.3. Synchronization in shared memory. 5.4. Memory consistency models. 6. Models of parallel and concurrent programming. 6.1. Introduction to parallel programming: OpenMP. 6.2. Concurrent programming model: ISO C ++ Threads . 6.3. Memory consistency models in C ++.
Learning activities and methodology
** TEACHING ACTIVITIES ** THEORETICAL-PRACTICAL CLASSES [42 hours with 100% attendance, 1.52 ECTS]. In them the knowledge that students must acquire will be presented. They will receive the class notes and will have basic reference texts to facilitate the follow-up of the classes and the development of the subsequent work. Exercises will be solved by the student which will serve as a self-assessment and to acquire the necessary skills. Problem solving classes, in which the problems proposed to the students are developed and discussed. WORKSHOPS AND / OR LABORATORY PRACTICES [10 hours with 100% attendance, 0.40 ECTS]. TUTORING [28 hours with 25% attendance, 1.12 ECTS]. Individualized assistance (individual tutorials) or in groups (collective tutorials) to students by the teacher. STUDENT INDIVIDUAL OR GROUP WORK [70 hours with 0% attendance, 2.8 ECTS]. FINAL EXAM [4 hourse 100% attendance, 0.16 ECTS] The knowledge, skills and abilities acquired throughout the course will be assessed globally. ** METHODOLOGIES ** Seminars and lectures supported by computer and audiovisual aids. Individual and group or cooperative work with the option of oral or written presentation. Individual and group tutorials to resolve doubts and queries about the subject. Internships and directed laboratory activities.
Assessment System
  • % end-of-term-examination 40
  • % of continuous assessment (assigments, laboratory, practicals...) 60

Calendar of Continuous assessment


Extraordinary call: regulations
Basic Bibliography
  • Hennessy, JL y Patterson, DA.. Computer Architecture: A Quantitative Approach. 6th Edition.. Morgan Kaufmann,. 2017
Additional Bibliography
  • David A. Patterson, John Hennessy. Computer Organization and Design MIPS Edition: The Hardware/Software Interface. Morgan Kaufmann. 2020
  • Timothy G. Mattson, Yun (Helen) He and Alice E. Koniges. The OpenMP Common Core: Making OpenMP Simple Again. MIT Press. 2019
  • Williams, A.. C++ Concurrency in Action. Practical Multithreading. 2nd Edition. Manning.. 2018
Recursos electrónicosElectronic Resources *
(*) Access to some electronic resources may be restricted to members of the university community and require validation through Campus Global. If you try to connect from outside of the University you will need to set up a VPN


The course syllabus may change due academic events or other reasons.