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.
- Detailled knowledge about the components of the Von Neumann architecture.
General characterization
Code
11152
Credits
9.0
Responsible teacher
Hervé Miguel Cordeiro Paulino
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/Ed , Randal E. Bryant, David R. O''''Hallaron. Prentice Hall, 2011
Operating Systems: Three Easy Pieces v1.00 (2018) , Remzi Arpaci-Dusseau e Andrea Arapci-Dusseau, available at https://pages.cs.wisc.edu/~remzi/OSTEP/#book-chapters
C Programming Language (2/Ed). Brian W. Kernighan, Dennis M. Ritchie. Prentice Hall, 1988.
How to Think Like a Computer Scientist - C Version, Thomas Scheffler and Allen B. Downey, June 27th, 2019, disponível em PDF em https://github.com/tscheffl/ThinkC/
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
All the grades are rounded to first decimal.
Evaluation Components
- Practical assessment, NP:
4 individual homeworks (TPC) will be evaluated. The evaluation may include oral discussion or laboratory practice testing of these TPCs.
NP = average of the mark of the 4 homeworks
In addition to the TIs, there will be 9 small homework exercises (TPCs). Each homework will consist of one of the exercises from the week''s lab sheet. The delivery of TPCs is not mandatory, but its grade (NTPCs below) may be used to replace the TI with the lowest score in the NP calculation. This, however, is only admissible if the IT grade to be replaced is greater than 7.0.
NTPCs = average of the 9 TPCs
- Theoretical-practical assessment, NT:
Two tests and a final exam will exit (presential, closed books).
NT is the average of the marks of the two tests or the mark of the exam.
Final grade
if NP < 8,0 then NF = NP
if NT < 8,0 then NF = NT
if NT >= 8,0 and NP >= 8,0 then NF = 0.3 * NP + 0,7 * 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.