Contacto WhatsApp 963640100

Universidade Lusófona

Arquiteturas Avançadas de Computadores

Curso

Engenharia Informática

Grau|Semestres|ECTS

Licenciatura | Semestral | 6

Ano | Tipo de unidade curricular | Lingua

2 |Obrigatório |Português

Total de horas de Trabalho | Tempo de Contacto (horas)

168 | 60

Código

ULHT260-13398

Disciplinas complementares recomendadas

Não aplicável

Pré-requisitos e co-requisitos

Não aplicável

Precedências

Não

Estágio profissional

Não

Conteúdos Programáticos

1 Introdução
O que está subjacente a um programa
Componentes de um computador
Desempenho
A barreira da potência
A grande mudança: uniprocessador/multiprocessador

2 Processador
Principais módulos funcionais
Desenho de circuitos lógicos
Implementação de um circuito de dados
Condutas e seus riscos
Outras formas de paralelismo: emissão múltipla, execução fora de ordem

3 Hierarquia de Memória
Tecnologias de armazenamento
Memória cache
Memória virtual
Coerência entre caches
Confiabilidade na hierarquia de memória
RAID

4 Arquiteturas Paralelas
Limites de frequência, dissipação de energia e memória
Paralelismo e limites ao aumento de desempenho
SIMD e processadores vetoriais
Multithreading
Arquiteturas de multiprocessador; aglomerados e computação em grelha
GPUs
Medição de desempenho

5 Virtualização
Origens e definição do conceito de máquina virtual
Conceito de hipervisor
Variantes de implementação
Máquinas virtuais de sistema: virtualizar CPU, memória, periféricos
Exemplos: Xen, KVM

Objetivos

"Esta UC pretende apresenta as evoluções recentes na arquitetura de computadores (processadores multicore, GPUs, suporte à virtualização), de forma a dar aos alunos uma compreensão detalhada da sua estrutura e funcionamento. Estas evoluções são responsáveis pelos avanços atuais observados a nível funcional e de desempenho, em infraestruturas, sistemas operativos, e aplicações.

Conhecimentos, capacidades e competências a adquirir

É pretendido que, no final desta UC, os alunos detenham conhecimentos sobre os componentes de hardware de um computador moderno de um ponto de vista funcional. Esta competência é diretamente aplicável nos domínios do hardware e da administração de sistemas, e indiretamente aplicável no domínio do software ¿ permitindo formar futuros engenheiros informáticos que tomem decisões de análise, desenho e implementação de software que tirem partido das capacidades do hardware e/ou tenham em conta as eventuais limitações destas.

Metodologias de ensino e avaliação

Tendo em conta os objetivos, a metodologia utilizada deverá basear­-se em dois aspetos fundamentais. (1) Abordagem expositiva dos principais temas do programa, levando o aluno a entender os fundamentos dos novos conceitos introduzidos nos últimos anos nas arquiteturas de processadores. O aluno é encorajado a realizar o seu percurso formativo de forma autónoma, baseando-­se nos conhecimentos já adquiridos, e completando­-os com novos elementos adquiridos. (2) Orientação para uma aprendizagem aberta, baseada no fazer e na pesquisa, através de conceção e programação de casos práticos concretos com base no microcomputador integrado Raspberry Pi e com o auxílio de breadboards, LEDs, sensores de temperatura, e outros componentes eletrónicos. A avaliação é contínua, baseada em vários testes e TPCs teóricos (50%) e nos resultados obtidos nos trabalhos de laboratório realizados ao longo do semestre (50%)¿ cada componente está sujeita a uma nota mínima de 8,00 valores.

Bibliografia principal

Principal / required:
Patterson, D.A., & Hennessy, J.L. (2013). Computer Organization and Design: The Hardware/Software Interface (5th ed.). Morgan Kaufmann.

Recomendada / recommended:
Barham, P., et al. (2003). Xen and the art of virtualization. In SOSP '03. New York, NY, USA: ACM. doi:10.1145/945445.945462
Barroso, L.A., Dean, J., & Hölzle, U. (2003). Web Search for a Planet: the Google Cluster architecture. IEEE Micro, 23(2), 22­28. doi: 10.1109/MM.2003.1196112
Hennessy, J.L., & Patterson, D.A. (2011). Computer Architecture: A Quantitative Approach (5th ed.). Morgan Kaufmann.
Kivity, A., et al. (2007). kvm: the linux virtual machine monitor. In 2007 Linux Symposium (pp. 225­230).
Popek, G.J., & Goldberg, R.P. (1974). Formal requirements for virtualizable third generation architectures. Communications of the ACM 17(7), 412­421. doi:10.1145/361011.361073
Smith, J., & Nair, R. (2005). Virtual Machines: Versatile Platforms for Systems and Processes. Morgan Kaufmann.