Get A Spiny Norman Shirt Get A Shameless42 Shirt Get A Tux Shirt
top pipe
Get Firefox!

Double Vision: A Geek's tour of dual-core

Intro

This is a story of my quest to build a dual-core system in under 1 week. This is a true story with nothing held back except the names of a few private individuals. I have tried to present all of the good and bad points as both a warning to others and a place to find solutions to similar problems. If you find any of this information helpful, please let me know. I would appreciate the feedback.

I've tried to add a tiny bit of a tutorial feel to this little essay. I've laid out the steps that I took on the road to a finished system, and I'll try to analyze how correct each step was. Hopefully, others will be able to follow in the right steps I took and avoid the wrong ones.

Decisions, Decisions...

The first question to answer is: Why build this system? In my case, I had promised my daughter that I would let her take my Athlon-64 3200+ based system to college with her. She has an old Celeron system that I'll probably take off of her hands and convert into a Linux-based DHCP, Samba, and DNS server. The only condition I put on the whole thing was that I wanted my next system to have an AMD dual core. That meant that the price of the Athlon X2's had to drop into my range. When the X2 3800+ was released in the $400 range, that condition was met. One could always say that I could get one of Intel's 820 or 830 chips, but I read the reviews too often to have considered anything like that.

Before shopping for computer parts, you should take a minute to sit down and think about what you will be using the system for. You should then use that information to decide what your price range is for each of the major components. For example: If you are just going to use the system for word processing, you really don't need to spend much on a video card. It is even likely that you would opt for a motherboard with onboard graphics in order to save a few bucks. On the other hand, if you are an avid gamer, you might want to go for a high end GPU like the X850 or Nvidia 6800 series cards. Only you can decide what makes sense for you.

In my case, my computer is a big part of my life. I am a computer/software engineer by trade and a Geek by choice, so I spend a huge chunk of my time writing software, researching integration jobs, or posting to one of my web sites. In my spare time, I enjoy PC gaming, and I'm active in a small LAN party group. The machine will be part of a small network in a cramped basement, so the ideal system would also be small, quiet, and generate very little heat. If you add up all of this, you can see that there isn't much room to skimp on hardware. You can also see that there are a few mutually exclusive requirements in there.

The next thing you should do is decide what not to buy. Although it is always tempting to get everyting new, there are often parts that you can do without. For example: you might have just upgraded your disk, and decide that you really don't need to buy a new one. You might also decide to use your old video card until the new ones come out in a month. Cutting back on the new components that you buy is a really good way to get more for your money. Although it seems like a common sense way to go about things, you would be surprised at how many people skip this step.

Another thing to map out is which cables you have, what you need, and what will come with the retail versions of your components. If you are already getting enough SATA cables with the retail version of your motherboard, there is probably no reason to get the retail version of your disk drive. If this strategy saves you a few dollars on each component, the difference may add up to an upgrade on one of your components. The possible exception is when the additional included cables in the retail version are worth far more than the difference in price between the retail and OEM versions. I've seen a retail version of a motherboard come with several high-quality SATA and PATA cables, including a nice round cable, for an additional 5 dollars. This is usually a deal worth taking whether you absolutely need the cables or not.

What I needed

In my case, I was sending the bulk of my system (along with a sizeable percentage of my cash) off to school, so I needed most of it replaced. I was able to keep my optical drives, LCD monitor, speakers, keyboard, mouse, and an 80GB SATA drive. I also have plenty of spare cables to hook the box up to peripherals. That left me with the following list of components to buy:

To this list of components I added the following list of guidelines to refer to while choosing the components:

The last two requirements have come from some hard lessons learned. I've had some bad experiences with bargain basement components that have ended up costing me a lot of time and effort to fix. For example: you will never catch me buying another Powercolor card. From now on I intend to buy things from companies with good reputations. I've also had bad experiences with technologies that have hit the bargain bin. I can remember having to replace a 6 month old video card because I couldn't find a decent VLB motherboard to put it in. I'm sticking with technologies I expect to see around for another couple of years

What I Got

After applying these guidelines to the list of parts, I ended up buying the following list of components:

