Visual Instruction Set, or VIS, is a
SIMD
Single instruction, multiple data (SIMD) is a type of parallel computer, parallel processing in Flynn's taxonomy. SIMD describes computers with multiple processing elements that perform the same operation on multiple data points simultaneousl ...
instruction set extension for
SPARC V9 microprocessor
A microprocessor is a computer processor (computing), processor for which the data processing logic and control is included on a single integrated circuit (IC), or a small number of ICs. The microprocessor contains the arithmetic, logic, a ...
s developed by
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
. There are five versions of VIS: VIS 1, VIS 2, VIS 2+, VIS 3 and VIS 4.
History
VIS 1 was introduced in 1994 and was first implemented by Sun in their
UltraSPARC
The UltraSPARC is a microprocessor developed by Sun Microsystems and fabricated by Texas Instruments, introduced in mid-1995. It is the first microprocessor from Sun to implement the 64-bit SPARC V9 instruction set architecture (ISA). Marc Tre ...
microprocessor (1995) and by Fujitsu in their
SPARC64 GP microprocessors (2000).
VIS 2 was first implemented by the
UltraSPARC III. All subsequent UltraSPARC and SPARC64 microprocessors implement the instruction set.
VIS 3 was first implemented in the
SPARC T4 microprocessor.
VIS 4 was first implemented in the
SPARC M7 microprocessor.
Differences vs x86
VIS is not an instruction toolkit like
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
's MMX and SSE. MMX has only 8 registers shared with the
FPU stack, while SPARC processors have 32 registers, also aliased to the double-precision (64-bit) floating point registers.
As with the SIMD instruction set extensions on other
RISC
In electronics and computer science, a reduced instruction set computer (RISC) is a computer architecture designed to simplify the individual instructions given to the computer to accomplish tasks. Compared to the instructions given to a comp ...
processors, VIS strictly conforms to the main principle of RISC: keep the instruction set concise and efficient.
This design is very different from comparable extensions on
CISC processors, such as
MMX,
SSE,
SSE2
SSE2 (Streaming SIMD Extensions 2) is one of the Intel SIMD (Single Instruction, Multiple Data) processor supplementary instruction sets introduced by Intel with the initial version of the Pentium 4 in 2000. SSE2 instructions allow the use of ...
,
SSE3
SSE3, Streaming SIMD Extensions 3, also known by its Intel code name Prescott New Instructions (PNI), is the third iteration of the SSE instruction set for the IA-32 (x86) architecture. Intel introduced SSE3 in early 2004 with the Prescott revis ...
,
SSE4
SSE4 (Streaming SIMD Extensions 4) is a SIMD CPU instruction set used in the Intel Core microarchitecture and AMD K10 (K8L). It was announced on September 27, 2006, at the Fall 2006 Intel Developer Forum, with vague details in a white paper;< ...
,
3DNow!
3DNow! is a deprecated extension to the x86 instruction set developed by Advanced Micro Devices (AMD). It adds single instruction multiple data (SIMD) instructions to the base x86 instruction set, enabling it to perform vector processing of float ...
.
Sometimes, programmers must use several VIS instructions to accomplish an operation that can be done with only one
MMX or
SSE instruction, but it should be kept in mind that fewer instructions do not automatically result in better performance.
Functionality
VIS re-uses existing SPARC V9 64-bit floating point registers to hold multiple 8, 16, or 32-bit integer values. In this respect, VIS is more similar to the design of
MMX than other SIMD architectures such as
SSE/
SSE2
SSE2 (Streaming SIMD Extensions 2) is one of the Intel SIMD (Single Instruction, Multiple Data) processor supplementary instruction sets introduced by Intel with the initial version of the Pentium 4 in 2000. SSE2 instructions allow the use of ...
/
AltiVec.
VIS includes a number of operations primarily for graphics support, so most of them are only for integers. These include 3D to 2D conversion,
edge processing and pixel distance.
There are four ways to use VIS in code:
*The
GCC - option
*Use
inline assembly
In computer programming, an inline assembler is a feature of some compilers that allows low-level code written in assembly language to be embedded within a program, among code that otherwise has been compiled from a higher-level language such as ...
*Use inline template in
VSDK, similar to
compiler intrinsics, which have C function like interfaces
*Use the
mediaLib multimedia library, which has C function interfaces. It uses VIS on SPARC platforms (and MMX/SSE/SSE2 on x86/x64 platforms) to accelerate multimedia application execution
References
* Gwennap, Linley (5 December 1995). "UltraSparc Adds Multimedia Instructions". ''
Microprocessor Report
''Microprocessor Report'' is a newsletter covering the microprocessor industry. The publication is accessible only to paying subscribers. To avoid bias, it does not take advertisements.
The publication provides extensive analysis of new high-perf ...
''.
*
Tremblay, Marc et al. (August 1996). "VIS Speeds New Media Processing". ''
IEEE Micro''.
External links
An introduction to SPARC’s SIMD offerings (small tutorial)
{{Sun Microsystems
SIMD computing
Sun Microsystems hardware
SPARC microprocessor architecture
Computer-related introductions in 1994