Curso RISC-V Fundamentals Arquitetura e Programacao Basica
24 horasVisã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áticoConteú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
ax31
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).
- Conjunto de Registradores de Propósito Geral (GPRs):
- 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
ewhile
) 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.