The list of components shows that I didn't keep myself too strictly to the list of requirements. The OCZ RAM is from a company with a mediocre reputation, and I'm beginning to regret the choice. The Antec Sonata is a quiet case, but it's steel construction and minimalist design make it a too heavy and plain for LAN parties. However, I have used the original Sonata cases in the past, and have been very pleased with them. The Zalman fan was not something specified in the requirements, but I've heard so many good things about it from my LAN party buddies and online reviews that I thought it was worth the extra expense. The LED in the fan is laughable inside of a black steel case. I bought it because it was identical to the non-LED fan in all respects except the LED, but it was on sale for $4 less than the non-LED fan.

We are gathered here today...

Assembling the hardware took a couple of hours. This would be a long time for someone who assembles computers everyday, but it is reasonable for someone who only assembles a few units a year. I like to take my time and get the job right. Once again, this is based on learning the hard way not to rush the assembly of your PC. Past assemblies have taught me that a mistake made to save a few minutes of assembly time can be a serious annoyance for the life of the system. Don't force cards into a motherboard that is not properly aligned and bolted down to the case. Don't skip washers and grommets because they are hard to find in the big bag o' hardware that came with the system. You will always regret these little things.

The installation of the Zalman fan was actually very easy. This was the only part of the assembly that I wasn't previously familiar with, so it was the one I was most concerned about. The fan came with an adequate supply of thermal grease and a good set of instructions. The only part of the instructions I disregarded was the suggestion that the fan speed controller should be affixed to the outside of the case with double-stick tape. This just offended my sense of good taste... especially on a pure black case with a minimalist design. I decided to stick the controller to the inside of the case just below the power supply. Just for the record... the heatsink on that fan is HEAVY. It (regrettably) adds a few pounds of pure copper to the system.

The only other hardware modification I made was to remove the ductwork that comes with the Sonata 2. Although it seems to be based on sound reasoning, it is cumbersome, it gets in the way, and it really doesn't seem to bolt up to the Zalman fan properly. I opted to remove it from the case and stow it in a drawer. Since the CPU temperature tends to be around 34 degrees celcius at idle and never goes higher that 43 or 44 degrees, I don't seem to be suffering any consequences. Your mileage may vary.

Load 'em up!

Now that the hardware was complete and running, it was time to load some smarts onto the system. Initial loading of the OS and the drivers went smoothly. I loaded up Windows XP Pro from my MSDN disk, I installed all of the drivers from the Asus and Sapphire driver CDs. Everything was going perfectly. Of course, you know that everything is always brightest before the BOOM.

After getting the OS and drivers in order, I decided to take a shot at twiddling the BIOS parameters. The Asus BIOS has a lot of flexibility in how you can change clock speeds and memory timing. Unfortunately, it allowed me to set things in a way that caused a BIOS failure. That was a shock to my system.

Previous motherboard experience taught me that you really can't kill a BIOS. Generally, they come with 'escape routes' that record the fact that they couldn't boot, reset some or all of the parameters to a safe mode, then restart with the safe parameters. The Asus BIOS just screamed in pain, then asked me to insert the driver disk. HUH?! Well, it gave me a recovery mechanism, but I now have an unreasonable fear that I'll lose the recovery CD. I think Asus should work on this a little more.

Insert CD. Reload BIOS. Fixed? Not Quite!

The BIOS on the CD was a very old version that recognized my super-duper X2 as a lowly Sempron. That's only a small annoyance, since I intended to update to the latest BIOS version anyway. I just let the default settings stay and booted Windows so that I could find the latest version online.

Of course, when Windows booted, it no longer recognized any of the devices, and started installing a whole new set. I have no idea whether the new devices had the same names as the old ones. I just knew that it was re-installing at a time when it probably shouldn't have been. But, I decided to press on.

My very first instinct was to use the auto-update utility that I installed from the driver CD. Here was when I encountered another shock to my system. The auto-update utility told me that there wasn't any version of my BIOS available at all. Once again, HUH?! I switched to the .tw server and got the same results. I didn't find anything available anywhere except on the .de server. The instructions were all, naturally, in German and the BIOS was 2 versions out of date. That was about when I got the point that auto-update was useless. Thanks Asus.

I surfed over to the Asus support site and checked into the available BIOS versions. I downloaded version 1007, and noticed a warning on the last two BIOS versions that stated that it only worked with the newest versions of the drivers, so I downloaded them as well. I followed all of the BIOS installation instructions on the support page to the letter... I had good reason to be paranoid now. Re-flashing the BIOS went without a hitch, and re-installing the drivers went just as well. I was back on track. For now...

