Objetivo
Apresentar técnicas e conceitos usados no desenvolvimento de processadores modernos:
- Paralelismo em nível de instrução (ILP)
- Pipelining
- Branch prediction
- Execução de instrução fora-de-ordem
- Superescalares
- Paralelismo em nível de threads (TLP)
- Multiprocessadores
- Protocolos de coerência de cache
- APIs de programação paralela
- Entre outros …
Ementa
ARQUITETURA DE CONJUNTO DE INSTRUÇÕES, ANÁLISE DE CUSTO, DESEMPENHO E GASTO DE ENERGIA. CONCEITO DE CACHE, OTIMIZAÇÕES DE DESEMPENHO DE CACHE. MEMÓRIA VIRTUAL. MÁQUINAS VIRTUAIS. CONCEITO DE PIPELINE. PREDIÇÃO DE DESVIOS. ESCALONAMENTO DINÂMICO. ESPECULAÇÃO POR HARDWARE. ARQUITETURA VETORIAL. INSTRUÇÕES SIMD PARA MULTIMÍDIA. GPUS. DETECÇÃO DE PARALELISMO NO NÍVEL DE LAÇO. ARQUITETURAS DE MULTIPROCESSADORES COM MEMÓRIA COMPARTILHADA COM ACESSO UNIFORME E NÃO UNIFORME À MEMÓRIA. CONCEITOS BÁSICOS DE SINCRONIZAÇÃO. CONCEITOS BÁSICOS DE CONSISTÊNCIA DE MEMÓRIA.
Conteúdo Programático
Introdução ao Projeto de Sistemas Computacionais
- Contextualização e Breve Revisão da Arquitetura Multicamada, Multi-Linguagem
- Métricas de Avaliação: Desempenho, Custos
Arquiteturas de Conjunto de Instruções
- Projeto de Construção de um Conjunto de Instruções
- Implementação MIPS: Monociclo e Multiciclo
Projeto de Hierarquia de Memória
- Revisão dos Conceitos e Funcionamento de Caches
- Otimização de Desempenho de Cache
- Coerência de Caches
Conceito de Pipelining
- Funcionalidade e Limitação (Dependências/Hazards)
- Técnicas de Otimização Estática e Dinâmica
- Predição de Desvios e Execução Especulativa
Arquiteturas Paralelas
- Taxonomia de Flynn
- Máquinas Superescalares e VLIW
- Paralelismo em Arquiteturas SIMD
- Processadores Vetoriais
- Visão de Arquiteturas de GPGPUS
- Extensões SIMD em Conjuntos de Instruções (ISAS) modernos
- Arquiteturas MIMD
- Multiprocessadores com Memória Compartilhada
- Multiprocessadores com Memória Distribuída
Aulas
Bibliografia
Organização e Projeto de Computadores – A Interface Hardware/Software. David A. Patterson e John L. Hennessy, Edição 5, 2017
Arquitetura de Computadores – Uma Abordagem Quantitativa. David A. Patterson e John L. Hennessy, Edição 6, 2017
Arquitetura e Organização de Computadores. William Stalling, Edição 10, 2015