Why are my 1394/USB 2.0 devices so slow?

I’ve been having a read performance problem lately with my external 1394/USB 2.0 devices. First I will describe my system:

I have two external chassis: One is an external HD with an Oxford 911-based firewire bridge. It houses a very fast Western Digital 80GB 8MB cache drive that mostly contains large files and is not fragmented.

The other chassis is a 5.25" case that has a combo 911/USB 2.0 bridgeboard and has been tested with a variety of peripherals, including a Liteon 48x writer/reader.

The host PC’s are mainly Athlon 1.33GHz machines running Win2K SP3 and/or WinXP SP1. Both motherboards are based on the AMD 760 chipset. I have used three different types of firewire cards in various combinations, including an Adaptec DuoConnect (USB 2.0 + 1394), a Fireconnect 4300 (using a TI 1394 chipset), and a no-name 1394 dapter using the fairly high quality Agere FW323 bridge chip.

In all cases, I get around 11+ MB/s write performance on the HD (less on the 48X burner since it is the bottleneck). But no matter what combination I try, I never get more than about 3.4MB/s on reads. This figure is consistent whether I’m copying a large, unfragmented file to my local HD, or running a read benchmark like the Passmark test that comes with Norton SystemWorks 2003. The wierd thing is that on my combo adapter, the USB 2.0 and 1394 interfaces both perform about equally. I can’t figure out what’s causing this bottleneck. I’m sure I saw better read performance when I first bought the equipment a few months ago, but maybe my memory is bad.

So basically I’ve tried different PCI cards, different PC’s, different OS’s, different firewire chassis, and different interfaces, and they all give the same read figures. I can only conclude the problem is in some common part of the OS somewhere.

Anyone have any ideas?