Choosing the Right CPU

For the most part, you must obtain software that's been compiled for a specific architecture in order to use software on that computer. For instance, to run Linux on an ¡Mac, you need a PPC Linux distribution. The same applies to specific programs. For instance, if you want to run WordPerfect, you can only do so on the IA-32 architecture, because WordPerfect is a commercial program that's only been released for IA-32 systems. Most Linux software is available with source code, though, and so it can be readily recompiled for any CPU type. Therefore, in many ways, the CPU family you use doesn't matter; you can run common software such as Apache, sendmail, Mozilla, and KMail on any architecture.

One important consideration concerning Linux and different CPUs is the availability of Linux distributions for various CPU types. Table 1.1 summarizes the availability of some of the most popular Linux distributions on various CPUs. At the time of writing, x86-64 support is lacking, but it's likely to materialize in 2003. In most cases, the non-IA-32 versions of distributions lag behind their IA-32 counterparts by a version or two—for instance, Mandrake 9.0 for IA-32 versus 8.2 for PPC. Overall, if you want to run Linux on a non-IA-32 architecture, Debian is the safest choice, although there are other options for some CPUs.

Table 1.1: Linux Distributions and CPUs

CPU

Debian

Mandrake

Red Hat

Slackware

SuSE

IA-32

Y

Y

Y

Y

Y

IA-64

Y

-

Y

-

-

X86-64

Likely in 2003

Likely in 2003

Likely in 2003

-

Likely in 2003

PowerPC

Y

Y

-

-

Y

Alpha

Y

-

Y (very old)

-

Y

MIPS

Y

-

-

-

-

SPARC

Y

-

Y (very old)

-

-

CPUs differ in some performance details. In particular, the IA-32 architecture is notorious for poor floating-point math performance, which makes it a poor choice for certain types of scientific simulations, ray-tracing graphics, and other tools that perform heavy floating-point math computations. Details differ by specific CPU model, though. For most desktop and even server purposes, this limitation is unimportant.

CPU manufacturers often make a big deal of whether their CPUs use a traditional complex instruction set computer (CISC) design or a reduced instruction set computer (RISC) design. IA-32 and its derivatives use a CISC design, whereas PPC, Alpha, SPARC, and MIPS use RISC designs. (The IA-64 uses a mixed design.) CISC CPUs feature more complex instruction sets, and they require more clock cycles to execute a single instruction than do the simpler instructions in RISC architectures. Therefore, RISC CPUs can often do more at any given clock speed, as measured in megahertz (MHz), than can CISC CPUs—but other factors come into play, as well. For instance, some tasks require more operations to perform with a RISC CPU than with a CISC CPU.

Tip When comparing CPU speeds, you should examine benchmarks designed for this purpose, not the CPUs' speeds in megahertz. Even within a CPU family, design differences between models make directly comparing CPU speeds tricky at best.

One other CPU design factor deserves mention: endianness. This word refers to the way that data are stored within a single 32- or 64-bit word. Data are broken up into 8-bit bytes, which may be stored with the least significant bit (LSB) first (aka little-endian) or the most significant bit (MSB) first (aka big-endian). IA-32, its derivatives, and Alpha are little-endian architectures, but SPARC is big-endian, and PPC and MIPS can work in either mode. Which mode a CPU uses is unimportant in terms of performance, but this feature can sometimes have consequences if programs are written to assume one encoding method or another. For instance, if a program stores data files by dumping data structures directly to disk, those files may not be readable by the same program compiled on another architecture. Most programs are smart enough to detect this difference and compensate, but some (mostly little-known and specialized tools) aren't, so you should be aware of the problem.

0 0

Post a comment