Subject: Computer Architecture

Scientific Area:



80 Hours

Number of ECTS:

7,5 ECTS



Overall objectives:

1 - Identify the fundamental components of a computer.
2 - Review the operating principle of the basic digital circuits and study the most commonly used to design the architecture of a computer.
3 - Design a simplified architecture of an elementary computer from digital circuits with a minimal set of instructions in hardware description languages.
4 - Study the instruction set of a processor.
5 - Program processors in assembly language and studying the mapping between high-level languages and assembly language.
6 - Describe and explain in detail the operation of a computer.
7 - Studying in depth the operation of a processor core and design and implement the supporting layer of a computer operating system.


1 - Introduction to computers: the development cycle of computers, parallelism between man and computer, the characteristics of a computer, the basic structure of a computer, operating cycle, simplified architecture of a computer, historical perspective of computers.
2 - Review of digital circuits: analog electronic circuits, digital circuits, logic functions, combinational circuits, multiplexers, ALU, decoders, ROMs, circuits sequences, records, bank records, gates three states, counters, shift registers, memory elements, SRAMs, DRAMs, state machines, state diagrams, representation of integers, floating point computing, digital circuits to perform arithmetic operations.
3 - Design an elementary computer: components of a computer, data unit, control unit, memories, peripherals, interconnection of components, control signals, instructions, programming in machine code, assembly language, synthesizing an elementary computer.
4 - Set of assembly instructions for a processor: bank records, memory (s) coding instructions, special registers, state bits, addressing modes, data transfer instructions, jump instructions, arithmetic instructions, logical instructions, instructions displacement, other instructions.
5 - Programming a computer: modeling problems with flowcharts, programming in high-level, mapping of high-level programming in assembly language, pointing, assignment statements, logical expressions, decision statements, statements of interaction, stack, functions in high-level language, local variables, parameter passing, routines in assembly language, recursion, data structure, program development, embedded systems.
6 - Structure of computer: the interconnection of components of a computer, data bus, address bus, bus control, address decoding, memory organization, memory access cycles, exceptions, peripherals, evolution of computers, performance evaluation of computers.
7 - Architecture of a processor: processor core, datapath, bank records, generator set, arithmetic and logic unit, unit exceptions, processing stages, memory interface, the organization of the caches, replacement policies block, written in caches, virtual memory, support for processes, multiprocessors.


J. D. Barros , 2009 , Apontamentos de Arquitectura de Computadores ,
J. D. Barros , 2009 , Folhas de exercícios e projectos de Arquitectura de Computadores ,
J. Delgado e C. Ribeiro , 2007 , Arquitectura de Computadores , FCA
D. A. Patterson and J. L. Hennessy , 2005 , Computer Organization and Design, The hardware/software interface , Elsevier
W. Stallings , 2006 , Computer Organization and Architecture, Designing for Performance , Prentice Hall
M. M. Mano and C. R. Kime , 2008 , Logic and Computer Design Fundamentals , Prentice Hall
D. M. Harris and S. L. Harris , 2007 , Digital Design and Computer Architecture , Elsevier MK
B. B. Brey , 2009 , Intel Microprocessors, Architecture, Programming, and Interfacing , Prentice Hall
G. Arroz, J. Monteiro e A. Oliveira , 2007 , Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores , IST Press

Assesssment methods and criteria:

Classification Type: Quantitativa (0-20)

Evaluation Methodology:
Tests (50%): the exams aim to assess the theoretical knowledge and theoretical-practical of the students about the subjects taught. Practical work (50%): the practical work evaluation aimed to assess the ability to apply knowledge of subjects taught . Oral tests: the students presents the practical work and respond to a set of questions, mainly technical, to assess the degree of knowledge.