Cómo funcionan las herramientas

Metodología: algoritmos y limitaciones

Cada herramienta implementa un modelo concreto y simplificado. Esta página describe exactamente qué calcula cada una y qué deja fuera, para que puedas interpretar sus resultados y compararlos con tus apuntes.

Cómo se comprueban los contenidos

Las tablas, diagramas y mapas de las guías y lecciones se generan al construir la página con las mismas funciones que usan las herramientas, y los ejercicios se corrigen en el navegador con esas funciones. Si una herramienta cambia, sus figuras cambian con ella. Los valores concretos citados en el texto se calcularon con esas mismas funciones al redactarlo.

Decodificador RISC-V

Qué hace

  1. Convierte la palabra de 8 dígitos hexadecimales en un entero de 32 bits y extrae opcode, rd, funct3, rs1, rs2 y funct7 con desplazamientos y máscaras.
  2. Elige el formato (R, I, S, B, U o J) según el opcode, recompone el inmediato a partir de sus trozos y lo extiende en signo desde el bit 31.
  3. Valida funct3 y funct7: una combinación que no es RV32I (por ejemplo, funct7 = 0000001 de la extensión M) se marca como no reconocida.
  4. En modo ensamblador codifica la instrucción de una línea y decodifica la palabra obtenida.

Limitaciones

  • Reconoce 37 de las 40 instrucciones de RV32I; no reconoce FENCE, ECALL ni EBREAK, ni extensiones (M, A, F, D, C) ni RV64.
  • El ensamblador no admite etiquetas ni pseudoinstrucciones; los saltos se escriben como desplazamientos en bytes.

Depurador RISC-V

Qué hace

  1. Analiza el programa, asigna a cada etiqueta la dirección de la instrucción siguiente y expande las pseudoinstrucciones (nop, li, mv, not, neg, j, jr, ret, beqz, bnez).
  2. Interpreta una instrucción por paso sobre 32 registros de 32 bits con aritmética en complemento a dos (los desbordamientos dan la vuelta). x0 siempre vale 0.
  3. El programa empieza en 0x00000000 y cada instrucción ocupa 4 bytes; el PC es la dirección de la siguiente instrucción. jal y jalr guardan PC + 4.
  4. La ejecución continua se detiene tras 10 000 instrucciones para cortar bucles infinitos.

Limitaciones

  • No hay memoria de datos: cargas, almacenamientos, ecall, ebreak y fence dan error.
  • li solo admite inmediatos de 12 bits con signo; las constantes mayores se construyen con lui + addi.

Simulador de pipeline

Qué hace

  1. Modela un pipeline en orden de 5 etapas (IF, ID, EX, MEM, WB). En cada ciclo comprueba si la instrucción que está en ID lee un registro que escribe una instrucción en EX, MEM o WB.
  2. Con forwarding, solo se detiene si la productora está en EX y es una carga (1 burbuja). Sin forwarding, se detiene hasta que la productora sale de WB.
  3. Un salto condicional en EX se considera tomado: las dos instrucciones que están en ID e IF se descartan y la búsqueda se reanuda con la instrucción siguiente al salto.

Limitaciones

  • No modela la escritura y lectura del banco de registros en el mismo ciclo, así que sin forwarding una dependencia consecutiva cuesta 3 burbujas en lugar de las 2 de muchos libros.
  • No evalúa condiciones ni sigue etiquetas: el diagrama muestra el coste de los saltos, no el recorrido del programa.
  • jal, jalr y las instrucciones desconocidas no generan riesgos; no hay riesgos estructurales; máximo 15 instrucciones.

Minimizador de Karnaugh

Qué hace

  1. Obtiene todos los implicantes primos con el método tabular de Quine-McCluskey, incluyendo las indiferencias.
  2. Toma los implicantes primos esenciales y cubre el resto con una búsqueda con retroceso que minimiza el número de términos.
  3. Si la búsqueda supera 10 000 iteraciones usa una cobertura voraz y lo indica con un aviso.

Limitaciones

  • De 2 a 4 variables y solo suma de productos (SOP).
  • Entre coberturas con el mismo número de términos no elige necesariamente la de menos literales; cuando hay varias soluciones mínimas muestra una.
  • Con varias salidas minimiza cada una por separado y solo señala los productos comunes.

Calculadoras secundarias

No forman parte del temario de ingeniería de computadores. Cada una muestra su fórmula y sus limitaciones en su propia página:

HerramientaModelo
Calculadora de nota necesaria en el examen finalnota necesaria = (objetivo − Σ nota_i × peso_i) / peso del final
Calculadora de media ponderada por créditos ECTSmedia = Σ (créditos_i × nota_i) / Σ créditos_i
Calculadora de interés compuestocada mes: saldo = (saldo + aportación) × (1 + r / 12)
Calculadora FIREobjetivo = gasto anual / tasa de retirada · cada año: patrimonio = patrimonio × (1 + r) + ahorro anual
Rebalanceador de carteraorden_i = (valor total + aportación) × peso_i − valor_i
Festival Clash FinderA y B se solapan si inicio_A < fin_B y inicio_B < fin_A

Las calculadoras financieras usan modelos deterministas (tasa constante, sin inflación, comisiones ni impuestos) y no son asesoramiento financiero.

Errores

Si un resultado no coincide con lo que esperas según esta página, escribe indicando la herramienta y la entrada.

Fuentes

  • 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
  • RISC-V ELF psABI Specification — nombres ABI de los registros (zero, ra, sp, a0–a7, t0–t6, s0–s11) y convención de llamada
  • RISC-V Assembly Programmer’s Manual — pseudoinstrucciones como li, mv, j, ret, beqz o nop
  • 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
  • W. V. Quine, “The Problem of Simplifying Truth Functions”, The American Mathematical Monthly, vol. 59, no. 8, 1952 — implicantes primos y simplificación de funciones
  • E. J. McCluskey, “Minimization of Boolean Functions”, Bell System Technical Journal, vol. 35, no. 6, 1956 — método tabular que usa el minimizador para obtener los implicantes primos
  • M. Karnaugh, “The Map Method for Synthesis of Combinational Logic Circuits”, Transactions of the AIEE, Part I, vol. 72, no. 5, 1953 — artículo original del método de mapas