Skip to main content

Computer Architecture

Credits
6
Types
Compulsory
Requirements
Department
AC
The general objective is to understand how a modern computer works and the fundamentals of design and evaluation of computers. The course covers the impact of design decisions on performance, power, energy consumption, cost and reliability. Topics such as memory hierarchy, virtual memory, storage systems, instruction sets, and advanced techniques such as pipelining, superscalar processors, and multiprocessors are covered. Putting some emphasis on hardware/software interaction to achieve performance.

Teachers

Person in charge

Others

Weekly hours

Theory
2
Problems
1
Laboratory
1
Guided learning
0.4
Autonomous learning
5.6

Competences

Common technical competencies

  • CT2 - To use properly theories, procedures and tools in the professional development of the informatics engineering in all its fields (specification, design, implementation, deployment and products evaluation) demonstrating the comprehension of the adopted compromises in the design decisions.
    • CT2.3 - To design, develop, select and evaluate computer applications, systems and services and, at the same time, ensure its reliability, security and quality in function of ethical principles and the current legislation and normative.
    • CT2.4 - To demonstrate knowledge and capacity to apply the needed tools for storage, processing and access to the information system, even if they are web-based systems.
  • CT3 - To demonstrate knowledge and comprehension of the organizational, economic and legal context where her work is developed (proper knowledge about the company concept, the institutional and legal framework of the company and its organization and management)
    • CT3.6 - To demonstrate knowledge about the ethical dimension of the company: in general, the social and corporative responsibility and, concretely, the civil and professional responsibilities of the informatics engineer.
  • CT5 - To analyse, design, build and maintain applications in a robust, secure and efficient way, choosing the most adequate paradigm and programming languages.
    • CT5.2 - To know, design and use efficiently the most adequate data types and data structures to solve a problem.
  • CT6 - To demonstrate knowledge and comprehension about the internal operation of a computer and about the operation of communications between computers.
    • CT6.2 - To demonstrate knowledge, comprehension and capacity to evaluate the structure and architecture of computers, and the basic components that compound them.
  • CT7 - To evaluate and select hardware and software production platforms for executing applications and computer services.
    • CT7.1 - To demonstrate knowledge about metrics of quality and be able to use them.
    • CT7.2 - To evaluate hardware/software systems in function of a determined criteria of quality.
    • CT7.3 - To determine the factors that affect negatively the security and reliability of a hardware/software system, and minimize its effects.
  • CT8 - To plan, conceive, deploy and manage computer projects, services and systems in every field, to lead the start-up, the continuous improvement and to value the economical and social impact.
    • CT8.1 - To identify current and emerging technologies and evaluate if they are applicable, to satisfy the users needs.
    • CT8.4 - To elaborate the list of technical conditions for a computers installation fulfilling all the current standards and normative.
  • Sustainability and social commitment

  • G2 [Avaluable] - To know and understand the complexity of the economic and social phenomena typical of the welfare society. To be capable of analyse and evaluate the social and environmental impact.
    • G2.2 - To apply sustainability criteria and the deontological codes of the profession in the design and evaluation of technological solutions. To identify the necessity to apply the legislation, regulations and normatives, specially the ones affecting the technical informatics engineer profession. To analyse and evaluate the environmental impact of the technical solutions in the ICT field.
  • Objectives

    1. Students shuldbe able to translate routines and high-level code fragments to assembly of a real machine (IA32) and link routines in assembler with a high-level language (C) using the Linux Application Binary Interface
      Related competences: CT5.2,
    2. Students should be able to describe the internal structure and operation of the main components of the memory hierarchy and the techniques to improve their performance.
      Related competences: CT8.1, CT7.2, CT6.2,
    3. Students should be able to describe the operation and to use the main mechanisms for error detection and correction.
      Related competences: CT7.3, CT2.3,
    4. Students should be able to describe the structure and operation of data storage systems and evaluate their reliability.
      Related competences: CT8.1, CT7.2, CT7.3, CT6.2, CT2.4,
    5. Students should be able to describe the taxonomy of instruction sets ​​(ISA) and the characteristics of the different paradigms (such as RISC-CISC).
      Related competences: CT7.2, CT6.2,
    6. Students should be able to describe the techniques used in computer design based on parallelism (such as pipelining, superscalar processors, VLIW processors, vector SIMD extensions, multithreading processors, multiprocessors and multicomputers) and their principles of operation.
      Related competences: CT7.2, CT6.2, CT2.3,
    7. Students should be able to evaluate the performance of code fragments and/or applications (both in assembler and high level) taking into account components such as: memory hierarchy, storage systems, instruction set architecture (ISA) and the main processor design techniques based on parallelism.
      Related competences: CT7.1, CT7.2, CT6.2, CT5.2, CT2.3,
    8. Students should be able to assess the impact on power and energy consumption of code fragments and/or applications (in both assembler and high level) taking into account components such as: memory hierarchy, storage systems, the design of the instruction set architecture (ISA) and the main processor design techniques based on parallelism.
      Related competences: G2.2, CT7.1, CT7.2, CT6.2, CT8.4, CT3.6,
    9. Students should be able to apply simple optimizations to code fragments to improve their performance and/or power consumption taking into account: the memory hierarchy, storage systems, the design of the instruction set architecture (ISA) and the main processor design techniques based on parallelism.
      Related competences: CT7.1, CT5.2,

    Contents

    1. Fundamentals of computer design and evaluation
    2. High-level / assembler language interface
    3. Memory Hierarchy
    4. Storage Systems
    5. Instruction Set Architecture Design
    6. Pipelining and parallelism in computer design

    Activities

    Activity Evaluation act


    C1


    Objectives: 1 2 7 8 9
    Week: 8 (Outside class hours)
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    Fundamentals of computer design and evaluation


    Objectives: 7 8
    Contents:
    Theory
    4h
    Problems
    2h
    Laboratory
    2h
    Guided learning
    0h
    Autonomous learning
    7h

    High-level/assembly language interface


    Objectives: 1 7 8 9
    Contents:
    Theory
    4h
    Problems
    3h
    Laboratory
    5h
    Guided learning
    0h
    Autonomous learning
    20h

    C2


    Objectives: 1 2 3 4 5 6 7 8 9
    Week: 15 (Outside class hours)
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    Memory Hierarchy


    Objectives: 2 3 7 8 9
    Contents:
    Theory
    10h
    Problems
    5h
    Laboratory
    5h
    Guided learning
    0h
    Autonomous learning
    28h

    Storage Systems


    Objectives: 3 4 7 8 9
    Contents:
    Theory
    4h
    Problems
    1h
    Laboratory
    1h
    Guided learning
    0h
    Autonomous learning
    6h

    Instruction set design


    Objectives: 5 7 8 9
    Contents:
    Theory
    2h
    Problems
    1h
    Laboratory
    1h
    Guided learning
    0h
    Autonomous learning
    4h

    Pipelining and parallelism in computer design


    Objectives: 6 7 8 9
    Contents:
    Theory
    3h
    Problems
    1h
    Laboratory
    1h
    Guided learning
    0h
    Autonomous learning
    6h

    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    2h
    Autonomous learning
    1h

    Documental "The E-Waste Tragedy" + debat



    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    2h
    Autonomous learning
    1h

    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    2h
    Autonomous learning
    1h

    Teaching methodology

    Theory lectures interleaved with small problems. In the theory classes homework will be assigned to students for the next practice class.

    Problem-solving classes are based on group activities. Using problems solved individually at home, students will work together in small groups to resolve the doubts that may have emerged. Because the methodology used in practice classes it is recommended that students do not enroll to courses that overlap with this one.

    The laboratory classes support the theory. Students have the documentation available before each practice session. It is mandatory that students prepare the session beforehand (read the documentation, study the concepts used, etc.). It is also recommended, once the session ends, to review the concepts seen. Students have to prepare a preliminary work that will be delivered at the beginning of each session. The lab sessions are performed on-site and used to produce the lab grade, so it is essential that there is no overlap of the laboratory with any other course.

    Evaluation methodology

    The course grade is based on the two tests (C1 and C2), the laboratory grade (LAB) and the practice class activity (AP).

    The final grade (NF) is calculated (with a single decimal and rounded to nearest even) as:
    NF = 0,3*C1 + 0,4*C2 + 0,2* LAB + 0,1* AP

    Students can only be evaluated of LAB and AP if they ATTEND THE GROUP where THEY ARE ENROLLED.

    Bibliography

    Basic

    Complementary

    Previous capacities

    Students are expected to have an understanding of statistics and probability, operating systems, digital circuits and computer organization.