Noticias

Perfiles RISC-V: ¿Por qué es importante RVA23?

introducir

Una de las características importantes de la arquitectura del conjunto de instrucciones (ISA) RISC-V es la capacidad de personalizar y ampliar el conjunto de instrucciones base. La primera reacción al escuchar esta noticia suele ser preocuparse por la portabilidad y compatibilidad del software, porque si cada CPU RISC-V proporciona un conjunto de instrucciones ligeramente diferente, el software no será portátil.

El riesgo es que la personalización se fragmente, razón por la cual RISC-V proporciona un conjunto estandarizado de extensiones para ayudar a la compatibilidad y portabilidad del software. Están representados por letras o cadenas, como «F» para punto flotante y «V» para vector. También hay un número que indica si el dispositivo es de 32 o 64 bits. Por lo tanto, la CPU puede ser «RV64IMAC», lo que significa una CPU de 64 bits que admite extensiones de entero (I), multiplicación (M), atómica (A) y compresión (C).

Para una ejecución correcta, el software debe compilarse para que coincida con el hardware o un subconjunto del mismo (por ejemplo, para el código compilado en RV64IMA, no importa si el hardware admite la extensión «C», pero debe admitir al menos RV64IMA). Para ampliar la portabilidad binaria (la capacidad de ejecutar archivos binarios compilados en hardware diferente), existen dos opciones. En primer lugar, todo el software debe escribirse utilizando un conjunto mínimo de extensiones, lo cual no es deseable porque limita el rendimiento y el tamaño del código. Para evitar estas limitaciones, una segunda opción es que el ecosistema acuerde un conjunto común de extensiones al que pueda apuntar todo el software. RISC-V International los llama «perfiles».

RISC-V introdujo por primera vez los perfiles RVI20 y RVA20, y desde entonces se aprobaron RVA22 y RVA23. Este blog examinará el archivo de configuración RVA23, incluidas sus características, y explicará por qué estas características son importantes para Ubuntu. También discutiremos cómo apoyan la expansión del ecosistema RISC-V. Un blog futuro discutirá cómo Ubuntu admite comandos personalizados.

¿Qué son los datos personales?

Como se mencionó anteriormente, un perfil es un conjunto de extensiones aprobadas. A las extensiones se les asigna un código de identificación, que va desde una sola letra (vimos anteriormente I, M, A y C) hasta una cadena como «zicsr». Están conectados entre sí para formar una descripción de la implementación. Sin embargo, esto puede resultar difícil de manejar, lo que hace que los archivos de configuración sean una forma más sencilla de describir conjuntos de características más complejas. Por ejemplo, RVA23 tendría este aspecto cuando se expandiera:

rv64gc_zicsr_zicntr_zihpm_zicbom_zicbop_zicboz_zicond_zimop_zcmop_zfh_zfa_zawrs_zbc_zvfh_
zvfhmin_zvbc_zvkg_zvkned_zvknha_zvknhb_zvksed_zvksh_zvkn_zvknc_zvknf_zvkng_zvks_zvksc_zvksf_
zvksg_zvl128b_zihintpause_zihintntl_svpbmt_svinval_svade_sstc_sscofpmf_ssccptr_sscounterenw_
shvstvecd_shvswatpa_shgatpa_shcounterenw_shvsvinval_shvstvala_shvsvpbmt_shvsvade

¡Este es un bocado para repetir una y otra vez! Los perfiles resuelven el problema anterior porque establecen estándares sobre lo que se debe incluir en una implementación de CPU. No es necesario repetir lo anterior: siempre que vea «RVA23», el ajuste preestablecido contendrá todas estas extensiones.

Perfil Definido por el Grupo de Trabajo de Perfiles RISC-V, los expertos de toda la industria coinciden en qué características tiene sentido incluir considerando el espacio de aplicación de destino del perfil.

Importancia de la visión general para el desarrollo del ecosistema

RISC-V requiere un ecosistema de software sólido para prosperar. Si bien los desarrolladores y aficionados pueden estar dispuestos a compilar código desde cero para cada CPU diferente, esto puede convertirse rápidamente en una limitación para las grandes organizaciones. Los perfiles crean objetivos que los desarrolladores de software y hardware pueden acordar, lo que garantiza la portabilidad del software compilado para el objetivo RVA23 en diferentes implementaciones. Por lo tanto, los archivos binarios compatibles con RVA23 deberían poder ejecutarse en cualquier CPU RVA23.

Limitaciones del perfil

Aunque los perfiles garantizan un cierto grado de compatibilidad binaria, no cubren ciertos aspectos del comportamiento del sistema. Estos incluyen el inicio inicial, el descubrimiento de dispositivos y los controladores de periféricos. Si bien el código aún cumple con el estándar RVA23, es posible que no sea portátil entre implementaciones. El Grupo de Trabajo Técnico Internacional RISC-V también es muy consciente de esto y está comprometido a formular políticas como Especificaciones de la plataforma del servidor Resuelva proyectos como controladores de interrupciones y arranque seguro que no forman parte de la especificación del perfil ISA. Es poco probable que esto sea un problema para los usuarios finales que desarrollan aplicaciones, pero para los desarrolladores de sistemas operativos o desarrolladores bare metal, sí importa.

