Apresentar conceitos avançados de arquitetura de computadores e técnicas de projeto de elementos arquiteturais e processadores. Estudar os aspectos arquiteturais de suporte ao paralelismo em todas as suas formas, hierarquia de memórias avançadas, suporte ao sistema operacional, proteção de dados e virtualização. Entender e aplicar análise de desempenho, consumo de energia, custo e área.
Hierarquia de memória avançada e distribuída. Análise de desempenho em arquiteturas paralelas. Paralelismo de instrução, dados e thread. Suporte ao paralelismo. Arquiteturas de datacenter, datawarehouse e suporte a virtualização.
Hierarquia de memória avançada, cache multinível e distribuída: caracterização, construção e análise. Análise de desempenho de arquiteturas pipeline. Arquiteturas superpipeline e superescalar. Paralelismo de instrução: suporte ao compilador, previsão de desvios avançada, escalonamento dinâmico, e execução especulativa. Paralelismo de dados: arquiteturas vetoriais, SIMD e GPU. Paralelismo em thread: memórias centralizadas, compartilhadas simétricas e distribuídas. Arquiteturas multithread e multicore. Arquiteturas de datacenter, datawarehouse e suporte a virtualização. Tópicos avançados em arquiteturas de computadores. Aplicação dos conceitos e tecnologias estudadas em um projeto de sistema não-trivial. Implementação em VHDL com síntese para FPGA e ASIC.
1. “Computer Architecture - A Quantitative Approach”, John L. Hennessy & David A. Patterson. Morgan Kaufmann, 6 edição, 2017. 2. Tradução: “Arquitetura de Computadores - Uma Abordagem Quantitativa”, John L. Hennessy & David A. Patterson. GEN LTC, 6 edição, 2019. ISBN-10: 8535291741. ISBN-13: 978-8535291742