Computers Architecture

Year
1
Academic year
2012-2013
Code
01000096
Subject Area
Computer Science
Language of Instruction
Portuguese
Other Languages of Instruction
English
Mode of Delivery
Face-to-face
Duration
SEMESTRIAL
ECTS Credits
6.0
Type
Compulsory
Level
1st Cycle Studies

Recommended Prerequisites

Computer Technologies; Computer Programming; Digital Systems.

Teaching Methods

Weekly 5h of contact: 2h of theory, taught with the help of slides and pointers for the recommended bibliography; 1h of theoretical and practical sessions that focus on problem solving skills; 2h reserved for practical laboratorial sessions based on weekly assignments, clarifying doubts and grading the accomplished work.

Learning Outcomes

Providing 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) knowledge about modern computer architectures and tradeoffs that must be considered during the design of a computer system; (ii) programming using Assembly languages; (iii) proficiency in C programming by fully understanding the interaction between software and hardware.

Globally, the students should be able of developing and acquiring analysis and synthesis competencies, problem solving techniques, capacity to develop teamwork, analyzing problems under different perspectives and propose new solutions, understanding other people’s language, autonomous learning, adaptability to new situations and practical adaptation of theoretical knowledge.

Work Placement(s)

No

Syllabus

Module 1: Introduction to Computer Architecture

-          CPU organization (datapath and control unit)

-          Parallel execution using Pipelining

-          Memory Hierarchy

-          Polling and interrupts (if time available)

 

Module 2: Assembly for MIPS

-          Basic arithmetic instructions

-          Reading and writing in the memory

-          Mechnisms for controlling the execution flow

-          Instruction codification

-          Numbers and floating-point representation

-          Making an executable (compiler, assembler, linker, etc.)

 

Module 3: C Language and Hardware (if time available)

-          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 and hardware programming

Head Lecturer(s)

Gabriel Falcão Paiva Fernandes

Assessment Methods

Assessment
Laboratorial classes: 25.0%
Frequency: 25.0%
Exam: 50.0%

Bibliography

1. Slides das Aulas / Slides from the Theoretical Courses

2. D.A. Patterson and J. L. Hennessy. “Computer Organization and Design: The Hardware/Software Interface”, 4th edition, Morgan Kaufmann.

3. B. W. Kernighan and D. M. Ritchie. “The C Programming Language”,  2nd edition, Prentice Hall.