Verarbeitung von Multimedia-Informationen mit einer neuen Prozessorgeneration für mobile Geräte Mobile Media Processing der Zukunft

Die neue Prozessorarchitektur von StarCore verfügt über erweiterte Multimedia-Fähigkeiten. Damit eignen sie sich besonders für den Einsatz in leistungshungrigen, mobilen Geräten, wie z.B. Smartphones oder portablen Multimedia-Spielern – dank ihrer speziellen Multimedia-Eigenschaften wie applikationsspezifische „Instruction Set Architecture“-Erweiterungen, dynamische Verzweigungsvorhersage und Vorausberechnung der Stack-Pointer.

Verarbeitung von Multimedia-Informationen mit einer neuen Prozessorgeneration für mobile Geräte

Die neue Prozessorarchitektur von StarCore verfügt über erweiterte Multimedia-Fähigkeiten. Damit eignen sie sich besonders für den Einsatz in leistungshungrigen, mobilen Geräten, wie z.B. Smartphones oder portablen Multimedia-Spielern – dank ihrer speziellen Multimedia-Eigenschaften wie applikationsspezifische „Instruction Set Architecture“-Erweiterungen, dynamische Verzweigungsvorhersage und Vorausberechnung der Stack-Pointer.

Multimedia-Dienste gehören zu den Hauptinnovationstreibern im Mobilgeräte-Markt. Die besonderen Herausforderungen dieser Anwendungen liegen in den Bereichen effizientes Quell-Codieren in verbesserter Qualität, schmalere Bandbreiten und spezielle Speicheranforderungen sowie minimaler Leistungsverbrauch. Während in den vergangenen Jahren signifikante Fortschritte bezüglich der Entwicklung effizienter Audio- und Video-Codecs erzielt wurden, bleibt der Leistungsverbrauch nach wie vor der einschränkende Faktor für mobile Geräte der obersten Leistungsklasse.

Bisher konzentrieren sich Entwickler für mobile Geräte stark auf fest verdrahtete Bausteine, weil diese die niedrigsten Gesamtkosten und den geringsten Leistungsverbrauch aufweisen. Da jedoch die Codierungs-Standards immer komplexer und vielfältiger werden, wird die Entwicklung von Codec-spezifischen Hardware-Blöcken schwierig und eine universelle Hardware für alle Codecs unmöglich. Ein Hardware-DCT-Block (Discrete Cosinus Transformation), der für H.263 und MPEG-4 Simple Profile optimiert ist, kann unter Umständen nicht mit einem H.264-Encoder zusammenarbeiten, weil für diesen Codec eine noch einfachere Integer-Transformation definiert ist.

In Bild 1 sind die Beschränkungen der verschiedenen Schaltungs-Konzepte für mobile Multimedia-Geräte dargestellt. Festverdrahtete ASICs sind die preisgünstigste und bezüglich des Leistungsverbrauchs effizienteste Lösung für einen bestimmten Codec. Sie besitzen aber keine Flexibilität und erfordern lange Vorlaufzeiten, wodurch das Marktfenster verpasst werden kann. Sie eignen sich für bewährte Codier-Techniken und gut etablierte Standards – Beispiel: Motorola i.MX21 (ARM926EJ plus Hard-Codecs).

Programmierbare Beschleuniger sind bezüglich Kosten und Leistungsverbrauch effizient, aber der Entwicklungsaufwand ist gewöhnlich hoch, da die Entwickler mit komplexen Architekturen und „Nichtstandard“-Tools konfrontiert werden – Beispiel: NeoMagic MiMagic 6 (ARM926EJ plus angepasstes Verarbeitungs-Array).

Ein Standard-Prozessor plus DSP Instruction Set Architecture (ISA) liefert moderate Verbesserungen, leidet aber unter Leistungsmangel und fehlender Flexibilität – Beispiel: Intel PXA255/26x.

Ein Standard-Prozessor stellt eine preiswerte und zugleich die flexibelste Realisierungsvariante dar. Seine Leistungsfähigkeit ist gering, denn sie kommt überwiegend durch eine hohe Taktrate zustande – Beispiel: Samsung S3C24xx.

Ein DSP-Coprozessor nutzt die Vorteile von DSP-basierten Entwicklungsmethoden: schnellere Markteinführung, ausgereifte Entwicklungswerkzeuge, gute Unterstützung durch Fremdanbieter und eine flexible Technologie. Er eignet sich für das Codieren und Decodieren von Multiformaten und ist prädestiniert für diversifizierte Produkte. Der DSP ist zwar traditionell weniger effizient bezüglich Kosten und Energieverbrauch, diese Lücke schließt sich aber dank:

  • Einsatz von VLIW-Technologien (Very Long Instruction Word) in DSPs für Low-Power-Applikationen,
  • Verbesserungen von fortschrittlichen Prozessortechnologien wie z.B. dynamischer Verzweigungsvorhersage und Stack-Pointer-(SP)-Vorausberechnung, die die steuerungsähnlichen Teile der Codecs verbessern,
  • Erweiterungen von applikationsspezifischen Befehlen.

Beispiele hierfür sind: TI OMAP 5910, StarCore SC2420 und Freescale MXC.

Die DSP-Kerne der SC2000-Familie bauen auf den populären Produkten der SC1000-Familie auf, die ursprünglich gemeinsam von Motorola und Agere als die erste Low-Power-Implementierung der VLIW-Architektur entwickelt wurde. Heute sind SC1000-basierte ICs für viele Anwendungen verfügbar, angefangen bei Wireless-Chip-sätzen bis hin zu universellen DSPs – sowohl für Batterie- als auch für Netzbetrieb. Die SC2000-Familie besteht aus dem SC2200- und dem SC2400-Kern, mit zwei respektive vier DALUs (Data-Aritmetic-Logic-Unit). Die SC2000-Familie erweitert die SC1000-Familie bezüglich der Hochleistungs-Signalverarbeitung, effizientem Leistungsverbrauch und Code-Dichte. Zusätzlich wurden die Pipeline erweitert und die dynamische Branch-Prediction, SP-Precalculation und Multimedia-spezifische Befehle hinzugefügt. Diese neuen Eigenschaften vereinfachen die Entwicklung mobiler Geräte und ermöglichen unterschiedlichste Applikationen – von einfachen, um Multimediafunktionen erweiterten Einzel-Prozessor-Funktelefonen bis hin zu Smart-Phones, die mit allen erdenklichen Funktionen ausgestattet sind.

Bild 2 zeigt die Architektur des Kerns der SC2000-Familie und Bild 3 die Peripherie, die von StarCore als Subsystem angeboten wird. Genau wie sein Vorgänger enthält der SC2000-Kern zwei oder vier unabhängige Data-Aritmetic-Logic-Units, zwei unabhängige Address-Arithmetic-Units (AAU), eine Bit-Mask-Unit (BMU), zwei 64-bit-Datenbusse, zwei 32-bit-Adressbusse, einen 32-bit-Programm-Adressbus, einen 128-bit-Programm-Datenbus, sechzehn orthogonale 40-bit-Datenregister und 27 Adressregister, wovon 16 orthogonale, universelle Adressregister sind. Dazu wurden eine neue Resource Stall Unit (RSU) und ein Branch Target Buffer (BTB) hinzugefügt, um das partielle Pipeline Interlocking und die dynamische Branch Prediction zu vereinfachen. Bei den Subsystemen wurde eine neue Memory Protection Unit (MPU20) eingeführt, um den Speicherschutz zu gewährleisten und Echtzeit-Betriebssystem-Modi zu unterstützen.