Microprocessor Systems

Academic year
Subject Area
Computer Science
Language of Instruction
Other Languages of Instruction
Mode of Delivery
ECTS Credits
1st Cycle Studies

Recommended Prerequisites

Computer Programming (preferably in C language); Laboratory of Digital Systems.

Teaching Methods

The theoretical sessions are taught with the help of slides that summarize the contents and provide pointers for the recommended bibliography. The students are advised to read the slides in advance in order to take full advantage of the explanations and develop a critic attitude with respect to the concepts and ideas that are taught.

The lab sessions consist in weekly assignments that apply and illustrate the contents taught during the theoretical courses. The students are supposed to do most of the assignment at home, with the lab contact hours being meant for overcoming eventual difficulties.

Learning Outcomes

Microprocessor Systems provides a global view about the functioning of modern computers, filling the gap between the contents taught during the courses of high-level programming languages and digital systems design. At the end of the curricular unit the student is expected to acquire the following skills: (i) proficiency in C programming by fully understanding the interaction between software and hardware; (ii) programming using assembly languages; (iii) knowledge about modern computer architectures and trade-offs that must be taken into account during design; and (iv) understanding the principle of abstraction by layers that enables to build complex engineering systems.

Work Placement(s)



Module 1: C language and Hardware

-C Language (revision of basic concepts)

-Pointers and memory addressing

-Memory zones: code segment, static memory, stack, heap and dynamic allocation

-Management of dynamic memory

-I/O ports, interruption and hardware programming


Module 2: Assembly for MIPS

-Basic arithmetic instructions

-Reading and writing in the memory

-Mechnisms for controlling the execution flow

-Conventions for calling a function, registers and parameters

-Instruction codification

-make-ing an Executable


Module 3: Introduction to Computer Architecture

-CPU organization (datapath and control unit)

-Parallel execution using Pipelining

-Memory Hierarchy

-New trends in computer architecture.

Head Lecturer(s)

Nuno Miguel Mendonça da Silva Gonçalves

Assessment Methods

Laboratory work or Field work: 10.0%
Mini Tests: 40.0%
Exam: 50.0%


• Computer Organization and Design: The Hardware/Software Interface (5th Edition), by D. Patterson and J. Hennessy,  2013

• The C Programming Language (2nd Edition) by Kernighan and Ritchie, ISBN 0131103628

• The Datacenter as a Computer (2nd Edition) by Barroso and Holzle, 2013.