In this article I upgraded my ECS Si5PI motherboard to whooping 2MB of L2 cache. I was interested to see how much improvement the extra cache brings. I remember reading advice in old Pentium era magazines that further cache upgrades beyond 256kB give only small returns. So let’s find out.
The testbed is as follows:
ECS Si5PI Socket 4 motherboard. PODP5V133 Pentium Overdrive CPU at 133 MHz. Diamond Stealth 64 DRAM VGA, 16 MB RAM. The system used SD-backed SCSI storage on Adaptec AHA-2940U SCSI controller. The OS was MS-DOS 6.0 + Windows 3.11.
The task actually proved to be quite problematic. I found it difficult to maintain the same cache timing in all configurations. This is due to the fact that the L2 on this board can be configured as either single (non-interleaved) or dual-bank (interleaved) configuration. Apart from higher capacity, the benefit of the latter option is that it is possible to use slower ranked chips to maintain the same access timings or to using faster timings. In the end, I used less aggressive timing (4-2-2-2 and 4-3-3-3) that allowed me to capture consistent results in all cache configurations.
Results
Doom
No surprise here. Doom engine is no task for the CPU and most cycles are wasted on VGA transfers. The test shows the typical “hockey stick” where the most benefit is realised to have any size of the cache and the improvement is negligible once you are past 1024k. In fact, even the difference between 512k vs 1024k is tiny in absolute numbers and we are talking only about a few real ticks less.
Winstone 95
Here you can see a similar story. Perhaps a bit more pronounced than in DOOM. Relatively slow gains past 256kB, but the performance still improves nevertheless. The cache timing is still way more important for the overall performance that the cache size.
Quake 1.06
This might come as a surprise. But whatever the Quake is doing with memory seems to be improving nicely with L2 cache size increase. Even the step from 1024k to 2048k sees healthy improvement. Cache timing is still important but so is the size.
Interesting to see that Quake is the only one that was able to take advantage of the a larger cache. I think one of the reasons everyone stuck to 256k was because that was the biggest bang for the buck. And consequently, I think developers just didn’t try to improve the code to work with anything beyond 256k. Chicken and egg as its best.