Punto de partida

Ingeniería de computadores: de la instrucción a las puertas lógicas

Un procesador se puede estudiar a varios niveles: qué instrucciones entiende, cómo las lee, cómo cambian su estado, cómo las solapa en el tiempo y con qué circuitos hace cada cálculo. En esta página seguimos una sola instrucción por todos esos niveles y enlazamos la herramienta que permite comprobar cada paso.

1. La ISA: un contrato entre software y hardware

La arquitectura del repertorio de instrucciones (ISA) define qué instrucciones existen, qué hace cada una y cómo se codifica en bits. RISC-V es una ISA abierta; su base entera de 32 bits, RV32I, tiene 40 instrucciones de 32 bits de ancho. Tomemos add a2, a0, a1: la especificación dice que suma los registros a0 y a1 y deja el resultado en a2, y que se codifica como la palabra 0x00B50633.

2. Decodificar: leer los campos de la palabra

El hardware no «lee» texto: separa la palabra en campos de posición fija. Los 7 bits bajos (opcode) dicen que es una operación registro-registro (formato R); funct3 y funct7 eligen la suma; y tres campos de 5 bits dan los números de registro. Esta es la descomposición que hace el decodificador del sitio:

0x00B50633 · R-Type
CampoBitsBinarioSignificado
funct7[31:25]0000000distingue variantes (0100000 = sub/sra)
rs2[24:20]01011registro x11 (a1)
rs1[19:15]01010registro x10 (a0)
funct3[14:12]000selecciona la operación dentro del grupo
rd[11:7]01100registro x12 (a2)
opcode[6:0]0110011grupo OP
Instrucciónadd a2, a0, a1

Puedes repetirla con cualquier palabra en el decodificador RISC-V.

3. Ejecutar: cambiar el estado del procesador

Ejecutar la instrucción es aplicar su efecto al estado visible: los 32 registros y el contador de programa (PC). Si antes cargamos a0 = 5 y a1 = 7, después de add el registro a2 vale 12 y el PC avanza 4 bytes.

addi a0, zero, 5
addi a1, zero, 7
add  a2, a0, a1

El depurador RISC-V ejecuta este programa instrucción a instrucción y resalta el registro que cambia en cada paso.

4. Segmentar: solapar instrucciones en el tiempo

Un procesador segmentado divide cada instrucción en etapas (IF, ID, EX, MEM, WB) y empieza una nueva en cada ciclo. El problema aparece cuando una instrucción necesita un resultado que la anterior todavía no ha escrito. En el programa de arriba, add necesita a1 justo después de calcularlo: sin forwarding, el simulador la hace esperar 3 ciclos (10 ciclos en total); con forwarding, el valor se reenvía desde la etapa siguiente y no hay espera (7 ciclos).

Compruébalo en el simulador de pipeline activando y desactivando el forwarding.

5. Lógica digital: el circuito que suma

La suma la hace la ALU, que está construida con puertas lógicas. Un sumador de 32 bits encadena sumadores completos de 1 bit; cada uno recibe A, B y el acarreo de entrada C y produce un acarreo de salida que vale 1 cuando al menos dos entradas valen 1. En un mapa de Karnaugh esa función ocupa las celdas 3, 5, 6 y 7:

A \ BC00011110
000011302
104151716
Cout(A, B, C) = Σm(3, 5, 6, 7)

Los tres grupos de dos celdas dan Cout = BC + AC + AB: tres puertas AND de 2 entradas y una OR de 3, en lugar de los cuatro productos de 3 variables de la tabla de verdad. Ábrelo en el minimizador de Karnaugh.

Por dónde seguir

Qué no cubre este sitio

Las herramientas se centran en la base entera RV32I y en lógica combinacional. No simulan memoria caché, jerarquía de memoria, la ISA privilegiada, excepciones ni extensiones como M, F o C, y el minimizador no trata circuitos secuenciales (biestables o máquinas de estados). Cada página de herramienta detalla sus límites concretos.

Referencias

  • The RISC-V Instruction Set Manual, Volume I: Unprivileged Architecture (RISC-V International) — definición de RV32I, formatos de instrucción, codificación de inmediatos y registro x0
  • D. A. Patterson, J. L. Hennessy — Computer Organization and Design RISC-V Edition: The Hardware/Software Interface (Morgan Kaufmann) — capítulo del procesador: pipeline de 5 etapas, riesgos de datos y de control, forwarding y detección de carga-uso
  • S. L. Harris, D. Harris — Digital Design and Computer Architecture: RISC-V Edition (Morgan Kaufmann) — lógica combinacional, mapas de Karnaugh, decodificador de 7 segmentos y microarquitectura RISC-V