Computers Architecture

Year
2
Academic year
2022-2023
Code
01000096
Subject Area
Computer Science
Language of Instruction
Portuguese
Mode of Delivery
Face-to-face
Duration
SEMESTRIAL
ECTS Credits
6.0
Type
Compulsory
Level
1st Cycle Studies

Recommended Prerequisites

Computer Technology; Introduction to Programming and Problem Solving; Introduction to Procedural Programming

Teaching Methods

The theoretical sessions introduce some of the fundamental concepts behind the design and implementation of a computer architecture, presenting the way software relates to this architecture.

The theoretical and practical sessions will focus on problem-solving, for subsequent application of the acquired knowledge in practical laboratory classes.

The lab sessions consist of weekly practical assignments, previously available to the students, that apply and illustrate the contents taught during the theoretical courses.

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) 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 the Computer Architecture

-           CPU organization (Datapath and control unit)

-           Parallel execution using Pipelining

-           Memory Hierarchy

-           Input/output

 

Module 2: Assembly for MIPS

-           Basic arithmetic instructions

-           Reading and writing in the memory

-           Mechanisms for controlling the execution flow

-           Instruction codification

-           Numbers and floating-point representation

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

 

Module 3: High-Level Language and Hardware

-           Pointers and memory addressing

-           Memory zones: code segment, static memory, stack, heap and dynamic allocation

-           Management of dynamic memory

-           Calling Procedures/Functions

-           I/O ports and hardware programming.

Head Lecturer(s)

Paulo José Monteiro Peixoto

Assessment Methods

Assessment
Laboratory work or Field work: 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.