CPU Instruction Timmings
This table was determined experimentally using Litos. If you want to measure your PC, download this (150 KB), unpack and write it into empty diskette using INSTALL.COM program (all data on diskette will be destroyed and diskette content will not be visible under other systems) or create CD bootable disk using CD_BOOT.ISO. Then reboot and boot from the diskette or CD. You can use printed empty form CPUTEST0.DOC from the pack to copy down data from the screen. Or you can take snapshot with digital camera. Sample screenshot. Source code.
Performance ladder | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | Performance ladder |
User nick | Kamil | Brano Work 1 | Zet | Michal Honz | Mirek Hal 2 | Brano Work 2 | IJS | Dejvino | Panda 2000 | Mirek Hal | Brano Inco | Tomas 1600 | Lotty 600 | Tomas 675 | Tomas 600 | Lotty 400 | Filip | Panda 500 | JAK Emil 1 | Panda 166 | Panda 200 | Panda 66 | Panda 40 | Kamil 33 | Panda 33 | Bochs Emulator v2.3 | User nick |
CPU name | AMD Athlon 64 X2 Dual Core 5000+, 2.60 GHz | Intel Core 2 Duo, 1.86 GHz | AMD Athlon XP 2500+, 1.80 GHz | AMD Athlon XP 2600+, 1.92 GHz |
AMD Athlon XP 2200+, 1.80 GHz | Intel Pentium 4, 2.40 GHz | Intel Pentium 4, 2.40 GHz |
Intel Pentium 4, 2.20 GHz | AMD Athlon XP 2000+, 1.66 GHz |
AMD
Athlon Thunderbird, 900 MHz |
AMD Athlon XP
2500+, 1.80 GHz |
AMD Athlon XP 1600+, 1.40 GHz | Intel Pentium 3, 600 MHz | Intel Celeron 600 @675 MHz | Intel Celeron 600 MHz | Intel Pentium 2, 400 MHz | AMD K6-2, 500 MHz | Intel Pentium 2 Celeron, 500 MHz | Intel Pentium, 166 MHz | Intel Pentium MMX, 166 MHz | Intel Pentium Pro-S, 200 MHz | Cyrix Cx486 DX2, 66 MHz | AMD Am386 DX, 40 MHz | AMD Am386 SX/SXL, 33 MHz | Intel 486DX, 33 MHz | Pentium 3 | CPU name |
motherboard | ASUS M2N-E | - | Soltek SL-75FRN3-L | MSI KT6 Delta (MSI-6590 v.2) | Gigabyte GA-7VT880 F10 | - | EPOX IP-4GVI20 | ASRock P4i65G | ASUS A7V8X-X | Soltek SL-75DRV2 | Biostar M7VKD | Soltek SL75-KAV | AOpen AX6BC | Abit ZM6 | Abit ZM6 | AOpen AX6BC | - | ZX98-CU | - | - | W282 | CL-GD540x | - | PQ 9243-1 | M359P90 | - | motherboard |
chipset | nForce 570 | - | nVidia nForce 2 | VIA KT600 | VIA KT880 | - | Intel 845GV | Intel 865G | VIA KT400 | VA KT8233 | VIA KT133A | VIA KT133A | 440BX | Intel i440 ZX | Intel i440 ZX | 440BX | - | Intel 82443ZX | - | VIA VT82C586A | - | VT82C481 | - | A28974 | OPTI 82C495SX | - | chipset |
CPU type | Athlon 64 | Pentium 3 | Athlon | Athlon | Athlon | Pentium 4 | Pentium 4 | Pentium 4 | Athlon | Athlon | Athlon | Athlon | Pentium 3 | Pentium 3 | Pentium 3 | Pentium 2 | AMD K6-2 | Pentium 2 | Pentium 1 | Pentium 1 | Pentium Pro | 486 DX2 | 386 DX | 386 SX | 486 DX | Pentium 3 | CPU type |
Vendor | AMD | Intel | AMD | AMD | AMD | Intel | Intel | Intel | AMD | AMD | AMD | AMD | Intel | Intel | Intel | Intel | AMD | Intel | Intel | Intel | Intel | Intel | AMD | AMD | Intel | Intel | Vendor |
Family | 16 | 6 | 6 | 6 | 6 | 16 | 16 | 16 | 6 | 6 | 6 | 6 | 6 | 6 | 6 | 6 | 5 | 6 | 5 | 5 | 6 | 4 | 3 | 3 | 4 | 6 | Family |
Model | 11 | 15 | 10 | 10 | 8 | 2 | 2 | 2 | 10 | 4 | 10 | 6 | 7 | 8 | 8 | 5 | 8 | 6 | 2 | 4 | 1 | 3 | 1 | 2 | 1 | 8 | Model |
Frequency | 2612.090 MHz | 1869.917 MHz | 1837.507 MHz | 1921.110 MHz | 1808.426 MHz | 2405.505 MHz | 2411.653 MHz | 2197.176 MHz | 1658.556 MHz | 910.867 MHz | 1804.135 MHz | 1404.790 MHz | 601.381 MHz | 657.015 MHz | 601.374 MHz | 400.920 MHz | 501.161 MHz | 501.146 MHz | 165.794 MHz | 167.049 MHz | 199.794 MHz | 66.660 MHz | 40.510 MHz | 33.330 MHz | 33.184 MHz | 2 MHz | Frequency |
MMX | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | - | yes | - | - | - | - | - | yes | MMX |
SSE | yes | yes | yes | yes | yes | yes | yes | yes | yes | - | yes | yes | yes | yes | yes | - | - | - | - | - | - | - | - | - | - | yes | SSE |
SSE2 | yes | yes | - | - | - | yes | yes | yes | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | SSE2 |
3DNow! | yes | - | yes | yes | yes | - | - | - | yes | yes | yes | yes | - | - | - | - | yes | - | - | - | - | - | - | - | - | - | 3DNow! |
3DNow! Ext | yes | - | yes | yes | yes | - | - | - | yes | yes | yes | yes | - | - | - | - | - | - | - | - | - | - | - | - | - | - | 3DNow! Ext |
MMX+ AMD | yes | - | yes | yes | yes | - | - | - | yes | yes | yes | yes | - | - | - | - | - | - | - | - | - | - | - | - | - | - | MMX+ AMD |
MMX+ Cyrix | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | MMX+ Cyrix |
FPU | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | - | - | yes | yes | FPU |
TSC | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | - | - | - | - | yes | TSC |
mov reg8,N | 1.4 | 1.3 | 2.3 | 2.5 | 2.9 | 3.7 | 1.0 | 4.1 | 3.4 | 4.1 | 3.7 | 3.7 | 9.5 | 9.4 | 10.8 | 9.3 | 8.5 | 11.7 | 32.1 | 32.7 | 38.4 | 51.9 | 132 | 67.0 | 239 | 500 | mov reg8,N |
mov reg16,N | 2.0 | 1.2 | 4.1 | 4.6 | 5.6 | 3.1 | 3.2 | 3.5 | 6.2 | 7.9 | 7.0 | 7.5 | 16.8 | 18.2 | 20.4 | 17.3 | 16.5 | 20.0 | 68.0 | 70.8 | 72.2 | 60.3 | 281 | 125 | 472 | 500 | mov reg16,N |
mov reg32,N | 3.2 | 2.3 | 4.8 | 6.2 | 7.4 | 5.7 | 7.2 | 6.5 | 7.9 | 10.0 | 9.0 | 9.7 | 24.3 | 27.6 | 31.5 | 23.2 | 19.1 | 25.8 | 87.2 | 85.5 | 90.2 | 78.7 | 278 | 160 | 591 | 500 | mov reg32,N |
mov reg32,reg32 | 1.0 | 0.4 | 2.0 | 2.4 | 3.0 | 1.1 | 1.1 | 1.5 | 2.9 | 3.9 | 3.4 | 3.2 | 7.8 | 9.1 | 10.3 | 8.1 | 7.6 | 9.6 | 31.9 | 23.2 | 34.2 | 28.4 | 97.2 | 63.6 | 232 | 500 | mov reg32,reg32 |
inc reg32 | 0.5 | 0.5 | 1.1 | 1.3 | 1.9 | 0.4 | 2.0 | 0.7 | 1.5 | 2.0 | 2.1 | 2.1 | 3.2 | 3.6 | 4.6 | 3.3 | 3.7 | 4.9 | 15.6 | 9.8 | 6.5 | 16.7 | 53.6 | 60.3 | 113 | 500 | inc reg32 |
dec reg32 | 0.7 | 1.1 | 1.1 | 1.2 | 1.7 | 2.2 | 0.4 | 2.4 | 1.6 | 2.4 | 1.9 | 2.0 | 4.0 | 5.0 | 5.9 | 4.7 | 3.6 | 4.6 | 17.9 | 10.8 | 13.6 | 16.7 | 55.3 | 62.0 | 115 | 500 | dec reg32 |
mov reg32,[addr+offset] | 5.3 | 5.1 | 10.6 | 11.3 | 14.7 | 12.8 | 10.6 | 16.1 | 15.5 | 21.0 | 18.4 | 19.3 | 41.3 | 47.8 | 50.4 | 50.4 | 58.3 | 53.3 | 169 | 171 | 206 | 294 | 509 | 405 | 1349 | 500 | mov reg32,[addr+offset] |
mov [addr+offset],reg32 | 5.4 | 5.0 | 8.5 | 13.9 | 14.6 | 14.0 | 12.2 | 15.0 | 15.0 | 18.6 | 18.3 | 19.0 | 39.9 | 41.2 | 46.3 | 49.4 | 54.9 | 43.5 | 199 | 226 | 210 | 209 | 452 | 482 | 1104 | 500 | mov [addr+offset],reg32 |
mov reg32,[addr+offset+1] | 9.9 | 7.6 | 12.0 | 14.6 | 16.6 | 14.2 | 11.9 | 14.0 | 17.2 | 22.0 | 25.1 | 30.0 | 67.0 | 52.2 | 58.1 | 74.2 | 79.7 | 78.0 | 238 | 241 | 291 | 455 | 710 | 566 | 1888 | 500 | mov reg32,[addr+offset+1] |
mov [addr+offset+1],reg32 | 8.6 | 8.8 | 13.6 | 16.3 | 16.9 | 18.4 | 14.7 | 14.8 | 19.7 | 21.8 | 26.1 | 26.1 | 60.8 | 57.6 | 64.2 | 66.5 | 67.8 | 68.0 | 265 | 284 | 290 | 341 | 653 | 571 | 1330 | 500 | mov [addr+offset+1],reg32 |
xchg reg32,reg32 | 0.8 | 0.9 | 1.4 | 1.4 | 1.9 | 0.4 | 0.4 | 0.5 | 1.3 | 2.5 | 1.8 | 1.9 | 3.2 | 3.6 | 4.6 | 4.2 | 4.2 | 7.5 | 16.0 | 11.6 | 15.7 | 45.2 | 77.0 | 90.5 | 117 | 500 | xchg reg32,reg32 |
add reg32,reg32 | 1.6 | 0.5 | 2.3 | 2.8 | 3.4 | 1.2 | 0.8 | 1.2 | 3.5 | 4.2 | 3.8 | 4.2 | 7.7 | 8.6 | 10.1 | 7.7 | 7.5 | 11.7 | 33.3 | 29.3 | 33.1 | 20.1 | 95.5 | 63.6 | 237 | 500 | add reg32,reg32 |
mul reg32 | 2.3 | 1.1 | 2.7 | 4.3 | 4.5 | 0.8 | 0.2 | 1.4 | 3.5 | 3.7 | 4.4 | 2.6 | 6.6 | 6.7 | 8.1 | 7.5 | 9.2 | 13.4 | 35.4 | 23.4 | 36.1 | 48.6 | 467 | 737 | 321 | 500 | mul reg32 |
div reg32 | 10.0 | 16.6 | 12.7 | 12.4 | 11.0 | 3.1 | 3.4 | 2.6 | 14.2 | 26.9 | 10.6 | 14.5 | 18.8 | 6.4 | 7.7 | 55.4 | 17.5 | 13.4 | 191 | 111 | 22.9 | 38.5 | 640 | 972 | 249 | 500 | div reg32 |
push reg32 | 0.7 | 1.1 | 1.2 | 1.6 | 2.0 | 3.0 | 1.5 | 3.4 | 1.6 | 2.5 | 2.2 | 2.4 | 4.8 | 4.7 | 5.7 | 4.7 | 3.9 | 5.6 | 59.2 | 80.3 | 15.6 | 135 | 152 | 164 | 345 | 500 | push reg32 |
pop reg32 | 2.5 | 2.6 | 5.7 | 6.3 | 7.3 | 6.6 | 6.4 | 6.6 | 8.0 | 9.2 | 11.6 | 11.4 | 25.6 | 28.1 | 29.8 | 27.1 | 20.8 | 35.5 | 62.4 | 78.4 | 90.4 | 207 | 254 | 253 | 646 | 500 | pop reg32 |
pusha | 17.3 | 22.1 | 40.4 | 51.0 | 53.3 | 40.8 | 37.9 | 34.0 | 61.2 | 74.1 | 87.3 | 85.7 | 131 | 142 | 163 | 142 | 115 | 147 | 378 | 479 | 593 | 1027 | 878 | 1094 | 1905 | 500 | pusha |
popa | 16.8 | 20.8 | 37.1 | 42.7 | 49.5 | 47.3 | 48.3 | 48.6 | 50.2 | 69.0 | 80.4 | 75.2 | 147 | 153 | 180 | 153 | 106 | 171 | 347 | 790 | 597 | 1662 | 1513 | 1284 | 4298 | 500 | popa |
jmp short | 5.2 | 4.3 | 6.7 | 7.4 | 7.4 | 8.5 | 8.8 | 9.0 | 8.1 | 13.0 | 7.9 | 8.6 | 10.4 | 9.6 | 10.7 | 16.9 | 8.5 | 14.0 | 45.1 | 44.2 | 32.3 | 77.0 | 269 | 343 | 320 | 500 | jmp short |
jmp near | 6.4 | 5.4 | 9.3 | 12.6 | 11.6 | 11.4 | 11.5 | 11.5 | 12.6 | 19.0 | 14.1 | 14.3 | 22.8 | 24.9 | 28.2 | 24.3 | 19.6 | 32.4 | 88.7 | 59.7 | 84.9 | 124 | 351 | 444 | 687 | 500 | jmp near |
jc short (jump) | 5.2 | 5.4 | 6.5 | 6.4 | 6.9 | 19.4 | 19.8 | 21.1 | 7.3 | 12.8 | 7.0 | 8.5 | 14.2 | 12.2 | 13.9 | 21.7 | 8.4 | 17.7 | 45.2 | 44.5 | 44.2 | 67.0 | 274 | 341 | 323 | 500 | jc short (jump) |
jc short (not jump) | 1.5 | 4.6 | 2.4 | 2.4 | 3.6 | 2.4 | 2.5 | 1.3 | 3.6 | 4.7 | 4.3 | 4.8 | 7.6 | 7.3 | 9.0 | 7.5 | 7.6 | 10.1 | 33.3 | 21.7 | 14.8 | 21.7 | 93.8 | 95.5 | 237 | 500 | jc short (not jump) |
loop | 6.9 | 8.5 | 8.9 | 8.3 | 9.4 | 21.8 | 19.4 | 23.2 | 9.2 | 17.9 | 8.7 | 11.6 | 22.0 | 23.0 | 26.0 | 38.5 | 8.7 | 31.0 | 67.4 | 67.6 | 77.1 | 115 | 328 | 457 | 420 | 500 | loop |
nop | 0.4 | 0.1 | 1.4 | 1.4 | 1.7 | 1.2 | 0.5 | 0.5 | 1.3 | 2.1 | 2.0 | 2.1 | 3.4 | 2.3 | 3.0 | 3.2 | 3.8 | 3.8 | 15.5 | 10.4 | 5.6 | 33.5 | 75.4 | 88.8 | 115 | 500 | nop |
call addr | 6.2 | 4.9 | 8.9 | 12.3 | 12.9 | 10.7 | 11.9 | 12.2 | 14.8 | 19.7 | 20.6 | 18.4 | 34.7 | 35.7 | 43.4 | 33.9 | 44.3 | 41.7 | 129 | 161 | 101 | 162 | 486 | 648 | 757 | 500 | call addr |
ret | 6.8 | 8.5 | 11.9 | 11.5 | 12.5 | 19.1 | 19.1 | 20.9 | 13.3 | 24.1 | 12.4 | 15.6 | 19.2 | 16.6 | 18.9 | 29.2 | 25.8 | 23.8 | 42.8 | 46.2 | 59.2 | 92.1 | 303 | 749 | 258 | 500 | ret |
out N,al | 507 | 808 | 1082 | 1482 | 1913 | 1380 | 2828 | 1415 | 1447 | 1304 | 1365 | 1437 | 1521 | 1265 | 1437 | 1554 | 2049 | 1393 | 1177 | 1138 | 1455 | 2095 | 1081 | 938 | 1491 | 500 | out N,al |
in al,N | 127 | 538 | 1005 | 1436 | 1852 | 869 | 796 | 935 | 1445 | 1302 | 1288 | 1436 | 570 | 568 | 643 | 605 | 2044 | 668 | 427 | 1146 | 710 | 2086 | 1189 | 1005 | 1432 | 500 | in al,N |
out dx,al | 1218 | 1254 | 1150 | 1485 | 1911 | 1247 | 1253 | 1259 | 1445 | 1303 | 1370 | 1437 | 992 | 840 | 948 | 1008 | 2044 | 1001 | 761 | 1117 | 1009 | 2095 | 1039 | 913 | 1340 | 500 | out dx,al |
in al,dx | 1250 | 1111 | 1050 | 1616 | 1854 | 1348 | 1121 | 1167 | 1444 | 1304 | 1293 | 1478 | 918 | 846 | 946 | 955 | 2046 | 872 | 513 | 1116 | 902 | 2095 | 1156 | 997 | 1307 | 500 | in al,dx |
rdtsc | 3.0 | 34.3 | 6.1 | 5.7 | 6.7 | 33.2 | 33.1 | 36.4 | 6.5 | 11.9 | 6.5 | 7.7 | 52.2 | 47.9 | 54.0 | 80.0 | 15.3 | 655 | 41.6 | 47.1 | 158 | - | - | - | - | 500 | rdtsc |
fnsave | 88.0 | 115 | 171 | 219 | 226 | 208 | 209 | 229 | 249 | 302 | 318 | 347 | 513 | 494 | 554 | 597 | 459 | 584 | 1592 | 1727 | 2024 | 3167 | - | - | 8815 | 500 | fnsave |
fsave | 90.5 | 117 | 184 | 234 | 248 | 215 | 218 | 238 | 273 | 324 | 363 | 391 | 592 | 562 | 638 | 672 | 493 | 635 | 1761 | 1938 | 1783 | 3301 | - | - | 9452 | 1000 | fsave |
frstor | 81.5 | 103 | 198 | 286 | 259 | 240 | 241 | 265 | 285 | 396 | 382 | 395 | 843 | 915 | 1015 | 914 | 754 | 1051 | 2084 | 1827 | 2384 | 5849 | - | - | 17111 | 500 | frstor |
fxsave | 125 | 293 | 254 | 308 | 283 | 465 | 478 | 347 | 345 | 316 | 646 | 656 | 705 | 672 | 757 | 810 | - | 819 | - | - | - | - | - | - | - | 500 | fxsave |
fxrstor | 203 | 285 | 314 | 383 | 365 | 487 | 536 | 410 | 451 | 511 | 652 | 630 | 739 | 884 | 1006 | 804 | - | 909 | - | - | - | - | - | - | - | 500 | fxrstor |
memfill stosd (4KB) | 2579 | 1798 | 4732 | 6555 | 6455 | 4566 | 4865 | 5369 | 7922 | 9353 | 10572 | 11180 | 13818 | 13408 | 14863 | 16684 | 44897 | 19005 | 47215 | 62138 | 26937 | 133242 | 130728 | 164248 | 227936 | 1024500 | memfill stosd (4KB) |
memcopy movsd (4KB) | 3987 | 4201 | 8523 | 11218 | 12401 | 9903 | 10494 | 10027 | 13869 | 18924 | 19728 | 19255 | 28872 | 28125 | 31964 | 30824 | 75437 | 40964 | 63247 | 150471 | 101394 | 513694 | 306708 | 486878 | 729060 | 1025000 | memcopy movsd (4KB) |
memfill MMX0 (4KB) | 1795 | 2468 | 4141 | 5257 | 4948 | 4026 | 4167 | 3753 | 6196 | 6683 | 10234 | 9503 | 15997 | 18163 | 21066 | 15529 | 43768 | 21378 | - | 31650 | - | - | - | - | - | 289000 | memfill MMX0 (4KB) |
memcopy MMX0 (4KB) | 3312 | 4396 | 8580 | 9927 | 10193 | 9235 | 9889 | 4507 | 12140 | 16660 | 20936 | 20172 | 29904 | 28331 | 31313 | 33920 | 37523 | 35070 | - | 121109 | - | - | - | - | - | 577500 | memcopy MMX0 (4KB) |
memfill MMX0..7 (4KB) | 1853 | 2015 | 4354 | 4578 | 4852 | 3983 | 4651 | 2416 | 5986 | 6448 | 9203 | 9471 | 17452 | 17432 | 18853 | 19595 | 15586 | 18448 | - | 31189 | - | - | - | - | - | 289000 | memfill MMX0..7 (4KB) |
memcopy MMX0..7 (4KB) | 4036 | 3947 | 8845 | 10845 | 10294 | 9183 | 9716 | 6288 | 12053 | 13997 | 20500 | 19715 | 32342 | 33149 | 37978 | 30647 | 71129 | 39013 | - | 121330 | - | - | - | - | - | 577500 | memcopy MMX0..7 (4KB) |
total time (without In/Out) | 164 us | 228 us | 339 us | 407 us | 428 us | 429 us | 433 us | 436 us | 474 us | 602 us | 612 us | 627 us | 982 us | 988 us | 1108 us | 1151 us | 1180 us | 1204 us | 2999 us | 3256 us | 3455 us | 8998 us | 15342 us | 19497 us | 20997 us | 27757 us | total time (without In/Out) |
User nick | Kamil | Brano Work 1 | Zet | Michal Honz | Mirek Hal 2 | Brano Work 2 | IJS | Dejvino | Panda 2000 | Mirek Hal | Brano Inco | Tomas 1600 | Lotty 600 | Tomas 675 | Tomas 600 | Lotty 400 | Filip | Panda 500 | JAK Emil 1 | Panda 166 | Panda 200 | Panda 66 | Panda 40 | Kamil 33 | Panda 33 | Bochs | User nick |
Instruction times are in nanoseconds