Arquitetura de Computadores (2017/2018) - Departamento de Informática
Descrição

Os alunos irão adquirir conhecimentos teóricos e práticos de arquitectura de computadores, sendo esta última categoria adquirida através de aulas de laboratório e uma série de trabalhos de casa práticos e projectos.Esta cadeira permitirá aos alunos compreender as linguagens assembly, e a relação destas com as linguagens de alto nível (exemplo da linguagem C). Adicionalmente, os alunos compreenderão de que forma o assembly é traduzido para linguagem máquina, e como é executado pelo hardware, focando-se vários aspectos da sua organização, incluindo o processador, a memória, ou as entradas/saídas para os restantes componentes.

Objectivos

Conhecimentos

Aptidões e competências

Programa

1. Programação em C

2. Representação numérica

3. Linguagem assembly: tipos de instruções, formato das instruções, procedimentos e convenção de chamadas a procedimentos.

4. Compilação, ligação, assemblagem, e carregamento.

5. Organização interna da unidade de processamento. Processador de ciclo único. Pipelines. Conceitos avançados do desenho de microprocessadores.

6. Caches e unidades memória. Introdução breve à memória virtual.

7. Entradas / saídas.

Bibliografia Principal

Principal: Computer Systems: A Programmer''s Perspective, 2/Ed , Randal E. Bryant, David R. O''Hallaron. Prentice Hall, 2011

Alternativo: Computer Organization and Design: The Hardware/Software Interface (revised Fourth Edition). David A. Patterson, John L. Hennessy. Morgan Kaufmann, 2011.

Complementar: C Programming Language (2nd Edition). Brian W. Kernighan, Dennis M. Ritchie. Prentice Hall, 1988.

Requisitos Prévios

Conhecimentos de Introdução à Programação e de Sistemas Lógicos.

Esforço do Aluno
  Horas por crédito 28
  Horas p/ semana Semanas Horas
Aulas práticas e laboratoriais   26.0
Aulas teóricas   39.0
Avaliação   6.0
Estudo   61.0
Projectos e trabalhos   120.0
Total de Horas 252
ECTS 9.0