News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

CPUID Dump for Early Pentiums

Started by dedndave, June 28, 2014, 03:12:18 AM

Previous topic - Next topic

dedndave

i am trying to see if i can correctly identify early pentiums
so, if you have a pre-P4 pentium your help would be much appreciated   :t

  Leaf      EAX      EBX      ECX      EDX

00000000: 00000005 756E6547 6C65746E 49656E69
00000001: 00000F43 00020800 0000649D BFEBFBFF
00000002: 605B5001 00000000 00000000 007D7040
80000000: 80000008 00000000 00000000 00000000
80000001: 00000000 00000000 00000000 20100000

              Intel(R) Pentium(R) 4 CPU 3.00GHz

Press any key to continue ...


and, if you know which one you have - add that, too   :biggrin:

FORTRANS

Hi Dave,

   Here are the two (currently) easy ones.  Results for P-III and
P-II.  The plain pentium would require a DOS version.  But ask for
any of the others I have been reporting results with, if you want
to.

  Leaf      EAX      EBX      ECX      EDX

00000000: 00000002 756E6547 6C65746E 49656E69
00000001: 00000683 00000002 00000000 0383F9FF
00000002: 03020101 00000000 00000000 0C040882
80000000: 03020101 00000000 00000000 0C040882
80000001: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF

Press any key to continue ...

  Leaf      EAX      EBX      ECX      EDX

00000000: 00000002 756E6547 6C65746E 49656E69
00000001: 00000652 00000000 00000000 0183F9FF
00000002: 03020101 00000000 00000000 0C040843
80000000: 03020101 00000000 00000000 0C040843
80000001: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF

Press any key to continue ...


   Why not continue with the other P5 thread?

Cheers,

Steve N.

dedndave

