SUMMARY: How fast is my CPU?

From: Lisa Henry (lisah@bdc.cirrus.com)
Date: Tue Aug 08 1995 - 12:20:19 CDT


Hey, thanks to everyone for the fast responses. My original question was:

> I have several Sparc20s running SunOS4.1.3, and I need to order secondary processors
> for them. I apparently need to install CPUs of the same speed as the existing ones,
> but I don't know what they have now. Is there a software command to query the
> CPU speed? If not, I can take one of them apart, but I'd rather not.

There were three general trains of thought on the subject, with a couple
good suggestions and a few words of caution.

One solution was to run the appended script recommended by the following
people:

From: John Mendenhall[SMTP:jmende01@mcs.eds.com]
From: Russ Poffenberger[SMTP:poffen@San-Jose.ate.slb.com]
From: Thomas Chai[SMTP:jhchai@bass.com.my]
From: Claus Assmann[SMTP:ca@mine.informatik.uni-kiel.de]
From: Martin Oksnevad[SMTP:martin@stavanger.Geco-Prakla.slb.com]

It uses the /usr/etc/devinfo command for SunOS4, which was also suggested
apart from this script.

---- cut here ----
#!/bin/sh
#
# sunmodel
#
# Parse output from devinfo/prtconf
# and display the kind of Sun and its clock
# frequency.
#
# Jan Wortelboer (janw@fwi.uva.nl)
# idea from Chris Metcalf, metcalf@lcs.mit.edu
# version 1.6.1 6 April 1994
# changed trying to adjust to SPARCstation 20 and SPARCstation 5
version=`uname -r`
hostje=`uname -n`
name=
bname=
freq=0
cpus=0
cpu=
cpuc=
cpuf=0
name_freq=0
fb=
export name bname freq
case $version in
6.*|5.*)
        # solaris machine
        pr_conf="/usr/sbin/prtconf -vp"
        ;;
4.*)
        # sunos 4 machine
        pr_conf="/usr/etc/devinfo -vp"
        ;;
*)
        echo cant determine sunmodel
        exit 1
;;
esac

$pr_conf | ( egrep 'clock-frequency:|name:|cgthree|cgsix|cgtwelve' ; echo end ) | while read pr_line
do
        case $pr_line in
        clock-frequency:*)
                if [ "$freq" = 0 ]
                then
                        set $pr_line
                        hex_freq=`echo $2 | tr '[a-z]' '[A-Z]'`
                        freq=` ( echo "ibase=16" ; echo $hex_freq ) | bc`
                        freq=`expr $freq \/ 100000 | sed 's/\(.*\)\(.\)/\1.\2/'`
                else
                        set $pr_line
                        name_hex_freq=`echo $2 | tr '[a-z]' '[A-Z]'`
                        name_freq=` ( echo "ibase=16" ; echo $name_hex_freq ) | bc`
                        name_freq=`expr $name_freq \/ 100000 | sed 's/\(.*\)\(.\)/\1.\2/'`
                fi
        ;;
        banner-name:*)
                bname=`echo $pr_line | sed 's/.*banner-name:[ ]*//'`
                #pcount=`echo $pr_line | sed 's/.*(\(.*\) X.*//'`
        ;;
        *cgthree*)
                fb=CG3
        ;;
        *cgsix*)
                fb=GX
        ;;
        *cgtwelve*)
                fb=GS
        ;;
        name:*)
                if [ "$name" = "" ]
                then
                        name=`echo $pr_line | sed 's/.*name:[ ]*//'`
                        if [ "$bname" = "" ]
                        then
                                bname=$name
                        fi
                fi
                case $name in
                        *4/20*)
                                bname="'SPARCstation SLC'"
                        ;;
                        *4/25*)
                                bname="'SPARCstation ELC'"
                        ;;
                        *4/40*)
                                bname="'SPARCstation IPC'"
                        ;;
                        *4/50*)
                                bname="'SPARCstation IPX'"
                        ;;
                        *4/60*)
                                bname="'SPARCstation 1'"
                        ;;
                        *4/65*)
                                bname="'SPARCstation 1+'"
                        ;;
                        *4/75*)
                                bname="'SPARCstation 2'"
                        ;;
                esac
                fname=`echo $pr_line | sed 's/.*name:[ ]*//'`
                case $fname in
                        *Cypress,CY605*)
                                cpu='Cypress,CY605'
                                cpus=`expr $cpus + 1`
                                cpuf=$name_freq
                                cpuc=
                        ;;
                        *TI,TMS390Z55*)
                                cpu="Texas Instruments TMS390Z55 1MB S.Cache"
                                cpus=`expr $cpus + 1`
                                cpuf=$name_freq
                                cpuc=1
                        ;;
                        *TI,TMS390Z50*)
                                cpu="Texas Instruments TMS390Z50"
                                cpus=`expr $cpus + 1`
                                cpuf=$name_freq
                                cpuc=
                        ;;
                        *TI,TMS390S10*)
                                cpu="Texas Instruments TMS390S10 (MicroSparc)"
                                cpus=`expr $cpus + 1`
                                cpuf=$name_freq
                                cpuc=
                        ;;
                esac
                name_freq=0
        ;;
        end)
                if [ $cpuf = 0 ]
                then
                        cpuf=$freq
                fi
                if [ `expr "$bname" : "'.*39.Z.*'"` != 0 -a `expr "$bname" : ".*[21]000.*"` = 0 ]
                then
                case $cpuf in
                        33.0|30.0)
                                if [ "$cpus" != 1 ]
                                then
                                        bname="$bname '(Model 2$cpus)'"
                                else
                                        bname="$bname '(Model 20)'"
                                fi
                                freq=$cpuf
                                ;;
                        36.0)
                                if [ "$cpus" != 1 ]
                                then
                                        bname="$bname '(Model 3$cpus)'"
                                else
                                        bname="$bname '(Model 30)'"
                                fi
                                freq=$cpuf
                                ;;
                        40.3)
                                if [ "$cpus" != 1 ]
                                then
                                        bname="$bname '(Model 4${cpuc}${cpus})'"
                                else
                                        bname="$bname '(Model 41)'"
                                fi
                                freq=$cpuf
                                ;;
                        45.0|50.0)
                                if [ "$cpus" != 1 ]
                                then
                                        bname="$bname '(Model 5${cpuc}${cpus})'"
                                else
                                        bname="$bname '(Model 51)'"
                                fi
                                freq=$cpuf
                                ;;
                        60.*)
                                if [ "$cpus" != 1 ]
                                then
                                        bname="$bname '(Model 6${cpuc}${cpus})'"
                                else
                                        bname="$bname '(Model 61)'"
                                fi
                                freq=$cpuf
                                ;;
                esac
                else
                        if [ $cpus -gt 1 ]
                        then
                                bname="$bname ($cpus X $cpu cpus)"
                        fi
                fi
                echo Machine $hostje: $bname @ $cpuf MHz
        ;;
        *)
                echo -n
        ;;
        esac
