In den letzten zehn Jahren haben grafische Benutzeroberflächen in Haushaltsgeräten große Fortschritte gemacht. Durch moderne Anzeigetechnologien hat sich das Layout von einem statischen hin zu einem dynamischen und sogar adaptiven Design weiterentwickelt, welches das System um komplexe Paradigmen erweitert. Der Betrieb eines dynamischen grafischen Designs ist indes sehr daten- und rechenintensiv, was die Komplexität und Kosten des Gesamtsystems in die Höhe treibt.

Eckdaten

LCDs in Haushaltsgeräten erleichtern die Bedienung der Geräte und ermöglichen optisch ansprechende Designs. Indes sind hochwertige GUI-Implementationen sehr daten- und rechenintensiv mit entsprechendem Einfluss auf die Gesamtsystemkosten. Atmel ist einer der wenigen Technologie-Anbieter mit einem sehr breiten Produktportfolio, das die HMI-Anforderungen von Industrieanwendungen erfüllt. Darüber hinaus bietet das Unternehmen die passenden Entwicklungstools und umfangreiche Software sowie ein Ökosystem, um die Entwicklung grafischer Bedienoberflächen zu beschleunigen.

Die Qualität und die Reaktionsfähigkeit der grafischen Benutzerschnittstelle (GUI) sagen viel über das Endprodukt aus und vermitteln Anwendern einen ersten Eindruck. Eine qualitativ hochwertige GUI-Implementierung verbraucht allerdings jede Menge Ressourcen und erfordert teure Prozessoren. Jedoch gibt es für kundenspezifische Bauteile bei Weißer Ware und Industrieanwendungen extreme Einschränkungen hinsichtlich der Kosten.

Bild 1: Blockdiagramm des LCD-Controllers SAMA5D4.

Bild 1: Blockdiagramm des LCD-Controllers SAMA5D4.Atmel

Entscheidend für die Systemleistung sind vor allem der überlegte Einsatz der internen Prozessor-Ressourcen, eine gute Synchronisation der verschiedenen Grafik-Softwaremodule und ein priorisierter Zugriff des LCD-Controllers auf den Systembus.

Speicheranforderungen und optimale Bus-Bandbreite

Größe und Kosten von HMI-Produkten haben erheblichen Einfluss auf die Art der HMI, die für eine Implementation in Frage kommt. So basieren die meisten HMI-Anwendungen auf MPUs, die einen externen Speicher benötigen, um eine Programm- und Datenspeicherung bereitzustellen. Das Programm ist normalerweise in einem nichtflüchtigen Speicher wie NAND- oder Serial-Flash abgelegt. Beim Booten wird der Programm-Code in ein DRAM übertragen und von dort ausgeführt. Das DRAM dient außerdem dazu, die Grafik für die Aktualisierung des Displays zu speichern. Selbst kleine QVGA-Displays mit 320 × 240 Pixel und 16 Farben benötigen schon 150 KByte SRAM und belegen damit einen großen Anteil des internen SRAM. Die Verwendung von Bildschirmen größer als 4,3” erfordert mehr Speicher, was wiederum die Materialkosten erhöht. Der Einsatz externer Speicher bietet Entwicklern die Möglichkeit, die Speicherkosten abhängig von den Anforderungen zu skalieren und einen bevorzugten Anbieter zu wählen.

Bild 2: Beispiel eines Softwarepakets für ein Display mit 800 × 480 Pixel.

Bild 2: Beispiel eines Softwarepakets für ein Display mit 800 × 480 Pixel.Atmel

LCDs müssen regelmäßig aktualisiert werden, um das dargestellte Bild zu behalten. Der LCD-Controller holt die Daten aus aufeinanderfolgenden Speicherstellen und beginnt damit an einer im Register des LCD-Controllers hinterlegten Startadresse. Die Aktualisierung erfolgt entweder per Software-Trigger oder automatisch im Hintergrund durch DMA und belegt einen großen Teil der verfügbaren Systembandbreite. Die minimal erforderliche Gesamt-Speicherbandbreite zum Aktualisieren eines LCD lässt sich mit der folgenden Gleichung berechnen:

  • Speicherbandbreite = Horizontalauflösung × Vertikalauflösung × Memory Bpp × Bildwiederholungsrate

Maximale Bandbreite und minimale Latenz

Dynamische GUIs benötigen noch größere Bildspeicher. Deshalb nutzen die meisten grafischen Software-Implementierungen zwei getrennte Bildzwischenspeicher. Dann lässt sich der Inhalt des ersten Bildspeichers aktualisieren, während der zweite Bildspeicher das LCD aktualisiert. Hoch entwickelte Grafiksoftware erlaubt zusätzliche Funktionen wie etwa mehrere Ebenen, was aber die Anforderungen an die Speicherbandbreiten der grafischen Bedienoberfläche weiter nach oben treibt.

