Familiar, Supported
Programming
Environment
Because AltiVec technology is based on the
C programming model, developers may
leverage their experience with C, C++ or
Obj C to easily take advantage of the benefits
that the AltiVec technology has to offer.
Standard C programs should compile without
modification on C compilers with the AltiVec
C Programming Model enabled. New
functions and data structures that use the
AltiVec technology may be added and used
just like other functions and data structures.
Software developers can quickly see
performance gains in existing applications by
using AltiVec technology. AltiVec technology
generally works best for that 10 percent of
the application that consumes 80 percent of
CPU time; these functions typically have
heavy computational and data loads, two
areas where AltiVec technology excels.
To identify the functions that are not meeting
the performance requirements of the application,
software vendors such as Green Hills,
Metrowerks and Wind River Systems offer
profiling tools designed to enable developers
to identify performance bottlenecks that could
be alleviated with AltiVec technology.
To help developers more quickly realize the
performance benefits of AltiVec technology,
Freescale offers downloadable libraries
of AltiVec technology-enabled functions.
To take advantage of AltiVec technology, an
application must be reprogrammed or at least
recompiled; however, developers do not need
to rewrite the entire application. Application
notes and documentation are also provided to
help developers start a new application using
AltiVec technology.
Application/Category
Libraries Available (Please check the Web site for an updated list of available libraries.)
Telecommunications
> Fixed-Point and Floating Point Fourier Transform (FFT) Megafunction
> Complex, Real, and Real Delayed Least Mean Squared (LMS) Finite Impulse Response (FIR) Functions
> Autocorrelation
> Global System for Mobile Communications (GSM) Convolution Encoder
> GSM/3G Viterbi Decoder
> Error Correction Codes (Cyclic Redundancy Check 8,12,16,24)
Networking
> Open Shortest Path First (OSPF)
> Transmission Control Protocol/Internet Protocol (TCP/IP)
> Encryption Protocols (AES, DES, 3DES, MD5)
Multimedia
> 2D Discrete Cosine Transform (DCT)
> 2D Inverse Discrete Cosine Transform (IDCT)
> MPEG-2 (Moving Picture Experts Group)
> MPEG-1 Audio Layer-3 (MP3)
> JPEG (Joint Photographic Experts Group)
> Quantization
> Dequantization
> Sum of Absolute Differences (SAD)
Print/Imaging
> Ghostscript Library Elements
> Color Conversion (RGB to YCbCr)
> FS Dithering
Link-level Libraries (LibC)
> Link-level Support for Standard C Functions (memcpy, strcmp etc.)
Mathematical Primatives
> Log, Exp, Sin, Cos, Log, Sqrt
Operating System Enablement
> Linux (TCP/IP)
> VxWorks Elements
SISD (Single Instruction, Single Data)
AC-3–Audio Decode
SISD (Single Instruction, Single Data)
AC-3–Audio Decode
decode (channel 1)
decode (channel 2)
decode (channel 3)
decode (channel 4)
decode (channel 5)
decode (channel 6)
} while (Amplifier is on; step time)
do{
decode
(channel 1, channel 2
channel 3, channel 4
channel 5, channel 6)
} while (Amplifier is on; step time)
do{
Approximately 6x performance improvement
SAMPLE-BASED PROCESSING
ALTIVEC LIBRARIES
Without the power of AltiVec technology, the code may have to call a routine six times to perform the
same operation on multiple pieces of data. With AltiVec technology, the routine may be run only once
on all six sections of data simultaneously.