FAEX • Arquitetura de Computadores • Semana 07

ISA RV32I: da instrução em Assembly aos 32 bits

Na Semana 06 acompanhamos por onde uma instrução passa. Nesta semana vamos compreender como a própria palavra de instrução informa ao processador o que fazer.

Pergunta PBL: qual conjunto mínimo de instruções é suficiente para expressar a carga de controle e manter uma decodificação regular?

0 de 7 etapas exploradas

1. ISA, 32/64 bits e RISC/CISC

Referências: Harris & Harris, cap. 6; Stallings, caps. 13, 14 e 17; Nisan & Schocken, cap. 4; RISC-V Unprivileged ISA Specification, RV32I e RV64I.

Pergunta central: o que o software precisa conhecer para pedir uma operação ao processador?

O que é uma ISA?

A ISA (Instruction Set Architecture) é o contrato visível entre software e hardware. Ela define quais instruções existem, como são representadas e qual efeito arquitetural cada instrução deve produzir.

A ISA defineExemplo
instruções disponíveisADD, LW, SW, BEQ
registradores visíveisx0 a x31
formatos e camposopcode, rd, rs1, rs2, imediato
efeito arquiteturalrd ← rs1 + rs2

Regra prática: a ISA diz o que deve acontecer; a microarquitetura define como o processador realiza isso internamente.

Do Assembly para a máquina

Forma legívelADD x3, x1, x2
→
ISAcampos e regras
→
Palavra de máquina0x002081B3
Exemplo: o processador não “lê” a palavra ADD. Ele recebe 32 bits e usa as regras da ISA para descobrir que aqueles bits significam uma soma entre registradores.

O que significa 32 ou 64 bits?

XLEN / registradores inteiros

Em RV32I, XLEN = 32: os registradores inteiros possuem 32 bits. Em RV64I, XLEN = 64: os registradores inteiros possuem 64 bits.

Espaço de endereços

RV32I trabalha com endereços inteiros de 32 bits no modelo base; RV64I amplia o espaço de endereçamento suportado para 64 bits.

Tamanho da instrução

64 bits no registrador não significa instrução de 64 bits. As instruções-base de RV32I têm 32 bits, e RV64I mantém os formatos-base de 32 bits. Extensões podem acrescentar outros comprimentos.

CaracterísticaRV32IRV64I
XLEN32 bits64 bits
Registradores x0–x3132 bits cada64 bits cada
Operações inteiras principaissobre 32 bitssobre 64 bits
Formato-base das instruções32 bitscontinua baseado nas codificações de 32 bits

RISC e CISC: diferentes decisões de projeto

RISC e CISC descrevem características do conjunto de instruções. A comparação ajuda a entender por que o RISC-V privilegia regularidade de formatos e operações simples.

AspectoRISC — exemplo: RISC-VCISC — exemplo: x86-64
Formatostendem a ser mais regularespodem ser mais variados
Comprimento das instruçõeso conjunto-base RISC-V usa codificações de 32 bits; extensões podem adicionar outros comprimentoscomprimento variável
Acesso à memóriaarquitetura load/store: operações aritméticas usam registradores; load/store acessam memóriamuitas instruções podem combinar operação e acesso à memória
Modos de endereçamentotendem a ser mais simplespodem ser mais numerosos e complexos
Decodificaçãoregularidade ajuda a localizar campospode exigir análise de instruções de formatos e tamanhos diferentes

Resumo da etapa: 32/64 bits descrevem principalmente a largura arquitetural dos dados inteiros; não devem ser confundidos automaticamente com o tamanho de cada instrução. RISC e CISC representam decisões diferentes de desenho de ISA.

Nesta semana, o foco é compreender e especificar a codificação do subconjunto MiniRV. O montador completo será desenvolvido na Semana 08.