Computer Architecture (2017/2018) - Departamento de Informática
Description

Students will gain knowledge of both theoretical and practical aspects of computer architecture, the latter being acquired through a series of labs, problem sets and projects.The course will allow students to gain an understanding of assembly languages, and its relation with higher level languages (C as an example). Furthermore, the students will learn how assembly code is translated to machine language programs, and what is the hardware that is required to execute them, focusing on several aspects of computer organization like CPU, memory, and I/O units.

Objectives

Knowledge

Competencies and aptitudes

Syllabus

1. Programming in C.

2. Number representation.

3. Assembly language: instruction types, instruction format, procedures and calling conventions.

4. Compiling, linking, assembling, and loading.

5. Internal organization of processing units. Single cycle processor. Pipelining. Advanced concepts.

6. Caches and memory units. Virtual memory basics.

7. I/O.

Bibliography

Computer Systems: A Programmer''s Perspective, 2/E , Randal E. Bryant, David R. O''Hallaron, Prentice Hall, 2011

Computer Organization and Design: The Hardware/Software Interface (revised Fourth Edition). By David A. Patterson, John L. Hennessy. Morgan Kaufmann editors, 2011.

C Programming Language (2nd Edition). By Brian W. Kernighan and Dennis M. Ritchie. Prentice Hall, 1988.

Prerequisites

Introduction to Programming (Introdução à Programação) and Logical Systems (Sistemas Lógicos).

Student work
  Hours per credit 28
  Hours per week Weeks Hours
Aulas práticas e laboratoriais   26.0
Aulas teóricas   39.0
Avaliação   6.0
Self study   61.0
Project   120.0
Total hours 252
ECTS 9.0