Curso RISC-V Fundamentals Arquitetura e Programacao Basica

  • DevOps | CI | CD | Kubernetes | Web3

Curso RISC-V Fundamentals Arquitetura e Programacao Basica

24 horas
Visão Geral

Este curso oferece uma introdução completa e prática à arquitetura de conjunto de instruções (ISA) RISC-V, uma inovação aberta e modular que está remodelando o panorama da computação. Do ponto de vista técnico, os participantes irão mergulhar nos princípios de design RISC-V, explorando o conjunto de instruções base (RV32I/RV64I), o formato das instruções, os registradores e o modelo de memória. Serão desenvolvidas habilidades em programação em Assembly RISC-V, permitindo a compreensão direta do fluxo de execução de baixo nível e a interação com o hardware. O curso também abordará, de forma conceitual, a pipeline de execução e a modularidade que torna o RISC-V tão flexível. o domínio do RISC-V é uma vantagem estratégica em um mercado de semicondutores e sistemas embarcados em constante evolução. Por ser uma ISA aberta e livre de royalties, o RISC-V impulsiona a inovação, a personalização e a redução de custos de desenvolvimento, mitigando a dependência de arquiteturas proprietárias. Profissionais com conhecimento em RISC-V estarão aptos a contribuir para o desenvolvimento de hardware, firmware e software em diversas indústrias, como IoT, inteligência artificial, computação de borda e data centers, abrindo novas oportunidades de carreira e posicionando suas organizações na vanguarda da tecnologia.

Objetivo

Após realizar este RISC-V Fundamentals: Arquitetura e Programação Básica, você será capaz de:

  • Compreender os princípios fundamentais e a filosofia por trás da arquitetura RISC-V.
  • Distinguir as características e vantagens do RISC-V em comparação com outras ISAs.
  • Analisar e interpretar o formato das instruções RISC-V base (RV32I/RV64I).
  • Escrever, compilar e executar programas básicos em Assembly RISC-V.
  • Entender o uso dos registradores e o modelo de memória em RISC-V.
  • Implementar estruturas de controle e chamar subrotinas em Assembly RISC-V.
  • Ter uma introdução conceitual ao pipeline de execução e ao manuseio básico de exceções em RISC-V.
  • Identificar o impacto e as oportunidades do RISC-V no mercado de tecnologia.
Publico Alvo
  • Engenheiros de Hardware: Que desejam projetar ou validar processadores baseados em RISC-V.
  • Engenheiros de Firmware e Sistemas Embarcados: Que precisam programar em baixo nível para dispositivos com RISC-V.
  • Desenvolvedores de Software: Interessados em otimização de código, compiladores ou sistemas operacionais para RISC-V.
  • Estudantes de Engenharia Elétrica, de Computação e Ciência da Computação: Que buscam aprofundar seus conhecimentos em arquitetura de computadores.
  • Arquitetos de Sistemas e Pesquisadores: Que avaliam ou exploram novas arquiteturas de hardware.
Pre-Requisitos
  • Conhecimento básico de arquitetura de computadores (processadores, memória, registradores).
  • Familiaridade com conceitos de programação (variáveis, loops, condicionais) em qualquer linguagem de alto nível (preferencialmente C/C++ ou Python).
  • Noções de lógica digital (opcional, mas útil para o entendimento do hardware).
Materiais
Inglês/Português/Lab Prático
Conteúdo Programatico

Módulo I: Introdução à Arquitetura RISC-V (4 horas)

  • 1.1. O que é RISC-V: História, Filosofia e Princípios (1h)
    • Origem e motivações para uma ISA aberta.
    • Filosofia de design "less is more" (RISC - Reduced Instruction Set Computer).
    • Vantagens do RISC-V: liberdade, extensibilidade, modularidade, custo.
  • 1.2. Comparação com Outras ISAs e o Ecossistema RISC-V (1.5h)
    • Contraste com arquiteturas proprietárias (x86, ARM).
    • Componentes do ecossistema: RISC-V International, empresas, projetos de hardware e software.
    • Onde o RISC-V está sendo utilizado (IoT, embarcados, datacenter, AI, etc.).
  • 1.3. Visão Geral da Especificação RISC-V e Configuração do Ambiente (1.5h)
    • A especificação base (RV32I para 32-bit, RV64I para 64-bit).
    • Conceito de extensões padronizadas (M, A, F, D, C).
    • Prática: Instalação e configuração do toolchain RISC-V (GCC, QEMU).

