Arquitectura de Computadores

Ano
0
Ano lectivo
2014-2015
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, c/ exp. detalhada dos conceitos, princípios e teorias fundamentais e c/ a resolução de exerc. práticos elementares que concretizem o interesse prático da matéria e exemplifiquem a sua aplicação a situações reais. Aulas teórico-práticas em que se pretende que os alunos, c/ a orientação do docente, resolvam alguns exerc. 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 dos resultados.

Resultados de Aprendizagem

Esta disciplina tem como objectivos introduzir as técnicas fundamentais em que se baseia a computação de alto desempenho, 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 permitirão o desenvolvimento de sistemas computacionais e aplicações com maior desempenho e que explorem o processamento paralelo.

Estágio(s)

Não

Programa

1. Fundamentos de Arquitetura de Computadores

- Revisão de conceitos básicos

- Estado atual da tecnologia

- Métricas para a avaliação de desempenho

- Princípios quantitativos

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

- Execução paralela de instruções

- Conflitos e bolhas no pipeline.

- Técnicas de compilação para expor paralelismo e redução de bolhas

- Limitações no utilização do paralelismo das instruções.

3. Hierarquia de memória

-Localidade espacial e temporal.

- Técnicas para optimizar o desempenho da cache

- Tecnologia de memórias e optimizações

- Questões de proteção. Memória virtual e máquina virtual.

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

- Arquiteturas de memória partilhada simétrica

- Memória partilhada distribuída e consistência

- Aspectos básicos de sincronização

-Programação paralela com MPI e OpenMP

5. Armazenamento de dados

-Suportes de armazenamento

- Definição e exemplos de falhas

- Desempenho ao nível de I/O

-Sistemas Redundantes

Docente(s) responsável(eis)

Paulo Jorge Carvalho Menezes

Métodos de Avaliação

Avaliação
A avaliação consiste em duas partes: a primeira que consiste num exame final com peso de 60% e outra composta trabalhos laboratoriais e projectos que terá um peso de 40% no resultado final. : 100.0%

Bibliografia

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