Curso de Organização e arquitetura de computadores

Curso online gratuito · Intermediário · 6 aulas

Estude a interface entre hardware e software: desempenho, lógica digital, o conjunto de instruções RISC-V, aritmética computacional, caminho de dados e pipeline, caches e memória virtual e processadores paralelos. Ao final, você consegue explicar e estimar como o código roda no hardware real.

Por Studeli

Comece pela aula 1

Este curso de Arquitetura de computadores é para você?

Para quem é

Comece aqui se você entende conceitualmente como os computadores funcionam, programa um pouco e quer entender como instruções, processadores e sistemas de memória são construídos e por que o desempenho do software depende deles.

O que você precisa saber antes

O que você vai aprender em 6 aulas

Cada aula inclui as nove ferramentas de estudo

  • Guia de Estudo
  • Resumo
  • Lições Interativas
  • Questões de Prática
  • Flashcards
  • Explicar
  • Termos-Chave
  • Folha de Revisão
  • Mapa Conceitual
  1. Explique as camadas de abstração dos aplicativos até os transistores e meça o desempenho com tempo de execução, CPI, frequência de clock e lei de Amdahl.

    5 objetivos de aprendizagem
    1. 1.Descrever as camadas de um sistema computacional e sua interface entre hardware e software
    2. 2.Definir e medir o desempenho de computadores
    3. 3.Prever o tempo de execução com a equação de desempenho
    4. 4.Usar a lei de Amdahl para estimar o benefício de uma melhoria
    5. 5.Explicar a barreira de potência e a transição para processadores de múltiplos núcleos
  2. Leia e escreva programas simples em linguagem de montagem RISC-V e explique como instruções, registradores, endereçamento de memória e chamadas de procedimentos implementam código de alto nível.

    6 objetivos de aprendizagem
    1. 1.Descrever o funcionamento de instruções, registradores e operandos em memória
    2. 2.Calcular, comparar e controlar o fluxo de um programa
    3. 3.Codificar e decodificar instruções de máquina RISC-V
    4. 4.Implementar chamadas de procedimentos com registradores e a pilha
    5. 5.Acompanhar um programa do código-fonte a um processo em execução
    6. 6.Comparar projetos de conjuntos de instruções RISC e CISC
  3. Explique como o hardware soma, subtrai, multiplica e divide inteiros, detecta estouro e representa e arredonda números de ponto flutuante.

    5 objetivos de aprendizagem
    1. 1.Somar e subtrair inteiros e detectar estouro
    2. 2.Projetar uma unidade lógica e aritmética
    3. 3.Multiplicar e dividir inteiros em hardware
    4. 4.Representar números reais em ponto flutuante IEEE 754
    5. 5.Calcular e arredondar com números de ponto flutuante
  4. Acompanhe instruções por um caminho de dados de ciclo único e por um caminho de dados segmentado em pipeline e explique como os conflitos são tratados com adiantamento de dados, paradas e previsão de desvios.

    5 objetivos de aprendizagem
    1. 1.Construir um caminho de dados de ciclo único
    2. 2.Projetar a unidade de controle do processador de ciclo único
    3. 3.Segmentar o caminho de dados em pipeline
    4. 4.Detectar e resolver conflitos de dados
    5. 5.Tratar conflitos de controle e prever desvios
  5. Explique como as caches aproveitam a localidade, calcule taxas de acerto e o tempo médio de acesso à memória e descreva como a memória virtual e as TLBs se integram à hierarquia.

    6 objetivos de aprendizagem
    1. 1.Explicar por que os computadores usam uma hierarquia de memória
    2. 2.Localizar dados em caches de mapeamento direto e associativas por conjunto
    3. 3.Explicar faltas na cache e políticas de escrita
    4. 4.Calcular o desempenho da cache
    5. 5.Explicar como a memória virtual e as TLBs se integram à hierarquia
    6. 6.Escrever programas que considerem o funcionamento da cache
  6. Compare o paralelismo em nível de instrução, de dados e de thread e explique como processadores de múltiplos núcleos, GPUs e aglomerados de computadores dividem o trabalho e mantêm a memória coerente.

    5 objetivos de aprendizagem
    1. 1.Explicar de onde vem o paralelismo e como o hardware paralelo é classificado
    2. 2.Prever e medir os limites da aceleração paralela
    3. 3.Explorar o paralelismo em nível de dados com SIMD, processadores vetoriais e GPUs
    4. 4.Compartilhar memória entre núcleos e manter as caches coerentes
    5. 5.Explicar como aglomerados de computadores e computadores em escala de centro de dados distribuem trabalho pelas redes
Introdução à ciência da computação (Básico)

Comece aqui se você quer um primeiro contato amplo e conceitual com a ciência da computação (como funcionam computadores, dados, algoritmos e a internet) antes ou junto da sua primeira disciplina de programação.

Crie seus próprios Materiais de Estudo

Transforme suas anotações, slides e documentos em Guias de Estudo, Questões de Prática, Flashcards e mais 6 ferramentas.

Começar