Bild 3: Neon- und L2-Cache optimierte DirectFB-Verbesserungen für ein 16-Bit-Display.

Bild 3: Neon- und L2-Cache optimierte DirectFB-Verbesserungen für ein 16-Bit-Display.Atmel

In der oben aufgeführten Gleichung ist die Leistung der Anwendung direkt proportional zur Speicherbandbreite des LCD-Controllers. Die ARM-Cortex-A5-Prozessoren verfügen daher über einige Merkmale, die den Speicherzugriff des LCD-Controllers optimieren, ohne die Leistung des Systems zu beeinträchtigen.

Wie in Bild 1 gezeigt, enthält das LCD-Modul ein DMA Engine Address Generation Modul (DEAG), das einen Daten-Prefetch durchführt und Zugriff auf die AHB-Schnittstelle benötigt. Der DMA-Controller liest das Image über eine 64-Bit-Dual-AHB-Master-Schnittstelle. Diese Schnittstelle wurde speziell entwickelt, um die Speicherzugriffsbandbreite zu verbessern. Für den Base-, Over- und HEO-Layer können Anwender den AHB-Master entsprechend der Anwendung über ein Feld im Konfigurationsregister jedes Layers anpassen. Diese Auswahl erlaubt den Programmierern ein Ausbalancieren der Last durch den Speicherzugriff für Designs mit mehreren Ebenen. Außerdem ist der AHB-Bus mit dem externen Speicher über einen Multi-Port-DDR-SDRAM-Controller mit acht Slave-AHB-Schnittstellen verbunden. Alle acht unabhängigen AHB-Ports sind verschachtelt, um die Speicherbandbreite zu maximieren und die Transaktionslatenz aufgrund des DDR-Protokolls zu minimieren.

Bild 4: Neon- und L2-Cache optimierte DirectFB-Verbesserungen für ein 32-Bit-Display.

Bild 4: Neon- und L2-Cache optimierte DirectFB-Verbesserungen für ein 32-Bit-Display.Atmel

Paralleler Zugriff auf den Bildzwischenspeicher

Der DDR-Controller erweitert die Speicherfähigkeiten des Chips durch eine Schnittstelle zum externen 16- oder 32-Bit-DDR-SDRAM-Bauteil. Da die Bildzwischenspeicher für die LCD-Aktualisierung mehr Speicher benötigen, als auf dem Chip verfügbar ist, werden diese dem externen DDR-Speicher zugeordnet. Das Management des Systems und des parallelen Zugriffs auf den Bildzwischenspeicher sowie die Flexibilität der acht unabhängigen AHB-Ports des DDR-Controllers maximieren die Speicherbandbreite des gesamten Systems und minimieren die Latenz. Diese Vorteile des in der SAMA5Dx-Familie integrierten Bus-Systems haben großen Einfluss auf die Bandbreite der Bedienoberfläche-Anwendungen.

Tabelle 1: Zugriff von Master auf Slave bei H64MX.

Tabelle 1: Zugriff von Master auf Slave bei H64MX.Atmel

Wie Tabelle 1 zeigt, verwaltet die H64MX-Bus-Matrix zehn Master. Der LCDC DMA verfügt über zwei Master-Ports zum Bus, die direkt mit den DDR-Ports verbunden sind und gleichzeitig zu den anderen Bus-Aktivitäten der acht weiteren Master und elf zusätzlichen Slaves einen DDR-Zugriff ausführen können. Die Bandbreite des 64 Bit breiten Busses, der mit einem MCK von 176 MHz läuft, wird damit voll ausgenutzt.

Bursts beschleunigen die Datenübertragung

Der DDR-Controller in den Bauteilen der SAMA5Dx-Familie von Atmel unterstützt einen Schreib- und Lese-Burst von acht Speicherstellen. Dadurch kann der Befehls- und Adressbus bereits den folgenden Befehl voraussehen, was die Latenzzeit reduziert. Bursts erlauben eine sehr effiziente Datenübertragung. Durch den Einsatz von Bursts bekommt das LCD die Daten schneller und der externe Bus wird für andere Master frei. Nur mithilfe von Bursts lässt sich der in Tabelle 2 aufgeführte RAM Lese-Durchsatz erreichen. Außerdem kann der DDR-Controller die aktive Reihe in jeder Bank ansprechen und so die Leistung des DDR-Zugriffs durch die Vermeidung von gleichzeitigen Zugriffen auf verschiedene Reihen maximieren.

Tabelle 2: LCD-Bandbreite für zwei verschiedene Konfigurationen.

