1st Cycle Studies
Computer Programming (preferably in C language); Laboratory of Digital Systems.
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.
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.
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
-make-ing an Executable
Module 3: Introduction to Computer Architecture
-CPU organization (datapath and control unit)
-Parallel execution using Pipelining
-New trends in computer architecture.
Nuno Miguel Mendonça da Silva Gonçalves
Laboratory work or Field work: 10.0%
Mini Tests: 40.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.