Rozšíření multimediální akcelerace - Multimedia Acceleration eXtensions

Na zrychlení Multimediální rozšiřování nebo MAX jsou instrukční sadu rozšíření na Hewlett-Packard PA-RISC instrukční sady architektury (ISA). Program MAX byl vyvinut s cílem zlepšit výkon multimediálních aplikací, které se v 90. letech staly stále častějšími.

Pokyny MAX fungují na 32bitových nebo 64bitových datových typech SIMD skládajících se z více 16bitových celých čísel zabalených v registrech pro obecné účely . Dostupné funkce zahrnují sčítání, odčítání a posuny.

První verze, MAX-1 , byla pro 32bitový PA-RISC 1.1 ISA. Druhá verze, MAX-2 , byla pro 64bitový PA-RISC 2.0 ISA.

Pozoruhodnost

Tento přístup je pozoruhodný, protože sada instrukcí je mnohem menší než v jiných multimediálních procesorech a je také obecnější. Malá sada a jednoduchost pokynů snižuje opakující se náklady na elektroniku, stejně jako náklady a obtížnost konstrukce. Obecná povaha pokynů zvyšuje jejich celkovou hodnotu. Tyto pokyny vyžadují pouze malé změny aritmeticko-logické jednotky CPU. Podobný designový přístup slibuje, že bude úspěšným modelem pro multimediální instrukce jiných návrhů CPU. Sada je také malá, protože CPU již obsahovalo výkonné instrukce pro posun a bitovou manipulaci: „Shift pair“, která posune dvojici registrů, „extrahovat“ a „vložit“ bitová pole a všechny běžné bitové logické operace ( a, nebo, exclusive-or, atd.).

Tato sada multimediálních pokynů také prokázala svůj výkon. V roce 1996 povolily 64bitové instrukce „MAX-2“ výkon videa MPEG-1 a MPEG-2 v reálném čase a zároveň zvětšily plochu RISC CPU pouze o 0,2%.

Implementace

MAX-1 byl poprvé implementován s PA-7100LC v roce 1994. Obvykle se mu připisuje první rozšíření SIMD pro ISA. Druhá verze, MAX-2 , byla pro 64bitový PA-RISC 2.0 ISA. Poprvé byl implementován v mikroprocesoru PA-8000 vydaném v roce 1996.

Základním přístupem k aritmetice v MAX-2 je „přerušení přenosu“ mezi 16bitovými dílčími slovy a výběr mezi modulární aritmetikou, znaménkovou a nepodepsanou sytostí. To vyžaduje jen malé změny aritmetické logické jednotky.

MAX-1

Návod Popis
HADD Paralelní přidání s modulo aritmetikou
HADD, ss Paralelní přidání s podepsanou sytostí
HADD, nás Paralelní přidání s nepodepsanou sytostí
HSUB Paralelní odčítání s modulo aritmetikou
HSUB, ss Paralelní odečtení s podepsanou saturací
HSUB, nás Paralelní odečtení s nepodepsanou saturací
MÍT Paralelní průměr
HSHLADD Paralelní posun doleva a přidání s podepsanou sytostí
HSHRADD Paralelní posun doprava a přidání s podepsanou sytostí

MAX-2

Pokyny MAX-2 jsou instrukce registr-registr, které fungují na více celých číslech v 64bitových množstvích. Všechny mají latenci jednoho cyklu v mikroprocesoru PA-8000 a jeho derivátech. Přístup do paměti probíhá prostřednictvím standardních 64bitových zátěží a úložišť.

Pokyny „MIX“ a „PERMH“ jsou významnou inovací, protože permutují slova v sadě registrů bez přístupu do paměti. To může podstatně urychlit mnoho operací.

Návod Popis
HADD Paralelní přidání s modulo aritmetikou
HADD, ss Paralelní přidání s podepsanou sytostí
HADD, nás Paralelní přidání s nepodepsanou sytostí
HSUB Paralelní odčítání s modulo aritmetikou
HSUB, ss Paralelní odečtení s podepsanou saturací
HSUB, nás Paralelní odečtení s nepodepsanou saturací
HSHLADD Paralelní posun doleva a přidání s podepsanou sytostí
HSHRADD Paralelní posun doprava a přidání s podepsanou sytostí
HAVG Paralelní průměr
HSHR Paralelní posun vpravo podepsáno
HSHR, u Paralelní posun vpravo bez znaménka
HSHL Paralelní posun doleva
SMĚS Smíchejte 16bitová dílčí slova v 64bitovém slově; MIX vlevo, Ra, Rb, Rc, Rc: = a1, b1, a3, b3; MIX vpravo, Rc: = a2, b2, a4, b4
MIXW Smíchejte 32bitová dílčí slova v 64bitovém slově; např. MIXW Left, Ra, Rb, Rc, Rc: = a1, a2, bl, b2; MIXW vpravo, Rc: = a3, a4, b3, b4
PERMH Permutujte 16bitová dílčí slova zdroje v jakékoli možné permutaci v cílovém registru, včetně opakování.

Reference