2023

Computer Architecture I

Name: Computer Architecture I
Code: INF13187L
6 ECTS
Duration: 15 weeks/156 hours
Scientific Area: Informatics

Teaching languages: Portuguese
Languages of tutoring support: Portuguese, English
Regime de Frequência: Presencial

Sustainable Development Goals

Learning Goals

The course aims to introduce students to the fundamental concepts of computing machines, namely the organization and structure of a digital computer and its low level programming. The students should understand how a program is executed and be able to write programs in an Assembly language. The students should obtain the following knowledge:
- Computer memory organization (bits, bytes, addresses);
- Know an Instruction Set Architecture (e.g. MIPS), including the machine code;
- Know some details of an Application Binary Interface (stack, heap, function calls and argument passing, register utilization);
- Represent integer and floating point numbers (IEEE754) in binary.

Contents

- Introduction to the Von Neumann architecture (stored program computer).
- Memory organization. Notions of byte and address.
- Simplified version of an instruction execution cycle (fetch, decode, execute). The role of the Program Counter register.
- Introduction to the MIPS microprocessor: registers, assembly instructions, adressing modes. Bytes, words and endianness. Machine code.
- Program organization. Simplified version of an ABI (register usage conventions, function calls, argument passing and return, stack, memory allocation).
- Exceptions. Interrupts and syscalls. Processor execution modes user and kernel.
- Floating point number representations IEEE754. Numerical issues.
- Brief introduction to software security issues (buffer overflows and exploits).

Teaching Methods

The teaching method consist in theoretical and practical classes with a duration of 2h both lectured once a week.
The course material is lectured in the theoretical classes accompanied by examples. In the practice classes, students solve problems on paper and computer related to recently lectured topics. Simultaneously, an online platform is available including exercises with automatic correction to aid self-study.

Assessment is made of two components: a theoretical and a practical one.
The theoretical component is made by:
- a sequence of tests along the semester concerning individual topics.
- a final exam concerning all the material lectured in the course.
The practical component is essentially a project to be developed in groups of students and takes several weeks. A final oral presentation and discussion is required.