You mean the software drivers?
Yup, them's the beasts of which I speak!
It has been my impression that the reason
that we've had so many (different) iterations of drivers from different
mfrs, like VIA, was that their hardware was different (not necessarily
wrong) from Intel's on things like bus arbitration, buffering, timing etc.
All the different drivers did was diddle the control registers in a special
way to try to accomodate some add-in device which was overloading some
sub-part of the system, e.g. hogging a bus, filling buffers etc. As an
example, VIA's "problems" would seem to have been with their bus
arbitration scheme, which was allowing long PCI burst transfers to be
interrupted and which then had to be restarted over again - they were able
to mitigate the problem with a driver but it didn't cure the fundamental
problem.
Occasionally it's just a bit of bit twiddling of the hardware, but
more often than not it seems to just crazy odd-ball incompatibilities
with different versions/patches of the operating system and how the
driver is telling the OS to talk to the hardware. I've mostly given
up trying to figure out just WHY it is that these things don't work
and simply gone the easy road of not using VIA chipsets.
Either way, all that PCI bus, DMA, bus arbitration, buffering, etc. is
all still largely in the hands of the chipset vendors.
The nasty stuff I'm talking about is what one usually finds in a North
Bridge or MCH - the assignment of the memory bus to devices, memory
transaction priorities, the PC address routing to various memory types
according to their mappings - some of that stuff looks awful nasty to me to
get optimized.
Sure, there are some tricky points with regards to the memory
controller, but even VIA seemed to get most of those sorted out as far
back as their KT266A chipset. Ever since then their memory
controllers have been fairly trouble free and within the same ballpark
as what Intel and nVidia were putting out. They're still working on
getting the latency down to the nVidia/Intel level (I've mentioned it
before and I'll say it again, nVidia and Intel both did a real bang-up
job on memory latency with their nForce2 and i865/i875 chipsets
respectively), but at least they're pretty close.
Now, don't get me wrong, I think that integrating the memory
controller is a GREAT idea, and one that Intel will eventually have to
adopt as well. One area of nastiness that it definitely DOES remove
from the chipset vendors hands is ECC. EVERY Athlon64 system out
there should always support ECC memory, no matter how badly VIA
manages to screw things up.
However there is still a lot of nastiness left to the chipset vendors,
and a lot of the major reliability problems are in those areas.
Really the memory controller was the only part of the chipset that has
been brought on-die (assuming that you're not doing I/O directly off
hypertransport links, a la Cray Red Storm). There are still plenty of
ways for VIA to screw things up IMO, and that's the main reason why
I've been somewhat hesitant to recommend Athlon64 systems to most
people (I'm still waiting for nVidia to get their nForce3 250 chipset
out).
Maybe I'm mistaken but I don't see how they can do DDR-II with the same
socket as DDR - they're certainly going to need a new memory controller
with different signalling and the chances of pin-count being different are
umm, good.
Sure is a good thing that AMD has a new socket planned anyway than
isn't it? :>
There are also always a handful of unused pins in any socket design.
current Athlon64/Opteron chips might not support DDR2, but I suspect
that future ones will, especially for Socket 939. Socket 754 might
never support DDR2, but then again, it's likely to be phased out
towards the end of the year.
PCI-Express is *supposed* to be compatible with PCI at *some*
level but I wonder if AMD may have to rework the memory transaction logic
in their current CPUs.
PCI-Express is a total non-issue. All you need is a simple HT -
PCI-Express bridge. nVidia and VIA have already sampled theirs and
AMD will probably have a bridge of their own at some point in the near
future. Definitely zero chance of a socket change being required
here.
Hypertransport 2.0, if it's ever implemented in the K8 chips, will
make it cheaper/easier, but it's certainly not necessary.
It's not clear to me how long DDR-II will survive
before it is succeeded by say the FB-DIMM interface. If you have the
memory controller interface on the CPU die, you're always going to be
hoping that your CPU generations correspond pretty closely with memory
interface standard generations.
I don't think it's really that tricky. New processors are coming out
every year or so, even if they're only slight updates to existing
chips. It only takes a little bit of foresight to prevent
incompatibilities with upcoming memory technologies.