J'ai lu la documentation de RP1 pour que vous n'ayez pas à le faire.

Essentiels du RP1 Image de titre

L'une des caractéristiques les plus remarquables du nouveau Raspberry Pi 5 est l'inclusion de RP1 - la première puce de silicium conçue en interne sur un produit phare du Raspberry Pi. Dans cet article, je souhaite passer en revue les éléments essentiels de la RP1 et vous expliquer ce qui la rend si révolutionnaire.

Malheureusement, cet article ne peut pas être l'équivalent d'un "Tout sur RP1", car la documentation complète n'a pas encore été publiée.

Au lieu de cela, ils ont publié un Projet de fiche technique de 90 pages qui présente certains des principes fondamentaux du RP1.

Composants du Raspberry Pi 5

Commençons donc par l'histoire du RP1.

L'histoire

RP1 est donc le plus ancien projet de silicium interne à Raspberry Pi. C'est pourquoi il est appelé "RP1“.

Dans l'annonce du Raspberry Pi 5, Eben Upton a écrit : "En développement depuis 2016, RP1 est de loin le programme le plus long, le plus complexe et (à $15 millions) le plus coûteux que nous ayons jamais entrepris ici à Raspberry Pi."

C'est le le plus ancien, le plus complexeet le plus cher programme.

Cependant, ce n'est pas le premier silicium développé en interne par Raspberry Pi. Pour cela, il faut se tourner vers le RP2040, qui est le microcontrôleur du Pico et du Pico W. Ils ont donc lancé le RP2040 en 2021, même si le programme a en fait commencé plus tard.

En interne chez Raspberry Pi, tout le monde appelait RP1 "Project Y".

Voyons donc ce qu'est le RP1.

Caractéristiques

Sur les modèles précédents, toutes les E/S étaient intégrées au processeur principal.

L'idée principale derrière RP1 est donc de séparer les E/S du processeur principal - dans ce cas, le Broadcom BCM2712. Il s'agit donc d'un pont sud qui prend en charge la grande majorité des fonctions d'E/S du Raspberry Pi 5.

Cela a un certain nombre d'effets, l'un d'entre eux étant d'offrir des processus de géométrie plus petite pour le processeur principal. Le BCM2712, comme nous l'avons déjà mentionné, est un processeur de 16 nm.

Par ailleurs, RP1 est lui-même à des nœuds de processus de 40 nm.

Le processeur principal peut ainsi se consacrer à des tâches plus complexes.

Ainsi, le BCM2712 prend en charge les interfaces les plus rapides, tout en laissant les interfaces les plus lentes pour le RP1. Je l'expliquerai plus en détail dans la section suivante.

Mais les deux puces - RP1 et BCM2712 - fonctionnent ensemble et se connectent via un bus PCIe 2.0 à 4 voies. Il s'agit d'une connexion rapide, mais il y a inévitablement une certaine latence entre les deux.

Les voies PCIe entre RP1 et BCM2712
Les voies PCIe entre RP1 et BCM2712.

Passons maintenant aux caractéristiques internes du RP1.

J'ai inclus une image ci-dessous du diagramme du RP1 pour référence.

Le RP1 contient donc deux cœurs de processeur basés sur l'architecture Arm Cortex-M3 (Cortex M3 0 et Cortex M3 1 dans les cases rouges en haut à gauche du diagramme).

Elle dispose également d'un contrôleur DMA à huit canaux, qui permet à la puce de gérer les transferts de données pour un maximum de huit périphériques différents simultanément.

La puce comprend trois PLL intégrées : 2 PLL fractionnaires-N pour générer des horloges vidéo et audio indépendantes, et 1 PLL entière pour générer des horloges système.

RP1 dispose également d'un convertisseur analogique-numérique (ADC) à approximation successive à cinq entrées, d'une résolution de 12 bits, fonctionnant à 500kSPS, avec quatre entrées externes et un capteur de température interne.

Si vous regardez le diagramme ci-dessous, vous remarquerez une case jaune en bas à gauche qui indique "Shared SRAM 128bit 64kB) 4x 4kx32". Cela signifie qu'il y a une portion de mémoire de 64kB accessible à la fois par les maîtres de bus BCM2712 et RP1.

Cette mémoire comporte quatre blocs distincts, chacun d'entre eux étant constitué de 4 kilo-octets et comprenant des transferts de données de 32 bits à la fois.

Enfin, le RP1 possède des générateurs de base de temps que vous pouvez configurer pour rythmer le DMA. Ils sont là principalement pour rythmer le DMA ainsi que pour stabiliser les événements d'entrée GPIO.

Voici l'image de l'architecture interne du RP1 tirée de la fiche technique :

Sur cette image, vous pouvez donc voir le fonctionnement général du RP1, mais aussi les fonctions périphériques qu'il contrôle.

Contrôles périphériques

Vous pouvez voir les éléments suivants à droite, en commençant par le bas : GPIO, USB 3 PHY, USB 2 PHY, USB 3 PHY, USB 2 PHY, MIPI DPHY, MIPI DPHY, VDAC et RGMII.

RP1 contrôle donc les broches GPIO et leurs interfaces périphériques associées : SPI, UART, I2C, PWM, I2S. Il contrôle également la sortie audio Delta Sigma PWM, mais vous ne pouvez pas obtenir un son analogique typique, car le Raspberry Pi 5 n'a pas de prise audio.

