Experimentar con la placa de desarrollo HiFive Unmatched RISC-V de SiFive durante las últimas semanas se ha sentido un poco como retroceder en el tiempo. La experiencia me dejó un poco nostálgico. Imagínate esto.
Es 1997. Soy un estudiante de segundo año de secundaria. Me dirijo a la casa de mi amigo después de clase porque ha llegado un CD largamente esperado con algo llamado "Slackware Linux". Está instalado en una PC 486DX4 100 que vive en su sótano mal iluminado y sin terminar. Los 30 minutos del día de acceso telefónico gratuito desde el ISP local se utilizan para descargar "tarballs" con "Kermit". Linux es extraño y confuso, pero me gustan los pingüinos.
¿Le parece familiar a alguno de ustedes? Mi experiencia reciente instalando y ejecutando Ubuntu en la plataforma de desarrollo HiFive Unmatched de SiFive realmente evocó recuerdos de ese primer contacto con Linux. Incluso hasta en los pequeños detalles como sentarme en el suelo en un sótano leyendo guías sin las cuales no hubiera podido hacer nada. El reclamo de fama de HiFive Unmatcheds, su CPU RISC-V, agravó esa sensación al quitarme la alfombra de las arquitecturas de CPU familiares y presentar un desafío cuando llegó el momento de ejecutar el software que uso más comúnmente a diario. Fue un Linux dj vu de finales de los 90.
¿Qué es RISC-V?
Creado por UC Berkeley en 2010, RISC-V es una arquitectura de conjunto de instrucciones (ISA) de computadora de conjunto de instrucciones reducido (RISC) de código abierto en la que cualquiera puede diseñar una CPU. No tiene licencia con costos iniciales y pagos continuos de regalías en la forma en que, por ejemplo, Arm hace las cosas. Sin embargo, los diseños basados en la arquitectura no tienen que ser de código abierto, y para producir CPU físicas se necesita mucho más dinero y recursos de lo que uno suele pensar cuando escucha el término hardware de código abierto. Ordenar silicio personalizado no es tan simple como obtener una placa de circuito impreso personalizada, al menos no todavía.
¿Quién es SiFive? Creadores de HiFive Unmatched
SiFive se fundó en 2015 y es uno de los defensores más grandes y destacados de la arquitectura RISC-V. Desde entonces, ha estado acumulando los recursos necesarios para hacer realidad su visión de los procesadores RISC-V.
El acceso de los desarrolladores al hardware nativo es un componente crítico en el despliegue y la adopción de una nueva microarquitectura. Hasta la fecha, SiFive ha producido varias placas de desarrollo que cuentan con sus chips, la más reciente es HiFive Unmatched, que luce su actual buque insignia SiFive FU740 SoC (la "F" significa Libertad).
La CPU que alimenta el SiFive FU740 es una implementación de RISC-V que incluye algunas características opcionales. En el corazón del diseño se encuentra un procesador RV64GC de cuatro núcleos y 64 bits que funciona a 1,2 GHz. La parte de RV64 se explica por sí misma, pero es importante entender las letras que siguen. Reducido está integrado en el nombre RISC y para hacer un procesador de propósito general, se deben agregar algunas extensiones que generalmente se dan por sentadas en x86-land. En este caso, la parte GC del nombre significa que se incluyen extensiones para la multiplicación y división de enteros, instrucciones atómicas (sincronización del uso de la memoria), así como operaciones de punto flotante de precisión simple y doble.
Inspección del HiFive Unmatched
Una vez extraída de su embalaje, la HiFive Unmatched es una placa Mini-ITX sin pretensiones, dominada visualmente por un par de pequeños disipadores de calor. El disipador de calor enfriado activamente se encuentra encima del propio SoC FU740, mientras que el disipador de calor pasivo cubre un chip de interruptor PCIe. Sorprendentemente, hay 16 GB de DDR4 de 1866 MT/s integrados en el sistema, lo que es una bendición para los desarrolladores emergentes de RISC-V. La ranura física PCIe 3.0 x16 de HiFive Unmatcheds tiene ocho carriles de conectividad. La ranura PCIe x4 M.2 más grande integrada está diseñada para un SSD NVMe, mientras que la ranura x1 más pequeña está diseñada para agregar conectividad Wi-Fi.
La placa tiene un par de encabezados de ventilador PWM de 3 pines, en caso de que surja la necesidad de refrigeración adicional (pero probablemente no lo hará). Frente al mundo exterior, en la parte posterior de la placa, hay un conjunto de cuatro puertos USB 3.2 Gen 1 y un puerto Gigabit Ethernet. También visibles en la parte posterior de la placa hay una ranura para tarjeta microSD y un puerto Micro-USB, de los que hablaremos en breve.
RISC-V y HiFive Unmatched: ¿por dónde empezar?
A diferencia de mi amigo descrito brevemente en la introducción, no me convertí en un gurú de Linux ni en un programador talentoso. He incursionado con Linux para diversas necesidades personales y profesionales a lo largo de los años. Sin embargo, en general me he mantenido como un usuario casual de Linux que está solo por los pingüinos (todas mis cargas de clase TF2 incluyen un Tux en su cinturón, por ejemplo).
Dicho esto, todavía estaba ansioso por probar el HiFive Unmatched. Incluso si no fuera un experto en Linux, al menos podría ingresar al BIOS, configurar el dispositivo de arranque en una unidad flash y prepararme para instalarlo, ¿verdad? Equivocado. Instalé una Radeon R7 240 de repuesto que se retiró recientemente de una PC más antigua en la ranura, presioné el interruptor de encendido incorporado y miré una pantalla en blanco durante unos minutos hasta que decidí que necesitaba RTFM.
Afortunadamente, la guía de inicio rápido de SiFive es bastante buena. Rápidamente aprendí que había un chip emulador de puerto serie FTDI integrado que podía usarse para SSH en el HiFive Unmatched desde una PC separada, usando el cable USB incluido. También aprendí que necesitaba insertar la tarjeta microSD incluida en la ranura del Unmatched, de modo que tuviera almacenamiento para arrancar antes de que cobrara vida.
Con esos ajustes en su lugar, volví a encender la placa y observé mi terminal PuTTy mientras me mantenía al tanto del proceso de arranque. Por cierto, la interfaz USB es alimentada por la computadora host, por lo que puede conectarse a la sesión ya sea que Unmatched esté encendido o no. Después de unos minutos de solo ver datos a través de PuTTy, el proceso de arranque detectó la identificación de la tarjeta gráfica instalada y la inicializó, activando la pantalla y mostrándome un clon de lo que podía ver en la ventana de la terminal. Esto fue un poco de alivio porque HiFive sugiere tarjetas de la serie RX 500 para Unmatched. Finalmente, inicié sesión con las credenciales de la guía y, en poco tiempo, aterricé en el entorno de escritorio predeterminado de Xfce.
Aprendiendo lo básico
Ahora que podía arrancar en un escritorio Linux funcional, el siguiente paso lógico era eliminarlo todo e instalar una copia nueva de Ubuntu en una unidad NVMe y tratar de hacer que el sistema arrancara desde allí. Ese resultó ser un proceso más difícil de lo que inicialmente había imaginado y resultó ser una excelente experiencia de aprendizaje, debido a algunos errores que cometí en el camino.
En lo que ahora considero una gran victoria para mi conocimiento de Linux, pasé una cantidad considerable de tiempo volviendo a crear imágenes de la unidad, merodeando hilos de foros, molestando a amigos en Slack y buscando mensajes de error en Google sin éxito. Ninguna cantidad de insistencia en GParted, ajuste de U-Boot o cualquier otra travesura esotérica de la línea de comandos podría convencer al HiFive Unmatched de arrancar desde cualquier cosa que no sea la tarjeta SD con la que vino.
En pocas palabras, me habría ahorrado mucho tiempo si no hubiera asumido que podía crear una imagen del SSD con Ubuntu mientras arrancaba desde la tarjeta microSD que venía con la placa. En cambio, debería haber seguido la guía aquí al pie de la letra cuando decía que comenzara con la imagen nueva de Ubuntu a la que se vinculaba. Después de cargar la imagen recomendada en una nueva tarjeta, los pasos de la guía funcionaron perfectamente.
Mi nueva tarjeta microSD de elección fue una Samsung EVO Select de 64 GB y la unidad NVMe fue una Western Digital Blue SN550 de 1 TB. SiFive recomienda un SSD de la serie Samsung 970 EVO, pero el WD Blue funcionó sin problemas. No tuve la previsión de sacar un cronómetro de antemano, pero ejecutar apt update/upgrade una vez que el sistema finalmente se estaba iniciando desde el SSD fue considerablemente más rápido que hacer lo mismo en la tarjeta microSD. Aunque la E/S es solo una parte de la ecuación de rendimiento, cualquiera que utilice este sistema probablemente querrá optimizar el rendimiento tanto como sea posible. Por lo tanto, arrancar desde un NVMe es efectivamente obligatorio.
Una toma rápida de rendimiento
Tuve dificultades para recopilar datos de rendimiento para HiFive Unmatched. Debido a las limitaciones de software actuales de la plataforma, los puntos de referencia basados en la web están a la orden del día para una comparación razonablemente justa. Eso dejó al navegador Epiphany como el único juego disponible. Sin embargo, después de varios intentos de dejar que HiFive Unmatched terminara de ejecutar JetStream 2, tuve que conformarme con Speedometer 2.0, porque el sistema nunca superó la quinta prueba en JetStream (Epiphany pudo completarla sin problemas en otros sistemas, aunque ). Algún día puedo volver a intentarlo en Chromium o Firefox una vez que se transfieran.
Después de recopilar esos valiosos datos, instalé Linux y Epiphany en sistemas adicionales para tener una perspectiva. También recluté a algunos amigos para que instalaran Epiphany en algunos de sus principales equipos impulsados por Penguin para llenar algunos vacíos comparativos. Cuando el polvo se asentó, Unmatched terminó detrás de todas las otras plataformas que probamos. Sin embargo, eso no fue inesperado y no es necesariamente un problema dada su función como plataforma de desarrollo.
Como puede ver, el Unmatched no está exactamente listo para ser un conductor diario. Con el reconocimiento de que esta es solo una métrica de rendimiento, el Broadwell M-5Y10 de 5w en mi Asus UX305 de 6 años (mi umbral mínimo personal para un rendimiento de navegación lo suficientemente bueno), es significativamente más rápido que el FU740. Incluso el casi tolerable Atom x5-Z8350 de 2w, que alimenta mi acuario Rock Pi X, supera al FU740 por más de 5 veces.
Dicho esto, estar a una distancia sorprendente de la omnipresente Raspberry Pi 3 es prometedor en esta etapa. En un par de generaciones más, los aumentos de rendimiento (y las caídas de precios) podrían hacer que una computadora de placa única RISC-V para aficionados de rendimiento relativamente alto sea viable, y eso sería un gran problema.
Un estuche que solo una placa base podría amar
Dado que la actuación de Unmatcheds no hace que se vea bien en sentido figurado, decidí que al menos necesitaba que se viera bien físicamente. El tablero desnudo es lo suficientemente atractivo por sí solo, pero quería darle un hogar en un caso adecuado. Problemáticamente, ninguno de los estuches Mini-ITX que tenía por ahí podía manejar una tarjeta gráfica. Afortunadamente, tengo una impresora 3D. Después de buscar un poco, me decidí por este modelo de NiceDepth. Fue diseñado para acomodar una tarjeta de bajo perfil y una fuente de alimentación Pico, las cuales ya estaba usando con Unmatched.
Debido a la combinación de una boquilla de 0,6 mm y un filamento menos que perfectamente seco, la impresión resultó un poco más borrosa de lo previsto, pero estoy de acuerdo con eso. Tuve que imprimirlo en dos mitades y pegarlo porque mi Prusa Mini es demasiado pequeña para imprimir cajas Mini-ITX en una sola pieza. También imprimí un soporte de montaje personalizado para la tarjeta gráfica basado en este diseño porque había perdido el original y de todos modos no habría encajado perfectamente.
Cómete el corazón, vidrio templado.
Todo ensamblado, con el protector de E/S en su lugar y el conector para la fuente de alimentación Pico montado en la parte posterior, todo el conjunto se ve bastante elegante, especialmente en la oscuridad. No hay LED RGB aquí, la iluminación de diagnóstico simple de HiFive Unmatched realmente brilla en esta carcasa de estilo Voronoi. En general, diría que este sistema parece el compañero perfecto para ese Das Keyboard de tapa en blanco que compraste cuando tenías 24 años y dejaste que la gente creyera que todavía codificas con Dvorak (sí, sabes quién eres).
Cabe destacar que en este caso faltan los botones de encendido o reinicio. Los que están integrados en el tablero son fáciles de alcanzar con el implemento de perforación pequeño, romo y no conductor de su elección gracias a todos los agujeros en el diseño. Eso también es bueno porque una de las principales rarezas de esta placa es que no se puede restablecer en el software, debe presionar el botón (sí, en serio). Sin embargo, el Unmatched tiene un conjunto tradicional de conectores en el panel frontal.
Esta sección no estaría completa sin admitir el descarado sacrificio de calidad que hice en nombre de la estética. A diferencia de los otros componentes que conecté al Unmatched, el módulo Wi-Fi (un AX200NGW) y el juego de antena que usé estaban en la lista recomendada. Me divirtió mucho el descargo de responsabilidad de las antenas de que, este artículo se suministra a profesionales, se espera que sepa lo que está haciendo. Sin embargo, me sentí mucho menos presumido después de haber pegado con pegamento caliente los complicados conectores a la tarjeta Wi-Fi y metido las antenas entre la parte posterior de la placa y la carcasa porque no quería verlas. En última instancia, probablemente no importó porque, ya sea usando Ethernet por cable o Wi-Fi, el HiFive Unmatched no podía hacer malabarismos con el tráfico de Internet a más de 40 Mbps. Entonces, no me siento tan mal por eso.
HiFive Unmatched: Listo para el desarrollo de RISC-V
A $ 665, el HiFive Unmatched de SiFive no es una PC convencional de placa única o una curiosidad de aficionado. Esta placa tiene un trabajo serio que hacer como embajadora y pionera para el futuro desarrollo de hardware y software RISC-V. También representa un compromiso importante y significativo con el hardware de código abierto que es encomiable.
Como oferta de producto, probablemente ya sepa si HiFive Unmatched es algo que puede utilizar correctamente o no. Creo que he comunicado lo suficiente que no estoy en ese nivel, pero me entretengo e ilumino al pasar tiempo con él. Si puede usarlo correctamente, HiFive Unmatched de SiFive es una plataforma robusta y capaz que realmente no tiene comparación en el mercado actual. Tengo muchas ganas de ver lo que viene después.