DOS Days

Reviving a Chips & Technologies 386 Motherboard - Part 3

In parts 1 and 2 we familiarised ourselves with this 80386 motherboard, and got it to boot to a C: prompt. In part 3, I'll run some benchmark tests...

 

Benchmarking

Having got this 386 up and running makes me want to use it as a testbed for a bunch of ISA cards I've got. The 386 is a great platform for this, as it still manages to bridge the gap between the dawn of PC gaming on the IBM PC and XT, and the 486 era when games really started to get serious on the PC platform.

I've been a follower of Phil's Computer Lab for some time, and I respect his technical knowledge of vintage PCs. On his website, he offers a '386 benchmark pack' which comprises a set of utilities that exercise 80386-based systems. I will be using Phil's 386 benchmark pack on this PC, running each test against a bunch of my ISA cards and cataloguing the findings here.

The benchmarking utils consist of:

  • 3D Bench v1.0
  • PCP Bench
  • Landmark Speed Test 6.00
  • Topbench
  • Norton SI (SysInfo)

On Phil's website, he adds up the results of the above tests to represent a total. I like this as it provides us with an aggregate across multiple tests.

Let's remind ourselves of this computer's specs that are undergoing testing:-

Motherboard: Chips & Technologies 80386 (default settings - BIOS and video shadow disabled)
CPU: Intel 80386 @ 20 MHz (CPU=PROC CLK, Bus clock=PROC CLK/3, DMA clock=SCLK/2)
FPU: IIT 3C87-25
Memory: 4 MB (4 x 1 MB SIMMs @ 70ns) - 1 wait state set in BIOS by default
I/O Controller: Goldstar Prime 2
Hard Disk: SanDisk 128 MB Compact Flash

The focus of my testing is on different VGA cards, but also tweaking the motherboard's BIOS to see what improvements we can make. In all tests, the above specs remain in place.

Here's the list of graphics cards to be tested:

  • Cirrus Logic 256 KB CL-GD510/520 "long" (8-bit, 256 KB 120ns video RAM)
  • Cirrus Logic 256 KB CL-GD 510/520 "short" (8-bit, 256 KB 120ns video RAM)
  • Western Digital 90C30-LR Paradise PVGA1A (16-bit, 256 KB 70ns video RAM)
  • Tseng Labs ET4000 with HiColor RAMDAC (16-bit, 1 MB 80ns video RAM)
  • Trident TVGA8900C (16-bit, 1 MB 80ns video RAM)
  • Trident TVGA8900CL-B (16-bit, 1 MB 70ns video RAM)
  • STB Powergraph 2.0 with ET4000 (16-bit, 512 KB video RAM, 80-100ns video RAM)


BASE PERFORMANCE

Unfortunately PCPBench failed to run in all tests with an invalid opcode error from DOS4/GW, and Landmark Speed Test 6.00 would hang the system in about 80% of runs, so I've had to omit the results from the few that did succeed. Here are the results:

Graphics Card 3D Bench Topbench Norton SI TOTAL SCORE
CL CL-GD510/520 "long" 4.2 25 9.5 38.7
CL CL-GD510/520 "short" 4.1 24 9.7 37.8
WD 90C30-LR Paradise PVGA1A 5.4 36 9.7 51.1
Tseng Labs ET4000 TC6100AF 5.1 34 9.7 48.8
Trident TVGA8900C 5.0 33 9.7 47.7
Trident TVGA8900CL-B 5.4 37 9.7 52.1
STB Powergraph ET4000 TC6058AF 5.1 33 9.7 47.8

The large difference in Topbench's results was almost entirely down to the video memory test, where the Cirrus Logic cards took around 1100 microseconds, the Trident took 460, STB took 440, Tseng Labs card took 428, the Paradise card took 361 and the Trident with the CL-B chipset took 325 microseconds. Quite a surprise that the Trident came out on top - these cards are usually considered a very poor retro gaming choice when you have other options.

It looks like the main cause of the Cirrus Logic cards being 33% slower than the fastest is down to their slower video DRAMs - they are fitted with 120ns DRAM chips instead of the 70 or 80ns fitted to the better-performing cards. So the fact they're 8-bit cards which would theoretically provide half the throughput is not the bottleneck with these tests. Perhaps in actual gaming it would show up as a further bottleneck.

Step 1) Enable BIOS and Video Shadow RAM

I then enabled the BIOS shadow RAM option as well as the video memory shadow RAM option which should show some improvement in tools and games that make BIOS calls to talk to the hardware for compatibility reasons, rather than direct. Here are the results:-

Graphics Card 3D Bench Topbench Norton SI TOTAL SCORE
CL CL-GD510/520 "long" 4.2 24 9.7 37.9
CL CL-GD510/520 "short" 4.1 24 9.7 37.8
WD 90C30-LR Paradise PVGA1A 5.4 36 9.7 51.1
Tseng Labs ET4000 TC6100AF 5.1 35 9.7 49.8
Trident TVGA8900C 5.0 33 9.7 47.7
Trident TVGA8900CL-B 5.4 36 9.7 51.1
STB Powergraph ET4000 TC6058AF 5.1 33 9.7 47.8

In Topbench, the video memory tests were: Tseng Labs took 405, Paradise was 347, CL long card was 1097. So aside from a few that got slightly worse performance, having the BIOS and video shadow RAM enabled produced an overall performance improvement of 4% and 5.6% - pretty awful, but then I assume most of these benchmark tests are going direct to the hardware.

