setting the speed for the future of games programming
vectorc

contentsclose
 

PC PROCESSORS

VectorC supports a number of PC processors. It can optimize code to take advantage of the features of these processors. Here is a list of those processors and some comments:-

Intel

Pentium The mimimum microprocessor supported by VectorC. Has no conditional move, MMX, 3D Now! or SSE support.
Pentium MMX Pentium processor with MMX instructions
Pentium Pro Has conditional move and immediate floating-point compare instructions.  Can execute all Pentium instructions.  No MMX support. Executes out-of-order, so scheduling is differenct than for Pentium.
Pentium II Pentium Pro with MMX instructions. Runs Pentium Pro and Pentium instructions.
Celeron Pentium II with different cache. Executes exactly the same instructions as Pentium II
Pentium III Pentium II with Streaming SIMD Extensions support (SSE)
Pentium 4 Also called Willamette. New processor from Intel. Not available at the time of writing, but preliminary support is available from VectorC


AMD

K5 Executes same instructions as Intel Pentium. Use Pentium optimization settings to compile for this processor
K6 Has no conditional move instructions. Early K6 processors have no MMX support. Use Pentium optimization settings to compile for this processor.
K6 with MMX Most K6 processors have MMX support.  VectorC's K6 optimization option assumes MMX support. No conditional move or 3D Now!
K6-2 K6 with MMX and 3D Now! No conditional move instructions.  Runs all K6 code.
K6-3 K6-2 with enhanced cache.  Use K6-2 optimization setting to compile for this processor.  No instructions are different
Athlon Fast new processor with large degree of parallelism and out-of-order execution. Supports MMX, 3DNow! and conditional moves.  Also has a few newer MMX and 3DNow! instructions.


Processor Compatibility


MMX - details

MMX instructions are for dealing with integers in parallel.  8 new 64-bit registers are added. Unfortunately, MMX cannot be used at the same time as floating-point unit, so if you want to use MMX, make sure your code is in a different function or outer loop within a function to floating-point code (unless you are using 3D Now! or SSE).  Useful for 2D graphics.  Enables you to blend images.  Try to write routines that have 8-byte alignment.
 

3D Now! - details

Enhancement of MMX designed by AMD.  Supported by K6-2 processors and beyond.  Uses MMX registers and gives basic single-precision floating-point operations.  Also adds prefetch instructions.  You cannot mix this with normal floating-point instructions, so if you want an area of code to use 3D Now!, then do not use any of the operations that 3D Now! does not support.

Supported operations: add, multiply, subtract, 12-bit division, division, 12-bit reciprocal square root; all only on single-precision floating-point types.
 

Streaming SIMD Extensions (SSE) - details

Intel designed extensions used in Pentium III processor. Adds 8 new 128-bit registers that can do single-precision floating-point operations. Unlike MMX, these instructions can be used near normal floating-point code.  Extremely alignment sensitive - try to make sure that your floating-point vectors are 16-byte aligned.  Also, works best if your vectors are stored as 'structure-of-arrays' instead of 'array-of-structures'.  However, this may not be suitable for your program, so either is supported by VectorC.  Also adds prefetch instructions

Supported operations: add, multiply, subtract, 12-bit division, division, 12-bit reciprocal square root, square root; all only on single-precision floating-point types.


Streaming SIMD Extensions 2 (SSE2)

Intel designed extensions used in Pentium 4 processor. These use the 8 128-bit SSE registers. New instructions are added to support double-precision floating-point values and vectors consisting of 2 double-precision components. Also allows the old MMX instructions to use the new registers, getting rid of the restrictions on MMX and allowing twice as much data to be processed in a single instruction.

top

contentsclose