PC Hardware Selection and Testing
I get asked this a lot, so here it is. Selecting PC hardware can be confusing at best. The thing to remember is that faster is not always better. The key is to balance between the multitude of pieces. ...but if you have money to burn, do whatever you want with it.
- Processor. A faster processor isn't everything. On many PC's the processor sits mostly idle since the motherboard can't keep up with it. Another problem is Level 2 cache memory. This memory sits between the Level 1 processor cache memory and typically the main system memory. It typically runs about half the processor's speed. In general the more Level 2 cache you have, the better. 512k of Level 2 cache is about standard right now. Intel Celeron processors have this stripped out and are not a good choice if you need power. Intel Xeon lines have accelerated Level 2 cache and can often outperform a faster processor without it. Level 3 cache is yet another layer between the processor and main system memory (like L2, the bigger and faster, the better).
If the processor has an odd multiplier, the motherboard may underclock the system memory to keep it from over running specs. Multipliers use several fixed numbers so getting all the clock rates perfect usually isn't possible.
Front Side Bus (FSB) is the other main bottleneck of a processor. If your processor can only talk to the motherboard one clock cycle out of every 10, then it will be mostly wasted. In general it is often better to go with a slower processor with a faster FSB.
Having multiple processors (Symmetrical Multi-Processing, SMP, multiple cores on one die) in one box will not always make your system faster (especially if it is just a common workstation). The multiple processors are not "summed" together into a mega-processor. Each program thread can get split out to a separate processor and use that entire processor, but no more. If only one program is running that is not multi-threaded, it will run the same as on a single processor box. The same also holds true for hyper-threading (HT). HT is basically pipelining instructions and splitting them off in a special way so that the processor is doing multiple things at once in different parts of the processor instead of a "single" instruction per clock cycle. This is not true SMP but typically shows up as SMP under the operating system. HT is a good thing to have and can typically increase speed from 20-80% depending on the application and how well it is programmed (and these are big dependencies). As an example, a single core from my my quad core 1.8GHz AMD Phenom is about 30% faster than my 2.2GHz P4 (a processor difference of 400MHz). This is due to a higher speed FSB, more instructions per clock cycle, better pipelining, and better internal RISC breakouts.
Multiple cores on a laptop or other battery/portable system may not be the best choice because of the extra power required for the extra cores. Unless you are doing something like heavy audio/video rendering, compiling, or scientific processing, you'll be happier with your battery life on a single core. On a side note, some BIOS's have an option to totally shut off extra cores if they aren't needed. Keep in mind that laptops are designed to be portables, not computational power houses.
64 bit processors are common now, but a lot of the software world is still 32 bit. Thankfully most 64 bit processors can run in 32 bit mode without problems. Right now, 64 bit is mainly used in the scientific deep computing applications that need the extra power. It's a bit odd that the 32 to 64 bit transition has been much slower than the 16 to 32 bit one.
- Intel vs AMD vs Cyrix vs Whoever...Wars. This is a touchy subject sparking controversy by many. Each manufacturer "usually" has a strong point that the others do not (and they flip flop every few years). This indirectly comes down to motherboard wars, also, since the "other" processors do not run on Intel boards...or often each other's boards. Some of what gets claimed to be faulty processors are actually faulty motherboards or operating systems with faulty drivers (for faulty motherboards). Most other manufacturers have disappeared or gone under mainly leaving Intel and AMD. Since Intel has the monopoly, Intel is the industry standard (also referred to as Wintel).
Each manufacturer will have a line of processors with different features that may or may not be comparable to others (even within their own lines; comparing apples to oranges to grapefruits to pears). In general, most processors differ by various internal speeds, internal pipelines, level 1 caches, level 2 caches, and instructions per clock tick. To make things confusing, some processors with more level 2 and less level 1 cache can out perform other processors with more level 1 and less level 2 cache. Throw in pipeline and threading capabilities and that comparison gets even more messy. For that reason, few are alike or considered equivalent. In "general" (as in very general), processors with the same clock rating are very "similar" to each other (but not by 100% remember).
If you want games that bang the hardware, stick with an Intel processor line with an Intel motherboard (although there are a few games specifically designed for AMD processors). Oddly, AMD researchers have come out with a viable 64bit processor before Intel. If you need some serious power (and have the applications that can actually make use of it), 64bit is your only choice. If you are just looking for a generic web and email box, it really doesn't matter which you choose SO LONG as the processor isn't buggy, the motherboard isn't buggy, and the operating system drivers aren't buggy. My old K6-2 350 works just great for everything except heavy games. My K6-2 400 (HP Pavilion, never get one of these) had a totally crappy motherboard (like most Pavilions) and was the curse of the universe.
Most seem to agree that when getting an AMD processor, get a good Asus motherboard to go with it (and don't buy HP/Compaq for anything). As always, make sure you have a good warranty/return plan and you thoroughly test what you get (for either Intel or AMD, see below). Some stores may claim to have good returns but differ in reality. It's usually best to purchase a computer on credit card. If there is an unsolvable problem, put the grievances in writing, take pictures of you returning EVERYTHING properly in ORIGINAL condition and boxes, take pictures of the people who received the defective hardware, then cancel the credit card bill and send in that documentation. This needs to be done BEFORE 30 days from purchase.
Oh yeah, as a side note AMD processors are typically cheaper than Intel so they can compete in the Wintel market. AMD chips also tend to run cooler (better instructions per watt, lower electric bill in the long run).
- Processor Overclocking. If you are just a common user, don't. This is a great way of throwing your system out of sync with itself, overheating your parts, and burning them out a lot faster. When a system gets out of sync, it will become unstable and behave strangely. This originally came along way back when "slower" processors were actually the faster ones with a different label on them. That isn't the case today. Also keep in mind that way back then you would only add an extra 25 to 33 MHz (being a few precent faster). Today you would have to add a few hundred MHz to achieve the same results. More recent and smarter BIOS's does make this easier, but it is still very easy to set a voltage level too high and fry very expensive chips. Just because you increase a clock rate and the computer boots doesn't mean that it will run stable. Adding a few percent speed is NOT worth the instability trouble it will later cause. It often isn't worth the extra electricity needed to run and cooling parts purchased to keep the computer from cooking itself.
- System Underclocking. On the flip side is purposefully slowing down a computer. This is often done to reduce heat and power consumption. This is mainly done by those wanting to run the system off battery and those building home theater PC's to run cool enough to remove noisy fans. Certain chips will only hold a binary state for so long before losing it (like part of refresh rates in RAM sticks). If the clock rate drops below that threshold, then the computer will become unstable. In reality, it probably won't even boot. In general, so long as the computer boots, underclocking is safe (but still run the diagnostic tests to be certain).
- RAM. RAM selection is similar to processor selection...but this time size counts. RAM is the next biggest bottleneck next to the motherboard. Make sure you get a motherboard with PLENTY of RAM slots for future expansion. Not having enough RAM is what often kills a perfectly usable system in the upgrade cycle.
RAM sticks come in different speeds and sizes. Some of those speeds can operate with the other speeds, but you can only run as fast as your SLOWEST stick. Keep that in mind when purchasing.
Upgrading to faster speed and more RAM is probably more important than upgrading to a faster processor (the fastest and most the motherboard can handle). Remember that RAM is the main storage facility for a running system. The processor and RAM talk ALL THE TIME.
Some motherboards support memory interleaving with matched sticks. Get these as it can increases your RAM speeds by about 30%.
Virtual Memory / Swap. This is essentially RAM that gets "mapped" out of real RAM to your hard disk. This should be considered OVERFLOW and NOT replacement for not having enough RAM. Why is that? A processor may be able to access RAM every 5-10 clock cycles depending on the hardware. When a processor tries to access a disk, typically a MILLION clock cycles will go by until it gets an answer. Anyone familiar with basic math will understand this ratio and why it is bad. Oh yeah, anyone who tells you that you MUST under ALL circumstances have 2.5 times the amount of RAM as swap space is a retard. That ratio was developed in the 1980's when "nobody would need more than 640k of RAM". Things have changed a little since then. If you have 1g of RAM and have a full swap file of 2.5g, your system will come to a screeching halt and run just like that 286 I use as a boat anchor.
Umm...for some reason Micro$oft operating systems keep getting fatter and fatter. If you really want to run windoze "close to the way it was intended", triple the recommended RAM size listed on the box. If you want to run it better, shut off all the useless trash that runs in the background, double the previous number, then disable swap (yes, this can be done with great success if you know what you're doing and watch usage...I'm doing it right now on multiple systems).
- Motherboard. This has been touched on a little, so start by reading the previous. Needless to say, all motherboards are NOT created equal. I've had numerous problems with many varieties. Here's my recommendation: stick with a pure Intel chip set on a pure Intel motherboard with high clock rates all around (processor, FSB, memory, etc...and read this sentence again). (UPDATE: AMD is now doing their own chip sets which work well with AMD processors.) Even with that I've had some really moron problems between the SAME MODEL. Read below in the testing section.
Another thing I have trouble with is consistent data streaming. I've noticed on several motherboards (even brand name) that when I'm dumping a lot of data my audio will start skipping and breaking up a little. I'm gussing this has to do with buffering and clock timing in the PCI bus....as an average PCI bus should easily handle 30megs/second transfer and my little 176k/sec audio stream should work just fine along side it... :-\ Probably best thing to do if you need a performance motherboard is check the gaming hardware sites as those guys are really into it and should have reviews.
- Graphics Card. Function defines necessity here. If all you do is surf the web and check email, you don't need something powerful. Those sorry graphics chips that come with generic motherboards are probably enough for you. Some motherboards come with an additional slot for a graphics card that overrides the on board graphics chip. If you are unsure about what graphics capability you want, get one of these motherboards. If you want high colors and high resolutions with HD video playback, you will need a middle of the line (or higher) graphics card. If you are a gamer, expect to spend more on the graphics card than the motherboard.
Just like the processor FSB and RAM, graphics cards have a bus (usually PCI, PCI Express, or AGP) they talk to the rest of the system with. Cheap cards/chips talk slow and can't do a lot at one time. Remember this. Graphics cards also have their own display RAM. Cheap cards/chips share system memory, and this is really slow. Better cards will have more RAM and at higher speeds for sometimes rather insane processing rates.
- PCI Bus. This is how plug in cards and some other motherboard chips talk to each other. You usually don't get a lot of choice here. Needless to say, faster clocks are better. If you plan on adding peripherals to your computer, make sure you get a motherboard with plenty of slots.
- IDE/SATA vs. SCSI. IDE disks are the common low end industry standard (but are being replaced by SATA). They are cheap because they have no real controller...as in your main processor is the controller. Any heavy disk usage will slow down the rest of the system because it is eating up the processor. IDE disks are fine for dump disks but not for operating system or high performance disks. SCSI disks actually have a real and intelligent controller that handles all the hard work. These disks are designed for servers and high performance operations. Since a SCSI disk doesn't bash the main processor, it can often handle multiple reads and writes far better than IDE disks ever will.
Here's my rant...old SCSI controllers still outperform IDE by a long shot. Why not use those since their design and development has already been paid for and dump IDE totally??? I guess that decision would require intelligence they don't seem to have. Oh yeah, if you want your Micro$oft system to run a lot faster, use a SCSI disk for C:\ drive. Remember that windoze is still based on DOS and DOS stands for Disk Operating System. Really, M$ could do a lot to lessen the disk intensity of windoze.
Quick side note with on board disk RAM: more is usually better. Be wary, though, as some cheaper manufacturers tend to boost up the RAM in place of decent parts elsewhere so sales and marketing can make the disk look far better than it truly is. Because of this, I typically stick with Seagate or IBM/Hitachi disks.
- Flash Drives vs. RAM Drives. Most manufacturers intermix these terms incorrectly and should be shot. These cards are NOT memory. Memory is RAM and RAM is what is talked about above. These "disks" are a type of removable or permanent (sorta) storage (just like a regular hard disk...well, mostly in terms of the end user). These are most often seen in PDA's and other portable devices because of their small size. To confuse things more, these drives will sometimes hold a virtual memory file, thus leading the maufacturers calling them RAM (which is wrong and bad on so many levels, keep reading).
Flash drives are actually a type of flash ROM. Getting geeky, flash ROM has tiny electronic gates in huge arrays very similar to RAM. The main difference is that "flash" gates stay put when power is removed (thus remembering the data instead of zeroing it out). The main draw back is that they can only be written to about 100,000 times before they start to wear out and fail. This makes flash drives very insuitable for operating system type use (especially Micro$oft which is constantly writing something to disk).
Flash drives are often seen as Compact Flash (CF), Sony Memory Sticks (poorly named), USB Pen Drives, Secure Digital (SD) Cards, ATA Flash, and other PCMCIA type storage devices. They are also seen as the integrated main computer BIOS on motherboards that are upgradable, integrated into cell phones for the name and address book, and integrated Voice Mail systems for telephones that don't lose messages when they lose power.
To throw a wrench in things, extra large Compact Flash cards are Micro Drives which are actually tiny hard disks. Micro Drives act just like CF cards but are more suitable for operating system type applications since they are not flash ROM and won't wear out as fast. Micro drives still have the physical shock issues as regular hard disks
RAM Drives are "disks" that use RAM sticks instead of magnetic hard drive platters to save data. Since there are no moving parts and typically high speed RAM is used inside, these disks are beyond FAST. They are also quite expensive in any real size. Since RAM Drives use RAM, when power is lost, so is the data. That is usually bad. Manufacturers get around this by putting a battery inside the disk to keep the RAM powered when the rest of the system is off. True RAM Drives are rarely seen in consumer grade products. They are mostly used in high end servers needing fast data access. Tiny versions are sometimes used in PDA's and Voice Mail systems for telephones. You will know them simply by power loss following data loss.
Some operating systems have the capability of making a virtual RAM Drive using available system memory. For general use this is pointless unless you need beyond high speed file access (even faster than the physical RAM Drives). Back in my Amiga days, I could make a RAM Drive that could survive reboot. What was even cooler was that I could set it up to boot like a normal disk. You have never seen fast until you've seen an Amiga boot from one of those. EVERYTHING just flys by in a blurring whiz of lights and colors then WHAM, the desktop is loaded and ready for use. It's like being spun around then punched in the face it's that intense. Both Flash and RAM drives have no moving parts making them highly physical shock resistant. This is often why they are seen in portable devices.
- Sound. In the PC world this is somewhat of a plague...and has been from day one. Originally starting on an Amiga, I still have trouble understanding why. Most (and I say that loosely) modern sound chips are quite tolerable. If all you do is surf the web and check email, you probably don't need a super high quality setup. If you do gaming, video, or home theater, any sound chip that comes on the motherboard probably isn't enough. You'd think that all sound chips could do a very clean 16bit 44.1kHz signal, but I guess that requires too much intelligence for a rather ancient standard now. Oh yeah, speakers make a HUGE difference. You get what you pay for here.
- Serial, Parallel, USB, Firewire. Older peripheril interfaces are being phased out (serial and parallel). Serial is still somewhat common on new motherboards, but there aren't many devices that use it any more (mainly just dial up MODEM's). Parallel is nearly gone, which is unfortunate for many printer owners. Serial and parallel are still popular among the electronic hobbiests for their simple interface.
USB was designed to replace serial, parallel, and the PS/2 keyboards and mice. Some of these have been adopted faster than others. More USB ports on the motherboard is better. Keep in mind that plugging in an older USB device can slow down faster devices, so it is better to segregate them based on ports. Firewire isn't as common as USB on motherboards. Firewire is mainly used in high speed external disks and video cameras to dump video. To the end consumer, firewire and USB may look nearly identical, but they are very different in implementation at the low level and are not directly compatible with each other.
- Important Accessories: UPS/Battery Backup and Surge Protection. If you're going to spend a lot of money on a computer, spend a little more and get a UPS and some surge protectors. I usually put a cheap wall wart surge protector in front of my UPS (and just about everything else, for that matter). It is far easier and cheaper to change one of those out than an expensive battery system.
The UPS will protect brown out power bouncing, which is often highly destructive to any electronics (I've had plenty of damage because of that...with surge protectors in place...during clear weather).
A UPS will also allow you to save your work and do a proper shut down during a black out. From a business stand point, this helps prevent lost time. If the battery pack is big enough, you might be able to continue working through the black out. From an admin stand point, this helps prevent corruption due to improper shutdowns (which can be messy to fix).
For brands I prefer APC as my TrippLite's have ALL died early deaths. APC also has an internal adjustment for battery float charge (this can be dangerous to adjust, but it will increase battery life if properly set).
For sizing, 500KVA is usually the minimum for one computer and one monitor. If you have a large CRT monitor, it should probably be on a separate UPS. Do NOT put laser printers on a UPS as they draw far too much current (those just get regular surge protection). The "KVA" rating isn't the run time of the UPS on battery but what the internal inverter can support on battery. If too much is plugged in, the UPS will immediately shut off when going to battery (kind of defeating its purpose). Many UPS's of different KVA ratings often use the same battery, and you can't get more out of a fixed battery size.
Cheap UPS's will produced a stepped square wave when running off the battery. Most electronic devices don't mind this too much, but AC motors do (like desk fans, blenders, and refrigerators). The better UPS's will output closer to a sine wave, but these are often hard to discern unless you test them yourself. NEVER run a UPS on battery when it is unplugged from the wall (it needs an earth ground).
UPS batteries will usually last 2-3 years. Be sure to recycle them when they die as they contain toxins. Be sure to write down all the battery information so you can get an adequate replacement (I often do this with a marker on the bottom of the unit). A single physical battery size can have different amp-hour ratings depending on models and manufacturers. Getting a smaller amp-hour rated battery may be cheaper but the UPS may not accept it and think its battery is bad. Larger amp-hour batteries can be "hotwired" in if you have the electronics skills, but be careful not to go so huge as to overload the internal battery charger (high voltage electrocution warnings also apply). In this instance, bigger batteries doesn't mean you can plug more in (remember KVA inverter ratings?) but it will increase the run time.
- Finishing Rant. Now if you've gotten this far and really want performance, don't use Micro$oft. Bloatware does not translate to speed. Try Linux or BSD as it is open sourced and many people tend to trim it up when needed. I can boot a totally stripped down linux box into 20megs of RAM (without X11 of course...depending on your window manager that can add another 5-40megs...but that is your preference for what you need to do). The best I've gotten a windoze XP box down to is about 85megs...and when I start running it and trying to do something useful, that tended to jump up...quickly. :-P Key point is that unix is far more customizable to your needs.
Testing
So now you have your hardware and you want to see if it really works, what do you do? You start testing in layers. Testing starts at the lowest hardware layer and slowly builds up. Remember you cannot have a stable computer if the foundation is shaky.
- Well, does the system even run? Micro$oft isn't a good choice for this. One of the biggest signs I have defective hardware is when a known good linux install starts to panic. Micro$oft seems to panic and freak all the time...so that's why I said that earlier.
- UltimateBootCD.com (UBCD). This is a great consolidation CD that takes most of the tests I list here and puts them on one convenient disc. If you don't want to go hunting, get it. Some of the tests may be older. If that is or becomes a problem, you will have to go hunting for more recent versions individually.
- MemTest (memtest.org or memtest86.com). Greatest thing since sliced bread. While this is sorta touted as a RAM stick tester, it really isn't. MemTest is a self contained and dedicated micro operating system that writes and reads back a series of intense test patterns to memory. Given this statement, PART of MemTest's function is to test RAM sticks. What it really does is push the processor pretty hard (I've found overheating problems using it), test a few of the processor's registers pretty hard, test Level 1 and Level 2 cache since data is constantly written through it, test the FSB communications since data is constantly written through it, test the memory bus since data is constantly written through it, and finally tests the system RAM as data is constantly written to it....constantly...and forever.
To get best use of MemTest, you really need to run it overnight or longer for suspect systems. Most of the problem I have found have taken about 8 hours. When it does find a problem, it may or may NOT be the RAM sticks. Remember it test everything in between, also. Read up on its web site for help on tracking down those more elusive problems.
Now with that said, this next statement will come as a shock to you. Over the first few years I've used MemTest, I've found 7 defective motherboards, 1 defective processor, and only 2 defective RAM stick. Why? RAM sticks are much "simpler" in design and have "special plug into the expensive hardware testing units" at the factory. Motherboards have anything and everything on them now and are way over designed and complicated (not to mention timing issues on newer RAM sticks). Great recipe for disaster. Since MemTest is free, I really wish motherboard manufacturers would use it in their final testing stages to track down more elusive problems...hint...hint... I've even used MemTest to find a bad motherboard run from Intel when the previous and exact same model numbers worked perfectly.
Remember your operating still may install and run seemingly well if MemTest finds minor problems, but it will still error out from time to time internally giving you an occasional and seemingly unconnected problem...and these are the absolute worst.
- Other memory tests. UBCD comes with multiple memory tests. These generally aren't as strong as MemTest, but can be used non-the-less and operate very similarly. Recommended run time for each test is at least over night.
- Processor Tests. UBCD comes with a few processor tests. USE THEM. These can be used to track down buggy/defective processors. These can also help track down over heating issues where the system slowly goes stupid. The Prime test is also very effective at finding memory timing problems where MemTest cannot (these can show up as random program crashes/lockups that are very hard to track down). Recommended run time for each test is at least over night.
- Drive Fitness Tests (DFT's). Download these from your disk manufacturer's web site (or use UBCD). Hard disks are often plagued by stability problems (especially the cheap ones). I've had brand new drives go stupid in a very short amount of time (even under little stress). A DFT will push the drive and check for weaknesses and failures. The built in "SMART" controller chips are weak and won't even come close to this (do not depend on them). When running DFT's, select the full/longer/advanced test instead of the shorter one. The full test can easily take over an hour for big disks.
DFT's will often fix the drive if the problem is minor and not tell you. I've had this happen many times with disks that kinda go stupid but come back great after DFT. For a new disk, I usually recommend looping a DFT over night to help "break in" the disk. I also recommend running a DFT monthly (or more if the disk is questionable) to make sure those minor problems don't suddenly become major and trash the system (this happens far more than anyone wants to admit). If the disk is on the edge of failing, the regular run will normally catch it and you can salvage the disk before it becomes totally unusable and all data is lost.
(This is a good time to point out that regular backups of data are a good thing.)
- Linux Test Project (LTP, ltp.sourceforge.net). LTP is designed to work an operating system over. Given the high stress of the test, it can often cause a kernel panic if it is on defective hardware.
- MemTester. This is a linux package that is very similar to MemTest but runs in the operating system. This is also good to run over night if all the other tests have passed or you're in a situation where you cannot reboot your computer (like servers).
- Final Rant. If your system has a problem, take it back or throw it away. You should run these tests AS SOON AS YOU GET YOUR SYSTEM. Make use of the warranties that come with it and force computer manufacturers to do their job like you paid them to. There is NOTHING so hideous or cursed as trying to use flaky hardware. 'nuff said.
- Final^2 Rant. Most sales departments are absolutely CLUELESS about any hardware they are selling. At the very least, it's their job to know what they are selling, and I disrespect them for not. You will often hear the "It works for me" argument. In reality it doesn't and they are in denial with delusions of adequacy. The only real way to get around this is to push harder, ask for managers, then raise hell. If that doesn't work, you had better purchased that system on a good credit card. Return the system in its entirity (be nice about that at least) then cancel the bill on grounds of defective product. You should do all this SOONER and NOT later, as if you wait until the very last minute, that will make you look very suspicous.
- Side Note. It's always a good idea to run these tests on a semi-regular basis (like monthly). Just because your system "should" work perfectly doesn't mean that it will. Hardware wears out and breaks over time. Kicking or man handling a computer can damage it. Electrical surges and lightning can damage it. These tests are designed to find trouble. If they all pass, you can be reasonably assured that your computer is functioning as well as the day you got it.