MINISTÉRIO DA EDUCAÇÃO

UNIVERSIDADE FEDERAL DE SANTA CATARINA

CENTRO TECNOLÓGICO

DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA

PROGRAMA DE ENSINO

1. Identificação

Disciplina:INE5436 - Arquitetura de Computadores I
Nível:Graduação
Carga Horária:72 horas-aula (Teórica: 72)
Vigência:De 2018-2 até a presente data

2. Ementa

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

4. Objetivos

4.1 Objetivo Geral:

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:

  1. 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.
  2. 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.
  3. Apresentar técnicas de exploração de paralelismo entre instruções (instruction-level parallelism).
  4. Apresentar técnicas de suporte à exploração de paralelismo entre threads (thread-level parallelism).

5. Conteúdo Programático

  1. PRINCÍPIOS DE CONJUNTOS DE INSTRUÇÕES [12 horas-aula]
    1. Classificação de conjuntos de instruções
    2. Endereçamento de memória, tipo e tamanho de operandos
    3. Tipos de instruções e sua codificação
    4. O papel do compilador
  2. PROJETO DE HIERARQUIA DE MEMÓRIA [12 horas-aula]
    1. Conceitos básicos
    2. Tecnologias de implementação de memória
    3. Técnicas de otimização de caches
  3. PARALELISMO ENTRE INSTRUÇÕES [24 horas-aula]
    1. Conceitos básicos e desafios
    2. Técnicas de compilação básicas para expor paralelismo
    3. Previsão de desvios para reduzir o custo de hazards de controle
    4. Escalonamento dinâmico para contornar hazards de dados
    5. Especulação baseada em hardware
    6. Exploração de paralelismo com emissão múltipla e escalonamento estático
    7. Exploração de paralelismo com emissão múltipla, escalonamento dinâmico e especulação
    8. Técnicas avançadas para entrega de instruções e especulação
  4. PARALELISMO ENTRE THREADS [24 horas-aula]
    1. Memória compartilhada centralizada
    2. Memória compartilhada distribuída
    3. Protocolos de coerência de cache
    4. Mecanismos básicos de sincronização
    5. Modelos de consistência de memória

6. Bibliografia Básica

  1. 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

  1. 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)