Computers Architecture
1
2012-2013
01000096
Computer Science
Portuguese
English
Face-to-face
SEMESTRIAL
6.0
Compulsory
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)
NoSyllabus
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.