Mise à jour : Les STM32H7R et STM32H7S sont désormais équipés du GPU NeoChrom. Consultez notre blog pour plus d’informations : STM32H7R, STM32H7S : 1er STM32 avec bootflash et cryptage à la volée #STM32Summit
ST annonce aujourd’hui le NeoChromVG GPU, le processeur vectoriel pour microcontrôleurs généraliste Disponible sur les prochains STM32U5G9 et STM32U5F9, il s’appuie sur le Neochrom, GPU lancé en 2023, et accélère le rendement des polices vectorielles, disponibles sur TouchGFX 4.23, en permettant un tout nouveau type d’optimisation sur les systèmes embarqués. Les lecteurs assidus du blog ST remarqueront que le NeoChromVG GPU est l’aboutissement de notre effort en matière de graphiques vectoriels dans l’espoir d’aider les fabricants à réduire leur empreinte mémoire. Nous fournissons même des kits de développement et des démonstrations pour aider les ingénieurs à savoir si cette solution est adaptée à leur projet.
Table des matières
Quoi de neuf ? NeoChromVG GPU !
Le défi de créer des interfaces graphiques avec moins de mémoire
Si ST a décidé de publier un accélérateur hardware dédié aux opérations vectorielles, c’est parce qu’il s’agissait d’une demande de plus en plus populaire de la part de clients cherchant à réduire leur dépendance à l’égard des modules flash externes. Les marchés de la mémoire ont toujours été volatils, mais de nombreux analystes, selon Forbes, anticipent une forte demande en flash au cours de l’année 2024, soutenue en partie par de nouvelles applications d’IA qui tentent de créer des » systèmes de stockage d’objets qui n’utilisent que de la flash « . Par conséquent, les petites entreprises ayant moins de pouvoir d’achat pourraient rencontrer de sérieux problèmes d’approvisionnement ou simplement faire face à des prix trop élevés pour rendre leurs produits viables. C’est pourquoi beaucoup cherchent à réduire leurs besoins en NAND externe ou à les supprimer complètement, ce qui nous a amené à proposer le NeoChromVG GPU dans les nouveaux STM32U5F9 et STM32U5G9.
La solution NeoChromVG GPU
En substance, le NeoChromVG GPU est un processeur graphique Neochrom traditionnel doté d’une unité matérielle accélérant les calculs graphiques vectoriels, tels que les courbes de Bézier quadratiques, très courantes dans les polices vectorielles, la tessellation de Bézier pour le rendu des surfaces et les calculs vectoriels de transformation des vertex, entre autres, afin de dessiner rapidement des vecteurs à l’écran. Il s’appuie toujours sur le même mappeur de texture que le GPU Neochrom classique et dispose de fonctionnalités similaires telles que la compression L8. L’accélération des graphiques vectoriels devient simplement un outil supplémentaire dans l’arsenal des développeurs pour optimiser leur interface utilisateur. Cette fonctionnalité fait suite à TouchGFX 4.23, qui vient de prendre en charge les polices vectorielles. Les ingénieurs voient donc la stratégie globale utilisée par ST pour réduire la dépendance à la mémoire.
Le GPU NeoChromVG sera disponible sur les nouveaux STM32U5G9 et STM32U5F9, le premier étant la version contenant un cœur avec fonctions cryptographiques. Les deux modèles disposeront de 3 Mo de RAM et de 4 Mo de mémoire flash à deux banques. Cette configuration matérielle a permis à certains de nos clients de passer à une conception mono-processeur ne nécessitant aucune mémoire externe, tandis que l’augmentation de la mémoire interne et la prise en charge des graphiques vectoriels ont permis à d’autres d’utiliser de NAND plus petites. Dans les deux cas, cela permet de simplifier la conception du circuit imprimé en passant à seulement quatre couches et en réduisant la nomenclature. De même, les systèmes embarqués ayant tendance à mapper leur mémoire NOR pour une meilleure optimisation, ne pas avoir à mapper tout ce qui dépasserait 32 Mo représente un gain de temps considérable.
La meilleure façon de commencer à utiliser les graphiques vectoriels sur STM32
Les graphiques vectoriels ne conviennent pas à tous les systèmes. Même avec l’accélération matérielle, la pénalité de performance encourue par le rendu vectoriel peut être trop importante dans certains cas. Cependant, nous veillons à ce que les développeurs disposent d’outils de prototypage rapide pour tester NeoChromVG GPU en quelques minutes. Nous sortons donc le STM32U5G9J-DK, avec un écran de 480 x 480, et le STM32U5G9J-DK2 avec un écran de 800 x 480, ainsi qu’une interface utilisateur démo montrant ce que les développeurs peuvent accomplir grâce aux graphiques vectoriels. Même le partenaire de ST , Riverdi, célèbre pour ses STM32 Embedded Displays, proposera bientôt un modèle équipé du STM32U5G9 pour aider à développer et à tirer parti de l’accélérateur de graphisme vectoriel.
De Chrom-ART à NeoChrom GPU
Que sont Chrom-ART et NeoChrom GPU ?
Les lecteurs familiers avec les technologies ST peuvent deviner que NeoChrom GPU est l’évolution de Chrom-ART. Ce dernier est un accélérateur 2D (DMA2D) intégré dans plusieurs MCU STM32 qui optimise l’accès à la mémoire pour manipuler les images plus rapidement. De nombreux outils et produits des partenaires de ST l’utilisent, tels que Storyboard de Crank, Microvisor de Twilio, ou les interfaces de PsiControl, un implémenteur de TouchGFX, pour n’en citer que trois. Comparativement, NeoChrom GPU s’inspire de la même philosophie tout en offrant un plus grand nombre d’optimisations. Grâce au mappage de texture avec échantillonnage bilinéaire et ponctuel, la nouvelle technologie offre une nouvelle accélération du dessin et prend en charge les animations. Ainsi, ce qui nécessitait auparavant une carte graphique pour PC de bureau peut désormais tourner sur un microcontrôleur.

