ST has announced the NeoChromVG GPU, the first vector graphics accelerator for general-purpose microcontrollers. Available on the upcoming STM32U5G9 and STM32U5F9, it builds on the Neochrom GPU, launched in 2023, and takes features like vector fonts, available on TouchGFX 4.23, to the next level by enabling a whole new type of optimization on embedded systems. Avid readers of the ST Blog will notice how NeoChromVG GPU is the culmination of our push into vector graphics in the hope of helping makers reduce their memory footprint. We even provide development kits and demos to help engineers know if this solution is right for their project.
What’s new? NeoChromVG GPU!
The challenge of creating UIs with less memory
The reason ST decided to release a specific hardware IP accelerating vector operations is because it was an increasingly popular demand from customers looking to reduce their dependency on external flash modules. Memory markets have always been volatile, but many analysts, according to ￼Forbes￼, anticipate strong demand in flash during 2024, bolstered in part by new AI applications trying to create “all-flash object storage systems”. Consequently, smaller companies with less purchasing power could encounter serious issues sourcing modules or simply facing prices too high to make their products viable. Hence, many are looking to either reduce their external NAND needs or obliterate them altogether, which led us to offer NeoChromVG GPU in new STM32U5F9 and STM32U5G9 MCUs.
The NeoChromVG GPU solution
In essence, NeoChromVG GPU is a traditional Neochrom GPU with a hardware unit accelerating vector graphics computations, such as quadratic Bézier curves, which are very common in vector fonts, Bézier tessellation to render surfaces, and vector calculations for vertex transformation, among other things, to rapidly draw vector graphics on screen. It still relies on the same texture mapper as the regular Neochrom GPU and has similar features like L8 compression. Vector graphic acceleration simply becomes an additional tool in a developer’s arsenal to optimize their UI. The feature also comes on the heels of TouchGFX 4.23, which just gained support for vector fonts. Hence, engineers see the overarching strategy ST is using to help with memory dependency.
NeoChromVG GPU will be available on the new STM32U5G9 and STM32U5F9, the former being the version housing a crypto core. Both will feature 3 MB of RAM and 4 MB of dual-bank flash. This hardware configuration has enabled some of our customers to move to a single-chip design that didn’t require external memory at all, while the increase in internal memory and vector graphics support helped others use smaller NAND devices. In both cases, it helps simplify the PCB design to move to only four layers and lower the bill of materials. Similarly, as embedded systems tend to map their NOR memory for greater optimization, not having to map anything above 32 MB becomes a significant time saver.
The best way to start using vector graphics on STM32
Vector graphics aren’t for every system. Even with hardware acceleration, the performance penalty incurred by vector rendering may be too much in certain UIs. However, we are ensuring that developers get rapid prototyping tools to test NeoChromVG GPU in minutes. We are releasing the STM32U5G9J-DK, with a 480 x 480 display, and the STM32U5G9J-DK2 with an 800 x 480 screen, as well as a UI demo showing what developers can accomplish thanks to vector graphics. Even the ST Partner Riverdi, famous for its STM32 Embedded Displays, will soon offer a model with the STM32U5G9 to help develop and take advantage of the vector graphics accelerator.
From Chrom-ART to NeoChrom GPU
What Are Chrom-ART and NeoChrom GPU?
Readers familiar with ST technologies can guess that NeoChrom GPU is the next evolution of Chrom-ART. The latter is a 2D accelerator (DMA2D) embedded inside several STM32 MCUs that optimizes memory access to manipulate images faster. Many tools and products from ST partners use it, such as Storyboard from Crank, Microvisor from Twilio, or interfaces from PsiControl, a TouchGFX Implementer, to only name three. Comparatively, NeoChrom GPU draws from the same philosophy while offering a greater scope of optimizations. Thanks to texture mapping with bilinear and point sampling, the new technology provides new drawing acceleration and supports animations. Hence, what used to require a Desktop PC GPU card can now run on a microcontroller.
How Does NeoChrom GPU Integrate Into the TouchGFX Ecosystem?
Historically, Chrom-ART represented one of ST’s first forays into graphical optimizations. Since then, we acquired TouchGFX and built an entire ecosystem with TouchGFX Designer, Simulator, and Generator. As a result, ST is integrating NeoChrom GPU into these tools right from the start. TouchGFX Designer contains demos showing a smooth animation running at 60 FPS on a circular display. More importantly, it shows the impact on the frame rate when NeoChrom GPU is off to help decision-makers grasp its importance. Similarly, the texture mapping widget will automatically use the new GPU if the MCU supports it. Hence, the immediate integration of the new IP within TouchGFX serves as a witness to ST’s cohesive ecosystem instead of a simple feature list.
From NeoChrom GPU to Real-World Performance
What Are the Challenges to Graphical Performances?
There exist two main challenges to graphical performances: an instructions-per-clock limitation and a memory issue. The first one often follows architectural innovations. Microcontrollers have ALU and FPU restrictions due to their size and low power consumption, but improvements in manufacturing processes allow for more transistors capable of handling more operations. NeoChrom GPU follows such trends with a hardware IP accelerating more types of graphical calculations. The second challenge is trickier but all the more critical because memory will always remain a scarce resource. While the STM32U599 will come with 2.5 MB of internal RAM capable of storing two frame buffers, many embedded systems need external RAM. The problem is that it comes with significant performance penalties.
What Are Unique STM32 Implementations?
To solve this second challenge, NeoChrom GPU comes with hardware optimizations specific to STM32 MCUs. For instance, the STM32U5 relies on either an 8-bit Octal Serial Peripheral Interface (OSPI) or a 16-bit high-speed interface (HSPI) at 200 MHz to external memory modules to hasten fetching operations to the L2 cache. Similarly, the L1 cache can directly access two 832 KB frame buffers in the internal RAM. As a result, tessellation is significantly faster thanks to quick access to all the data necessary to render the image in real-time. Put simply, our engineers optimized performance by working on reducing the time it takes to access textures and other assets, ultimately accelerating rendering by up to six times.
The first industry feedback around NeoChrom GPU has been very positive. While many MCU makers have similar IPs to accelerate graphical computations, the specific STM32 optimizations and the TouchGFX ecosystem led many early alpha testers to adopt NeoChrom GPU instead of competing solutions. The new technology is already supported within TouchGFX 4.19, and a few alpha customers have already worked on production-ready UIs using an upcoming STM32U599 development kit. ST will also include NeoChrom GPU in other upcoming microcontrollers and we’ll update this blog post as they become public.