Tabelle 2: LCD-Bandbreite für zwei verschiedene Konfigurationen.Atmel

Die Tabelle zeigt eine theoretische DDR2-Zugriffsanalyse für mehrere LCD-Konfigurationen der SAMA5-Prozessorfamilie. Für jeden Burst-Schreibzugriff werden vier Taktflanken (aus neun) genutzt, um die Daten zu übertragen. Die Bandbreite liegt bei ungefähr 1064 × 4/9 = 473 MByte/s. Für jeden Burst-Lesezugriff werden vier Taktflanken (aus elf) genutzt, um Daten zu übertragen. Die Bandbreite ist etwa 1064 × 4/11 = 430 MByte/s.

Der LCD-Controller ermöglicht eine Multilayer-Nutzung, wodurch sich bessere Bedienoberflächen entwerfen lassen. Jeder Layer erfordert zusätzliche Speicherbandbreite für die Darstellung auf dem LCD. Tabelle 3 zeigt Beispiele von LCD-Konfigurationen für verschiedene Layer mit unterschiedlichen Größen, die auf einem 800 × 480 Pixel großen Display angezeigt werden. Die Summe der durch die verschiedenen Layer genutzten Bandbreite ergibt eine Gesamtnutzung von 30 % der verfügbaren DDR2-Speicherbandbreite. Anwender müssen jeden Layer sorgfältig konfigurieren, damit das Gesamtsystem die höchste Leistung erreicht.

Grafikbeschleunigung und erweiterte LCD-Funktionen

3D/2D-Grafikfunktionen werden bei der Implementierung von grafischen Bedienoberflächen immer wichtiger, besonders wenn eine ansprechende Bedienoberfläche gefordert ist. Grafische Funktionen sind rechenintensiv und stellen eine hohe Belastung für die Systemressourcen dar. GUIs basieren heute auf 2D-, 2,5D- oder sogar 3D-Grafik und jeder Schritt erhöht die Anforderungen im Hinblick auf Leistung, Bandbreite und Speicher. Eine der wirksamsten Alternativen ist der Einsatz einer Hardware-Grafikbeschleunigung, welche die Leistung von 2D/3D-Funktionen erhöht. Allerdings führen die physischen Einschränkungen wie Leistungsgröße der Grafikbeschleunigungs-IP und die Tatsache, dass sich der Grafikbeschleuniger zusammen mit anderen Blöcken wie der CPU in einem einzelnen Chip befinden sollte, bei Prozessoren mit integriertem Grafikbeschleuniger zu höheren Kosten.

Entwickler von Prozessoren für HMI-Anwendungen müssen häufig Kompromisse zwischen Leistung und Gesamtsystemkosten eingehen. Der LCD-Controller SAMA5Dx unterstützt 2D-Hardware-Beschleunigungsfunktionen einschließlich einer hoch entwickelten Grafikverarbeitung wie Alpha-Blending, Rotation um 90°, 180°, 270° mit vertikalem und horizontalem Flip, Skalierung mit einem nicht ganzzahligen Verhältnis bis zu 1280 × 720 Pixel, Farbkonvertierung von YUV (Y‘CbCr) nach RGB und Chroma Up Sampling von YUV 4:2:0 auf YUV 4:4:4.

Tabelle 3: Beispielhafte Werte für die LCD-Bandbreite.

Tabelle 3: Beispielhafte Werte für die LCD-Bandbreite.Atmel

Außerdem integriert der ARM Cortex-A5-Core einen Neon-Coprozessor mit SIMD-Architektur, den ARM speziell zum Beschleunigen von Multimedia- und Signalverarbeitungsalgorithmen einschließlich 2D/3D-Grafik vorgesehen hat. Die SAMA5Dx-Prozessorfamilie nutzt die Neon-Architekturerweiterung und einen 128 KByte L2-Cache, um Grafikoperationen zu beschleunigen, ohne die Systemkosten durch den Einsatz eines Grafikbeschleunigers zu beeinflussen.

Die meisten 3D/2D-Grafiksoftware-Implementierungen basieren auf Bibliotheken wie DirectFB, die eine Grafikbeschleunigung zur Verfügung stellen. Diese Funktionen integrieren eine Hardware-Abstraktionsebene für Grafikoperationen, die durch einen Hardwarebeschleuniger unterstützt werden können und OpenGL-ähnliche Aufrufe nutzen oder sich in die Software implementieren lassen. Eine Neon-optimierte DirectFB-Implementierung ist integriert und auf dem SAMA5D4 geprüft. Die Zahlen in Bild 3 und Bild 4 zeigen die Verbesserung von DirectFB mit aktiviertem Neon und für 16- und 32-Bit-Berechnungen mit aktiviertem L2-Cache.