Módulo II: O Conjunto de Instruções Base (RV32I/RV64I) (4 horas)

  • 2.1. Registradores e Modelo de Memória (1.5h)
    • Conjunto de Registradores de Propósito Geral (GPRs): x0 a x31 e suas convenções de uso (ABI).
    • Registradores de Controle e Estado (CSRs) básicos (introdução conceitual).
    • Modelo de endereçamento de memória em RISC-V (byte-addressable).
    • Endianness (Little-endian).
  • 2.2. Formatos de Instrução e Tipos (1.5h)
    • Tipos de instruções RISC-V: R-Type, I-Type, S-Type, B-Type, U-Type, J-Type.
    • Decodificação e interpretação de instruções.
    • Prática: Analisar e decodificar exemplos de instruções RISC-V.
  • 2.3. Instruções Aritméticas, Lógicas e de Memória (1h)
    • Operações com inteiros: ADD, SUB, AND, OR, XOR, SLL, SRL, SRA.
    • Instruções de carga (LOAD): LW, LH, LB (com sinal e sem sinal).
    • Instruções de armazenamento (STORE): SW, SH, SB.
    • Prática: Escrever programas simples em Assembly RISC-V para realizar cálculos e manipular dados na memória.

Módulo III: Fluxo de Controle e Subrotinas (4 horas)

  • 3.1. Saltos Condicionais e Incondicionais (1.5h)
    • Instruções de salto incondicional: JAL (Jump And Link), JALR (Jump And Link Register).
    • Instruções de salto condicional: BEQ (Branch if Equal), BNE (Branch if Not Equal), BLT (Branch if Less Than), BGE (Branch if Greater or Equal), BLTU, BGEU (Unsigned).
    • Prática: Implementar estruturas de controle básicas (IF/ELSE, laços for e while) em Assembly.
  • 3.2. A Pilha (Stack) e Convenção de Chamada de Funções (2h)
    • O conceito de pilha e seu uso para salvar o contexto de execução.
    • Convenção de Chamada de Funções (ABI - Application Binary Interface) do RISC-V.
    • Passagem de argumentos, retorno de valores e salvamento de registradores na pilha.
    • Prática: Criar e chamar subrotinas em Assembly RISC-V, passando parâmetros e retornando valores.
  • 3.3. Introdução à Programação em C para RISC-V (0.5h)
    • Compilação de código C para RISC-V usando GCC.
    • Interação entre C e Assembly (chamadas de funções, inline assembly).
    • Prática: Compilar e executar um programa C simples em QEMU.

Módulo IV: Pipeline, Exceções e Outras Extensões (4 horas)

  • 4.1. Conceitos Básicos de Pipeline (2h)
    • As 5 etapas do pipeline clássico: Fetch, Decode, Execute, Memory, Write-back.
    • Conceito de hazardos de pipeline (data hazards, control hazards) e interlocks.
    • Introdução a branch prediction.
    • Prática: Analisar o fluxo de instruções em um pipeline simplificado (usando diagramas ou simuladores conceituais).
  • 4.2. Interrupções e Exceções (1h)
    • Conceitos de interrupções (assíncronas) e exceções (síncronas).
    • Modos de Privilégio (Machine, Supervisor, User) e CSRs relacionados.
    • Tratamento básico de exceções em Machine Mode (M-Mode).
  • 4.3. Introdução às Extensões Padrão (1h)
    • Extensão M (Multiplicação e Divisão): Instruções e uso.
    • Extensão A (Atômicas): Operações atômicas para concorrência.
    • Visão geral de outras extensões importantes (F, D para ponto flutuante, C para instruções compactadas).
    • Prática: Discutir exemplos de uso das extensões M e A em cenários reais.
TENHO INTERESSE

Cursos Relacionados

Curso Ansible Red Hat Basics Automation Technical Foundation

16 horas

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Curso Ansible Linux Automation with Ansible

24 horas

Ansible Overview of Ansible architecture

16h

Advanced Automation: Ansible Best Practices

32h