Step 2) Change memory from 1WS to 0WS

I then changed the BIOS memory settings from 1 wait state to zero wait states, and retested still with shadow RAM options enabled for both BIOS and video BIOS.

Graphics Card 3D Bench Topbench Norton SI TOTAL SCORE
CL CL-GD510/520 "long" 4.9 27 12.3 44.2
CL CL-GD510/520 "short" 4.9 27 12.3 44.2
WD 90C30-LR Paradise PVGA1A 6.4 42 12.3 60.7
Tseng Labs ET4000 TC6100AF 5.1 40 12.3 58.4
Trident TVGA8900C 5.9 39 12.3 57.2
Trident TVGA8900CL-B 6.4 42 12.3 60.7
STB Powergraph ET4000 TC6058AF 6.1 39 12.3 57.4

So eliminating wait states from your memory makes a big difference (15 - 20 %) to base performance. This is most likely because there's a lot of transfers taking place between the motherboard memory and onboard VGA card's memory.

Step 3) Change bus speed from PCLK/3 to PCLK/2

I then changed the bus speed from Processor Clock divided by 3 (6.66 MHz) to Processor Clock divided by 2 (which is our case is 10 MHz).

Landmark Speed Test v0.99 is now reporting the computer is running at 22.6 MHz.
The Dhrystone test reports 4545 dhrystones per second.
Norton SI is reporting a performance figure of 12.5.

Graphics Card 3D Bench Topbench Norton SI TOTAL SCORE
CL CL-GD510/520 "long" 5.0 29 12.5 46.5
CL CL-GD510/520 "short" 5.0 29 12.5 46.5
WD 90C30-LR Paradise PVGA1A 6.8 47 12.5 66.3
Tseng Labs ET4000 TC6100AF 6.6 43 12.5 62.1
Trident TVGA8900C 6.7 46 12.5 65.2
Trident TVGA8900CL-B 6.7 45 12.5 64.2
STB Powergraph ET4000 TC6058AF 6.6 43 12.5 62.1

Making this change appears to improve performance by as much as 30% from base.

Step 4) Change I/O WAIT STATES

Going into the Advanced BIOS Setup, I changed the 82C206 chip's setting in bits 7 and 6 from 11 (meaning 4 I/O wait states to 00 meaning 1 I/O wait state). This had no material difference to the synthetic benchmarks I've been running here.

Ways to Get the Best Performance out of this Motherboard

1) Memory page interleaving - the C&T chipset supports memory page interleaving (a method of being able to access memory in parallel, thus potentially doubling throughput), so if I fill Bank 0 and Bank 1 there is the option of faster memory throughput if I enable this feature in the BIOS. To operate in page interleave mode with near-zero wait states, I need to use SIMMs with at least 100ns (or smaller) memory chips. Anything slower, and I'll need to run the board with at least one wait state.

Interestingly, I thought that since banks 0 and 1 were occupied, and banks 2 and 3 were not, that I would be unable to get any benefit from interleaving (thinking that bank 0 would work in parallel with bank2, and bank 1 with bank 3), but I disabled memory interleaving in the BIOS and overall performance dipped slightly, so even with just banks 0 and 1 memory page interleaving appears to be in operation! Digging deeper I found in the Advanced BIOS settings a bit on the 82C302 chip which enables or disables Single Bank Interleave (where I presume 'single bank' actually means the combined banks of 0 and 1 (or 2 and 3). This was set to 1 for enabled.

2) BIOS Shadow RAM - the BIOS also supports the shadow RAM feature, which relocates the ROM BIOS code into the area of memory above 640 KB. It speeds up the system because a lot of code uses what are called BIOS calls, which were invented to help standardize the way in which software communicates with hardware - the software calls a BIOS routine and the BIOS then talks to the hardware, be it memory, hard disk, expansion card, etc. The BIOS in ROM is slow, so copying the BIOS code into faster RAM means BIOS calls now get sent to an area of RAM rather than ROM.

3) Video BIOS Shadow RAM - just as with the main BIOS shadow RAM option, this BIOS supports the relocation (copying, actually) of the video BIOS into an area of RAM to speed up BIOS video calls. This setting is only affected if you have an ISA video card (AGP and PCI cards will always copy their BIOS into shadow RAM regardless of this setting). On a PC running DOS, most software [including games] talks to your graphics card via video BIOS calls - this ensures full compatibility but is slower than if software could talk directly with the video card. If using Windows, you may consider disabling this feature as it provides no benefit (because Windows graphics drivers bypass the BIOS calls and talk directly with the hardware), but in DOS, keep it enabled.

4) Processor Clock and Bus Clock - by default the board has the processor running off its own clock. The other option is SCLK/2 which is slower (on this board Norton SI reported 12.5 when set to PCLK, and 12.4 when set to SCLK/2 - LSpeed and the Dhrystone test came back identical).

As for the [ISA] bus clock, this defaults to Processor Clk / 3. Other options are Processor Clk / 2 and ATCLK. Norton SI reports 9.7 when set to PCLK/3, 12.5 when set to PCLK/2 and 12.3 when set to ATCLK.

The DMA clock can also be set to either SCLK/2 or SCLK. All of the above tests were run with this set to SCLK/2. This doesn't have any tangible effect on performance.

Part 4