The next problem came when I did something really stupid. I'm sure everyone has had a similar 'what was I thinking!?' experience. I was having fun playing around with the dual core aspect of the machine. I was installing stuff while moving windows around, surfing the web, and generalling stressing the CPU for no reason. The X2 is impressive when you behave like this. However, never, never, ever do this while installing XP service pack 2. D'OH! *slap forehead*. I continued on with the half-updated OS for a while, but I noticed that the system was getting unstable. Time to start over

Insert CD. Reload Windows. Fixed? Yes! Finally! I could now download my games and have some fun. Until the next problem.

SATA Problem?

Since I tend to spend a lot of time running Linux, I decided that the next thing I would attempt would be Fedora installation. For the past two or three years, it has been my experience that installing Linux is much less painful than installing Windows, so I settled down for a nice, easy job. Boy was I mistaken.

First of all, I couldn't find my x86_64 DVD version of Fedora 4, so I decided to use the i386 CD's. The CD booted, went through all of the setup and init screens, then told me I had no hard disk installed, (though it had just partitioned my 2nd drive) hiccuped once, then rebooted. Hmmmm... Maybe this is just an anomoly. Lets try again.

Boot. Partition. Setup. Choke.

I thought that it might just be a FC 4 problem, so I dug up the x86_64 DVD version of Fedora Core 3. I booted it up, ran through the setup and partitioning screens... which were getting a little old by then... and let the install kick off. Meanwhile, I booted up the laptop and started searching the web for anyone else who had seen similar behavior. I saw lots of people who had similar problems, but didn't see any solutions that made sense. Solutions ranged from a painful modification of the kernel source, which probably would have worked, to the standard incantations and bead-rattling that you hear from people who have no business proposing solutions. I was getting frustrated when I noticed that the FC3 installation was just finishing. Maybe now that I had Linux on the system, I could forget about other people's problems... or maybe not.

When the installation was complete, I waited for the Grub loader screen to appear, selected Fedora Core 3, and... choke. The kernel started to load, generated an error message that went by too fast, then rebooted. BIOS, Grub, choke. BIOS, Grub, choke. I decided to boot Windows, start a FC4_DVD_x86_64 download and call it a night. My plan was to try Fedora Core 4 from a proper DVD download, then give up and buy a PATA drive.

The next morning, things worked a lot better. The DVD install went entirely without incident. When it was done, I had a perfect installation of FC4 with everything loaded. I couldn't resist playing with things a little. What I found was in line with what I thought I would find. Since I don't do anything that taxes the CPU too much on Linux, I didn't see much of a difference until I ran Gimp 2.2. If you do a lot of graphic art using Gimp, I would definitely recommend going with a dual core system.

I'm not entirely sure what the initial mismatch of Linux and my SATA drive was. I found some web sources that claim that SATA is still a non-standard. Various SATA implementations are the same from the drive's perspective, but not from the board's perspective. This means that you can (theoretically) attach any SATA drive to any SATA controller without any problem. However, you may or may not have to find a SATA driver that is specifically for your controller chip. This seems to me a little far-fetched. It doesn't quite explain why Linux had so many different kinds of results, when Windows XP had no problem with my very new Nforce4 Ultra controller. My inclination is to just call it a bug that got fixed by the time FC4 was released.

Why so slow?

My next trick was to take a shot at overclocking the system. I was a little starry eyed by all of the reports of 20% and 25% overclocking that some of the online tech guys were getting. I figured that having PC4000 RAM and the Zalman fan on a Nforce 4 Ultra mobo would get me at least that far. No such luck

First of all, when I tried to up the memory to 500MHz, it crashed. The best I can manage is 466MHz with relaxed memory timings. I'm pretty sure the problem is the OCZ RAM not living up to it's hype. That's pretty disappointing to me. The best overclock I can get so far is to run the system clock up from 200MHz to 233MHz, giving me a total overclock of 16.6%. In the end, the system only seems to be stable at 10% or less overclocking. I may try again later, but for now, I can't see a reason to. Changing the system clock to 220MHZ changes the CPU clock to 2.2GHZ, which changes my 3800+ to a 4200+.