Il contrôle également les ports USB 2.0 et USB 3.0 - chaque contrôleur hôte gère un port USB 2.0 et USB 3.0 en aval. Comme l'indique la fiche technique, cela signifie que "chaque port en aval dispose d'une bande passante indépendante et non limitée"

Selon Liam Fraser, "[A]u vu de la bande passante de la liaison PCIe, nous devrions être en mesure de faire fonctionner les deux ports USB 3 à pleine bande passante". Il s'agit d'une amélioration considérable par rapport au Raspberry Pi 4 !

PCIe de RP1 à USB
Quels beaux chemins !

Le RP1 est responsable des émetteurs-récepteurs MIPI, qui sont quatre voies supportant DSI et CSI-2.

Il est doté d'un convertisseur numérique-analogique vidéo à 3 canaux qui prend en charge les formats PAL/NTSC et VGA.

Enfin, il incombe également au RP1 de contrôler le Gigabit Ethernet MAC.

À ce stade, vous vous interrogez peut-être sur PIO. Malheureusement, il y a beaucoup d'informations que nous n'avons pas pour le moment, parce qu'ils n'ont pas publié toute la documentation pour le RP1.

Ce que nous savons, c'est que le bloc PIO de RP1 fonctionne un peu différemment de celui de RP2040. Ainsi, bien qu'il y ait un bloc PIO avec quatre machines d'état (comme le RP2040), il a le double de la profondeur FIFO. Consultez ce commentaire de Luke Wren :

Voilà donc ce que nous savons des contrôles périphériques à l'heure actuelle.

Restez à l'écoute, car au fur et à mesure que le temps passe, ils publieront certainement un grand nombre d'informations sur le RP1.

Inconvénients

Nous avons parlé de certains aspects positifs du RP1, mais ce n'est pas tout à fait un lit de roses.

De toute évidence, la première chose à faire est que le PIO de RP1 fonctionne différemment de celui de RP2040. Consultez ce commentaire de Phil :

Un autre inconvénient de la séparation du contrôleur d'E/S du SoC principal est l'introduction d'un certain temps de latence.

Selon la fiche technique, cette latence est "typiquement de 1μs à la largeur et à la vitesse de la liaison conçue", ce qui pourrait poser un problème "pour les applications qui reposent sur des séquences d'écriture rapides mais opportunes, par exemple les protocoles à base de bits, ou les applications qui doivent répondre rapidement au changement d'état d'une broche."

Que nous réserve l'avenir ?

L'une des grandes questions est de savoir si Raspberry Pi vendra ou non RP1 séparément. Après tout, ils vendent RP2040 séparément. Dans un commentaire publié il y a quelques jours, Alasdair Allan, du site Raspberry Pi, a donné la réponse suivante :

Bien sûr, il peut s'agir d'une déviation ou d'une réponse sincère indiquant que nous ne devrions pas nous attendre à un RP1 séparé. Seul l'avenir nous dira ce qu'il en est de cette question.

Il serait fantastique de vendre le RP1 séparément, à mon avis.

L'une des alternatives les plus intéressantes a été proposée par Jeff Geerling :

Peut-être que Raspberry Pi nous offrira les deux à un moment donné - une puce RP1 séparée et une carte PCIe !

Nous devrons attendre et voir.

Concours et lettre d'information

Nous savons à quel point il est frustrant de devoir attendre le 23 octobre pour obtenir un Raspberry Pi 5.

C'est pourquoi nous avons voulu vous donner la possibilité d'en faire l'expérience le plus rapidement possible.

Nous avons donc mis en place un concours : Quelle est la chose la plus folle que vous puissiez imaginer pour le Raspberry Pi 5 ?

Concours Raspberr Pi 5

Si votre idée ne le détruit pas, vous pouvez nous envoyer votre idée et nous la mettrons en œuvre sur le nôtre - et nous écrirons un article à ce sujet !

Nous annoncerons le gagnant ici et sur buyzero.de le 23 octobre.

L'idée gagnante (déterminée par nos soins) remportera un kit Raspberry Pi 5 complet - comprenant une alimentation Power Delivery (PD) USB-C de 27 W, un boîtier Raspberry Pi 5, une carte SD et un Raspberry Pi 5. Le tout avec une livraison gratuite au sein de l'UE.

Le finaliste gagnera un Raspberry Pi 5 avec livraison gratuite dans l'UE.

N'oubliez donc pas d'envoyer vos idées - vous pouvez consulter le lien suivant pour plus d'informations : GAGNEZ UN RASPBERRY PI 5 GRATUIT!

Conclusion

Voilà donc l'essentiel du RP1.

Comme je l'ai souligné au début, certaines de ces informations sont susceptibles de changer. Nous ne manquerons pas de publier un nouvel article dès que Raspberry Pi publiera une documentation plus permanente.

En attendant, n'hésitez pas à consulter nos autres articles sur le Raspberry Pi 5 :

Souhaitez-vous que la RP1 soit vendue séparément ? Ou peut-être une carte PCIe comme celle de Jeff Geerling ?

Dites-nous ce que vous en pensez dans les commentaires ci-dessous !

1 commentaire

  1. Renato sur octobre 15, 2023 à 5:36 pm

    Il est intéressant de séparer le processeur principal de tous les périphériques d'E/S de la puce principale,
    Certains ne souhaitent pas se séparer de la RP1 pour n'avoir que des noyaux M3, et ont tendance à être en concurrence avec les noyaux M4 et M7.

Laissez un commentaire