What is MVI?

With the advent of the DECchip 21164PC, Digital introduced a new multimedia technology to help improve the Alpha's ability to be able to handle one of the toughest tasks a microprocessor has to perform: video compression and decompression.

Unlike Intel's MMX technology, the Motion Video Instructions (MVI) added to the Alpha microprocessor are just that -- real instructions dedicated to the task of manipulating analog video streams per industry standard coding and decoding specifications. These instructions are optimized to three specific areas: pixel error (sum of absolute differences), data clamping (minimum and maximum values), and pack/unpack (moving bytes into and out of words and longwords). This contrasts with MMX's larger cache and SIMD instructions oriented towards working on small pieces of data in an already small 32 bit processor. Where MMX might obtain a 40% improvement when implemented in a video codec, MVI can offer 20x or more improvements. MVI allows an Alpha processor to perform full screen MPEG decode and realtime MPEG-2 encoding -- something that requires thousands of dollars of additional hardware to do on other processors.

The MVIs are aimed at providing a high-performance set of tools for codec authors. While such codecs are under development now and should be available for both the 21164PC and 21264, existing processors will also be able to run code that includes MVI. Since its first implementation, the Alpha has cleanly and properly trapped unimplemented instructions; with a simple revision of PALcode in a subsequent release of firmware, existing Alpha processors will be able to emulate the functionality of the MVI instructions, obviating the requirement of creating two versions of a single program to support new functionality and the installed base. Another example of how this backwards compatiblity has been implemented can be found in the byte and word alignment instructions that were added to the second generation 21164 processor (what some people have referred to as the 21164a processor) -- see the Digital Technical Journal paper "Measured Effects of Adding Byte and Word Instructions to the Alpha Architecture" by David P. Hunter and Eric B. Betts, DTJ V8 #4.

If you'd like to read more about MVI, look into the following documents: