¿Qué son los microprocesadores RISC-V y en que se diferencian al resto?

En los últimos años, se ha hablado mucho de diferentes microprocesadores basados en el set de registros e instrucciones RISC-V (pronunciado RISC Five), cuya particularidad es no estar asociado a ninguna empresa privada y ser completamente modular. Lo que permite no solo la creación de CPU, sino todo tipo de procesadores de apoyo y especializados. Pero, ¿cuáles son sus características y en qué se diferencia de x86 y ARM.

RISC-V versus ARM y x86

A día de hoy, el set de instrucciones más usado es ARM, por encima de x86. El motivo detrás de ello no es otro que su propietaria ARM Holdings licencia su núcleo a terceros para que otros puedan incorporarlo a sus diseños, no solo eso, sino que también licencia todo el hardware periférico a sus CPU para que otros puedan diseñar sus propios SoC. En ese caso, los fabricantes no pueden tocar absolutamente nada del diseño de los chips que les cede ARM. Además, en el caso de empresas como por ejemplo Apple, estas pueden diseñar sus propias CPU, pero no pueden tocar el set de instrucciones y registros, el cual se ha de mantener intacto.

SiFive RISC-V

RISC-V, en cambio, no tiene propietario, no se han de pagar licencias a una empresa por usarlo. Es más, el diseño es totalmente modular, ya que aparte del set de registros e instrucciones básicos, se ofrecen otros adicionales, los cuales pueden ser útiles para ciertos casos concretos o no. Esto es una ventaja desde el momento en que para ciertas aplicaciones concretas cierto tipo de instrucciones no les benefician para nada al no usarlas. Las diferencias respecto a x86 son obvias, ya que en la actualidad se trata de una ISA totalmente propietaria donde nadie más, aparte de Intel y AMD, puede hacer chips.

Ahora bien, la mayor desventaja de RISC-V es que, al ser un set de registros e instrucciones distinto, carece de la misma cantidad de software que los otros dos, para los cuales se han adoptado miles de programas distintos durante épocas. Sin embargo, no busca reemplazar ni a x86 ni a ARM en el mercado de consumo, al menos como CPU.

Modularidad, el punto fuerte de esta ISA

Uno de los puntos clave a la hora de diseñar un microprocesador, sea del tipo que sea, es saber con qué precisión de datos operará. El motivo de ello es que cuanto mayor sea la cantidad de bits de datos por instrucción, mayor ancho de banda para la comunicación interna y mayor será el tamaño de las diferentes unidades de ejecución dentro del chip. Lo mismo ocurre con la lógica no utilizada a menor precisión. Pues bien, RISC-V no cuenta con una sola versión base, sino con cuatro distintas, con las siguientes características.

NombrePrecisiónRegistros (propósito general)
RV32I32 bits32
RV32E32 bits16
RV64I64 bits32
RV128I128 bits32

Ahora bien, hemos de aclarar que RISC-V no define cómo han de ser los diferentes componentes del núcleo, solo lo que hace cada instrucción y a qué registro va asociada. Por lo que dependerá de los diseñadores crear las unidades correspondientes de captación y decodificación de instrucciones en mayor o menor complejidad según cada caso. En cuanto a la unidad de ejecución, el diseño base es con una ALU de enteros a la precisión que marque el modelo base. ¿Y qué hay del resto de unidades? Pues muchas de ellas y sus instrucciones correspondientes vienen definidas en los diferentes módulos de expansión, los cuales son los siguientes:

ExtensiónUso
AOperaciones atómicas.
BInstrucciones para la manipulación de bits.
CCapacidad para operar con 16 bits de precisión
DSoporte para instrucciones de coma flotante con 64 bits de precisión
FLo mismo que con D, pero con 32 bits de precisión
HModo supervisor
JInstrucciones para la traduccion dinámica de lenguajes
K Criptografia
LSoporte para cálculo decimal (base 10)
MSoporte para instrucciones de multiplicación y división
NInstrucciones para la gestión de interrupciones
PPacked SIMD (tamaño fijo,usa registros escalares)
QComa flotante de 64 bits
TSoporte para memoria transaccional
VVector SIMD (tamaño variable, usa registros )

Ahora bien, el estándar no permite manipular ni el set de instrucciones base que se haya escogido y tampoco la extensión. Lo cual no impide el uso de extensiones propietarias para usos específicos, algo que no se puede hacer ni en x86 y tampoco en ARM. Todo ello permite la creación tanto de microprocesadores de propósito general y también chips de apoyo para tareas específicas.

Tipo de unidadDescripciónExtensiones relevantes
GPUProcesamiento paralelo para gráficos y cómputo general en GPU (GPGPU).V (Vectorial), Personalizadas
DSPProcesamiento de audio, video y telecomunicaciones.P (Packed SIMD), V (Vectorial)
NPUOptimizado para inteligencia artificial y aprendizaje automático.V (Vectorial), Personalizadas
MMUGestión de direcciones virtuales y protección de memoria.S (Supervisor)
Unidad de Seguridad y ProtecciónSeguridad en hardware, almacenamiento de claves, autenticación.Personalizadas
Aceleradores CriptográficosImplementan operaciones de cifrado (AES, SHA, RSA, ECC, etc.).K (Criptografía)
Aceleradores de Redes (SmartNICs)Procesan paquetes de red con mínima latencia.Personalizadas
Aceleradores para computación de alto rendimientoIntegran capacidades vectoriales avanzadas para supercomputación.V (Vectorial)
MicrocontroladorUso en IoT, sensores y sistemas embebidos.C (Compact), E (Embedded)
Controlador FlashGestión de almacenamiento en memorias NAND/NOR, usado en SSDs y almacenamiento embebido.Personalizadas.
Opcionalmente X (Transacciones)
Acelerador de Compresión/Descompresión de DatosOptimiza la compresión y descompresión de datos en hardware para mejorar rendimiento en almacenamiento y redes.Personalizadas, Posiblemente V (Vectorial)

No es de extrañar que en los últimos años se vea cada vez más el uso de RISC-V en diferentes soluciones, lo que llevará, con el tiempo, a que sea más adoptado incluso que ARM.

5 1 vote
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x