Checking date: 27/06/2021

Course: 2021/2022

Computer Architecture
Study: Dual Bachelor in Computer Science and Engineering, and Business Administration (233)

Coordinating teacher: GARCIA SANCHEZ, JOSE DANIEL

Department assigned to the subject: Department of Computer Science and Engineering

Type: Compulsory
ECTS Credits: 6.0 ECTS


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)
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 is encouraged.
Skills and learning outcomes
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. 3.3. Virtual memory and virtual machines. 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.64 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 [6 hours with 100% attendance, 0.23 ECTS]. TUTORING [28 hours with 25% attendance, 1.09 ECTS]. Individualized assistance (individual tutorials) or in groups (collective tutorials) to students by the teacher. STUDENT INDIVIDUAL OR GROUP WORK [74 hours with 0% attendance, 2.88 ECTS]. FINAL EXAM [4 hourse 100% attendance, 0.16 ECTS] The knowledge, skills and abilities acquired throughout the course will be assessed globally. ** METHODOLOGIES ** PREPARATORY AND PRIOR WORK. Analysis of exercises and critical reading of texts recommended by the professor of the subject: Exercises, articles, reports, manuals, either for later discussion in class, or to expand and consolidate the knowledge of the subject. MASTER CLASS. Lectures in the teacher's class with the support of computer and audiovisual media, in which the main concepts of the subject are developed and materials and bibliography are provided to complement the students' learning. PRACTICAL SESSIONS. Resolution of practical cases, problems, etc., raised by the teacher individually or in groups. LABORATORY PRACTICES. Realization of designs, assemblies, systems, etc. in laboratories under the guidance and supervision of the teacher WORKS AND REPORTS. Preparation of work and reports individually or in groups
Assessment System
  • % end-of-term-examination 50
  • % of continuous assessment (assigments, laboratory, practicals...) 50
Calendar of Continuous assessment
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.