Comment le GPU NeoChrom s’intègre-t-il dans l’écosystème TouchGFX ?
Historiquement, Chrom-ART a représenté l’une des premières incursions de ST dans les circuits graphiques. Depuis, nous avons acquis TouchGFX et construit un écosystème complet avec TouchGFX Designer, Simulator et Generator. En conséquence, ST supporte NeoChrom GPU dans ses logiciels dès aujourd’hui. TouchGFX Designer contient des démonstrations montrant une animation fluide fonctionnant à 60 images par seconde sur un écran circulaire. Plus important encore, il montre l’impact sur le taux de rafraîchissement lorsque NeoChrom GPU est désactivé afin d’aider les décideurs à comprendre son importance. De même, le widget de mappage de texture utilisera automatiquement le nouvel accélérateur graphique du moment qu’il est présent dans le MCU. Ainsi, le support immédiat du nouvel accélérateur graphique par TouchGFX témoigne de la cohésion de l’écosystème de ST plutôt que d’une simple liste de fonctionnalités.
Du NeoChrom GPU aux performances réelles
Quels sont les défis posés par les performances graphiques ?

Les performances graphiques se heurtent à deux problèmes principaux : une limitation du nombre d’instructions par cycle d’horloge et un problème de mémoire. La première suit souvent les innovations architecturales. Les microcontrôleurs ont des restrictions en matière d’ALU et de FPU en raison de leur taille et de leur faible consommation d’énergie, mais les améliorations des processus de fabrication permettent d’augmenter le nombre de transistors capables de traiter davantage d’opérations. NeoChrom GPU suit ces tendances avec un accélérateur optimisant encore plus de types de calcul. Le second défi est plus délicat mais d’autant plus critique que la mémoire restera toujours une ressource rare. Bien que le STM32U599 soit livré avec 2,5 Mo de RAM interne capable de stocker deux framebuffers, de nombreux systèmes embarqués ont besoin de RAM externes. Le problème, est qu’elle engendre une baisse importante des performances.
Quelles sont les implémentations uniques aux STM32 ?
Pour résoudre ce second problème, NeoChrom GPU est doté d’optimisations matérielles spécifiques aux STM32. Par exemple, le STM32U5 s’appuie sur une interface OSPI de 8 bits ou une interface HSPI de 16 bits à 160 MHz pour accélérer les opérations d’extraction de la mémoire flash vers le cache L2. De même, la mémoire cache L1 peut accéder directement à deux framebuffer de 832 Ko dans la mémoire vive interne. Ainsi, la tessellation est nettement plus rapide grâce à un accès rapide à toutes les données nécessaires au rendu de l’image en temps réel. En d’autres termes, nos ingénieurs ont optimisé les performances en s’efforçant de réduire le temps d’accès aux textures et autres ressources, ce qui a permis d’accélérer le rendu jusqu’à six fois.
Quelle est la prochaine étape ?
Les premiers retours de l’industrie sur NeoChrom GPU ont été très positifs. Alors que de nombreux fabricants de MCU disposent de technologies similaires pour accélérer les calculs graphiques, les optimisations spécifiques à STM32 et l’écosystème TouchGFX ont conduit de nombreux testeurs alpha à adopter NeoChrom GPU plutôt que des solutions concurrentes. La nouvelle technologie est déjà prise en charge par TouchGFX 4.19, et quelques clients alpha ont déjà travaillé sur des interfaces utilisateur prêtes à la production en utilisant un kit de développement STM32U599 à venir. ST inclura également NeoChrom GPU dans d’autres microcontrôleurs à venir et nous mettrons à jour ce blog au fur et à mesure qu’ils seront rendus publics.