I haven't tried this yet, but there is supposed to be a way to re-flash the X800Pro BIOS to turn it into an X800XT PE with 16 pipelines. I intend to try this soon, and I'll publish the results when I'm done. For now, I have been overclocking the GPU to 520MHz and the memory to 530MHz which equates to about 15% overclocking. The video card seems to be able to go quite a bit higher than that, but I'm not going to push my luck for now. At it's current settings it runs Half-Life 2 at 1600x1200 with most of the settings on high.

Maiden Voyage

With both OSes and a host of games installed, it was time to take my new machine on it's maiden voyage. I stuffed the rig into my car and took it to my friend Rally's house for a small, 8-man LAN party. My thinking was that if it could stand up to that kind of abuse, it should be stable enough for home use. I realize that the dual-core CPU wouldn't be much of an asset for gaming, but I figured it would do well as the game server, even while I was playing on it.

Using the dual-core machine as a server didn't pan out as well as one would think. Several of the games seemed to suffer from stability issues that could easily be attributed to software that doesn't yet handle dual-cores very well. Although, theoretically, any software that is designed to handle multiple threads should also be able to handle multiple CPU's, the reality is that there are some things that you can do wrong that will show up on a dual-core, but happen at a low frequency... read that as never... on a single core.

Though some things like the Battlefront misbehavior were most likely Multi-core related, the bulk of the problem may have been that I was overclocking the CPU by about 15%. At the time, that rate seemed to be stable, but I've since learned that games will intermittently crash if I run the clock rate that high. Since I've backed off to 10% OC, I haven't noticed any troubles.

The successes turned out to be Call of Duty: United Offensive, Starcraft: Brood Wars, and to some extent, Generals: Zero Hour. Generals could also be put in an 'undetermined' category because it had problems, but none that we hadn't seen on other systems.

I was able to run a server for Falcon 4: Allied Force, but it eventually kicked out my client, even though all of the other players were able to stay in the game. When I restarted the server, it wouldn't let anyone in but me. We eventually gave up on it and let someone else serve the game.

The strangest occurrences happened with Star Wars: Battlefront. It didn't seem to matter whether I was a server or a client, it just got itself into a "funky" state every now and then. The game would start off in what seemed to be a seriously overclocked state. The spinner graphics for loading the maps were spinning as fast as a P4 fan, count-up timers counted up about 10 times as fast as they should, lights blinked at an annoyingly high frequency. Once the map was loaded, however, everything ran like it was on an old 4.77 MHz 8088 CPU (for those who don't remember their geek history, the 8088 was the first 8/16 bit PC processor, and it ran at 4.77 MHz).

Conclusion

If you've read up on the 'net about the use and abuse of dual core technology, you have a pretty good idea what my conclusions are. A dual-core system runs Windows quite a bit smoother that a single core system. Most of the waiting around while a CPU-intensive process runs to completion has been eliminated. I noticed that installing a software package while doing something else (like surfing the web) was far less painful than it used to be. Windows seems to be able to boot up using most of the resources of both CPU's, so the first time you start Windows you will be impressed.

Most software has no trouble with dual core systems. If an application or game is written as a single thread, the extra CPU doesn't help it much, but it doesn't hurt either. If an application or game was CORRECTLY written as a multi-threaded app, then it should benefit from the ability to run two threads at the same time. The only time you run into trouble is with apps that run multiple threads, but have broken one or two little rules. These are the ones that have light-speed spinners and low-speed networks. They can also be the ones that will run a game client or a game server, but not both. Hopefully, these annoyances will get fixed in the near term, but don't hold your breath until they do.

The one thing I won't be able to say too much about is the effect of 2 cores on gaming. In my case, I also upgraded from a lethargic old 9600 Pro to a much faster x800 Pro. I can tell you that the new machine is a lot faster than the old one, but it is probably because of the video card. It is most likely that the game's I am running aren't capable of using both CPU's to their full advantage. If you want to know how individual games work on dual-core systems, check the web site for the game you are interested in. Game companies that have put the extra time in to get their games to run well on dual systems are likely to brag about that fact... and they should. Games that are unaffected or adversely affected by dual-core systems are likely to gloss over that fact.


Valid XHTML 1.1!