Pentium II 233 - slower then Pentium 133
 

'this is crazy!' - Mike Kendrigan
'Shit how this can happen?'  - Vito Pacnik
'Not sure if this is a fruitful line of enquiry, but heck, it keeps Intel on their toes.' -  Jon Redgrave
'This really sucks!' - Jeff Wright

At the beginning of January '98 I bought a Pentium II 233 MHz and a new motherboard. As you may expect first thing I did when system booted was benchmarking. As first start take place under DOS first benchmark was also DOS based. It was old SysInfo from Norton Utilities. It showed 584, which was faster then my previous processor (Pentium 133) but not fast enough. P133 scored  in the same test about 420. Simple proportion showes, that under DOS Pentium II performes like Pentium clocked with 185 MHz. At first I thought about defective cache, but service people checked my processor, compared it with other and everything was OK. I checked by myself, that my Pentium II scores nice 113 in SysInfo being part of Norton Utilities 3.0 for Windows 95.

However, it was still slow under DOS. Then I decided to check the speed by myself, using Fibonacci numbers. They can be evaluated recursively, which is very easy to implement, but requires a lot of horse power to run. Program was ready in less then a minute, then I spent about an hour looking for the best compiler options to make the program as fast as it was possible. If you want, you may take a look at source. Then I run this program on both Pentium II 233 MHz and Pentium 133 MHz. Results were hard to believe.

On my Pentium II 233 MHz (mainboard Soyo 6KB, 32 MB SDRAM 10ns) this program needs about 1593 (+/- 1) clock ticks to end. It is about 90 seconds.

On my Pentium 133 MHz (ASUS P/I-P55SP4 mainboard, 32 MB EDO and 16 MB DRAM) it takes 1300 ticks to finish.

Pentium II needs 22.5% more time for this specific task, regardless almost two times faster clock.

I know it is hard  to be at the same time beautiful, rich, young and healthy, Pentium being no exception to this rule. However, when I spend several hundred bucks on a new processor I expect it to be faster then my previous one in every circumstances. This is not the case and I can't say I like it. I want one thing to be clear: this program was not written for a purpose of showing how good or how bad processor is. Program was written to check how fast it'll be executed. Compiler and the task were choosen almost randomly, on the basis of first idea and first tool available at hand. I know things can be speed up by using proper compiler and proper optimization techniques. But I still don't like it.

Two weeks later: after some reading on code optimalization for Pentium Pro and Pentium II I recompiled program using small memory model. Main procedure was 13 bytes shorter. Whole program was 23% faster on Pentium 133 (999 ticks) and 64% faster on Pentium II 233 (569 ticks). But still Pentium was faster.

If anyone want to comment on my PII (why is it 233 MHz only) please don't! I can't overclock it :((((

If you want to check by yourself what is speed of your processor in this particular task, download small exe file (8 KB) and run it on your computer, preferably booted in DOS, then compare it with results from list. Smaller numbers of clock ticks means faster computer, larger fhz means also faster computer (fhz stands for fibonacci hertz, but it means virtually nothing). I'm no longer accepting data from you for this benchmark. If you want to contact me, send e-mail to borek@bpp.com.pl .

What we know for sure (16 bit code):

Here is a plot of results from first survey (fibon.exe file). 16-bit code, Pentium over two times faster then Pentium II or Pro.

( list of results )
Plot made of above mentioned data.

How it looks? There are some results out of pattern (most of them for Pentium 200 MHz), but usually there is a perfect linear dependence between frequency and speed for the same processor. Pentium II and Pentium Pro are almost identical. Pentiums are splitted into two families - slower ones and faster ones (per megahertz). It will be difficult to split my data now into MMX and non MMX Pentiums, but probably those faster Pentiums are MMXes, with larger L1 cache.

In every case Pentium II (or Pro) executing fibon.exe is slower than Pentium, K6 or 6x86 running at the same frequency. Even K5 will be faster. Pentium classic is faster about 2.13 times, Pentium MMX 2.45 times faster, K6 1.87 times faster. Cyrix 6x86 performes almost exactly as Pentium classic.

Sometimes results are far from main stream for unknown reasons (in many cases I suspect so called human error, so please, recheck twice every data you are submitting!). I decided to not use information about motherboards, memory, chipsets and so on, as whole code and data reside in L1 cache and I suppose there is no need for such a data. For sure bus speed is not the reason for two groups of Pentiums - George Kirkaldie sent several scores for different processor frequencies and different bus frequencies - in each case proportion fhz/MHz was the same and equalled 2.45.

32-bit code - benchmark exe ready

It took me well over a month. We had a winter vacations here in the meantime and I went to ski. All was OK, except for snow. There was no snow, so I didn't ski. But that's out of subject and I'm not going to write what I think about such a winter.

After my first benchmark, which was a 16-bit code, I had a lot of letters saying "Well, that's nothing new, Pro's and II's are not well in 16-bit code, try 32-bit code and you will see..." Some people already tried it - they compiled my fibon.c source and they sent me results. Here is my previous text about their findings.

OK, so that was the situation at the end of January. I spent February looking for someone with Visual C++ 5.0, as I'm not going to buy it right now. And at last I found someone and I was able to use it by myself, to modify my code and to produce new, 32-bit exe. Here it is. If you want to help, please download this exe file (almost 40 kb this time, God knows why), run it on your machine (you'll need 32-bit Windows for that, please close any other programs and reboot your computer before start) and send me results:

  1. Kind of processor
  2. Real clock frequency
  3. Time of execution in clock ticks
  4. Speed in fhz32
Please make sure you are sending all data and they are correct, it will be much more easy for me to put all this stuff together.

Oh, I almost forgot ;) My preliminary results show that PII is still slower... New 32-bit code is executed much faster on both Pentium II and on Pentium classic. On PII 233 MHz speed reported by fibon32 (in fhz32) is 233 (which is nothing strange, as it was normalized in such a way) and on Pentium 133 (non-MMX) reported speed is 143 fhz32. For the same clock speed Pentium classic is about 7.5% faster.

Attention: it is 2000 right now. There are no results from 32-bit survey, because I don't have enough results - you have sent me about 10, maybe 20 letters. That's not enough. However, all those letters fall in the same pattern - PII in Fibonacci test is still a little bit slower...
 

So is it fast, or slow?

Looking at your letters I can see some misunderstanding of my page leading to two types of messages.

'If what you say of the Pentium II vs. Pentium is true, why do none of the independent hardware guide sites speak of it? Hard to believe that all these people buying PII systems are too stupid to see the difference in performance.'

'You're fucked up man. Amazing show of ignorance.'

Please reread my page carefully. I didn't wrote 'Pentium II is always slower then Pentium'. In fact in most cases it is faster and it is quite powerfull chip. But sometimes it's advanced architecture is in disadvantage when compared to rather straighforward nature of Pentium. My fibonacci is one of this (rare) cases. Pentium II is able to execute more than one instruction per cycle, but when something goes wrong (for example processor predicts wrong path for the execution of the program) you have to pay penalty (wait for some cycles before processor can get back to work). This penalty can be killing. That's why in every place of the page I refer only to my code and I always wrote abut 'this specific case'. Period.



Some other links you may find interesting:

Intels own page:
 http://www.intel.com

What Intel doesn't want you to know:
 http://www.x86.org

Sandpile (or The world's leading source for pure technical 80x86 processor information):
 http://www.sandpile.org

CPU Central:
 http://www.cpu-central.com/



Page created and maintained by Marcin Borkowski: borek@bpp.com.pl

Pentium, Pentium II and MMX are trademarks of  Intel Corporation.
Other mentioned names may also be trademarks of their owners.