Fundamentos do projeto de computadores (mercados, custo, preço e desempenho). Arquiteturas de conjuntos de instruções (máquinas baseadas em acumulador, pilha e registradores, máquinas load-store). Arquiteturas RISC, CISC e DSP. Pipelining e emissão múltipla (máquinas superescalares e VLIW). Exploração de paralelismo entre instruções (escalonamento estático e dinâmico, previsão estática e dinâmica de desvios, execução especulativa, software pipelining, trace scheduling). Projeto de hierarquia de memória.
3. Cursos Relacionados
CIÊNCIAS DA COMPUTAÇÃO (208) - Currículo: 2007-1 (Optativa)
Apresentar os princípios quantitativos do projeto de computadores e aplicá-los especialmente ao projeto de processadores e ao projeto da hierarquia e memória.
4.2 Objetivos Específicos:
Revisar os princípios de projeto de conjuntos de instruções, sua classificação, sua codificação e o papel do compilador na seleção e escalonamento de instruções.
Revisar os principais conceitos de hierarquia de memória, apresentar as tecnologias utilizadas em sua implementação e as principais técnicas de otimização de caches.
Apresentar técnicas de exploração de paralelismo entre instruções (instruction-level parallelism).
Apresentar técnicas de suporte à exploração de paralelismo entre threads (thread-level parallelism).
5. Conteúdo Programático
PRINCÍPIOS DE CONJUNTOS DE INSTRUÇÕES [12 horas-aula]
Classificação de conjuntos de instruções
Endereçamento de memória, tipo e tamanho de operandos
Tipos de instruções e sua codificação
O papel do compilador
PROJETO DE HIERARQUIA DE MEMÓRIA [12 horas-aula]
Conceitos básicos
Tecnologias de implementação de memória
Técnicas de otimização de caches
PARALELISMO ENTRE INSTRUÇÕES [24 horas-aula]
Conceitos básicos e desafios
Técnicas de compilação básicas para expor paralelismo
Previsão de desvios para reduzir o custo de hazards de controle
Escalonamento dinâmico para contornar hazards de dados
Especulação baseada em hardware
Exploração de paralelismo com emissão múltipla e escalonamento estático
Exploração de paralelismo com emissão múltipla, escalonamento dinâmico e especulação
Técnicas avançadas para entrega de instruções e especulação
PARALELISMO ENTRE THREADS [24 horas-aula]
Memória compartilhada centralizada
Memória compartilhada distribuída
Protocolos de coerência de cache
Mecanismos básicos de sincronização
Modelos de consistência de memória
6. Bibliografia Básica
John L. Hennessy and David A. Patterson, ?Computer Architeture: A Quantitative Approach?, sixth edition, Morgan Kaufmann Publishers, 2018. (ISBN: 978-0-12-811905-1)
7. Bibliografia Complementar
David A. Patterson and John L. Hennessy, ?Computer Organization and Design: The Hardware/Software Interface?, fifth edition, Morgan Kaufmann Publishers, 2014. (ISBN: 978-0-12-407726-3)