QUOTE (RJARRRPCGP @ Feb 5 2006, 11:43 PM)

QUOTE (LLXX @ Feb 5 2006, 04:22 AM)

L1,L2,L3 caches are managed by the hardware. The software need not intervene.
Regarding size of cache, I have a circa. 1993 80486dx2-66 with 512KB of L2, and that was around before 98se...
But, this may be because of another problem. It's possible that Windows 98 SE assumes that it only has 256 KB of L2 cache, because most Athlon processors have 256 KB of L2 cache. (before "Barton") The Windows 98 SE processor driver may be getting confused. It may not like the fact that the L2 cache is integrated. Most processors at the time Windows 98 SE was released didn't have integrated L2 cache!
Operating systems do not "select" how much cache to
use - they either use all or nothing of it, and disabling
the cache would only be useful for troubleshooting.
The fact that Win98 is so much more compact than XP/2K
should affect performance positively as far as the cache
is concerned, because a larger portion of the system will
fit into it.
There other CPU-related features that affect performance,
of course, such as the Memory-Type Range Registers that
Pentium Pro and newer Intel CPUs support, and that can
be used to select caching strategies for portions of the
address space, as appropriate. I assume AMD processors
have something similar.
For example, enabling maximum read/write caching for the
video memory can greatly enhance performance, because
it allows the CPU schedule accesses to it in whatever order
it finds optimal.
However, using the same caching strategy for self-modifying
code (e.g. JIT compilation) or for data segment that need to
be accessed in the order assumed by the compiler or
programmer, would crash either the application in question,
or whole the system.
The default settings programmed by the BIOS at startup,
or the CPU's power-on defaults, are likely to be selected
with stability and compatibility in mind, and of course, the
settings will remain that way until reprogrammed - and
that's where device-, chipset- or CPU-specific drivers
come in.
For example, the DOS kernel basically regards any CPU as
an 8086, and it requires drivers like HIMEM, QEMM or
386MAX to take advantage of more advanced functionality.
Windows 95 is written to run on a 386 (I've tested).
I think Windows 98 demands a 486 at minimum. However,
the setup program installs more specific drivers where
available.
For example, the VMM32.VXD-archive on my Celeron 400
system includes a module called MTRR.VXD. I imagine that
the absence of such processor-specific support could
adversely affect performance to significant degrees.