Instruction Merging and Multimedia Technology
by Matt McCormick
In recent years several microprocessor manufacturers have begun to release
new hardware products that allow multiple pieces of data to be packed into
a single register and then with one instruction do work on all of that data.
The concept is simple, if most of the data is 8-bits long (or 16 or 32) why
not pack 8 (or 4 or 2) pieces of data into a 64-bit register and achieve
considerably higher performance from a given number of instructions. This
is often referred to as single instruction, multiple data (SIMD) [Flynn].
The main purpose of these new architectures is to enhance multimedia applications.
While these architectures may provide the greatest opportunity for improvement in
this environment [PCmag], there is no reason to limit the application of such
architecture to merely multimedia applications. Consider the fact that many
programs are written assuming the use of 32-bit integers. This means that many
math and logical operations in a program can potentially be combined with a
second instruction doing the same type of operation. If the programmer intended
to use short (16-bit) or byte size integers, the potential number of instructions
that can be combined should be even greater - and not just for multimedia
applications. This paper presents an algorithm for a back-end compiler to
search through a set of instructions and determine possible instruction merging
opportunities.
View paper in pdf format or in
ps format.