Dec 182017
 
CPU speed test with ASM source code.
File CPU-TEST.ZIP from The Programmer’s Corner in
Category System Diagnostics
CPU speed test with ASM source code.
File Name File Size Zip Size Zip Type
CPUTEST.ASM 31368 4446 deflated
CPUTEST.EXE 2470 921 deflated
CPUTEST.TXT 40323 8647 deflated

Download File CPU-TEST.ZIP Here

Contents of the CPUTEST.TXT file



CPUTEST

Test #1 - Memory Move - 8 million bytes (REP MOVSB)
Test #2 - Register to Register - 8 million times (MOV ES,AX)
Test #3 - Memory to Register - 8 million times (MOV DX,Dummy)
Test #4 - Memory Move - 100 million bytes (REP MOVSB)
Test #5 - Extended (32 bit) Reg to Ex Reg - 8 million times (MOV EAX,EBX)
Test #6 - Extended (32 bit) Mem. location to 32 bit Reg (MOV EAX,BigDummy)
Test #7 - 32-bit Memory Moves (not implemented yet) (REP MOVSD)

Results are in timer ticks (18.2 per second)


JANUARY, 1994

NUMBER OF RESULTS: 89




System Description #1 #2 #3 #4 #5 #6 #7

8086-8 MHz - Ian Harris[70374,3166] 340 441 6304246 N/AN/A N/A
No Cache


QTY: 01


286-?? MHz - 640K - DOS 5.0 - FAS 160 372 5191950 N/AN/A N/A
No Cache -

286-12 MHz - 640K - DOS 5.0 107 327 4441346 N/AN/A N/A
No Cache - Communication's Computer

286-?? MHz - 1 Meg Ram - DOS 3.3 - R&M 70 176 233 867 N/A N/A N/A
No Cache

286-12 MHz - 2 Meg Ram - Co-Proc. - 5.0 77 215 282 961 N/A N/A N/A
No Cache (my personal computer)

286-12 MHz - 1meg Ram - DOS 6.0 - 73 183 234 905 N/A N/A N/A
No Cache Gerrit Berkouwer[72634,1472]

286-?? MHz - 640K Ram - DOS 5.0 - M&B 60 190 249 742 N/A N/A N/A
No Cache

286-?? MHz - 1 Meg Ram - DOS 5.0 - T&D 55 176 228 677 N/A N/A N/A
No Cache

286-?? MHz - 640K Ram - DOS 5.0 - WATN 54 133 178 ??? N/A N/A N/A
No Cache


QTY: 08


386?X-??MHz - 3 Meg Ram - DOS 5.0 - Kathie104 316 4071296 330 491
Cache Status Unknown

386?X-??MHz - 2 Meg Ram - DOS 5.0 -ATIBURN 88 239 3461090 233 390
Cache Status Unknown

386SX-16MHz - 4 Meg Ram - DOS 5.0 - B&MNEP 78 162 210 956 167 229
No Cache

386?X-16MHz - 2 Meg Ram - DOS 5.0 - G&W 61 185 235 734 191 270
No Cache

386SX-16MHz - 2 Meg Ram - DOS 5.0 - Sandy 58 171 238 717 184 296
No Cache

386SX-16MHz - 2 Meg RAM - DOS 6.0 - Spare 54 158 300 676
No Cache

386SX-40MHz - 2 Meg RAM - DOS 6.0 - TERRY1 50 67 115 616 74 134
No Cache - SHUTTLE motherboard

386SX-40MHz - 2 Meg RAM - DOS 6.0 - TERRY2 50 66 116 634 69 130
No Cache - SHUTTLE motherboard

386SX-16MHz - 2 Meg RAM - DOS 5.0 - Tony's 45 157 201 567
No Cache

386SX-16MHz - 5 Meg Ram - DOS 5.0 - Becky 45 158 202 570
No Cache

386SX-16MHz - 1 Meg Ram - DOS 5.0 - Carrie 40 153 196 500 160 235
No Cache

386SX-16MHz - 2 Meg Ram - DOS 5.0 - Paul 38 147 192 476 158 476
No Cache


