Computer Architecture
Objectives
Knowledge
- The general organization of computer hardware, and the inner workings of the CPU.
- The hardware representation of data and instructions.
- The translation process from C programs to assembly language and machine language.
- The low level interfaces to I/O devices.
- The organization and characteristics of memory units.
Competencies and aptitudes
- C programming, assembly programming, translating between the two.
- Designing the basic components of a CPU.
General characterization
Code
11152
Credits
9.0
Responsible teacher
Pedro Abílio Duarte de Medeiros, Vítor Manuel Alves Duarte
Hours
Weekly - 5
Total - 65
Teaching language
Português
Prerequisites
Introduction to Programming (Introdução à Programação) and Logical Systems (Sistemas Lógicos).
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.
Teaching method
In lectures we will explain and discuss the sequence of points in the course program. In the last third of each lecture we will discuss, whenever possible, the resolution of a practical exercise whose solution requires applying the knowledge learned in the beginning of the lecture.
During lab classes students will develop a series of practical programming assignments, whose objective is to apply and consolidate the concepts that were learned in lecture. After concluding each lab assignment, students should discuss with the instructor the behavior of the programs they developed and the respective connection to the concepts learned throughout the course.
Evaluation method
Evaluation Components
- Practical and frequency assessment, NP:
Five small individual homeworks (TPC) will be evaluated. The evaluation may include oral discussion or laboratory practice testing of these TPCs.
NP = average of the 4 best works
Students who have obtained attendance in 2017/18 or 2018/19, are exempt from obtaining a grade and doing the work, mataining the grade NP of last year. They also do not need to be enrolled in practice classes, but they can attend whenever there are seats available.
- Theoretical-practical assessment, NT:
It consists of the average of two tests or a final exam (written, closed books).
NOTE: All TPC, Tests, Exam, NP, NT grades are rounded to first decimal.
Frequency
A student is considered to have attended classes and admitted the assessment only if he scores higher than 9.5 in at least 3 TPCs.
Final grade
In the case of obtaining frequency, the final grade, NF, is calculated by weighted average of the practical components (NP) and tests or exam (NT), in accordance with the following rule:
if NT> = 8.5 then NF = 20% NP + 80% NT
if NT<8.5 then NF = NT
Subject matter
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.