Did you know Win2K was not optimized for Pentium & newer CPUs?

JesseKnows

Golden Member
Jul 7, 2000
1,980
0
76
A casual look at disassembled Win2K code (just stepping through some stuff in SoftIce) showed that the code wasn't optimized for the Pentium's (and newer CPUs') pipeline.

I guess Microsoft wants to increase the sale of Athlons...
 

PliotronX

Diamond Member
Oct 17, 1999
8,883
107
106


<< I guess Microsoft wants to increase the sale of Athlons... >>



No, I think this is the same case for all of MS' Operating Systems. They're based on i386 and nothing more (someone correct me if I'm wrong please). It's not like MMX or SSE would start up Windows faster.
 

Techwhore

Golden Member
Aug 2, 2000
1,248
0
0
MMX is what windows used to optimize your CPU, though it doesn't really optimize it that well... SSE and 3DNow! are specific instruction sets utilized by other applications (mainly games) to further expose the CPUs power. It's my understanding that those instruction sets would NOT benefit performance under your normal windows environment
 

IdahoB

Senior member
Jun 5, 2001
458
0
0
MMX and SSE are additional instructions hard coded into the processor as an additions to the i386 platform. They use SIMD (Single Instruction Multiple Data) to increase performance in (generally) floating point calculation intensive applications - such as any kind of multimedia rendering or processing.

Windows won't be optimised for them because they don't really offer any advantages to an OS, not until the day when we move to a 3D GUI (won't that be cool?)
 

MGMorden

Diamond Member
Jul 4, 2000
3,348
0
76
The compile optimized for 386 for compatibiltiy issues (just like most Linux distros do), though with the minimum requirements being as high as they are I think they could at least bring it up to original Pentium Optimizations.
 

JesseKnows

Golden Member
Jul 7, 2000
1,980
0
76
I was careful in my original statement. Optimizing for the Pentium pipeline would not impact compatibility on any older processor. This is different from using new instructions (like MMX or SSE) which would fail on the other hardware.

Example:
Non-optimized code, written in &quot;thought order&quot;:

MOV EAX,[1234]
ADD EAX,EBX
LEA EDX,[EBP+2222]
MOV [EDX],EAX
MOV EBX,[6789]
....

The last instruction is part of a new sequence from a different high-level language statement. This would be better as:

MOV EAX,[1234]
ADD EAX,EBX
LEA EDX,[EBP+2222]
MOV EBX,[6789]
MOV [EDX],EAX
....

because in the first example the pipeline would have stalled waiting for the result of the LEA instruction (and maybe even the ADD instruction) to execute the MOV [EDX], EAX. Moving the MOV EBX,[6789] up avoids the pipeline stall without penalty for any CPU.

A friend suggested that some possible problems in code optimization, perhaps in obscure circumstances, could cause the OS development group to forgo optimization in general.

To comment on other posts in the thread, this lack of optimization definitely impacts on OS performance.
 

LocutusX

Diamond Member
Oct 9, 1999
3,061
0
0


<< No, I think this is the same case for all of MS' Operating Systems. They're based on i386 and nothing more (someone correct me if I'm wrong please). >>





<< The compile optimized for 386 for compatibiltiy issues (just like most Linux distros do), though with the minimum requirements being as high as they are I think they could at least bring it up to original Pentium Optimizations >>



Not exactly true. Windows NT4 used 486-specific instructions. Won't install or run on any of Intels i386 family. I've tested this out myself and so has BYTE magazine, which is actually where I got the idea a few years ago.
 

ValkyrieKT7

Member
Jun 24, 2001
53
0
0
I would have to say that in order for windows to be &quot;faster&quot; you would almost have to go out and buy a faster hard drive as well as just a floating point competent processor. The thing is, I noticed that my old k6-2's performance under win2k / autocad was a lot better than what it was going through under NT4 environment.