Arquitectura de Computadores

Ano
0
Ano lectivo
2019-2020
Código
02000605
Área Científica
Sistemas Digitais e 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.

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 teórico-práticas em que se pretende que os alunos, com a orientação do docente, resolvam alguns exercícios de aplicação prática, que exijam a conjugação de conceitos teóricos distintos e promovam o raciocínio crítico face a problemas mais complexos.

Aulas laboratoriais com desenvolvimento de trabalhos com interpretação de resultados.

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 para alto desempenho, e fornecer experiência em desenvolvimento de software de alto desempenho. As competências adquiridas nesta unidade curricular constituem as bases para o desenvolvimento de sistemas computacionais e aplicações com maior 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. Sistemas multiprocessador e paralelismo ao nível de tarefas

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

6. 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
Trabalho laboratorial ou de campo: 40.0%
Exame: 60.0%

Bibliografia

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