Un experimento reducido compara RVA23 y ARMv9

Fuentes: RVA23 vs ARMv9: A Small Experiment

Un experimento reducido comparó el tamaño del código, el volumen dinámico de instrucciones y el número de microoperaciones generado por RISC-V y ARMv9. La prueba utilizó chibicc, un compilador de C de tamaño medio, compilado consigo mismo como carga de trabajo. Los binarios se evaluaron con RVA22, RVA23 y ARMv9, sin instrucciones SIMD o vectoriales, y con las versiones 19 de Clang y 15 de GCC.

Los resultados mostraron que los binarios RISC-V eran aproximadamente un 18 % más pequeños que los de ARM. RVA22 necesitó extraer un 21 % menos de bytes dinámicos que ARMv9, mientras que RVA23 redujo esa diferencia al 24 %. En cambio, ARMv9 registró de media un 6,5 % menos de instrucciones dinámicas que RISC-V. Al contabilizar las microoperaciones, las diferencias disminuyeron: Clang generó aproximadamente la misma cantidad en las tres arquitecturas, y GCC produjo menos microoperaciones con RISC-V.

La explicación propuesta se basa en la codificación comprimida de RISC-V y en los modos de direccionamiento de ARM. RISC-V requiere descargar menos bytes, pero debe decodificar más instrucciones directamente como microoperaciones. ARM descarga menos instrucciones, aunque algunas se dividen en dos microoperaciones. La diferencia entre RVA22 y RVA23 fue negligible, probablemente porque RVA23 incorpora principalmente soporte vectorial RVV, desactivado en esta prueba. Los tiempos de GEM5 deben interpretarse con cautela, ya que sus modelos podrían no representar procesadores comparables diseñados por un mismo equipo.