Gigabyte GA-686KDX Motherboard
Back in early 2004, I bought this board (including a manual) for an affordable 1€ plus shipping, intrigued by the combination of dual Slot 1 with SIMM slots. It had a short life on store shelves and seems to be officially forgotten by its manufacturer now. Upon testing more than a year later, it turned out to be working flawlessly and was then used as the basis of a (relatively) quiet retro rig (I already had a real noisy one, which is no fun in the long run). My board is a revision 1F, it came with a 1.42 BIOS in 2 MBit.
Some data and caveats
- Form factor: Fullsize ATX, double decker I/O layout with the usual common choice of connectors on the back as found on many other boards in the late 1997... early 2001 time frame
- Chipset: Intel 440FX PCIset (codenamed "Natoma") including PIIX3 southbridge
- CPU sockets: 2x Slot 1 for Pentium II (Klamath core only)
- Memory: 6 72-pin SIMM sockets for FPM and EDO DRAM (plus, in theory, BEDO), up to 512 MiB total
- Expansion slots: 5 PCI, 3 ISA (1 shared)
- Multi-I/O: UMC 8669
- BIOS: Award 4.51PG, 1 or 2 MBit, in socketed DIP32 flash ROM (here: SST 29EE020 /5V, 2 MBit)
- Misc.: Socketed RTC chip with integrated battery (here: ODIN OEC12C887); Intel S82093AA I/O APIC
- Produced: Approx. Jul ... Oct 1997
- Sold: Approx. Sep ... Dec 1997
- Obsolete: Approx. Feb 1998 (first dual LX boards, first Deschutes core PII with 333 MHz)
- More information (in Russian), picture (other old Gigabyte boards are also listed there); for DIP switch settings and connectors see Total Hardware 99
- Other similar boards: Tyan Tahoe Plus ATX (obviously geared more towards server use, with IDE/floppy connector placement allowing full-length cards in 4 of 5 slots instead of just 3 on the Gigabyte, the position of the ATX power connector also is better for a big case though rather problematic for smaller ones where the cable may obstruct 3.5" drive bays)
Potential problems indirectly mentioned:
- Hardly anyone has 128 MiB SIMMs to begin with, but when using those one is well advised to only populate four sockets, since the cacheable area of the L2 cache on early PIIs (Klamath and the very first Deschutes stepping, i.e. 6-3-x along with 6-5-0) is only 512 MiB and accesses beyond this "wrap around" into the first 512 MiB. Sure one can disable the L2 cache, but that is pointless as a lot of performance is lost that way. Anyway, 512 MiB should be plenty for a machine that old, shouldn't it?
- Every i440FX Slot 1 board I know of can only run Klamath core PIIs
for 2.8 V core, not the newer Deschutes demanding a core voltage of 2.0 V. The
reason for this is that Intel updated the VRM spec to include a fifth VID line
(VID4) after the boards had already been designed, obviously without VID4 being
routed to the VRM. With only VID0...VID3 the selectable voltage range is 2.1 to
3.5 V, as it had been on PPro boards. Do not try to use a Deschutes
PII or Celeron here, as it will be supplied with 3.4 V instead of 2.0 V core. A
PPGA Celeron on a slot adapter with voltage selection set to 2.1 V should work
in principle, but the usually antique BIOSes would not know what to make of
this processor and not boot up correctly.
Klamath core PIIs were available with 233, 266 and 300 MHz and can be bought very cheaply nowadays (be careful, as 266 and 300 MHz Deschutes' also exist), but there's a reason for that: They aren't the most cool-running processors, with a maximum power dissipation ranging from 34.8 W for the 233 MHz model to 43 W for the 300 MHz variant. I recommend versions with an attached passive heatsink (can be cooled more quietly with big fans). I would also recommend C1 stepping processors (CPUID 6-3-4) instead of older C0 stepping ones (CPUID 6-3-3), especially for multiprocessor operation, as the C1 stepping fixes some related errata. (It does not fix another one – apparently A27 –, which is why Server 2003 does not use more than one processor in such a system and you'll have to be content with 2000 or XP (or NT4, of course) as far as Windows is concerned. IMHO 2000 is the best compromise WRT memory requirements, given big EDO SIMMs don't grow on trees.) Whether the L2 cache has ECC or not, that is not really important performance wise (the versions with ECC have a slightly higher MMX read bandwidth, while latency is 24 instead of 16 cycles).
The Pentium II spec update (24333749.pdf) lists all the S-Specs along with what's inside, and it describes all the errata as well. - Burst EDO (BEDO) DRAM was a nice idea back in '95, allowing x-1-1-1 read bursts among other things, but then SDRAM came along and did all this and more. Additionally the i440FX, one of only three chipsets to ever support BEDO (the others were the VIA VP and OPTi ViperMax), did not work stably with x-1-1-1 read timing, thus eliminating the advantage over EDO which already allowed x-2-2-2 read and write bursts. Even worse, the real-life BEDO performance (provided it worked at all) turned out to be pathetic. BEDO modules are pretty much inexistant anyway.
- The PIIX3 southbridge contains an IDE controller which supports up to PIO mode 4 and multiword DMA mode 2, which is pathetic by today's standards. (It's still OK for an optical drive, 8X DVD speed should not be a problem.) USB may not be working perfectly either (particularly high speed mode).
- RTC chips with integrated battery will eventually run out of juice. This one failed in approx. September 2012, and the system will not even keep its CMOS settings across a reboot. (Interestingly enough, the yet older pre-rev.2.0 GA-586HX is still chugging along as of April 2013, though last time I checked time was a little further off than expected and the battery may be gone soon.) Oh well – a 15-year run ain't too bad, I guess. Thankfully a 12C887 version now called DS12C887A+ (Pb-free and all) still is in stock at the major electronics component distributors, unlike the DS1287s required by some old systems which typically necessitate Dremel / file action as new replacements are about as common as hen's teeth. I might actually give that a shot and install a button cell holder on the old chip (if it runs for 15 years with a tiny integrated lithium cell, how long would a CR2032 last?), but not until I have one or two new ones.
Electronic user manual
You can obtain a copy of the board's user manual in MS Word format from an old mirror of the Gigabyte FTP. Alternatively, I also have a local 7-Zip compressed version of the same file to offer.
BIOS notes and modification
Apparently the GA-686KDX shipped with both 1 MBit and 2 MBit flash chips and
corresponding BIOS versions. The latest version for 1 MBit is
1.43, for 2 MBit it's
1.42.
Dating from mid..late 1997, they are new enough
to support
- ATAPI ZIP and LS120 drives,
- hard drives beyond 8 GiB (up to 32), and
- booting from ATAPI CD-ROMs.
However,
- there is no MPS table entry for the USB part (thus it doesn't work in Win2k/XP with MPS 1.4 mode selected due to "insufficient information to properly configure the device" – it will work with MPS 1.1, but then you'll have to live without them lovely IRQs beyond 15 and put up with interrupt sharing; together with the bugs in the implementation, a separate USB2 card – preferably with NEC chip – seems like the much better bet),
- CPU support is restricted to Klamaths and the included microcode patches do not even cover the C1 stepping (ones for CPUID 6-3-2 and 6-3-3 are included).
- Besides, advanced tweaking options are pretty much absent (as already noticed on the 586DX), you cannot even turn on Delayed Transactions.
Something can, however, be done about some of the limitations with the help
of tools like AwardMod
to unpack/repack and Modbin (e.g. version 4.50.80) to modify the main BIOS part
(original.tmp).
The 1.42 2 MBit BIOS has been modified as follows: The
formerly disabled options for memory tweaking, Delayed Transactions and I/O
recovery time were made visible and arranged properly, and a GA-686LX4 lent the
microcode patches which include the most current versions for all Klamaths
(along with some for newer processors). Later I found out that yet newer
updates exist for the production steppings C0 and C1
(sandpile.org is a goldmine),
and incorporated these into a trimmed-down cpucode.bin (6-3-2, 6-3-3 and 6-3-4
only) which should be plenty small enough to fit the 1 MBit BIOS as well.
The
result has since been flashed with af56.exe and tested
successfully. Future changes might include a newer NCR/Symbios SCSI BIOS and
a patch for IDE drives of more than 32 GiB (provided you don't mind the
performance).
Download the modified 1.42 2 MBit BIOS.
The 1.43 BIOS for 1 MBit was modified in a similar fashion. The trimmed-down
cpucode.bin (6-3-2, 6-3-3 and 6-3-4 only) turned out to fit just fine into the
more confined space inside a 1 MBit ROM. Additionally, a little blunder has
been corrected via Modbin: A chipset register is not set up correctly in the
stock 1.43 BIOS, the data at index 0051
should be
0XXXXXXX
(as in 1.42) instead of 1XXXXXXX
. The bit in
question is bit 15 at offset 50-51h in Intel datasheet nomenclature,
misleadingly named "WSC Protocol Enable" in the 440FX datasheet while in fact
setting the bit disables the WSC protocol (WSC# handshaking is
apparently needed in multiprocessor configurations). The 440LX spec update
correctly calls this bit "WSC# Handshake Disable".
Unfinished untested modified 1.43 1 MBit BIOS – this is only lacking the memory tweaking options, as I was too lazy to rearrange stuff in the Chipset Features setup. It does feature updated microcode (6-3-x only), corrects the WSC issue just mentioned and enables the Delayed Transaction option along with the I/O recovery time setting.
As for changes from 1.42 to 1.43, "CPU Overheat Monitor" is now "CPU FAN failure monitor" (which I guess still does the same), and "PCI Burst Write Combine" is now shown (this is not shown in 1.42, but enabled by default anyway). Additionally, 1.43 enables operation with the Adaptec AAA-13x SCSI RAID host adapters.
What I'm doing with it
System components
My GA-686KDX (rev. 1F, 2 MBit BIOS, S/N 9741019490) is now installed in a system with the following components:
- Case/PSU: Maxdata midtower case OEM'd by Denco, with Seasonic SS-300FS Active PFC (was: Fortron FSP250-60BT(12V) modified with Papst 8412NGML fan)
- Processors: 233 MHz C1 step each, SL2HD (L2 non-ECC) w/ common (Intel?) big heatsink w/ many fingers + SL2HF (L2 ECC) w/ yet bigger extruded heatsink
- Memory: 6x 32 MiB EDO
- Graphics: Matrox Millennium II 4 MiB
- Storage: Cheetah 36ES ST318406LW (vertical, on styrofoam) on Advance 2941U2W (Symbios / LSI 53C895 based)
- Optical: Mitsumi FX4830T CD-ROM on integrated IDE
- Sound: Terratec DMX (PCI), Creative Sound Blaster AWE64 OEM CT4520 (ISA)
- NIC: Intel PRO/100 S Desktop
- Misc: Papst 8412L exhaust fan (main noise source due to plastic fan bracket), 1989 Cherry G80-1000HAD / 17 OEM or 2004 G80-3456LQMDE-0 / 01 (was: my old Packard Bell / BTC 5131C keyboard), somewhat varying due to keyboard mania, cheapo mouse (Genius NetMouse Pro clone)
- OS: Win2k Pro SP4, dual boot with Win98SE's DOS and MS-DOS 6.22
- MIA: floppy (no spare, no space...)
Screenshot of Win2k running on the system
(The pretty nixie clock can be found on Frank Bemelman's pages.)
Air guide construction
The processors are really hot beasts when loaded and took me a while to tame - I ended up with a custom-made air guide made of the, err, high-tech material called "cardboard" through which the exhaust fan draws out air. The air can get quite hot under full load (up to 45..50°C, the 8412L is only rated for ~20 cfm), but since I'm using idle software it's cool when the machine isn't doing much (better for the poor fan, too!). Some pics from air guide construction:
Since air is only drawn in through the open external 3.5" drive bay and the vent holes in front of the internal 3.5" drive bays, the hard drive (spec'd with 10.0 W idle power dissipation) which sits just there does not need any extra cooling - but the case must be kept closed, of course...
Hardware quirks
This board is relatively picky about IDE and floppy cables or rather their
fit - ordinary modern keyed ones frequently won't fit, apparently due to a
slightly different position of the keying "nose" on the connector. You may have
to resort to old unkeyed cables, observing the position of pin 1. Ah, computer
stone age...
While we're at oddities, turning on the main (AC) power frequently results
in spontaneous booting with the Seasonic PSU; this never happened with the
Fortron. A workaround is holding the power button when turning on the power
switch. Apparently the power-on sequencing of the Seasonic PSU and the soft
power circuitry on the board do not get along that well.
Installation and configuration
The Win2k install went slowly, but smoothly – I selected the
MPS Multiprocessor HAL manually, just to be sure. I would not recommend
installing the post-SP4 rollup package on such a system, at least I was greeted
with an Inaccessible Boot Device error (0x7B) upon reboot. *grmbl* After replacing
several files (among them ntfs.sys, win32k.sys, ntoskrnl.exe, ntkrnlpa.exe,
mup.sys) with those from the backup, I got the machine running again and
promptly uninstalled the rollup thingy.
Update: Apparently it
is only ntoskrnl.exe, a.k.a. NTKRNLMP.EXE build 5.0.2195.7045 which is
incompatible with this machine, as are later builds including
5.0.2195.7376 (KB979683). I found like one or two reports of the same issue
involving multiprocessor rigs on the web
(like this one).
The 0x7B error appears when ntoskrnl.exe cannot be loaded, but in this case
it's the file itself that's at fault rather than the typical inaccessible boot
device. The last working build is 5.0.2195.6992 as shipped in update KB885835,
while 5.0.2195.7035 (KB890859) onwards do not work. I'd suggest replacing
both ntkrnlmp.exe in system32\dllcache
and ntoskrnl.exe
in system32
– in this order – by ntkrnlmp.exe version
5.0.2195.6992 (wherever you find it, it's dated October 2004) after all the
updates are installed.
Installing the recovery
console onto disk certainly can't hurt in case anything goes wrong. Future
reminders of patches KB890859, KB908523, KB920958,
KB931784, KB956841, KB971486, KB977165 and KB979683 must be ignored.
Oh, and for some reason the versions of browser.dll
in update
KB885835 and the post-SP4 rollup have the same build number even though the
latter is newer (and bigger). Looks like someone forgot updating the build
number. Make sure you have a browser.dll
dated 2005.
Later, installing a second NIC got me another such BSOD, which disappeared after removing it again. I then replaced the stock Win2k LSI/Symbios 53C8xx driver with the one to be obtained from LSI Logic, hoping for this to improve things. Meanwhile I figured out that the host adapter seems to be rather picky about interrupt sharing, and that the BIOS assigns the last two PCI slots the same IRQ. With the SCSI HA in slot 4, putting the DMX into slot 5 (the same used for the NIC giving me a bluescreen) resulted in Win2k stalling on the boot screen. Then I swapped SCSI and graphics (the default Win2k driver for the Millennium II does not even insist on using an interrupt at all, apparently Matrox' 2D engines rely solely on MMIO throughout), and all worked well from that point on, with little effect of sound playback on graphics performance.
Looking at the interrupts assigned to the cards by the MPS HAL (as per the MPS table), I'd even say that all 5 slots have different physical INT lines – as already on the GA-586DX (I used to own one a few years ago), IRQs start from 32 in steps of 4, and those used are 36 (SCSI, slot 2), 40 (NIC, slot 3) and 48 (sound, slot 5) – slot 1 (with IRQ 32) is unused, and I figure slot 4 would use IRQ 44 if the graphics card claimed one. Given that, why the BIOS assigned IRQs would still be relevant when the HAL is already loaded is beyond me.
Thanks to the DOS dual-boot, I can also play DOS games now, with passable exhaust temps. A config for some more funky stuff like Desqview/X is now available as well.
System performance
So, how fast does the machine feel? Coming from a dual 500 MHz Coppermine
on a P2B-D with a Deskstar T7K250 (on an Ultra100 TX2) and plenty of RAM,
definitely usable. Sure things tend to take longer when its gets CPU/memory
intensive, but the load times for OOo 1.1.4 and Seamonkey 1.0a still are
perfectly acceptable – shows you how important the storage subsystem is.
(This used to reside in my main machine not too long ago, btw.)
Only scrolling
in Seamonkey wasn't as much fun due to subpar BitBLT performance (slideshow
anyone?), something unexpected in a graphics card with the reputation of being
very fast, and sadly there is no 3D acceleration at all. Further investigation
revealed that the BitBLT and bitmap writing performance could be improved by up
to a factor of 3 (!) by using the standard Win2k driver instead of the 5.82
from Matrox. I suspect that the newer drivers do not turn on write combining
correctly, at least the BitBLT scores in Dr. Hardware 2003 coincided
suspiciously with transfer rates measured in DOS with and without write combining
(in 16 bit: 17 MPixel/s with 5.82, 47 MPixel/s with standard; multiply by 2 to
obtain data rates in MB/s). Suffice to say that I was much happier with
graphics performance afterwards, an upgrade can wait now. As a positive side
effect, the previously noticed interference of graphics transfers with
reception on the serial ports is entirely gone. It looks like a card using DMA
transfers instead of MMIO for data intensive tasks would have avoided the whole
issue; maybe trying some PCI Radeon would clear this up.
In DOS, the machine just flies, even without the SCSI BIOS being cacheable. (That only works with ctppro in real mode, and so far I've not found a way to start this app before EMM386/QEMM is loaded.) Can't beat a fast harddrive... To speed up graphics, I'm using Fastvid ver. 1.10 which turns on write combining. This does not go along well with old games using 16 color modes, so I have to disable VGA WC for these. Another problem is that LFB WC does not seem to work once the system is in virtual mode, while VGA WC works just fine.
Sound quality and performance
While I'm able to use hardware accelerated mode with 288 samples per buffer in ASIO4All with the AWE64, the standard ESS Maestro2E driver used by the DMX is only workable in normal mode with 3 kernel buffers; I selected a buffer size of 576 samples (minimum required is about 384). The ASIO output plugin for Winamp (exe version, 0.53) uses 15 buffers. I'm also using a PCI latency of 64 cycles set via Audiotrak's PCI Latency Tool to hopefully kill some remaining crackles. The effort was worth it; at least when using high-impedance (600 ohm) headphones the output quality (with the optional "headphone amp" being off) is very good, rivaling the Aureons in my main machine. Due to the horrible reputation of the card in terms of driver quality and support or rather lack thereof (for example, a number of the card's features, most notably the digital ins and outs, can't be used in Win2k/XP since ESS never delivered a full-blown reference driver for the Canyon3D chip), I could also pick it up cheaply as a welcome bonus. Musical enjoyment is somewhat limited, however, by the racket the rear fan in the plastic fan bracket makes, even after applying some damping mat pieces. Therefore future sound card upgrades appear unlikely.
Fast forward 11 months: I still play with this machine once in a while. Connecting my relatively new Tascam VL-X5 active nearfield monitor speakers, I found that the old DMX isn't a slouch when it comes to the bass department, better than my usual Aureons. However, load during playback turned out to be fairly high even with no DSP plugins, with not mainly Winamp causing a lot of load but in fact the usage of Seamonkey rising dramatically – apparently ASIO4All and this are battling for memory bandwidth. Finding that waveOut playback caused much less load but wasn't crackle proof, I tried the Kernel Streaming plugin written by Steve Monks – and that did the trick. In fact I can still achieve rock-solid playback with a 32K input buffer and a 4x 8K output buffer, and it proved to be nearly impossible to cause stuttering even with two high priority CPUBurn processes running. On top of that, system load is only as high as when using waveOut or rather even lower, which makes sense given that waveOut is wrapped to the WDM interface (i.e. kernel streaming) anyway.
Now there is only one problem left – at 44.1 kHz, things seem to sound a
touch cleaner when using the waveOut plugin with SSRC resampler written by
Peter Pawlowski (now known as author of Foobar2000) in days gone by, but of
course this one is as crackle prone as the regular waveOut plugin and causes
quite some load when resampling. Why resample? This card runs its sound
processor and A/D and D/A converters at 48 kHz, with a resampling IC (nominally
"inexpensive", whatever that means by Burr-Brown standards) being used to
convert other sample rates – either the ESS Canyon3D did not provide enough DSP
power for the quality that was to be achieved, or they wanted to keep its
performance constant whatever the sample rate.
A clean measurement of output quality proved tricky, as recording quality
via the DMX turned out to be very bad in terms of distortion. The input of the
AWE64 Value isn't of exceptionally high quality either (plus resampling is
needed for 48 kHz, which would be carried out by the kernel mixer in this
case), but nonetheless a comparison of the results at 44.1 kHz with those
obtained by first resampling to 48 kHz via the aforementioned waveOut plugin
with SSRC while playing back a prerecorded test file showed obvious
differences. The THD plot of the plain DMX -> AWE64 chain (RMAA rec &
play @ 44.1 kHz) not only showed noticeably stronger odd-order harmonics but
also a number of anharmonics approaching -80 dBFS which are not present in the
setup using Winamp with SSRC (44.1 -> 48) for playback and RMAA (44.1 kHz)
for recording. And while the latter still shows more IMD than I'd like, there
are much less strong and widely distributed anharmonics and general "fuzz" in
the high frequencies. This is why I'd always prefer a sound card with native
support for the sample rates one considers important (and 44.1 kHz certainly
is), at least as long as it can't throw as much computing power at resampling
as an X-Fi.
OpenOffice.org
A while back I also tried various newer OOo versions (2.0.3 and 2.2), where
I found that loading an OpenDocument spreadsheet from the recent documents list
could lead to an infinite loop and freezing, and continued keyboard scrolling
could lead to the system failing to keep up and the whole spreadsheet
flickering as scrolling continued more slowly (annoying!).
The first issue was found to be not present in a 2.3 dev build, with the
previously slower loading times having been accelerated to the point of being
about equal to those of the same document in OOo 1.x format, but while loading
times have remained fast in 2.4.1, the infinite loop problem is present again.
Maybe it's some kind of compiler optimization that does not play well with the
antiquated Klamaths.
The scrolling issue has been resolved at the cost of slight display
artifacts, although 1.1.x still is faster in this regard.
In the end I just got OOo 1.1.5, which runs perfectly fine and opens OpenDocument files at that – looks like 2.x still needs some tweaks here and there to be usable on such relatively dated machines. (I've had no such issues on other, more modern ones.)
Web browsers
Round one – July 2008
The following modern-day web browsers were tried on this machine:
Safari did not get along too well with its operating environment. During installation already, component registration failed for a DLL, and while displaying my own home page worked fine, eBay or the preferences dialog caused a crash of the application. Perhaps some DLL requires SSE or something. Due to the sluggish scrolling (font smoothing is apparently done internally and cannot be disabled), it wouldn't have been first choice anyway.
The other candidates install and run just fine.
Comparing Opera and Firefox, the latter obviously is more user-friendly to
set up. Install, slap on
All-In-One Gestures,
Adblock Plus and
Link Widgets,
create a new toolbar to take the latter extension's buttons – there you
are, a very usable modern web browser. It's just a pity that the choices for
opening external links have been limited and "open in same tab" is no longer
available in the UI (changing the respective settings via
about:config is required).
Opera, being the geek browser that it is, offers a very freely configurable
UI. The new 9.5 default theme isn't an ergonomic masterpiece though (there's
plenty of choice among pretty skins, and a native skin that is much better
already, but Firefox comes set up for a very usable native skin by default),
and ad blocking requires manually selecting items to be blocked or fussing with
urlfilter.ini
like in the olden days. (Guess I'm spoiled by
subscriptions to filter set files as offered by Adblock Plus.) Not too advanced
for the browser that once brought us mouse gestures, a minimum font size and
made tabbed browsing popular (three things I would not want to be without today).
When it comes to speed, things look different again. Opera, once touted "the
fastest browser on earth", has very response scrolling (I would disable smooth
scrolling though) and prev/next jumping. Firefox can't keep up with that,
though page load times aren't too different among the two. Opera also seems to
make better use of memory and obviously adapts its memory usage to how much it
can get (so it takes up a little less than FF after a while). Firefox in turn
seems to handle interactive things quite speedily, like :hover
.
If you look at this page's footer with Opera 9.5 or 9.51, you'll see that it
lacks the left and right borders. Seems to be a new bug for 9.5 which I hope
they'll get fixed soon.
There is another system-specific issue in 9.51 – the automatic
scrolling activated by a middle click does not update the screen contents
correctly, repeating a few lines over and over instead.
[Screenshot] This does not happen in 8.54 or 9.27.
On another system with newer components (processors, graphics card and OS),
9.51 behaves correctly. Looks like an interoperability issue with the
Millennium II driver. Since 9.5x in general appears to have a number of smaller
bugs and quirks, I'd recommend staying with 9.27 for now.
Comparing Firefox (Gecko 1.9 with new toolkit) and Seamonkey (Gecko 1.8 with
old XPFE), the former has much quicker :hover
handling, which
makes for a much better feel when scrolling through a content link list like I
have at the top of this page. Startup time for Firefox also is remarkably low
(but a comparison is not really fair, since Firefox is a browser only while
Seamonkey is an application suite that has to load a good bit more XUL on
startup). In return, page-wise scrolling (PgUp/PgDn) is somewhat
less quick (about 2/3 speed), and sometimes the browser seems to pause in order
to "think" for a while, carrying out the user input afterwards. Seamonkey also
appears surprisingly modest in memory consumption, though this might even out
with some use.
Seamonkey is in a difficult position these days, since version 2.0 which would catch up with Firefox internally won't come any time soon, which is related to a large number of changes under the hood (toolkit, code version tracking system) to be tackled with rather limited manpower. Meanwhile, the 1.1 line without as much public appeal (still a capable browser on the level of FF2, but with a seriously antiquated extension management and an interface basically unchanged since the days of the Mozilla Application Suite) continues. It takes Adblock Plus just the same, and when installing SessionSaver, Mouse Gestures 1.5.2 (the last pre-rewrite version) and possibly Mnenhy (primarily targeted at Mailnews but also ships with a chrome manager that allows removing extensions) and Preferences Toolbar, it's perfectly workable. I would also recommend getting another skin (like Orbit 3+1 with "small icons" subskin). As a camera geek, you might also like FxIF (originally written for Firefox, but works in Seamonkey as well).
Whatever the browser, I would strongly recommend not to install a Flash plugin on a system like this. It's well-suited for slowing down the system and increasing browser memory usage considerably. Sure that means no Youtube videos... but those would be a slideshow anyway. I've been surfing without Flash support in my main browser for years, and there have been very few occasions that would have required pulling out a secondary browser with it installed.
Round two – January 2009
For round two, the list of browsers is:
- Seamonkey 1.1.14 – old faithful
- Firefox 3.1b2 (// 3.0.5)
- Opera 10 alpha // 9.63 (// 9.27, 8.54)
- Google Chrome 1.0.154
The last one actually was a non-starter, as it requires XP2 or higher and the installer will therefore complain unter Win2k. (Safari based on the same Webkit engine showed why this makes sense in round one.) When it does work, it's just a slow scroller as Safari though, so wouldn't be much fun anyway.
Seamonkey is doing no worse than in the last test but is slowly starting to
show its age. Gecko 1.8 does not support CSS3 media queries yet which I recently
put to (hopefully good) use, so real-life page scaling will be a little worse
than for browsers that do. Reloading my "Superhets for
Dummies" page takes pretty much exactly 5 seconds (with Adblock Plus
disabled for the sake of fairness, which seemed to have only a small effect in
this case though), and the quick links popup menu (entirely HTML+CSS, btw)
reacts quite speedily. Auto scrolling is a little sluggish downwards but fluid
in the other direction. (This equally appears when scrolling with the cursor
keys ↓, ↑. Apparently this is due to the quick
links element which has position: fixed
. The page you're reading
does not have it yet and scrolls fluidly in every browser. Based on my main
machine which is about twice as fast but still hardly a speed demon by today's
standards, I assumed this to have no performance penalty, but apparently there
is one.) Complete keyboard based scrolling of "Superhets for Dummies" (via
PgDn ↓) takes 18.5 seconds, the same back up is equally fast.
(Taking out the quick navigation, this becomes 18.0 seconds.)
Firefox 3.1b2, based on a beta version of the latest Gecko 1.9.1 engine, does
support CSS3 media queries. Reloading my "Superhets for
Dummies" page takes about 6 seconds (5.6 to be precise), a little less if
not scrolled all the way to the bottom. The quick navigation reacts a little
more slowly than in
Gecko 1.8-powered Seamonkey. Auto scrolling was automatically disabled upon
first startup, and reenabling it showed why: It's a little sluggish in both
directions, so probably some work is required to get it back up to speed. (A
page without position: fixed
elements scrolls smoothly though.)
Complete keyboard based scrolling of "Superhets for Dummies" takes 24.8
seconds, thus deviating noticeably from the generally similar values obtained by
the other browsers. (Without the quick navigation, the time drops to 20.9
seconds, still above average.)
Opera 9.63 turns out to be very fast at page loading: A bare 3 seconds for a
"Superhets for Dummies" reload – 9.27 still
was pretty much in line with Seamonkey at about 5 seconds. (CSS3 media queries
have been supported for ages anyway, they pretty much were invented by Opera
folks.) The quick navigation feels somewhat more laggy than in Seamonkey,
similar to Firefox. (In the old 9.27, the menu extends over the whole available
width, and hover handling is very sluggish.) Complete keyboard based scrolling
of "Superhets for Dummies" takes 17.3/17.7 seconds down and 16.9 seconds back
up (16.2 seconds down for 9.27).
The auto scrolling problems encountered in 9.51 are still present in 9.63.
Opera 10 alpha fixes this, it seems to have the somewhat jumpy (at least when
position: fixed
elements are present) pre-9.5
autoscroll again. One oddity: When you've scrolled to the top of the page, it
shows a strange black bar maybe 1em high for a few seconds which then
disappears. (Judging by a cross-check on my main comp, this ought to be
semi-transparent but comes out pitch black in this case.) I guess they'll get
that sorted out until the final comes out.
Complete keyboard based scrolling of "Superhets for Dummies" takes
15.2/15.7 seconds, back up you even need only 14.6 seconds. (Scrolling down
without quick navigation: 13.8 seconds.)
Gecko-based browsers still allow for some speed tweaking. For example, the time after which the page is first displayed is fixed, but obviously a slower machine will have parsed and rendered less, thus potentially having to reflow more frequently later. Prefs making are noticeable difference are "content.notify.interval" and "content.interrupt.parsing", for example. Here's a little list of what's been used to tweak Seamonkey and later Firefox:
Pref | Type | Val |
---|---|---|
content.interrupt.parsing | bool | false |
content.notify.interval | int | 1000000 |
content.switch.threshold | int | 1000000 |
content.max.tokenizing.time | int | 3000000 |
content.maxtextrun | int | 4095 |
In a real-life "go to eBay and search for a specific product" test, this noticeably helped the previously stock Firefox in closing the gap to Seamonkey. The latter with an apparently well-tuned Gecko 1.8 still felt a little more speedy though. (Note that none of my tests can claim to be particularly Javascript-heavy.)
Warning: Setting "content.interrupt.parsing" to "false" may break extension installation from the web in Seamonkey 1.1, causing it to stall during download. Things still work for local XPI files. That one took me a while to find!
Winner? If I had to use this machine for web browsing regularly, I'd probably
settle for Opera – 9.6x for now and 10.0 when it comes out – and
look out for a decent pre-compiled urlfilter.ini
. (Besides, a geek
browser like Opera is no bad match for this equally unconventional system.)
However, a tweaked Gecko (1.8 in particular) is no slouch either.
It be noted that on this system I've had zero luck with the FxIF extension in Seamonkey 1.1.x, while it works fine in FF 3.x and also cooperates with Seamonkey on other machines.
Some benchmark data
These are with tweaked settings and all. DOS benchmarks taken without any memory managers, but with write combining turned on and SCSI BIOS cacheable (via ctppro) if applicable. FSB is usually 66.86 MHz, for a CPU clock of 233.99 MHz - or so WCPUID says.
Cachemem
Cache size/Memory speed info tool 2.65MMX - (c) 1999-2001, LRMS - DJGPP compiled CPUID support detected... 'GenuineIntel' with FPU TSC MMX Family=6 Model=3 Step=4 Type=0 Chipset (Vendor/Device ID(Rev)): Intel/1237(02) CPU clock: 234.0 MHz Using 32MB physical memory block (alignment = 32) Bandwidth - MMX linear access test... Read/Write/Copy (MB/s) Block of 1KB: 1543.0 / 1165.2 / 2020.5 Block of 2KB: 1643.2 / 1202.1 / 2107.1 Block of 4KB: 1682.6 / 1221.4 / 2167.1 Block of 8KB: 1709.3 / 1231.4 / 2133.9 Block of 16KB: 1685.0 / 1236.2 / 336.8 Block of 32KB: 781.8 / 210.0 / 338.4 Block of 64KB: 783.0 / 210.0 / 324.6 Block of 128KB: 783.7 / 209.9 / 317.5 Block of 256KB: 783.9 / 210.0 / 286.8 Block of 512KB: 779.2 / 209.9 / 126.9 Block of 1024KB: 248.8 / 96.6 / 106.5 Block of 2048KB: 248.8 / 79.4 / 100.4 Block of 4096KB: 248.8 / 77.4 / 98.9 Block of 8192KB: 248.8 / 77.1 / 98.2 Block of 16384KB: 248.8 / 76.9 / 97.9 Block of 32768KB: 248.8 / 76.8 Latency - Memory walk tests... ("pointer chasing") Null size: 3 cycles 1 cycles (overhead 98 cycles) steps: 4 8 16 32 64 128 256 512 1k 2k 4k (bytes) Block of 1KB: 3 3 3 3 3 3 3 3 - - - cycles Block of 2KB: 3 3 3 3 3 3 3 3 3 - - cycles Block of 4KB: 3 3 3 3 3 3 3 3 3 3 - cycles Block of 8KB: 3 3 3 3 3 3 3 3 3 3 3 cycles Block of 16KB: 3 3 3 4 3 3 3 3 3 3 3 cycles Block of 32KB: 5 8 13 24 24 24 24 24 24 24 24 cycles Block of 64KB: 5 8 13 24 24 24 24 24 24 24 24 cycles Block of 128KB: 5 8 13 24 24 24 24 24 24 24 24 cycles Block of 256KB: 5 8 13 24 24 24 24 24 24 24 24 cycles Block of 512KB: 5 8 13 24 24 24 24 24 24 25 26 cycles Block of 1024KB: 10 20 35 56 56 56 56 57 57 58 60 cycles Block of 2048KB: 10 20 35 56 56 56 56 57 57 58 60 cycles Block of 4096KB: 10 20 35 56 56 56 56 57 57 58 60 cycles Block of 8192KB: 10 20 35 56 56 56 56 57 58 58 60 cycles Block of 16384KB: 10 20 35 56 56 56 56 57 57 58 60 cycles Block of 32768KB: 10 20 35 56 56 56 56 57 57 58 60 cycles This system appears to have 2 cache levels (enabled). L1 cache (16KB) speed (MB/s): Read=1709.3, Write=1231.4 L2 cache (512KB) speed (MB/s): Read=783.9, Write=210.0 Main memory speed (MB/s): Read=248.8, Write=76.9
STREAM for DOS v2
(a) with only 3 rows populated, 999 passes (old)
STREAM for DOS v2 by Dennis Lee =============================== 1 MB = 1000000 Bytes in the following measurements. For accurate results, this benchmark should be executed in a true DOS session, and not a DOS shell under another OS. Time Operation Mem Speed Error ---- --------- --------- ----- 49.66 sec COPY32 128.75 MB/s 0.1% 58.88 sec COPY64 108.59 MB/s 0.1% 63.05 sec SCALE 101.41 MB/s 0.1% 80.85 sec ADD 118.62 MB/s 0.1% 76.90 sec TRIAD 124.71 MB/s 0.1% These results are comparable with those on the STREAM website. See <http://www.cs.virginia.edu/stream> for info on STREAM. Type 'streamd ?' for help
(b) with 6 rows populated (now)
Time Operation Mem Speed Error ---- --------- --------- ----- 54.48 sec COPY32 117.36 MB/s 0.1% 64.76 sec COPY64 98.73 MB/s 0.1% 64.32 sec SCALE 99.40 MB/s 0.1% 87.71 sec ADD 109.34 MB/s 0.1% 85.69 sec TRIAD 111.92 MB/s 0.1%
Probably the chipset slowed down the timing to accomodate the higher module count. Still, not too shabby; this seems about 10% faster than on an untweaked system with a similar memory config.
System Speed Test v4.78
--------------------------------------------------------------------------- System Speed Test Ver 4.78 Report file - created on 03-10-2005 04:57:45 --------------------------------------------------------------------------- Comments to report: ST318406LW/2941U2W, ctppro etc. CPU is in V86 mode: No Processor : Intel Pentium(r) II 233 MHz Original CPU Clock: 233 MHz (66 MHz x 3.5) Frequency via TSC : 233.86 MHz External clock : 66.82 MHz x 3.5 CPUID (TFMS) : 0634 Codename: Klamath (0.35um) Microcode Revision: 35 Feature : 0080FBFFh MMX(tm):Yes, IA SSE:No, IA SSE2:No L1 Cache size : 32 KB L2 Cache size : 512 KB CPU speed index : 267.99 Total memory size : 192 MB Memory Bandwidth : 250.22 MB/s PCI Video : Matrox MGA-2164W Millennium II GUI+3D Accelerator VESA OEM String : Matrox Graphics Inc. VESA video memory : 4096 KB (64758 KB/s) Hard drive 0 : 2231C 255H 63S 17.09 GB Tested in FULL mode Random access time : 8.87 ms Linear read speed : 48777 KB/s Min/Max read speed : 39006 KB/s / 52646 KB/s Buffered read speed : 64807 KB/s Hard Drive speed index : 1906.53 Mainboard chipset : Intel 82440FX (Natoma) BIOS vendor : Award Modular BIOS v4.51PG (06/27/97) OS version : MS-DOS 7.10 --------------------------------------------------------------------------- ATA/ATAPI Device Information IDE0---Master-<Empty> ¦ +-Slave--<Empty> IDE1---Master-<ATAPI>- FX4830T ¦ Firmware Revision : R02E ¦ Maximum Transfer Mode : PIO 4, DMA 2, UDMA 2 (UltraDMA/33) ¦ Selected DMA Transfer Mode : DMA 2 ¦ Maximum Transfer Speed : 8467 KB/s (48X) ¦ Selected Transfer Speed : 8467 KB/s (48X) ¦ Cache Buffer Size : 128 KB ¦ +-Slave--<Empty> IDE2---Master-<Empty> ¦ +-Slave--<Empty> IDE3---Master-<Empty> ¦ +-Slave--<Empty> --------------------------------------------------------------------------- Cache/Memory Benchmark +-----------------------------------------------------------+ ¦ Read ¦ Write ¦ Move ¦ Average ¦ +---------------+--------------+--------------+--------------+--------------¦ ¦ Cache Level 1 ¦ 224.41 MB/s¦ 1276.06 MB/s¦ 1137.03 MB/s¦ 879.17 MB/s¦ ¦ Cache Level 2 ¦ 223.79 MB/s¦ 211.08 MB/s¦ 195.63 MB/s¦ 210.17 MB/s¦ ¦ Memory ¦ 101.36 MB/s¦ 84.55 MB/s¦ 77.56 MB/s¦ 87.82 MB/s¦ +---------------------------------------------------------------------------+ MMX(tm) Cache/Memory Benchmark +-----------------------------------------------------------+ ¦ MMX Read ¦ MMX Write ¦ MMX Move ¦ Average ¦ +---------------+--------------+--------------+--------------+--------------¦ ¦ Cache Level 1 ¦ 668.69 MB/s¦ 668.69 MB/s¦ 359.88 MB/s¦ 565.75 MB/s¦ ¦ Cache Level 2 ¦ 527.06 MB/s¦ 211.12 MB/s¦ 206.47 MB/s¦ 314.88 MB/s¦ ¦ Memory ¦ 250.19 MB/s¦ 77.10 MB/s¦ 76.72 MB/s¦ 134.67 MB/s¦ +---------------------------------------------------------------------------+ --------------------------------------------------------------------------- Memory Modules Information SMBus/i2c Host Controller : Not Present --------------------------------------------------------------------------- PCI/AGP Device Information [PCI 2.10] [00-00-0] +----- VEN_8086, DEV_1237, REV_02, SUBSYS_00000000 Intel 82441FX 440FX (Natoma) System Controller (SU053) Class Code : 060000 - PCI to Host Bridge [00-07-0] +----- VEN_8086, DEV_7000, REV_01, SUBSYS_00000000 Intel 82371SB PIIX3 PCI to ISA Bridge Class Code : 060100 - PCI to ISA Bridge [00-07-1] +----- VEN_8086, DEV_7010, REV_00, SUBSYS_00000000 Intel 82371SB PIIX3 Dual EIDE Controller Class Code : 010180 - IDE Controller I/O Base Range 4 : F000 - F00F (16) [00-09-0] +----- VEN_102B, DEV_051B, REV_00, SUBSYS_1100102B Matrox MGA-2164W Millennium II GUI+3D Accelerator Class Code : 030000 - VGA Compatible Adapter Memory Base Range 0 : E0000000 - E0FFFFFF (16MB) Memory Base Range 1 : E1800000 - E1803FFF (16KB) Memory Base Range 2 : E1000000 - E17FFFFF (8MB) [00-11-0] +----- VEN_1000, DEV_000C, REV_01, SUBSYS_00000000 LSI Logic LSI53C895 PCI to Ultra2 SCSI I/O Processor with LVD Link Class Code : 010000 - SCSI Controller I/O Base Range 0 : 9100 - 91FF (256) Memory Base Range 1 : E1804000 - E18040FF (256) Memory Base Range 2 : E1805000 - E1805FFF (4KB) --------------------------------------------------------------------------- ISA PnP Device Information Card Vendor ID Serial No ANSI ID String 1 CTL00E4 15C12AE4 Creative SB AWE64 PnP --------------------------------------------------------------------------- End of report.
The memory bandwidth seems to indicate a 3-2-2-2-2-2-2-2 burst, not too shabby for ye olde EDO DRAM. If Fast Leadoff is disabled and the MA Wait State is enabled (you normally cannot access these settings in an untweaked BIOS), you get ~222 MB/s, probably corresponding to a 5-2-2-2-2-2-2-2 read burst.
SiSoft Sandra MAX3! Standard
Memory bandwidth: 112 MB/s ALU, 113 MB/s FPU. (For reference: Fully tweaked Asus P2B-D at 100.28 MHz with 1 GiB in PC133 modules, 2-2-2 memory timing and an "MA Wait State" setting of "Fast": 385 MB/s ALU, 401 MB/s FPU.)
Lavalys Everest 2.20.405 Home Edition
Read throughput: 255 MB/s, write throughput: 84 MB/s, memory latency: 253.5 ns. (For reference, a PIII-800EB equipped P3B-F at 132.99 MHz FSB running PC133 memory with 2-2-2 timing and a "MA Wait State" setting of "Normal" reaches 670 MB/s, 230 MB/s and 99.1 ns, respectively. A P2B-D with PIII-500Es at 100.28 MHz shows 507 MB/s, 172 MB/s and 124.4 ns. Do note that Asus BX boards seem to be capped in terms of buffered read bandwidth – that does not reflect in real-world performance but the scores of 980 MB/s for an i815E board at 133 MHz and 710 MB/s for an i815EP board at 100 MHz seem more realistic if you intend to compare things.)