QTY: 12


386DX-??MHz - 2 Meg Ram (LION3) - DOS 5.0 50 80 114 627 90 140
Cache Status Unknown

386?X-?? - 2 Meg Ram - DOS 6.0 - ATIARDEN 46 62 107 575 69 126
Cache Status Unknown

386?X-?? - 4 Meg Ram - DOS 3.3 - SERVER 44 86 146 541 93 159
Cache Status Unknown

386?X-?? - 2 Meg Ram - DOS 5.0 - MADISON 42 115 165 514 115 187
Cache Status Unknown

386?X-?? - 2 Meg Ram - DOS 5.0 - ATIHOP 42 110 139 520 116 163
Cache Status Unknown

386?X-?? - 2 Meg Ram - DOS 6.0 - CONSUMER 47 94 146 592 118 192
Cache Status Unknown

386?X-?? - 2 Meg Ram - DOS 5.0 - ATIBLOOM 41 128 163 511 115 186
Cache Status Unknown

386?X-?? - 2 Meg Ram - DOS 5.0 - ATILINC 41 109 139 519 116 164
Cache Status Unknown

386?X-?? - 4 Meg Ram - DOS 5.0 - BRANT 33 130 161 414 137 194
Cache Status Unknown

386DX-??MHz - 2 Meg Ram (LION4) - DOS 5.0 37 73 91 456 77 109
Cache Status Unknown

386?X-?? - 2 Meg Ram - DOS 5.0 - MANKATO 35 67 80 431
Cache Status Unknown

386?X-?? - 2 Meg Ram - DOS 5.0 - ALTCOLL1 35 63 78 428 66 86
Cache Status Unknown

386DX-?? - 2 Meg Ram - DOS 5.0 - ATIBAKER 34 60 72 429 63 86
Cache Status Unknown

386DX-25 - 4 Meg Ram - DOS 6.0 - Paul Reid 33 96 128 413
Cache Status Unknown - [71031,3603]

386SL-25MHz/7SL -18 Meg Ram/6.0/ 64K Cache 32 94 113 401
Toshiba T3300SL Laptop/E. Perea 76667,2643

386??-??MHz - 2 Meg Ram - DOS 5.0 - A&S 31 43 49 387 55 60
Cache Status Unknown

386DX-?? - 2 Meg Ram - DOS 5.0 31 116 144 388
Cache Status Unknown - Bloomington

386DX-??MHz - 2 Meg Ram (LION2) - DOS 5.0 31 71 115 385 75 133
Cache Status Unknown

386?X-?? - 640K RAM - DOS 3.3 - SHARON 30 95 119 376 100 143
Cache Status Unknown

386?X-?? - 4 Meg RAM - DOS 5.0 - DAKOTA 26 82 103 323 87 123
Cache Status Unknown

386?X-?? - 768K RAM - DOS 3.3 - COLLEEN 23 74 93 295 78 113
Cache Status Unknown

386?X-?? - 4 Meg RAM - DOS 6.0 - NORTH 21 55 66 262 56 73
Cache Status Unknown

386?X-?? - 2 Meg RAM - DOS 5.0 - SMITH 21 53 65 266 56 72
Cache Status Unknown

386?X-?? - 2 Meg RAM - DOS 5.0 - DODGE 19 70 85 239 75 103
Cache Status Unknown

386DX-?? - 4 Meg RAM - DOS 5.0 - HEART 19 56 68 229 59 76
Cache Status Unknown

386DX-40 - 4 Meg RAM - DOS 6.0 - ASTI 17 57 69 208
128K Cache - Server

386DX-??MHz - 4 Meg - DOS 5.0 - DAKLINC 16 52 64 204 56 71
Cache Status Unknown

386DX-33MHz - 1 Meg - 64K Ext Cache On 16 48 59 200 52 67
Jay Callahan DOS 5.0 Off 45 60 94 567 75 113

386DX-40MHz - 4 Meg - 128K Ext Cache - 6.0 15 48 48 189 51 65
Jon Klein [73200,1254] AMD

386DX-40MHz - 4 Meg - 256K Ext Cache - 6.0 15 51 62 185
Steven A. Frare [76646,1175]