Características clave del Linux moderno

RVA23 presenta dos características clave que faltan en perfiles anteriores:

  1. programa de gestion
  2. vector

Si bien las primeras implementaciones de RISC-V podrían incluirlas como extensiones, no son obligatorias, por lo que el software no puede depender de su inclusión de forma predeterminada. El software se puede optimizar para aprovechar estas funciones transfiriéndolas a las especificaciones del perfil de RVA23. Veamos ahora las ventajas de cada característica con más detalle:

programa de gestion

Los hipervisores se utilizan ampliamente en muchas aplicaciones. Proporcionan una forma para que una única CPU física emule varias máquinas virtuales (VM) y, al mismo tiempo, proporciona aislamiento entre ellas. Muchas aplicaciones finales en sí mismas no requieren toda la CPU física, por lo que esto permite un uso más eficiente de la CPU física y al mismo tiempo proporciona seguridad entre máquinas virtuales independientes. En los centros de datos donde las CPU físicas pueden tener docenas de núcleos de procesador, un hipervisor es fundamental para un escalado eficiente.

Incluso en clústeres de máquinas de pequeña escala, se pueden utilizar hipervisores y máquinas virtuales para proporcionar capacidades como migración de máquinas, instantáneas y aislamiento. Varios productos de Canonical utilizan hipervisores y creemos que el soporte de virtualización maduro es un requisito para que RISC-V se extienda más allá de los dispositivos integrados a las aplicaciones.

vector

Si bien los hipervisores son importantes para escalar a grandes cargas de trabajo, las instrucciones vectoriales están destinadas a acelerar cargas de trabajo individuales, especialmente aquellas que requieren un uso intensivo de matemáticas. Agregar vectores a la CPU genera una gran cantidad de área de silicio adicional, pero también genera enormes mejoras de rendimiento para las cargas de trabajo que los utilizan.

Si bien los vectores a menudo se asocian con tareas matemáticas pesadas como el aprendizaje automático y el procesamiento de imágenes, incluso los propios sistemas operativos los utilizan para realizar tareas básicas como copiar memoria. Para que los vectores estén disponibles para el espacio del usuario, el kernel todavía tiene que comprender los archivos de registro y el estado asociado para gestionar los cambios de contexto, por lo que se requiere soporte a nivel del sistema operativo.

RISC-V eligió conscientemente el diseño de escalabilidad de extensiones vectoriales. Esto significa que las implementaciones pueden elegir longitudes de vectores apropiadas y el software se ejecutará sin cambios ni recompilación. Por lo tanto, las CPU en orden más pequeñas pueden usar vectores de 64 o 128 bits en hardware, mientras que las CPU de clase de servidor pueden usar vectores de 256 o incluso más anchos sin tener que volver a compilar el código. Al igual que los hipervisores, creemos que los vectores son fundamentales para los procesadores modernos de alto rendimiento, desde computadoras de escritorio hasta servidores.

Para sistemas integrados más pequeños, el consumo de energía suele ser un problema, e incluso pequeñas implementaciones de vectores pueden consumir cantidades significativas de área y energía. Por lo tanto, también se está desarrollando un perfil RVB23, que elimina algunas funciones necesarias de RVA23.

¿Por qué ahora?

El hardware y el software son interdependientes y cualquier tecnología nueva requiere un desarrollo conjunto. A veces, el hardware adopta un enfoque de «constrúyalo y ellos vendrán», mientras que en otros casos está claro que el hardware está en camino y se pueden utilizar técnicas como la simulación para desarrollar software antes que cualquier hardware disponible. Este último enfoque también tiene la ventaja de acortar el tiempo de comercialización porque el software está disponible tan pronto como se envía el hardware.

Cuando anunciamos la compatibilidad con RVA23 en Ubuntu 25.10, surgieron algunas preguntas sobre la falta de chips disponibles, pero está claro hacia dónde se dirige la industria y queremos estar a la vanguardia. Cuando SpacemiT anunció el chip K3 a principios de este año, Estamos listos para apoyarlo. Estoy seguro de que veremos más chips RVA23 este año y en el futuro.

en conclusión

Para que el ecosistema RISC-V pueda escalar con éxito, se requiere un perfil base estable que sea adecuado para cargas de trabajo modernas que abarquen casos de uso de servidores y centros de datos. El perfil RVA23 proporciona esto, razón por la cual Canonical requiere RVA23 a partir de Ubuntu 25.10. La versión 26.04 de Ubuntu presenta soporte a largo plazo (LTS), que brinda 5 años de soporte a cualquier usuario y hasta 15 años de soporte a través de Ubuntu Pro. Pero para los primeros usuarios de RISC-V, continuaremos ofreciendo Ubuntu 24.04 LTS, que requiere el perfil RVA20. Esto en sí mismo obtendrá el mismo nivel de soporte LTS que cualquier otra versión de Ubuntu LTS.

lectura adicional

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba