Multimedia Acceleration eXtensions - Multimedia Acceleration eXtensions

Die Multimedia Acceleration eXtensions oder MAX sind Befehlssatzerweiterungen für die Hewlett-Packard PA-RISC- Befehlssatzarchitektur (ISA). MAX wurde entwickelt, um die Leistung von Multimedia-Anwendungen zu verbessern, die in den 90er Jahren immer häufiger eingesetzt wurden.

MAX-Befehle arbeiten mit 32- oder 64-Bit- SIMD- Datentypen, die aus mehreren 16-Bit-Ganzzahlen bestehen, die in Allzweckregistern gepackt sind . Die verfügbaren Funktionen umfassen Additionen, Subtraktionen und Verschiebungen.

Die erste Version, MAX-1 , war für den 32-Bit- PA-RISC 1.1 ISA. Die zweite Version, MAX-2 , war für den 64-Bit- PA-RISC 2.0 ISA.

Bemerkenswert

Der Ansatz ist bemerkenswert, da der Befehlssatz viel kleiner als bei anderen Multimedia-CPUs und auch allgemeiner ist. Der kleine Satz und die Einfachheit der Anweisungen reduzieren die wiederkehrenden Kosten der Elektronik sowie die Kosten und Schwierigkeiten des Designs. Der allgemeine Charakter der Anweisungen erhöht ihren Gesamtwert. Diese Anweisungen erfordern nur kleine Änderungen an der Recheneinheit einer CPU. Ein ähnlicher Entwurfsansatz verspricht ein erfolgreiches Modell für die Multimedia-Anweisungen anderer CPU-Entwürfe zu sein. Der Satz ist auch klein, da die CPU bereits leistungsstarke Verschiebungs- und Bitmanipulationsanweisungen enthielt: "Verschiebungspaar", das ein Registerpaar verschiebt, "Extrahieren" und "Einfügen" von Bitfeldern sowie alle gängigen bitweisen logischen Operationen ( und oder oder exklusiv-oder usw.).

Diese Multimedia-Anleitung hat sich ebenfalls bewährt. 1996 ermöglichten die 64-Bit-Anweisungen "MAX-2" die Echtzeitleistung von MPEG-1- und MPEG-2- Videos, während die Fläche einer RISC-CPU nur um 0,2% vergrößert wurde.

Implementierungen

MAX-1 wurde erstmals 1994 mit dem PA-7100LC implementiert . Es wird normalerweise als die erste SIMD- Erweiterung eines ISA bezeichnet. Die zweite Version, MAX-2 , war für den 64-Bit- PA-RISC 2.0 ISA. Es wurde erstmals in dem 1996 veröffentlichten Mikroprozessor PA-8000 implementiert .

Der grundlegende Ansatz für die Arithmetik in MAX-2 besteht darin, die Übertragungen zwischen den 16-Bit-Unterwörtern zu "unterbrechen" und zwischen modularer Arithmetik, vorzeichenbehafteter und vorzeichenloser Sättigung zu wählen. Dies erfordert nur kleine Änderungen an der arithmetischen Logikeinheit.

MAX-1

Anweisung Beschreibung
HADD Parallel addieren mit Modulo-Arithmetik
HADD, ss Paralleles Hinzufügen mit vorzeichenbehafteter Sättigung
HADD, wir Paralleles Hinzufügen mit vorzeichenloser Sättigung
HSUB Paralleles Subtrahieren mit Modulo-Arithmetik
HSUB, ss Paralleles Subtrahieren mit vorzeichenbehafteter Sättigung
HSUB, wir Paralleles Subtrahieren mit vorzeichenloser Sättigung
HABEN Paralleler Durchschnitt
HSHLADD Parallel nach links verschieben und mit vorzeichenbehafteter Sättigung hinzufügen
HSHRADD Parallel nach rechts verschieben und mit vorzeichenbehafteter Sättigung hinzufügen

MAX-2

MAX-2-Befehle sind Register-zu-Register-Befehle, die mit mehreren Ganzzahlen in 64-Bit-Mengen arbeiten. Alle haben eine Latenz von einem Zyklus im PA-8000- Mikroprozessor und seinen Derivaten. Speicherzugriffe erfolgen über die standardmäßigen 64-Bit-Lade- und Speicherfunktionen.

Die Anweisungen "MIX" und "PERMH" sind eine bemerkenswerte Neuerung, da sie Wörter im Registersatz ohne Zugriff auf den Speicher permutieren. Dies kann viele Operationen erheblich beschleunigen.

Anweisung Beschreibung
HADD Parallel addieren mit Modulo-Arithmetik
HADD, ss Paralleles Hinzufügen mit vorzeichenbehafteter Sättigung
HADD, wir Paralleles Hinzufügen mit vorzeichenloser Sättigung
HSUB Paralleles Subtrahieren mit Modulo-Arithmetik
HSUB, ss Paralleles Subtrahieren mit vorzeichenbehafteter Sättigung
HSUB, wir Paralleles Subtrahieren mit vorzeichenloser Sättigung
HSHLADD Parallel nach links verschieben und mit vorzeichenbehafteter Sättigung hinzufügen
HSHRADD Parallel nach rechts verschieben und mit vorzeichenbehafteter Sättigung hinzufügen
HAVG Paralleler Durchschnitt
HSHR Parallelverschiebung rechts signiert
HSHR, u Parallelverschiebung nach rechts ohne Vorzeichen
HSHL Parallelverschiebung nach links
MISCHEN Mischen Sie 16-Bit-Unterwörter in einem 64-Bit-Wort. MIX Links, Ra, Rb, Rc, Rc: = a1, b1, a3, b3; MIX Rechts, Rc: = a2, b2, a4, b4
MIXW Mischen Sie 32-Bit-Unterwörter in einem 64-Bit-Wort. zB MIXW Links, Ra, Rb, Rc, Rc: = a1, a2, b1, b2; MIXW Rechts, Rc: = a3, a4, b3, b4
PERMH Permutieren Sie 16-Bit-Unterwörter der Quelle in einer möglichen Permutation im Zielregister, einschließlich Wiederholungen.

Verweise