done

---------------------

From: Michael Tripoli[SMTP:miket@Seagate.COM]

Use these commands to determine your modules speed.

        /usr/etc/devinfo -pv (SunOS 4.1.3)
        /usr/sbin/prtconf -pv (Sun0S 5.x)

I ran this on a SS10, look for the following:

    Node 0xffd4b4e0
        clock-frequency: 02faf080
        implementation: 00000000
        version: 00000001
        name: 'TI,TMS390Z55'

"name" = TI,TMS390Z50 for a model 30
"name" = TI,TMS390Z55 for a model 40 or 41
"name" = TI,TMS390Z55 for a model 51

"clock-frequency" is the speed of the module clock in hexadecimal.

        frequency model
        ------------------------
        02255100, 36 MHz 30
        02625a00, 40 MHz 41
        02faf080, 50 MHz 51

Be aware, there are three instances of clock-frequency for various nodes.
These correspond to the SBus speed, the M/XDbus speed and the module
speed. Be certain to reference the clock-frequency entry for the module
node.

        Michael Tripoli
        Seagate Technology, Inc.
        Email: miket@seagate.com
        Voice: (408)439-7624
        FAX #: (408)439-7313
                

=============================================================================

Another solution was to halt the system and use the 'module-info' command
from the ok> prompt. I'll try this the next time I halt the systems.

Thanks to:

From: Paul Woods[SMTP:woodsp@smtplink.Indigo.co.il]
From: Peter Savage[SMTP:peter@ukhayq.CV.COM]
From: Glenn Satchell[SMTP:Glenn.Satchell@uniq.com.au]
From: Endre Polgar Technical Support Engineer ICON Ltd.[SMTP:epolgar@petra.icon.hu]
From: floating point solutions ltd[SMTP:john@float.demon.co.uk]

A good suggestion was:

From: Martin Oksnevad[SMTP:martin@stavanger.Geco-Prakla.slb.com]

The program will tell you if you have a model 50, 51, 61 or 71.

DON'T just buy a second processor for all the SS20 machines as they are.
You should combine two and two equal CPUs from the machines you have
into dual CPU machines and buy additional faster CPUs of your preferance
for the machines which will be without CPUs. Ie. if all your machines
are model 51 don't buy additional 51 CPUs and make all the SS20s model
512s, but buy model 71 CPUs and make some faster model 712s in addition
to the 512s made out of the CPUs you have now.

Martin

===================================================================

And also, the sysinfo program:

From: Petros Michalis[SMTP:michalis@dpg.rnb.com]

Lisa,
sysinfo will do the job for you, you can find it in any sunsite and
probably on uunet and wuarchive. If you opt to open up the stations,
you will find the MHz info right on the crystal on the CPU board(s),
usually located near the end of the board.

Regards,
        Petros

===================================================================

Some words of caution:

From: Chris Petroff[SMTP:chris@caissa.onenet.net]

You will need to upgrade to Solaris 2 in order to use more than one processor.
Solaris 1 does not have the ability to run in multiprocessor mode. You
can install additional proessors, but only one will be used until you move
to Solaris 2.x

From: Martin Oksnevad[SMTP:martin@stavanger.Geco-Prakla.slb.com]

Warning 1: You need boot-prom revision 2.22 before you can use
           one or two model 71 CPUs in a SS20 (also valid for SS10).
           Sun will sell you a new boot-prom for less than $100 if
           you don't get a new boot-prom together with your new CPUs.

Warning 2: Sun claims that dual CPU configurations with SunOS4.1.3 is
           unsupported. Many are running SunOS4.1.3 on dual CPU machines
           with luck but if it doesn't work for you you have to go back
           to a single CPU configuration.

Which is just another good reason to upgrade to Solaris 2, which I'm
planning in the next few months. Thanks.

===================================================================

Thanks again to everyone.

Lisa



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:10:31 CDT