VIS指令集

Visual Instruction Set（缩写VIS），是一个用于SPARC处理器的SIMD多媒体指令集扩展。VIS在所有的UltraSPARC以及较新的SPARC64处理器上都有实现。

VIS有三个版本。VIS 1.0和VIS 2.0已在先前的SPARC处理器上得到实现；VIS 3.0 将在Rock微處理器中首次实现。

VIS重用了SPARC处理器中的64位长浮点寄存器来储存8位，16位或者32位的整数数值。从这方面来讲，VIS大概更像MMX而不怎么像SSE／SSE2／AltiVec，后者都具有专用的128位SIMD寄存器。但是，MMX只有8个寄存器可用，而SPARC处理器通常具有数目大得多的寄存器，这是RISC处理器的特色之一。

作为RISC处理器的扩展指令集，VIS严格遵守RISC的设计原则--保持指令集的精简与高效。这很不同于CISC处理器扩展指令集（如MMX/SSE/SSE2/SSE3/SSE4/3D Now!）的做法。理论上，RISC的设计原则可以保持流水线的简单高效，从而可能带来更大的吞吐量及性能提升。

然而，Intel／AMD可以很容易的为x86/x64处理器加入新的指令集扩展，Sun却必须在这方面非常谨慎。这可能是CISC相较于RISC的优势之一。有时候程序员们不得不组合几条VIS指令来完成MMX/SSE只用一条指令便可完成的某项操作。值得指出的是，更少的指令数目并不一定就会带来更大的性能提升。

VIS包含一系列对图形图像网络等的处理支持，其中大多数只可用于整型数据。

有三种方法可以在程序中使用VIS:
使用内嵌汇编
使用VSDK中的内嵌模板，这很类似于使用编译器原语，使用起来有些像调用C语言函数
使用mediaLib多媒体函数库。这个库提供C函数接口，并在SPARC平台上使用VIS（同时在x86/x64平台上使用MMX/SSE/SSE2）来加速多媒体应用程序

 参考资料 

 外部链接 
Sun网站上的VIS (Visual Instruction Set) 
VSDK (VIS Software Developer's Kit) VIS软件开发工具包 
VIS Instruction Set 用户手册

Category:SIMD计算
Category:Sun微系统硬件
Category:SPARC微处理器架构