Postado 25/ago/2017 -
Carga Horária: 64 horas aula
Período: 4º do Curso de Ciência da Computação
Presença:
Objetivos do curso:
O objetivo deste curso de Arquitetura de Computadores é dar ao aluno um entendimento mais aprofundado do funcionamento de um computador, no nível da CPU. O aluno aprenderá como comparar duas arquiteturas distintas sob o aspecto do desempenho e como são aplicados os benchmarks. Vai entender o funcionamento do conjunto de instruções de uma máquina para poder compreender como os elementos da arquitetura ou da linguagem de máquina são efetivamente usados na execução de um programa escrito em linguagem de alto nível e como suas variações influenciam a implementação eficiente de compiladores. Na segunda metade do curso, para um entendimento mais aprofundado de como é a arquitetura de uma CPU, estudaremos as técnicas de paralelismo a nível de instruções, como as técnicas de pipeline. O curso também aborda multiprocessadores e processamento vetorial, como visão geral de arquiteturas avançadas.
Avaliação:
Slides:
Download Capítulo 1 – Introdução
Download Capítulo 2 – Conjunto de Instruções
Download Capítulo 3 – Elementos do Datapath – caminho de dados e controle
Download Capítulo 4 – Paralelismo a Nível de Instruções
Download Capítulo 5 – Desempenho
Download Capítulo 6 – Multiprocessadores
Trabalhos Práticos:
Implementação do conjunto de instruções do MIPS
Download Exercício valendo nota de 20/9/2018 (EX)
Material:
Notas 2019-2:
Calendário 2019-2:
seg | 12/8/2019 | 1 | Apresentação do programa da disciplina e do contexto. Capítulo 1 - Introdução; Progresso da tecnologia; Desempenho dos processadores; Classes de Computadores; Arquitetura do Conjunto de Instruções (ISA); Exemplo: MIPS; Energia e Potência nos microprocessadores; CPI; Potência estática vs potência dinâmica; Processo de fabricação de chips |
sex | 16/8/2019 | 2 | Capítulo 2 - Arquitetura do conjunto de Instruções. Introdução; Classificação de Arquiteturas de Conjuntos de Instruções; Exemplo de uma arquitetura com acumulador; Combinações Típicas de Operandos; Endereçamento de Memória |
seg | 19/8/2019 | 3 | Modos de Endereçamento; Modos de endereçamento do Intel 8051; Harvard vs Von Neumann; Tipos e Tamanhos de Operandos; Instruções para Fluxo de Controle; Operações no Conjunto de Instruções; Codificação de Um Conjunto de Instruções; Exemplo: Intel 80x86 |
sex | 23/8/2019 | 4 | A arquitetura MIPS; Codificando Instruções MIPS; Exemplos |
seg | 26/8/2019 | 5 | A arquitetura MIPS; Codificando Instruções MIPS; Exemplos |
sex | 30/8/2019 | 6 | A arquitetura MIPS; Codificando Instruções MIPS; Exemplos |
seg | 2/9/2019 | 7 | Capítulo 3 - O Caminho de dados monociclo do MIPS. Introdução; Uma implementação MIPS básica; Sinopse da implementação; Multiplexadores (muxes) |
sex | 6/9/2019 | 8 | Sinais de controle; Implementação monociclo; Metodologia de clocking; Construindo um caminho de dados; Unidade de Controle |
seg | 9/9/2019 | 9 | Operação do caminho de dados; operações básicas da ALU, Loads e Stores |
sex | 13/9/2019 | 10 | Operação do caminho de dados; operações básicas da ALU, Loads e Stores |
seg | 16/9/2019 | 11 | Operação do caminho de dados; Desvios condicionais e jumps incondicionais |
sex | 20/9/2019 | 12 | Operação do caminho de dados; Implementando outras operações: JAL, JR, LUI, SLL, SRL, etc |
seg | 23/9/2019 | 13 | Assembly do MIPS: Convenções para chamada de procedimento e Chamadas de Sistema |
sex | 27/9/2019 | 14 | Assembly do MIPS: Algoritmos recursivos |
seg | 30/9/2019 | 15 | Assembly do MIPS: Algoritmos recursivos |
sex | 4/10/2019 | 16 | Exercício: Codificação de um algoritmo recursivo em MIPS |
seg | 7/10/2019 | 17 | Implementação Multiciclo |
sex | 11/10/2019 | 18 | Implementação Multiciclo |
seg | 14/10/2019 | recesso | |
sex | 18/10/2019 | 19 | P1 |
seg | 21/10/2019 | Semana Academica | |
sex | 25/10/2019 | Semana Academica | |
seg | 28/10/2019 | dia do servidor público | |
sex | 1/11/2019 | 20 | Capítulo 4 - Introdução; Ciclo único versus pipeline; Projetando o conjunto de instruções; Pipeline Hazards Pipeline Hazards; Caminho de dados usando o pipeline; |
seg | 4/11/2019 | 21 | Diagramas de Pipeline; Controle do Pipeline; Hazard de dados e forwarding; |
sex | 8/11/2019 | 22 | Detecção do Hazard ; Hazard de dados e forwarding; Hazard de dados e stalls |
seg | 11/11/2019 | 23 | Hazard de desvios; Caminho de dados completo; Exceções |
sex | 15/11/2019 | proclamação da república | |
seg | 18/11/2019 | 24 | Capítulo 5 - Desempenho; Tempo de Execução; Ciclos de Clock; Escala de integração e Desempenho; CPI (Ciclos de Clock por Instrução); Número de Instruções; MIPS (Milhões de Instruções por Segundo); Benchmarks; Lei de Moore; Lei de Amdahl |
sex | 22/11/2019 | 25 | Exercícios |
seg | 25/11/2019 | 26 | Lei de Amdahl e princípio da Localidade; Exercícios e Exemplos Resolvidos; Gargalo de Von Newmann; Influência dos Dispositivos de I/O, memória e Barramentos; Como melhorar a arquitetura |
sex | 29/11/2019 | 27 | Capítulo 6 - Introdução; Programando multiprocessadores; O problema do speed-up; Multiprocessadores conectados por um único barramento; Exemplo de programa paralelo; Coerência de cache em multiprocessadores; Sincronização; Multiprocessadores Conectados por Rede; Clusters; Topologias de rede; Multiprocessadores dentro de um Chip e Multithreading; O Cluster Google; Categorias de Paralelismo (Flynn,1966); Computadores SIMD; Computadores Vetoriais; Computadores MIMD |
seg | 2/12/2019 | 28 | Cálculo do speed-up em um sistema multiprocessado |
sex | 6/12/2019 | 29 | P2 |
seg | 9/12/2019 | 30 | VR |
sex | 13/12/2019 | 31 | VS |
Bibliografia:
[1] Organização e Projeto de Computadores – a interface hardware/software (3ª Edição) – David A. Patterson, John L. Hennessy
[2] Organização e Projeto de Computadores – a interface hardware/software (2ª Edição) – David A. Patterson, John L. Hennessy
[3] Arquitetura de Computadores Uma Abordagem Quantitativa, John L. Hennessy e David A. Patterson, Tradução da 3ª Edição Americana, Ed. Campus
[4] Computer Architecture: Quantitative Approach, John L. Hennessy e David A. Patterson, Fifth Edition, Elsevier