Jump to content
3 posts in this topic

Recommended Posts

All this fuss about SSE SSE2 and SSE3 in OS X and programs being optimized for SSE3. Now I am starting to think does windows XP or even Vista use any of the SSE2 Or SSE3 instructions to improve performance like in OS X or do they just use very basic and old instructions. Please excuse my ignorance if I am talking non-sence (because I don't really understand this whole thing).

 

Is windows optimized to use new CPU features or do we just update our CPUs for no reason other than speed :blink:

All this fuss about SSE SSE2 and SSE3 in OS X and programs being optimized for SSE3. Now I am starting to think does windows XP or even Vista use any of the SSE2 Or SSE3 instructions to improve performance like in OS X or do they just use very basic and old instructions. Please excuse my ignorance if I am talking non-sence (because I don't really understand this whole thing).

 

Is windows optimized to use new CPU features or do we just update our CPUs for no reason other than speed :)

You'd have to ask Microsoft, but my guess is that it will make some use of those features where applicable, assuming the CPU supports those instructions. Otherwise, it would default to a supported code path.

If neone here has studied Assembly, You will realize that some instructions will do the work of 2 or 3 Instructions. (eg LXI H c005 ; MOV A,M is equal to STA c005. But the earlier command requires 5-6 Clock cycles, while the second one only 2-3 clock cycles) Thus saving CPU time. Now when you code C++ programs, they are decoded into Assembly and then to Machine. Assembly is something like ( MOV A, M or ADD B ) and Machine is like (0f 65 etc).

 

Anyway, the decoder automatically selects the instruction which should be used, incase a the corresponding C++ code is given. This is done by the kernel usually. The XP kernel check if your CPU supports SSE or SSE2 or SSE3 and gives the corresponding commands.

 

Now SSE commands are actually meant for tasks like encoding/decoding MP3's and other MM tasks. So in general day to day office work, the impact of such instructions is very small. Sometimes, programs themselves, give code meant for SSE1/2/3 instructions. EG In Virtual DUB, you can select, wether your CPU supports MMX, SSE etc.

 

This is the reason Maxxus patched the OSX kernel with SSE2 instructions, thus replacing the SSE3 ones. Due to this their was a slight performance drop with the SSE2 Kernel.

×
×
  • Create New...