Here's a question for all of the Computer Engineers out there. Why do PCs become slow almost to the point of unusable when the PC's drive buses are in heavy use?
What am I talking about? Copy a CD to a CD or perform a disk intensive process like copying a lot of data from one PC to another and see what happens to your nice 3.2Ghz P4 with 512MB of DDR RAM. It slows to a crawl! At least it does in Windows.
Why is that? You'd think that with all of the myriad of changes that Intel has made to it's motherboard designs that they would have found a way to separate the drive bus from the memory bus. It's like we have all of these nice highways leading to a two lane residential street, under construction. Oops sorry, we are only letting brown cars through right now. You're car is blue, so you'll have to wait.
Servers (also built on Intel's architecture) do not have this same problem. You can be totally hammering a RAID array on a server and still log in to the console and everything works just fine.
What's my point? That it's virtually meaningless to have CPUs, memory, graphics cards and hard drives that are as fast as they are if you can't effectively perform multiple dissimilar tasks on your PC...at the SAME time. I'd say that if Intel or AMD want to make improvements for workplace PCs, that bus systems are the place to look at. CPUs are well above the speed that they need to be to effectively use most desktop applications. Memory is the same.
You want to really increase the effectiveness of new computers to the point that IT Managers like me can make a good case for upgrading every three years, well then you had better show me something. Show me that a user can be working on a Word document while burning a CD while listening to an MP3 while printing a PDF while browsing the web while talking on MSN, Yahoo IM, AOL IM, while their RSS reader is culling feeds in the background, while their administrator is connected to their PC remotely showing them how to do something.
Yeah, that might be an extreme example, but you get my point. Making the PC work faster is no longer going to help the average worker. Making the PC do more things at once will. And no they aren't the same thing. Speed does not equal efficiency. Efficiency is getting the most out of all parts of a system. Synergy. Maximizing throughput, etc.
Besides, since both Intel and AMD seem to be hitting a big brickwall on speed, going sideways and increasing what a PC can do with all of it's parts seems to be the most logical place to make improvements.
Great point. Love to see vendors act on your suggestion.
Right now I have two computers under my desk connected via KVM switch so that when I tie one up with a long-running task like you're describing, I can bounce to the other. With the KVM, shared drives through Windows, and a shared clipboard (using a freeware program called Spike), it's *almost* like getting the benefits you'd like to see built into every computer -- though twice as expensive and a lot bulkier.
Definitely one area that could use improvement --and that could really deliver benefits to users (as opposed to the MHz races that made good marketing copy but really didn't really deliver benefits to users).
- Jim
Posted by: Jim | Wednesday, November 24, 2004 at 12:57 PM
Wow, that's an easy one.
Answer: IDE.
The IDE/ATA drive protocol (http://www.ata-atapi.com/hist.htm) is very low level and most IDE controllers are very stupid, so the CPU has to do most of the work and waiting in the drivers. This, of course, means your machine is sitting in kernel, possibly blocking other things from happening. Worse, because of the master/slave mechanism in a single chain, the master can block the slave from doing work, so if a slave involved in an operation, you're just out of luck. And for all this dumbness you get to waste an IRQ for just two drives.
The reason IDE is what it is, is cost. A more complex and faster protocol requires more electronics on both the controller and drive. More drives per chain requires more wires on the cable, which means more work and fancier cables to beat electrical interference. A faster rotational rates to lower access times requires more expensive machineing, better bearings, more thought to cooling, etc.
SATA (http://www.ata-atapi.com/sata.htm) is an improvement but still not so good. Same basic protocol, but faster over differentially signalled twisted pairs. Cost is still a driver, so the drive components are less than what they could be. The idiots didn't spec that the cables should be shielded so while the differentially signalled twisted pair provides some noise attenuation, there isn't really enough for external use.
If you get a decent SCSI controller and drives (or one of the Promise controllers that use IDE drives but look like a SCSI controller) you will find your machine no longer crawls when doing heavy disk operations. And as an added bonus, you can put either 7 or 15 (depending if it's narrow or wide SCSI) on a controller, using only one IRQ in the process.
PS:
Except for Seagate, most drive manufacturers offer lesser warranties on their IDE drives as they are manufactured to lower tolerances. A typical IDE drive is designed for about a 3 year life woth a 80% duty cycle spinning at 7200 rpm. A typical SCSI drive is designed to a 5 year life running 24x7 at 10000+ rpm. This is part of the reason that you have to pay a premium for SCSI hardware.
Posted by: John | Wednesday, November 24, 2004 at 08:02 PM
Actually, you can see during an intensive disk access process that the CPU is used very little at all. Most the control for the IDE bus is handled by the chip on the motherboard (northbridge or southbridge, can't remember which).
Oh and using SCSI disks in a system does not help at all in what I'm talking about. I've had 100% SCSI systems and they still did the same thing for intensive processes like CD to CD copying.
Also, it's just about impossible to build a 100% SCSI system nowadays as you will have a very hard time finding a fast SCSI CD-ROM drive or CD-RW. All the major manufacturers have switched to ATAPI/SATA.
Not to mention that for most real world desktop applications/functions IDE drives actually do better than their SCSI counterparts. SCSI drives are optimized for use in servers where access is much more random vs use in desktops where access is much more sequential.
RAID arrays don't help for real world desktop use either. For all you powergamers out there, don't waste your time or money on RAIDs, you will get zero performance benefit with them and will most likely decrease the performance of most of what you do.
Having said that, I think it does have to do with both the IDE bus and the memory bus on the PC.
Posted by: Alex Scoble | Tuesday, November 30, 2004 at 02:08 PM
Odd. My all SCSI system handles CD to CD copies just fine (assuming the CD-R blanks don't suck.) On a PIII 600 no less. While copying files over the network and doing development in a Smalltalk image. Of course, that is using an ancient version of RedHat (7.3) not Windows. I wonder if it's just dumb drivers that are locking out kernel access while waiting for the drive to complete the last command?
Posted by: John | Thursday, December 02, 2004 at 11:24 PM