386DX-40MHz - 2 Meg - 128K Ext Cache - 5.0 15 48 58 183 51 66
Richard's work machine with no Cache---> 44 59 92 549 73 110


QTY: 31


486SX-25MHz - 4 Meg/70ns ext on 22 58 47 272 59 52
256K Ext Cache - DOS 6.2 ext off 22 58 47 285 59 52
Intel/SER motherboard - ISA bus
Hugh Blair[73114,1672]

486SX-25MHz - 4 Meg - 256K Ext Cache 21 61 50 259 61 54
Max Van Horn

486SX-25MHz - 8 Meg/70ns/QEMM6.03 both on 20 59 47 255 59 52
DOS 6.0/4DOS 5.0/256K SRAM both off 69 255 365 867 255 365
Intel CPU ext off /int on 28 58 47 352 58 52
MB: 4386-VC-HD Cache Sys ext on /int off 32 93 106 395 93 106
Ram Chipset: VIA Technology
AWARD Modular BIOS V4.2
Gerrit Berkouwer[72634,1472]

486SX-??MHz - 4 Meg - DOS 5.0 - NC&E 20 43 49 247 48 52
Cache Status Unknown


QTY: 04


486?X-?? - 4 Meg Ram - DOS 5.0 - Woodbury 75 228 390 927
Cache Status Unknown

486?X-?? - 4 Meg Ram - DOS 5.0 - BELL 39 66 53 482 65 58
Cache Status Unknown

486DX-25 - 12 Meg Ram - DOS 5.0 32 59 47 404 58 53
Richard's home machine - 8K int. Cache

486DX2-66MHz - 8 Meg RAM/70ns both on 31 79 105 383 79 105
Intel/OPTI 486VL-BUS - ISA ext off/int on 66 219 259 818 219 260
256K Ext Cache - DOS 6.2 ext on/int off 31 79 105 383 79 105
Turbo On both off 66 219 259 818 219 260

Turbo Off both on 33 46 118 411 46 118
ext off/int on143 219 3281788 219 328
ext on/int off 35 78 105 438 78 105
Hugh Blair[73114,1672] both off 66 219 259 818 219 260

486DX-33 - 8 Meg RAM - PS/1 - DOS 5.0 28
Cache Status Unknown

IBM Thinkpad 750C 486DXSL/33 MHz -DOS 6.01 22 45 35 272 44 40
Jaren Levitt [75720,3462] 20 Meg/8K Cache

486DX2-50 cache on 22 29 26 284
8 meg ram - ext cache - dos 6 off 51 122 223 642
Gerrit Berkouwer[72634,1472]

486DX2-66 - 32 Meg/70ns - ISA bus on 22 22 17 268 21 20
MCCI NICE MB Ver. 1.2 - 0K Cache - DOS 6
Paul M. Blais[72103,111]

486?X-?? - ? Meg Ram - SEWARD 20 61 48 254 60 54
Cache Status Unknown

486DX-33 - 8 Meg Ram - File Server - ARES 20 44 35 261 45 41
cpu with int & ext Cache on - DOS 5.0

486DX-?? - 8 Meg Ram - DOS 6.0 - P&G 19 50 40 220 49 44
Cache Status Unknown

486DX-?? - 4 Meg Ram - DOS 6.0 - ALTGLAD 18 46 36 226 45 41
Cache Status Unknown

486DX-?? - 4 Meg Ram - DOS 5.0 - NPDODGE 18 49 39 221 48 43
Cache Status Unknown - Novell

486DX-33 - 4 Meg Ram - DOS 6.2 17 48 49 219
Cyrix 486DLC - 1K int/256K cache
Paul Latour [74720,1741]

486DX-?? - 4 Meg Ram - DOS 5.0 - C&W 17 45 36 216 45 41
Cache Status Unknown - Lantastic

486DX-33 - 20 Meg Ram/60ns - ISA bus on 16 43 35 196 44 39
Intel - 128K cache - DOS 6.2 ext off 20 43 35 249 44 40
Jim Marshall[72154,3724]

