![]() |
|
|
|
#1
|
|||
|
|||
|
MMX, SSE, SSE2, SSE3, 3DNow!...
I just got done reading basically all of Vol. 1 (Basic Architecture) of the IA-32 Architecture Software Developer's Manual, with the exception of these sections (yes, I know 3DNow! is AMD, but you know what I mean). I'm about to start in on Vol. 3, the System Programming Guide. But before I read that, am I doing myself a huge disservice by skipping the reading on these processor extensions for now? I've got the general concept down -- single instructions that perform a single operation on multiple operands packed into a larger register -- but I'm not sure if these extensions are implemented frequently enough in a typical program to concern myself with the details for now. Can these generally be safely ignored by a beginner, or are they so common that it's inevitable that I'll have to deal with them sooner rather than later? I can't say that any of the programs I've fooled around with so far have used them, but maybe I've just been lucky.
P.S. Does Intel have a freaking copy editor? I swear no one proof-read their manuals - errors all over the place.
|
|
#2
|
|||
|
|||
|
It depends on what you plan to do. These extensions are usually used for "special tasks" (image / sound /video processing...)... forming the "core loops" of specific programs. So, you are likely to find them only on few spaces; they don't form the "backbone" of the programs.
Because some of the extensions are not compatible (i.e you can run 3DNow on Intel CPU), the functions are often put to multiple libraries, each library optimized for one CPU type. For a beginner, I would suggest to skip these extensions. When you're familiar with the basic instruction set, you can return back to them. They are a separate set, so you won't miss much (required for other things) when you skip them. |
![]() |
|
|