Arquitetura de Computadores - PPGComp

Avisos:

  • Bem-Vindos!


-Ementa

Revisão dos conceitos básicos de arquitetura de computadores: conjunto de instruções, pipeline e cache; paralelismo no nível de instrução: pipeline e superscalaridade; Organização da memória: cache e memória virtual; Arquiteturas multiprocessadas: CMP e SMP.


-C/H

60 horas


-Bibliografia

  • JOHN L. HENNESSY AND DAVID A. PATTERSON. 2011. Computer Architecture, Fifth Edition: A Quantitative Approach (5th ed.).Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.

  • DAVID A. PATTERSON AND JOHN L. HENNESSY. 2013. Computer Organization and Design: The Hardware/Software Interface (5th ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.

  • JACK DONGARRA, IAN FOSTER, GEOFFREY FOX, WILLIAM GROPP, KEN KENNEDY, LINDA TORCZON, AND ANDY WHITE (Eds.). 2003. ​ Sourcebook of Parallel Computing ​ . Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.

  • PETER PACHECO. 2011. ​ An Introduction to Parallel Programming (1st ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.

+ artigos e materiais (Links ao longo do Conteúdo Programático)


Conteúdo Programático

--PARTE I - Prof. Marcio Oyamada

1. Introdução

  • Conceitos de arquitetura e organização de computadores

  • RISC x CISC

  • Programação em linguagem de máquina

  • Métricas e avaliação de desempenho de processadores

2. Processador

  • Pipeline: caminho de dados e controle

  • Hazard de dados

  • Hazard de controle

  • Paralelismo de instruções

3. Hierarquia de Memória

  • Cache: tamanho, associatividade

  • Memória virtual

  • Coerência de caches


--PARTE II - Prof. Guilherme Galante

4. Arquiteturas Paralelas

  • Tipos e níveis de paralelismo

  • Conceitos de execuções paralelas e concorrentes

  • Classificação de arquiteturas paralelas

  • Multiprocessadores e Multicores

  • Multicomputadores

  • Arquiteturas Vetoriais e GPUs

5. Introdução a ambientes e ferramentas de programação paralela

  • Programação em memória compartilhada: OpenMP

  • Programação em memória distribuída: MPI

  • Programação em aceleradores: OpenACC