486DX-?? - 8 Meg RAM - DOS 5.0 - TitleOne 16 46 41 198
Cache Status Unknown

486DX-33MHz - 8 Meg RAM/DOS 6/128K Cache 16 44 39 199
Emilio I. Perea [76667,2643]

486DX-50 - 8 Meg/70ns - ISA bus 16 29 23 200 29 26
MCCI NICE MB Ver 1.0? - 64K Cache - DOS ?
Paul M. Blais[72103,111]

486DX-33 - 32 Meg - (ISA bus assumed) 15 44 35 189 44 34
HP NetServer 4/33 LM
Paul M. Blais[72103,111]

486SLC2-66MHz - 8 Meg - 60ns RAM 14 15 17 171 20 22
Cyrix CPU, Bus Unknown - DOS 6.2
Brian Lendl [71221,630] - 16K int cache

486DLC-40MHz - 8 Meg - 6.1 - 128K cache on 14 33 36 183 36 40
Cyrix CPU, ISA bus, 70ns RAM off 36 33 36 456 37 40
Robert C. Shaw, PO Box 60454,Phoenix, AZ
A DLC seems to be an "super-chip" upgrade

486DX-50MHz - 4 Meg RAM/DOS 6/256K Cache 14 29 26 170
Ian Henderson [100010,2156] *Nice guy*

Magitronic 486DX2-66MHz VLB-8 Meg both on 15 22 18 195 22 19
DOS 6.2/256K cache/70 ns ext off/int on 19 21 18 243 22 20
John E. Cunio[70365,227] both off 57 154 190 714 154 192
711 Saldano Ave., Coral Gables, FL 33143

486DX2-66MHz - 32 Meg RAM/DOS 6.01 15 21 17 193 22 20
Jaren Levitt [75720,3462] 256K Cache

486DX2-66MHz - 8 Meg RAM/DOS 5/256K Cache 15 22 17 184 22 20
Ian Harris [70374,3166] *Nice Guy*

486DX2-90MHz - 32 Meg/70ns - 256K Cache 7 17 13 96 16 15
Intel/Diamond FastBus - ISA Bus - DOS 6.2
Mike Butler[72662,1332] - QEMM 7.03


QTY: 28


486DX-50 - 16 Meg 60ns - *EISA* 12 29 24 147 29 26
256K L2 Cache - Karl Roos [73737,3226]
DOS 5.0 - AIR Motherboard

486DX2-66 - 16 Meg 70ns - *EISA* both on 11 21 17 144 22 19
NICE Mini EISA M/B 256K ext off/int on 16 22 17 192 22 20
Paul M. Blais[72103,111] both off 43 180 250 527 180 250

486DX-50 - 8 Meg/70ns - *EISA* bus on 10 29 23 127 29 26
MCCI NICE MB Ver 1.0 - 256K Cache - DOS 6
Paul M. Blais[72103,111]

486DX2-66 - 16 Meg 70ns - *EISA* both on 10 22 18 130 22 19
MCCI Super EISA rev. 1.2.1 256K writeback
Paul M. Blais[72103,111] QEMM7.03 & DOS6.0


QTY: 04


486DX2-50 - 24 Meg - *MCA* - DOS 5.0 23 29 23 279 29 27
IBM Model 95-ALF (-0LF in the US) - Intel
No External Cache - Bob Eager[100016,2770]


QTY: 01


486DX3-100 MHz
( 1st person to send in a 486DX3 result )
( will get a typeset result file and a )
( disk with latest EXE, ASM & TXT file )


QTY: 00


PENTIUM
( 1st person to send in a Pentium result )
( will get a typeset result file and a )
( disk with latest EXE, ASM & TXT file )


QTY: 00



- Denotes impressive results



The CPUTEST and the above data is hereby released into the Public Domain.



This "project" was started to help me gain a better understanding of "raw"
CPU "power". I wanted to upgrade my motherboard from a 286-12MHz and wanted
to see how a high-end 386 (cheaper) compared to a low-end 486 (more expensive).
Originally, I was only testing 8086-instructions, but as I moved into the
realm of testing higher-end machines, I added 32-bit specific instructions.
I really didn't like those benchmark programs that simply rate the "effective"
performance of a machine. I wanted to know HOW they got those results and
WHAT they were testing. The three (3) specific areas I'm testing are very
low-level - no matter what language you use, you will generate code that
uses these instructions.

