Arquitetura de Computadores T03

Links importantes:
  1. Grupo do Slack

Metodologia

A disciplina consiste de duas aulas na semana. O objetivo é demonstrar a importância do projeto de hardware no custo, desempenho e e consumo energético de um sistema computacional. A partir de um exemplo comum, um algoritmo de multiplicação de matrizes, discutimos como o projeto de conjunto de instruções pode ser usado para implementar o código, como a organização interna do processador pode ser aproveitada para melhorar o desempenho, a forma com que a organização da memória pode ser aproveitada para diminuir a latência de acesso aos dados e por fim como as arquiteturas paralelas modernas podem otimizar a execução. As aulas são expositivas, sendo que a cada semana um grupo de atividades é liberado para a turma. Por fim, demonstrações práticas de execução de código ajudam a firmar os conceitos apresentados.

Avaliação

Serão 3 notas. Três provas escritas, que devem ser resolvidas de forma individual. Cada prova vale de 0 a 10. A média da disciplina será a média destas 3 notas. Pontos extra podem ser distribuídos para exercícios feitos durante as aulas.

Programa

Data Assunto Comentários Atividades Notas
15/08/2022 Introdução Apresentação da Disciplina; Introdução. Atividade 01 Primeira Nota
17/08/2022 Oito grandes ideias sobre arquitetura de computadores; Por trás do programa.
22/08/2022 Sob as tampas; Tecnologias para construção de processadores e memórias. Atividade 02
24/08/2022 Desempenho
29/08/2022 A barreira da potência; Mudança de mares: Passando de processadores para multiprocessadores; Vida real: Fabricação e benchmarking do Intel Core i7; Falácias e Armadilhas. Atividade 03
31/08/2022 Instruções: A linguagem dos Computadores Introdução; Operações do hardware do computador; Operandos do hardware do computador.
05/09/2022 Números com e sem sinal; Representando instruções no computador; Operações lógicas. Atividade 04
07/09/2022 Instruções para tomada de decisões; Suporte a procedimentos no hardware do computador; Comunicando-se com as pessoas.
12/09/2022 Endereçamento no MIPS para operandos imediatos e endereços de 32 bits; Paralelismo e instruções: sincronização; Traduzindo e iniciando um programa. Atividade 05
14/09/2022 Um exemplo de ordenação em C para juntar tudo isso; Arrays versus ponteiros; Vida real: instruções ARMv7 (32bits)
19/09/2022 Vida real: instruções x86; Vida real: instruções ARMv8 (64bits); Falácias e armadilhas. Atividade 06
21/09/2022 Primeira Prova
26/09/2022 Aritmética Computacional Introdução; Adição e subtração; Multiplicação; Divisão. Atividade 07 Segunda Nota
28/09/2022 Ponto Flutuante.
03/10/2022 Paralelismo e aritmética computacional: paralelismo subword; Vida real: Extensões SIMD streaming e extensões avançadas de vetor no x86; Mais rápido: Paralelismo subword e multiplicação matricial. Atividade 08
05/10/2022 O Processador Introdução
10/10/2022 Visão Geral do Pipelining Atividade 09
12/10/2022 Paralelismo e paralelismo avançado em nível de instrução.
17/10/2022 Vida real: pipelines do ARM Cortex-A8 e Intel Core i7; Mais rápido: Paralelismo em nível de instrução e multiplicação matricial; Falácias e armadilhas. Atividade 10
19/10/2022 Grande e Rápida: Explorando a Hierarquia de Memória Introdução; Tecnologias de Memória.
24/10/2022 Princípios Básicos de Cache; Medindo e melhorando o desempenho da cache. Atividade 11
26/10/2022 Hierarquia de memória estável; Máquinas virtuais; Memória Virtual.
31/10/2022 Uma estrutura comum para hierarquias de memória; Usando uma máquina de estado finito para controlar uma cache simples. Atividade 12
02/11/2022 Feriado Finados
07/11/2022 Segunda Prova Atividade 13 Terceira Nota
09/11/2022 Grande e Rápida: Explorando a Hierarquia de Memória Paralelismo e hierarquias de memória: coerência da cache; Vida real: as hierarquias de memória ARM Cortex-A8 e Intel Core i7; Mais rápido: bloqueio de cache e multiplicação matricial.
14/11/2022 Processadores paralelos do cliente à nuvem Introdução; A dificuldade de criar programas com processamento paralelo; Atividade 14
16/11/2022 SISD, MIMD, SIMD, SPMD e Vetor; Multithreading do hardware;
21/11/2022 Multicore e outros multiprocessadores de memória compartilhada; Introdução às unidades de processamento de gráficos. Atividade 15
23/11/2022 Clusters, computadores em escala warehouse e outros multiprocessadores de passagem de mensagens; Introdução às topologias de rede multiprocessador.
28/11/2022 Benchmarks de multiprocessador e modelos de desempenho. Atividade 16
30/11/2022 Vida real: benchmarking e rooflines do Intel Core i7 960 e GPU NVIDIA Tesla.
05/12/2022 Mais rápido: processadores múltiplos e multiplicação matricial. Atividade 17
07/12/2022 Terceira Prova
12/12/2022 Segunda Chamadas