He leído la documentación RP1 para que no tenga que
Una de las características más notables de la nueva Raspberry Pi 5 es la inclusión del RP1, el primer chip de silicio de diseño propio en un producto estrella de Raspberry Pi. En este artículo, quiero repasar los aspectos esenciales del RP1 y contarte qué lo hace tan revolucionario.
Por desgracia, este artículo no puede ser el equivalente a un "Todo sobre RP1", porque aún no han publicado la documentación completa.
En su lugar, han lanzado un Proyecto de ficha técnica de 90 páginas que repasa algunos de los fundamentos del RP1.
Empecemos con la historia del RP1.
Historia
Así pues, el RP1 es el proyecto interno de silicio más antiguo de Raspberry Pi. Por eso se llama "RP1“.
En el anuncio de Raspberry Pi 5, Eben Upton escribió: "En desarrollo desde 2016, RP1 es por un buen margen el programa más largo, más complejo y (en $15 millones) más caro que hemos emprendido aquí en Raspberry Pi."
Es el el más antiguo, más complejoy más caro programa.
Sin embargo, no es el primer silicio de desarrollo propio que lanza Raspberry Pi. Para eso, hay que recurrir al RP2040, que es el microcontrolador del Pico y el Pico W. Así que lanzaron el RP2040 en 2021, aunque en realidad el programa empezó más tarde.
Internamente en Raspberry Pi, todo el mundo se refería al RP1 como "Proyecto Y".
Veamos en qué consiste el RP1.
Características
En los modelos anteriores, básicamente todas las E/S estaban integradas en el procesador principal.
La idea principal del RP1 es separar las E/S del procesador principal, en este caso el Broadcom BCM2712. Se trata de un puente sur que se encarga de la gran mayoría de las funciones de E/S de la Raspberry Pi 5.
Esto tiene varios efectos: uno de ellos es ofrecer procesos de menor geometría para el procesador principal. El BCM2712, como ya hemos comentado, se encuentra en nodos de proceso de 16 nm.
Mientras tanto, la propia RP1 se encuentra en nodos de proceso de 40 nm.
De este modo, el procesador principal puede centrarse en tareas más complejas.
Así, el BCM2712 se hace cargo de las interfaces más rápidas, mientras que deja las interfaces más lentas para el RP1. Voy a explicar que más en la siguiente sección.
Pero los dos chips -RP1 y BCM2712- trabajan juntos y se conectan a través de un bus PCIe 2.0 de 4 carriles. Es una conexión rápida, pero inevitablemente hay cierta latencia entre ambos.
Pasemos a las especificaciones internas del RP1.
He incluido una imagen de abajo del diagrama de la RP1 como referencia.
Así, el RP1 contiene dos núcleos de procesador basados en la arquitectura Arm Cortex-M3 (Cortex M3 0 y Cortex M3 1 en los recuadros rojos de la parte superior izquierda del diagrama).
También cuenta con un controlador DMA de ocho canales, que permite al chip gestionar simultáneamente las transferencias de datos de hasta ocho periféricos diferentes.
El chip incorpora tres PLL integrados: 2 PLL fraccionales-N para generar relojes de vídeo y audio independientes, y 1 PLL entero para generar relojes de sistema.
El RP1 también dispone de un convertidor analógico-digital (ADC) de aproximación sucesiva de cinco entradas y 12 bits de resolución que funciona a 500 kSPS, con cuatro entradas externas y un sensor de temperatura interno.
Si miras el diagrama de abajo, notarás un cuadro amarillo abajo a la izquierda que dice "Shared SRAM 128bit 64kB) 4x 4kx32". Esto se refiere a que hay una porción de 64kB de memoria accesible tanto por el BCM2712 como por el bus master RP1.
Esta memoria tiene cuatro bloques separados, cada uno de los cuales consta de 4 kilobytes e incluye transferencias de datos de 32 bits cada vez.
Finalmente, el RP1 tiene generadores de base de tiempo que puedes configurar para acelerar DMA. Están ahí principalmente para el ritmo de DMA, así como para estabilizar los eventos de entrada GPIO.
Aquí está la imagen de la arquitectura interna de la RP1 de la hoja de datos:
Así que en esa imagen, se puede ver en general cómo funciona el RP1, pero también se puede ver qué funciones periféricas controla.
Controles periféricos
Puedes ver lo siguiente a la derecha, empezando por abajo: GPIO, USB 3 PHY, USB 2 PHY, USB 3 PHY, USB 2 PHY, MIPI DPHY, MIPI DPHY, VDAC y RGMII.
Así, RP1 controla los pines GPIO y sus interfaces periféricos asociados: SPI, UART, I2C, PWM, I2S. También controla la salida de audio Delta Sigma PWM, pero no se puede obtener audio analógico típico, porque Raspberry Pi 5 no tiene un conector de audio.
También controla los puertos USB 2.0 y USB 3.0: cada controlador host gestiona un puerto USB 2.0 y USB 3.0 de bajada. Como dice la hoja de datos, esto significa que "cada puerto de bajada tiene un ancho de banda independiente y no limitado".
Según Liam Fraser, "[D]ado el ancho de banda del enlace PCIe, deberíamos poder ejecutar ambos puertos USB 3 a pleno ancho de banda". Se trata de una enorme mejora con respecto a Raspberry Pi 4.
El RP1 se encarga de los transceptores MIPI, que son cuatro carriles compatibles con DSI y CSI-2.
Tiene un conversor digital-analógico de vídeo de 3 canales compatible con PAL/NTSC y VGA.
Por último, también es responsabilidad del RP1 controlar la MAC Gigabit Ethernet.
Llegados a este punto, puede que te estés preguntando por PIO. Desafortunadamente, hay mucha información que no tenemos en este momento, porque no han publicado toda la documentación para el RP1.
Lo que sí sabemos es que el bloque PIO del RP1 funciona de forma algo diferente al del RP2040. Así, aunque hay un bloque PIO con cuatro máquinas de estado (como el RP2040), tiene el doble de profundidad FIFO. Echa un vistazo a este comentario de Luke Wren:
Esto es lo que sabemos por el momento sobre los controles periféricos.
Permanece atento, porque a medida que pase el tiempo, sin duda darán a conocer una gran cantidad de información sobre el RP1.
Desventajas
Ya hemos hablado de algunas de las cosas interesantes del RP1, pero no todo es un camino de rosas.
Obviamente, lo primero es que el PIO del RP1 funciona de forma diferente al del RP2040. Echa un vistazo a este comentario de Phil:
Otro de los inconvenientes de separar el controlador de E/S del SoC principal es que se introduce cierta latencia.
Según la hoja de datos, esta latencia es "típicamente de 1μs a la anchura y velocidad de enlace de diseño", lo que podría ser un problema "para aplicaciones que dependen de secuencias de escritura rápidas pero puntuales, por ejemplo, protocolos bit-bashed, o aplicaciones que necesitan responder rápidamente al cambio de estado de un pin."
¿Qué nos depara el futuro?
Una de las grandes preguntas es si Raspberry Pi venderá o no la RP1 por separado. Después de todo, venden RP2040 por separado. En un comentario de hace unos días, Alasdair Allan, de Raspberry Pi, daba la siguiente respuesta:
Por supuesto, eso podría ser una desviación o podría ser una respuesta genuina de que no deberíamos esperar un RP1 separado. Así pues, sólo el tiempo lo dirá.
En mi opinión, sería fantástico que vendieran el RP1 por separado.
Sin embargo, una de las alternativas más interesantes procede de Jeff Geerling:
Quizá Raspberry Pi nos ofrezca ambas cosas en algún momento: un chip RP1 independiente y una placa PCIe.
Tendremos que esperar y ver.
Concursos y boletines
Sabemos lo frustrante que es tener que esperar hasta el 23 de octubre para conseguir una Raspberry Pi 5.
Por eso hemos querido que puedas jugar con uno cuanto antes.
Así que hemos organizado un concurso: ¿Qué es lo más loco que se te ocurre para Raspberry Pi 5?
Siempre que su idea no la destruya, puede enviarnos su idea y nosotros la promulgaremos en la nuestra... ¡y escribiremos un artículo sobre ella!
Anunciaremos el ganador aquí y en buyzero.de el 23 de octubre.
La idea ganadora (determinada por nosotros) ganará un kit completo de Raspberry Pi 5, que incluye una fuente de alimentación USB-C Power Delivery (PD) de 27 W, una carcasa para Raspberry Pi 5, una tarjeta SD y una Raspberry Pi 5. Todo ello con envío gratuito dentro de la UE.
El segundo clasificado ganará una Raspberry Pi 5 con envío gratuito dentro de la UE.
Así que no dejes de enviar tus ideas - puedes ir al siguiente enlace para más información: GANA UNA RASPBERRY PI 5 GRATIS!
Conclusión:
Ahí lo tienen: lo esencial del RP1.
Como he subrayado al principio, sin embargo, parte de esta información es susceptible de cambiar. Nos aseguraremos de publicar un nuevo artículo una vez que Raspberry Pi publique documentación más permanente.
Mientras tanto, no dejes de consultar otros de nuestros artículos sobre Raspberry Pi 5:
- Raspberry Pi 4 vs. Raspberry Pi 5
- Primer vistazo a Raspberry Pi 5
- Cómo mantener fría la Raspberry Pi 5
- DOOM en una Raspberry Pi 5
- Gane una Raspberry Pi 5 GRATIS
- 5 sorprendentes características de Raspberry Pi 5
- Velocidad de la tarjeta Micro SD Raspberry Pi 5
- 4 Preguntas frecuentes sobre Raspberry Pi 5
¿Quieres que la RP1 se venda por separado? ¿O tal vez una placa PCIe como la de Jeff Geerling?
Háganoslo saber en los comentarios.
interesante de separar al procesador principal de todos los perifericos de E/S del chip principal,
quizas no desean vender por separado al RP1 por tener solo nucleos M3, y que tendrian que competir con nucleos M4 y M7