This program can be a benefit to both technicians and buyers. I use it
to test the effective CPU strengths of my clients computers. If they have
a wimpy CPU, this'll smoke it out. Technicians can also benefit by testing
their own computers, comparing performance and perhaps saving money by
buying faster, cheaper computers. (One client complained of lack of speed
on his 486 server. A quick run of CPUTEST showed his computer was running
slower than my 286-12MHz! Solution: Check his TURBO switch - it was off)

If you find this program useful, all I ask is that you please drop me
either EMAIL via CompuServe (76447,3500) or a post card, describing your
system (what kind of CPU, MHz, how much RAM, DOS version & how much
CPU Cache - if any). CPUTEST.EXE appends your results (as well as one-line
user-entered comment) to CPUTEST.TXT.

>-----------------------------------------------------------------------------<
> Please run it 3 or 4 times, to get a consistant reading. If you have <
> cache, please alter your CMOS settings to turn your cache off and run the <
> program another 3 or 4 times. This will give a more accurate performance <
> of your CPU. Finally, if you could run a series of tests with the external <
> cache off and internal cache on, that would make the effects far more <
> revealing. In other words, run three sets of tests - one with all cache on,<
> one with all cache off, and one with ext off/int on. Please report all <
> results. <
>-----------------------------------------------------------------------------<

I also encourage you to pass this program and results chart along to
friends & BBSes. The wider it circulates, the more precise results I can get.

In return, I'll maintain your name and address in my database of
"contributors". Hopefully,this will become a widely accepted "benchmark"
program. While I would like to send a new results chart to everyone that
sends in their information, I simply couldn't afford the postage. However,
if you send in a *bunch* of results from different computers, that would
weigh heavily in your favor of getting a printout in the mail. However, I
*do* maintain a current results chart (and the latest version of CPUTEST.EXE)
on Compuserve (GO IBMHW, LIB 4, [76447,3500]TEST.ZIP) and I will update the
list monthly. Please prefix the filename with my CIS number, as there are
two different programs named TEST.ZIP in that forum.

Please U.S. Mail results (if you cannot CIS EMAIL) to:
Tony Doimeadios, Post Office Box 431, Brunswick, GA 31521

Include a SASE and I will mail you the most recent copy of the results chart.



Thank You

Tony, December 1993



HOW TO USE YOUR RESULTS

By themselves, the numbers generated by running CPUTEST on your computer
aren't worth much. It doesn't reveal your "effective speed", how many times
faster you are over an original IBM-PC, or anything like that. Your results
should be taken in context with the results from the above chart to see how
you "rank". A lot of people ask, "Can't you derive a common set of numbers
for a particular type of CPU and let that be the 'Standard'?" A quick look
at the chart for the 80386DX will tell you that the numbers range from a
high of 50 to a low of 15! CPUTEST wasn't written to determine "CPU SPEED",
merely measure performance.

My original question, "What motherboard gives me the most bang for the buck?"
can be answered by examining this chart. Why should I spend $350 for a
486DX-33 when for $105 I can buy a 386DX-40 and get (VERY!) comparable
results?!? The only negative factor in buying the far cheaper 386DX-40
would be you would be yet another generation behind the "newest" CPU, meaning
you wouldn't have access to the small handful of 80486-specific instructions.
I have YET to see a product that writes SPECIFICALLY for the 486.


Table 1
======= Comparing a 80386DX-40MHz to a 80486DX-33MHz

386DX-40MHz - 2 Meg - 128K Ext Cache - 5.0 15 48 58 183 51 66

486DX-33MHz - 8 Meg RAM/DOS 6/128K Cache 16 44 39 199
Emilio I. Perea [76667,2643]




OBSERVATIONS

