RISC-V: Deberían haberlo sabido mejor
Los críticos de RISC‑V sostienen que su diseño altamente modular y cargado de extensiones conduce a la fragmentación, dificulta la detección de características y los binarios portables, y desaprovecha lecciones aprendidas durante décadas de evolución de x86, ARM y MIPS. Otros responden que la ISA abierta y libre de royalties de RISC‑V, el creciente soporte de la cadena de herramientas y perfiles emergentes como RVA23 la hacen “suficientemente buena” en la práctica —especialmente para microcontroladores y sistemas empotrados— aunque todavía no sea competitiva con los núcleos ARM o x86 de primer nivel en escritorios y servidores. El intercambio pone de relieve una tensión más amplia entre el diseño elegante de una ISA y las fuerzas económicas, legales y del ecosistema que, en última instancia, determinan qué arquitecturas ganan.
ISA vs. Importancia del software
- Varios comentaristas sostienen que la historia demuestra que “el software importa; las ISA no”: x86 sobrevivió pese a su fealdad técnica porque ejecuta bien el software existente.
- Otros responden que los detalles de la ISA sí importan en los márgenes: el tamaño del código, la complejidad de decodificación y la semántica limpia influyen en el coste y la viabilidad, especialmente en núcleos pequeños o baratos.
Opcionalidad, fragmentación y perfiles
- Una crítica central es la opcionalidad extrema de RISC‑V: muchas extensiones, muchos subconjuntos opcionales y codificaciones solapadas.
- Esto dificulta publicar binarios que sean a la vez portables y rápidos, especialmente para binarios/blobs que no conocen el núcleo exacto de antemano.
- Algunos dicen que esto es aceptable en los MCU, donde el proveedor y el objetivo están estrechamente acoplados; otros señalan casos reales (binary blobs, intercambios de núcleos) en los que esto se rompe.
- Perfiles como RVA23 se ven como una solución parcial —definir conjuntos obligatorios seleccionados para ciertos mercados—, pero algunos creen que llegaron tarde y aun así dejan casos límite.
Detección de características y configuración
- Quejas de que no existe una forma simple y fiable de que el software consulte qué extensiones están presentes; provocar una trampa en instrucciones ilegales es ambiguo porque los solapamientos pueden pertenecer a distintas extensiones.
- Otros responden que las líneas base del SO, los device trees y mecanismos futuros como
mconfigptrmitigan esto, aunque los detalles aún están evolucionando.
Densidad de código y codificación de instrucciones
- Largo subhilo sobre densidad de código: RISC‑V comprimido (16/32 bits) frente a AArch64 de 32 bits fijos frente a x86 de longitud variable.
- Algunos afirman que RV64GC(+RVC/RVA23) supera a x86‑64 y es al menos competitivo con AArch64; otros argumentan que RISC‑V “paga” por la longitud variable pero no la aprovecha del todo.
- Debate sobre la complejidad del front-end: la decodificación de longitud variable añade coste de hardware, pero los defensores dicen que es modesto y comparable a desenredar instrucciones ARM de múltiples escrituras de vuelta.
Empotrado vs. escritorio / alto rendimiento
- Muchos ven el hogar natural de RISC‑V en el empotrado profundo y los MCU, donde el coste y la apertura importan más que el rendimiento máximo.
- Los escépticos dudan que RISC‑V vaya a desafiar a AArch64/x86 en la gama alta, argumentando que la ISA no se diseñó para grandes núcleos fuera de orden y que el ecosistema va por detrás.
- Otros creen que el tiempo y los diseños abiertos cerrarán la brecha de rendimiento a medida que los presupuestos de transistores se estabilicen.
Apertura, patentes y motivación
- Una postura fuerte sostiene que la principal victoria de RISC‑V es legal: una ISA abierta no controlada por un único proveedor, especialmente atractiva para China y para empresas que quieren evitar licencias de ARM/x86.
- Se reconoce que “sin patentes” no puede probarse formalmente, pero RISC‑V está intencionalmente “legalmente distinto de MIPS” para reducir el riesgo.
Experiencias prácticas y herramientas
- Aficionados y algunos usuarios comerciales informan de que las grandes ventajas de RISC‑V son: soporte principal en GCC/LLVM y libertad frente a abogados de licencias.
- Puntos de dolor del mundo real mencionados: prólogos de interrupción pesados en algunos MCU de RISC‑V, ausencia de características de depuración/watchpoints al estilo x86, y la necesidad de subir desde el mínimo RV64I a RV64GC/RVA23 para ejecutar distribuciones convencionales.
- Consenso en que, pese a sus defectos, RISC‑V está “bien” y es usable hoy, especialmente cuando controlas tanto el hardware como el software.