A Visual Instruction Set, röviden VIS, a Sun Microsystems által a SPARC V9 mikroprocesszorokhoz kifejlesztett SIMD utasításkészlet-kiterjesztés. A VIS-nek öt változata létezik: VIS 1, VIS 2, VIS 2+, VIS 3 és a VIS 4.
Történet A VIS 1 1994-ben jelent meg, elsőként a Sun UltraSPARC (1995) és a Fujitsu SPARC64 GP mikroprocesszoraiban (2000) volt megvalósítva.
A VIS 2 első implementációja az UltraSPARC III processzorban volt. Minden ez után következő UltraSPARC és SPARC64 mikroprocesszor megvalósítja az utasításkészlet.
A VIS 3 először a SPARC T4 mikroprocesszorban jelent meg.
A VIS 4-et először a SPARC M7 mikroprocesszorban valósították meg.
Eltérések az x86 architektúra hasonló kiterjesztéseitől A VIS nem egy utasítás-eszközkészlet, mint az Intel MMX és SSE kiterjesztései. Az MMX-nek csak 8 regisztere van megosztva az FPU-ban alkalmazott veremmel, míg a SPARC processzoroknak 32 regisztere van, amelyek a dupla pontosságú (64 bites) lebegőpontos regiszterek álneveiként használhatók.
Más RISC processzorok SIMD utasításkészlet-bővítéseihez hasonlóan, a VIS is szigorúan megfelel az RISC fő elvének, így az utasításkészlet tömör és hatékony.
Ez a kialakítás nagyon különbözik a CISC processzorokon kialakított hasonló kiterjesztésektől, mint amilyen az MMX, SSE, SSE2, SSE3, SSE4 és a 3DNow!.
A programozóknak gyakran több VIS utasítást kell használniuk egy művelet elvégzéséhez, amely elvégezhető egy MMX vagy SSE utasítással, de a kevesebb utasítás nem garantálja automatikusan a jobb teljesítményt.
Funkcionalitás A VIS újrahasznosítja a SPARC V9 meglévő 64 bites lebegőpontos regisztereit, több 8, 16 vagy 32 bites egész szám érték tárolására. Ebből a szempontból a VIS jobban hasonlít az MMX kialakításához, mint más SIMD architektúrák, például az SSE/SSE2/AltiVec.
A VIS számos műveletet tartalmaz, amelyek elsősorban a grafikát támogatják, így a legtöbbjük csak egész értékekkel használható. Ezek a között megtalálható például a 3D-ről 2D-re történő konverzió, élfeldolgozás és pixeltávolság számítása.
A VIS a programkódban négy módon használható: A GCC opciójával, ekkor a fordítóprogram automatikusan állítja elő a könyvtári függvényhívásokat és generálja a gépi kódú utasításokat Inline assembly használatával: egyes magas szintű nyelvek biztosítanak beágyazott assembly kód lehetőséget Inline sablonok (template-ek) használatával a VSDK-ban, ez hasonlít a compiler intrinsics, a fordítóprogram által behelyettesített függvényhívásokhoz, amelyek C funkcióhoz hasonló interfész-felülettel rendelkeznek A mediaLib, a Sun hordozható multimédiás könyvtárának használatával, amely C függvény-interfészekkel rendelkezik. Ez a VIS-t használja a SPARC platformokon (és az MMX/SSE/SSE2 kiterjesztéseket az x86/x64 platformokon) a multimédiás alkalmazások végrehajtásának felgyorsítására.
Jegyzetek
Fordítás
Források Gwennap, Linley (1995. december 5.). "UltraSparc Adds Multimedia Instructions". Microprocessor Report. (Az UltraSparc új multimédiás utasításairól) Tremblay, Marc et al. (1996. augusztus). "VIS Speeds New Media Processing". IEEE Micro. További információk An introduction to SPARC’s SIMD offerings (small tutorial) (Bevezetés a SPARC SIMD kínálatába, kis bemutató) UltraSPARC and VIS Instruction Set Extensions (UltraSPARC és VIS utasításkészlet-bővítések) GCC SPARC VIS Built-in Functions (GCC SPARC VIS beépített funkciók) Kapcsolódó szócikkek
Kategória:Mikroprocesszorok