So far I've found that after a certain point, MEMORY MOVES do not
gain any appreciable increase in speed. Looking at the chart, you
can see that there isn't much difference between a 486/33 and a 486/50.
Perhaps after a certain point, RAM chip speed (70 ns, 60 ns, etc.) is a
"barrier" to higher performance.

However, the REGISTER OPERATIONS *do* pick up a lot from having a bigger CPU
(486 -vs- 386) and faster cpu speed (50 MHz -vs- 33 MHz - a 50 MHz brings in
29 clock ticks, while a 33 MHz takes 44! A difference of *15*!).

Also, caching doesn't help *as much* with register operations (30% faster)
as compared with memory moves (56% faster).

The 80486 is optimized differently than previous chips. It performs
MEMORY LOCATION-TO-REGISTER operations more efficiently than REGISTER-TO-
REGISTER.

The EISA bus (486-50MHz) performed the REGISTER operations identically to
the ISA bus of the same speed, however the MEMORY MOVES were faster than
anything recorded. The system has 70ns RAM, so that helps support the idea
that the EISA design is what is making it have very good performance in the
area of memory moves. In fact, a computer-knowledgable person told me that
the 32-bit data bus is why the MEMORY MOVES were so good.



SOAPBOX

I have read that the chip manufactorers are trying to make their
cpu chips run programs (that are made with "inefficient" compilers) faster.
There are a limited number of cpu registers, and some compilers are not
optimized enough to use these registers (which had been the fastest way to
move info from 8088 to 80386) effectively. Therefore, since the compilers
aren't "smart" enough to use them, the chip makers are devoting more square
area of silicon to allow these "memory-location to register" moves to run
faster (fewer clock cycles) than "register-to-register" moves. This gives
the impression that the programs are "running faster than ever before".
[ ]
[ this is why the newer chips have such a heat problem ]
[ more silicon=more power=more heat ]
[ ]

What's happened, however, is that the tail is wagging the dog (so to speak).
Intel stated the required number of clock cycles for every instruction of
their cpu. (Most) compiler makers did not sell compilers that optimized
the final EXE for the fewest clock cycles. They used inefficient
instructions and sold millions of copies of their compilers.

Is this bad? No, not really. Is there a downside to all of this? Yes.
The only people that are really irked are assembly language programmers.
Used to be, they could sit down and hand-tool a specific function that would
beat the compiler's similar function (*if* it had something similar). Now,
with each instruction having a different "priority" from cpu to cpu, to
simulate the same level of performance increase, we would have to detect the
cpu (no big deal) and branch to one of *5* routines. We would have one for
the 8086/8088, one for the 80286 (we can safely skip the 80186/80188), one
for the 80386, one for the 80486 and one for the Pentium. We could almost
have two sections - 80386 and below, and 80486 and higher. There are very
strong similarities between the 80486 & the Pentium, and I imagine the
Hexium? (80686) would be closely related to the Pentium. Therefore, the
optimizing routines for the 486+, while not identical, would be close enough
not to matter.

Is this really worth worrying about? It depends. Wouldn't it be nice if
OS/2 2.1 only needed 10 meg instead of 40 meg for HD storage?? Of course!
I contend that it will ALWAYS be nice to have highly efficient DEVELOPMENT
TOOLS. The better your tools, the better of a product you can make.
What if your favorite brand of C++ compiler compiled in 1/2 or 1/3 of the
time?? Time=Money. However, I'm afraid the future holds for more powerful
processors optimized for inefficient compilers, and computers with tens of
megs of RAM. In that kind of world, who needs efficiency?






* * * * * * * * * * * * * * * * * * * *

Below are pieces of information I'd like to have. If you don't know, that's
fine. The more I know about your system, the better weight I can put with
your results. I've included an example for you to use. If I can get enough
responses with motherboards, I'll prepare a secondary chart, grouped by
motherboard namebrand. This might help with selection of a namebrand when
you go to make your purchase. Thank you!


CPU Manufacturer ISA or DOS Amt of RAM Chip CPU Size
MotherBord Name EISA Version Ext. Cache Speed & Speed

Intel ISA 5.0 256K 60 ns 486DX2/66
NICE












 December 18, 2017  Add comments

Leave a Reply