i thought of that, just as i clicked the button   :(

but - thanks for the info   :t

dedndave

;683h, brand 2, L2 cache 82h  0110 1000 0011  brand ID = 2 -> pentium III (not pentium III xeon, celeron, mmx)
;652h, brand 0, L2 cache 43h  0110 0101 0010  L2 = 512K -> pentium II (not pentium II xeon, celeron)


i'd like to try as many of the old ones as i can, Steve - thanks, again   :t

i guess my little program should check before storing 80000000h info
but, that's ok - i can interpret it as is

Gunther

Dave,

I've an old AMD chip (pre Pentium era). Would that help, too?

Gunther
You have to know the facts before you can distort them.

MichaelW

I have a K6-233 and a K5-PR133 (that I think supports CPUID), both easily accessible.
Well Microsoft, here's another nice mess you've gotten us into.

dedndave

it might be interesting to see them - and it wouldn't hurt
my primary goal with this thread was to figure out "brand string" names on older intel chips that don't have one internal

but, post whatever you have   :t

FORTRANS

Quote from: dedndave on June 28, 2014, 08:11:40 AM
i'd like to try as many of the old ones as i can, Steve - thanks, again

Hi,

   Okay, here are the other three systems, unlabeled is the P-MMX.

  Leaf      EAX      EBX      ECX      EDX

00000000: 00000002 756E6547 6C65746E 49656E69
00000001: 000006D6 00000816 00000180 AFE9F9BF
00000002: 02B3B001 000000F0 00000000 2C04307D
80000000: 80000004 00000000 00000000 00000000
80000001: 00000000 00000000 00000000 00000000

        Intel(R) Pentium(R) M processor 1.70GHz

Press any key to continue ...

  Leaf      EAX      EBX      ECX      EDX

00000000: 00000001 756E6547 6C65746E 49656E69
00000001: 00000543 00000000 00000000 008001BF
00000002: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
80000000: 00000000 00000000 00000000 00000000
80000001: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF

Press any key to continue ...

  Leaf      EAX      EBX      ECX      EDX

00000000: 00000002 756E6547 6C65746E 49656E69
00000001: 00000695 00000813 00000180 A7E9F9BF
00000002: 02B3B001 00000000 00000000 2C043086
80000000: 80000004 00000000 00000000 00000000
80000001: 00000000 00000000 00000000 00000000

Mobile Intel(R) Celeron(R) processor     600MHz

Press any key to continue ...


   The Celeron is acting up, boo hoo.  It took three reboots
to get XP running.

Cheers,

Steve

dedndave

#8
thanks again, Steve   :t

that's quite an interesting collection, you have

;543h, brand   0, cache xx   0101 0100 0011                    Pentium (I) MMX
;652h, brand   0, cache 43h  0110 0101 0010  L2: 512K       -> Pentium II (not Pentium II Xeon, Celeron)
;683h, brand   2, cache 82h  0110 1000 0011  brand ID = 2   -> Pentium III (not Pentium III Xeon, Celeron)
;695h, brand 13h, cache 86h  0110 1001 0101                    Pentium (III) Celeron M
;6D6h, brand 16h, cache 7Dh  0110 1101 0110                    Pentium (III) M


the family 5 intel chips are pretty straightforward to identify
(you have to watch out for the pre-B0 stepping issue)
it's the earlier family 6 chips that can be tough
what's nice about your collection is, you can see history unfold - and the brand strings appear   :biggrin:

family 6, model 8, no brand string
family 6, model 9, has brand string

this was something i could not learn from documentation   :t

;family 5 are all Pentium I class
;
;family 6 groups:
;model 1         Pentium Pro (essentially a Pentium II class processor)
;model 3-6       Pentium II class
;model 7 and up  Pentium III class
;
;family 6, model 9 and up provide brand strings
;family 6, model 0Dh, Intel stopped using the "III" designator
;family 6, models 5, 7, and 8 require some effort to identify

FORTRANS

Hi Dave,

   You are welcome.  Nice to see that in a cleaned up format.

   Brings to mind the "family 6" versus "P4" commentary from
way back.  Extended pipelines, added functional units, and
hyperthreading, and OoO processing (IIRC).

Regards,

Steve N.

dedndave

;family 5 (beware of pre-B0 step issue):
;model 1, 2, 3             ->  Intel Pentium (I)
;model 4                   ->  Intel Pentium (I) MMX
;
;family 6:
;model 1                   ->  Intel Pentium Pro
;model 3                   ->  Intel Pentium II
;model 5:
;L2 cache = 0              ->  Intel Celeron (Pentium II)
;L2 cache = 1M or 2M       ->  Intel Pentium II Xeon
;L2 cache not 0, 1M, 2M    ->  Intel Pentium II
;model 6                   ->  Intel Celeron (Pentium II)
;model 7:
;L2 cache = 512K           ->  Intel Pentium III (or Xeon)
;L2 cache = 1M or 2M       ->  Intel Pentium III Xeon
;L2 cache not 512K, 1M, 2M ->  Intel Pentium III
;model 8:
;brand ID = 1              ->  Intel Celeron (Pentium III)
;brand ID = 2              ->  Intel Pentium III
;brand ID = 3              ->  Intel Pentium III Xeon
;
;leaf 0_1 EBX bits 7-0 = brand ID
;leaf 0_2 cache descriptors:
;  EAX 7-0 indicates iteration count
;  The other 15 bytes of EAX, EBX, ECX, EDX each represent a cache descriptor.
;  If the high bit of any byte is 0, it is a valid descriptor byte.
;  For family 6, model 5 and 7 CPU's, the iteration count will be 1
;  and the L2 cache descriptor is probably in EDX, bits 7-0 (verification needed):
;    40h = no L2 cache, 41h = 128K, 42h = 256K, 43h = 512K, 44h = 1M, 45h = 2M


i'm working on a little piece of code to create the strings  :P

FORTRANS

Hi,

Quote;family 6 groups:
;model 1         Pentium Pro (essentially a Pentium I class processor)

   The Pentium Pro is not a Pentium I class processor.  It is essentially
a Pentium II without MMX capability.  The Pentium Pro was noticeably
faster than the Pentium on some tasks.  And I don't recall any
programs or compilers using MMX at that time.  So there was no
downsides that we would have noticed.  Intel was having fun with
its naming conventions back then.

Regards,

Steve N.

dedndave

#12
thanks for the clarification, Steve   :t

(edited the previous post)