Credits
7.5
Types
Compulsory
Requirements
This subject has not requirements
, but it has got previous capacities
Department
AC
Web
http://docencia.ac.upc.edu/FIB/grau/EC
Teachers
Person in charge
- Roger Baig Viñas ( roger.baig@upc.edu )
Others
- Adrià Armejach Sanosa ( adria.armejach@upc.edu )
- Antonio Jose Peña Monferrer ( antoniop@ac.upc.edu )
- David Álvarez Robert ( david.alvarez.robert@upc.edu )
- Fernando Agraz Bujan ( fernando.agraz@upc.edu )
- Jose M. Cela Espin ( josem.cela@ac.upc.edu )
- Josep-Llorenç Cruz Diaz ( cruz@ac.upc.edu )
- Octavio Castillo Reyes ( octavio.castillo@upc.edu )
- Pedro José Martínez Ferrer ( pedro.martinez.ferrer@upc.edu )
- Rubén Tous Liesa ( rtous@ac.upc.edu )
- Toni Cortés Rosselló ( toni@ac.upc.edu )
Weekly hours
Theory
2.7
Problems
1.3
Laboratory
1
Guided learning
0
Autonomous learning
7.5
Competences
Common technical competencies
- CT1.1A - To demonstrate knowledge and comprehension about the fundamentals of computer usage and programming, about operating systems, databases and, in general, about computer programs applicable to the engineering.
- CT1.1B - To demonstrate knowledge and comprehension about the fundamentals of computer usage and programming. Knowledge about the structure, operation and interconnection of computer systems, and about the fundamentals of its programming.
- 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.2 - To know, design and use efficiently the most adequate data types and data structures to solve a problem.
- CT6.2 - To demonstrate knowledge, comprehension and capacity to evaluate the structure and architecture of computers, and the basic components that compound them.
- CT7.1 - To demonstrate knowledge about metrics of quality and be able to use them.
Sustainability and social commitment
- G2.1 - To analyse the global situation in a systematic and critic way. To be capable of recognising the social and environmental implications of the professional activity of computer science. To understand the role of engineering as a profession, its role in the society and the ethical and professional responsibility of the technical informatics engineer. To value the compromise with equal opportunities principles, peace culture and democratic values.
Objectives
-
Understand the hierarchical levels of a computer.
Related competences: CT1.1B, CT1.1A, -
Understand the ISA of a standard RISC processor and the qualitative and quantitative performance implications of its design.
Related competences: CT7.1, CT6.2, CT1.1B, -
To know how to represent and perform operations with integers in various formats: two's complement, sign-magnitude and bias.
Related competences: CT1.1B, CT1.1A, -
To know how to represent and perform operations with real numbers in IEEE 754 floating-point format.
Related competences: CT1.1B, CT1.1A, -
Understand how data structured in vectors, matrices and tuples are stored and accessed.
Related competences: CT5.2, CT1.1B, -
To learn how to translate high-level programs to assembly language (and vice versa) using a standard ABI. The high-level elements to be translated are expressions, conditionals, loops and subroutines.
Related competences: CT6.2, CT5.2, CT1.1B, CT1.1A, -
Design arithmetic units for multiplication and division operations with natural numbers.
Related competences: CT1.1B, -
Understand and manage the exception and interrupt concepts.
Related competences: CT1.1B, -
Understand the internal structure and operation of cache memory, especially aspects that affect system performance.
Related competences: CT7.1, CT6.2, CT1.1B, -
Understand the usefulness of virtual memory, its basic functioning and the support hardware required.
Related competences: CT7.1, CT6.2, CT1.1B, -
Understand compilation, linkage and loading processes in software development.
Related competences: CT1.1A, -
Meet task completion deadlines.
Related competences: CT3.6, -
Understand the factors that affect microprocessor performance, consumption, sustainability and impact on the environment.
Related competences: CT7.1, CT6.2, G2.1, CT1.1B,
Contents
-
Item 1. Introduction
Hierarchical description of the computer at different levels of abstraction. Performance metrics. Energy consumption metrics. Amdahl's law. -
Item 2. Assembler and basic data types.
Introduction to MIPS. Operands. Representation of natural numbers, integers and characters. Pointers, vectors and strings. Instruction formats. -
Item 3. Program translation
Logic operations and shifts. If and while statements. Subroutines. Compilation, linkage and loading. -
Item 4. Arrays.
Array storage. Sequential access to vectors and matrices. -
Item 5. Integer and floating point arithmetic.
Integers: addition, subtraction, multiplication and division. Floating point: representation, addition, multiplication and rounding. -
Item 6. Cache Memory.
Concepts and terminology. Direct mapping. Block diagrams and performance metrics. Associativity. Replacement. Multilevel caches. -
Item 7. Virtual Memory.
Motivation and terminology. Address translation. Handling misses. TLB. -
Item 8. Exceptions / Interrupts.
Basic MIPS concepts and hardware support. Detailed functioning of an exception and model generic handling routine. Specific cases: TLB miss. System calls. Interrupts.
Activities
Activity Evaluation act
Theory
3h
Problems
1h
Laboratory
2h
Guided learning
0h
Autonomous learning
7h
Theory
7h
Problems
3h
Laboratory
3h
Guided learning
0h
Autonomous learning
14h
Theory
4h
Problems
2h
Laboratory
0h
Guided learning
0h
Autonomous learning
8h
Theory
2h
Problems
2h
Laboratory
0h
Guided learning
0h
Autonomous learning
8h
Teaching methodology
Theory classes will combine lectures, in which the lecturer presents, explains and exemplifies the topics of study, with open discussion on issues raised and their advantages and disadvantages.Problem-solving classes will be based on three different approaches: resolution by the lecturer commented on by students; resolution by students individually; and resolution by students in groups. Once students have completed problems, the lecturer will provide feedback on errors.
Laboratory classes will be similar to problem-solving classes, except that exercises will be worked on in pairs using semi-automatic correction tools. Laboratory exercises will be assessed on an ongoing basis to encourage diligence in students.
Evaluation methodology
Marks will be awarded based on two components: the theory/problem-solving mark (NT) and the laboratory mark (NL), accounting for 80% and 20% of the final mark, respectively.NT is obtained from a mid-semester exam (EP) mark, accounting for 20% of the total mark, and a final exam (EF) mark, accounting for 60% of the total mark. The EP mark can be recuperated through the EF mark, since the corresponding weight (20%) is applied to the maximum of the two marks.
NL is obtained from a laboratory exam (EP) and a continuous assessment (AC) mark, accounting for 85% and 15% of the NL, respectively. The AC mark is based on laboratory session tasks and the corresponding preparatory work.
The formula for calculating the final mark for the course is:
Mark = max(EP*0.20 + EF*0.60, EF*0.80) + (EL*0.85 + AC*0.15)*0.20
Bibliography
Basic
-
Computer organization and design: the hardware/software interface
- Patterson, D.A.; Hennessy, J.L,
Elsevier Morgan Kaufmann,
2014.
ISBN: 9780124077263
http://cataleg.upc.edu/record=b1431482~S1*cat -
Estructura y diseño de computadores: la interfaz software/hardware
- Patterson, D.A.; Hennessy, J.L4a,
Reverté,
2011.
ISBN: 9788429126204
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003859419706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- Pàgina d'EC: Col·lecció de Problemes, Quadern de Laboratori, Bibliografia, Apunts, Mètode d'Avaluació, Calendari de Sessions, etc. http://docencia.ac.upc.edu/FIB/grau/EC
Previous capacities
Students are expected to understand the operation of a simple computer, its structure and internal functioning in blocks, as well as the basic elements of the high-level languages used to program simple applications.They should be able to personally organise the study of this and related subjects and have a basic grounding in mathematics sufficient for the analysis, abstraction and synthesis required for the course.