Arquitectura de Computadores

Ano
0
Ano lectivo
2022-2023
Código
02000605
Área Científica
Computadores
Língua de Ensino
Português
Outras Línguas de Ensino
Inglês
Modo de Ensino
Presencial
Créditos ECTS
6.0
Tipo
Opcional
Nível
2º Ciclo - Mestrado

Conhecimentos de Base Recomendados

Programação de Computadores, Estrutura de Dados e Algoritmos, Sistemas de Microprocessadores, Sistemas de Operação, Estruturas de Dados e Algoritmos

Métodos de Ensino

Aulas teóricas, recorrendo a meios audiovisuais, com exposição dos conceitos, princípios e teorias fundamentais e com a resolução de exercícios práticos elementares que concretizem o interesse prático da matéria e exemplifiquem a sua aplicação real.

Aulas laboratoriais onde os estudantes são guiados em aspetos específicos do desenvolvimento e análise dos resultados, permitindo-lhes explorar os conceitos através de exercícios práticos formativos e de avaliação. 

Resultados de Aprendizagem

Esta disciplina tem como objectivos introduzir as técnicas fundamentais em que se baseiam os sistemas computacionais atuais, desenvolver aptidões na análise dos benefícios de diferentes opções de projeto de sistemas computacionais, fornecendo as bases para o desenvolvimento de software explorando as características do hardware de suporte. As competências adquiridas nesta unidade curricular constituem as bases para o desenvolvimento de sistemas computacionais e aplicações de elevado desempenho.

Estágio(s)

Não

Programa

1. Fundamentos de Arquitetura de Computadores

 Revisão de conceitos básicos, Métricas de desempenho

2. Paralelismo ao nível das instruções

Execução e limitações ao paralelismo das instruções.

Optimização estática e dinâmica. Preditores, execução especulativa e redução de dependências.

3. Hierarquia de memória

Localidade espacial e temporal. Caches, organização e optimizações.

Proteção. Memória virtual e máquinas virtuais.

4. Extensões multimédia e processadores vetoriais

Vantagens do uso de instruções/arquiteturas vetoriais

Modificações nas arquiteturas dos processadores para suportar instruções vetoriais

5. Excepções, interrupções e suporte ao multiprocessamento.

6. Sistemas multiprocessador e paralelismo ao nível de tarefas

7. Arquiteturas de memória partilhada simétrica e assimétrica. Protocolos de consistência e sinronização em memória distribuida. MPI e OpenMP.

8. Armazenamento de dados.

Suportes e caracterização das falhas. Desempenho. Sistemas redundantes.

Docente(s) responsável(eis)

Paulo Jorge Carvalho Menezes

Métodos de Avaliação

Avaliação
Exame: 50.0%
Trabalho laboratorial ou de campo: 50.0%

Bibliografia

John L. Hennessy, David A. Patterson, Computer Architecture: A Quantitative Approach, 5th Edition, Morgan Kaufmann, 2011