Curricular Unit:Code:
Computer Architecture1093ACPT
2UndergraduateComputer Systems Engineering6 ects
Learning Period:Language of Instruction:Total Hours:
Winter SemesterPortuguese/English78
Learning Outcomes of the Curricular Unit:
This course aims to study the internal architecture and operation of a computer with a focus on microprocessor programming and in the interface between hardware and software.
Upon successful completion of this course unit students should be able to:
1. Describe the basic components and the internal structure of a computer
2. Perform binary representation of signed and unsigned integers.
3. Describe the architecture of the MIPS instruction set.
4. Describe the processor instruction cycle.
5. Develop simple MIPS assembly language programs.
6. Use subroutines to implement modular programs.
7. Translate simple C programs into MIPS assembly and vice versa.
8. Process data in floating point representation.
9. Explain the functions of the linker, compiler, and assembler.
10. Analyze processor performance enhancement techniques.
11. Identify the low level I/O mechanisms used by the processor.
1. Introduction. Basic concepts, technology. Integer representation. Arithmetic operations with integers
2. Instruction Sets. Architecture of the MIPS processor. Memory Access. Making decisions. Procedures. Instruction Representation. Translating and starting a program.
3. Floating Point Representation. IEEE 754. Arithmetic Operations. Floating Point operations in MIPS.
4. The Processor: Datapath and Control. A Basic MIPS Implementation. The Instruction Cycle in Hardware.
5. Introduction to “Pipelining”. Problems associated with "pipelining". MIPS pipeline.
6. Memory Hierarchy. Cache system design. Performance analysis.
7. Low-level input / output mechanisms. Programmed I/O vs. Interrupt driven I/O. I/O support in MIPS.
Demonstration of the Syllabus Coherence with the Curricular Unit's Objectives:
Being an introductory curricular unit to Computer Architecture, the program topics are organized in order to cover the main components of the computer with an emphasis on the structure, operation and programming of the microprocessor. The fundamental concepts of the organization and internal structure of computers are presented in the introductory chapter, instruction set, information representation and optimization are presented in the following chapters and finally the low-level I / O mechanisms are studied. The learning objectives are achieved by complementing the theoretical concepts with programming examples and exercises executed in a laboratory environment using simulators and physical equipment.
Teaching Methodologies (Including Evaluation):
The transmission of knowledge in this syllabus will be with theoretical oriented lectures and practical classes in laboratory environment. The lectures present the fundamental concepts for understanding the items of the program. In practical classes students solve exercises using tools (i.e., Mars simulator). The final grade is calculated according to the following formula:
Practical grade = 0.9 * (Homework 1 + Homework 2) + 0.1 * Worksheets
Theoretical grade = (Theoretical Test 1 + Theoretical Test 2) / 2
Final Grade = (2 * Theoretical Grade + Practical Grade) / 3
The evaluation moments, as well as the work protocols, will be presented by the Professors in the classroom. These will also be available on the LMS. If you want more information regarding the assessments, you should consult the professor and/or the academic regulations available at UFP.
Demonstration of the Coherence between the Teaching Methodologies and the Learning Outcomes:
The proposed methodologies are consistent with the objectives set for the course since they rely on the understanding of the computer architecture, it’s operation and use of the instruction set to program the microprocessor. Problem-solving through weekly worksheets and a programming challenge allow the students to acquire the desired competencies.
[1] Hennessy & Patterson – Computer organization and design: The Hardware/Software Interface, 5th edition – Morgan Kauffman 2013.
[2] A.S. Tanenbaum - Structured Computer Organization 6th edition – Prentice Hall 2013
[3] Stallings, W –Computer Organization and Architecture 10th edition – Prentice Hall 2015.
[4] Delgado, J., Ribeiro, C. - Arquitectura de Computadores, 5ª Edição. FCA 2014.
[5] Patterson, D.- Computer Organization and Design Mips Edition. Morgan Kaufmann Publisher 2020.
[6] Null, L., Lobur, J. - Essentials of Computer Organization and Architecture. Burlington: Jones & Bartlett Learning 2018.
Lecturer (* Responsible):
Christophe Soares (
João Viana (