Subject: | |
From: | |
Reply To: | |
Date: | Thu, 3 Apr 1997 10:15:21 -0800 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
Reid asks:
> I am wondering if anybody has information about the caching
> configuration and strategy in an HP 9000 -715/100. Or any pointers to
> where this information can be found. I've looked around on the HP site
> and haven't found anything but I definitely could have missed it.
>
> I am looking for all details including L1, L2 cache sizes,
> replacement strategy, associativity, write-back strategy, etc.
>
> Would there be a better newsgroup to post this to?
Yes, comp.sys.hp.hpux
However, here's an old script I got from comp.sys.hp.hpux in 1995, which
seems to report some of the information you wanted, but I don't have
a 9000 715 to run it on.
------------------------------------cut here------------------------------------
#! /bin/sh
# Script produces cache size/type info.
# User must be logged on as root
# SYS=/hp-ux for pre HP-UX 10.x systems
SYS=/stand/vmunix
MEM=/dev/kmem
TMP=/tmp/$$.prevpanic
trap 'trap "" 0 1 2 15; rm -f $TMP' 0 1 2 15
if [ ! -r $SYS ]
then
echo >&2 $0: cannot read $SYS
exit 1
fi
if [ ! -r $MEM ]
then
echo >&2 $0: cannot read $MEM
exit 1
fi
cat <<EOF | adb $SYS $MEM 2> /dev/null | sed -n -e '2,$s/.*: //p' > $TMP
cache_tlb_parms+0d0/D
cache_tlb_parms+0d4/D
cache_tlb_parms+0d24/D
cache_tlb_parms+0d28/D
cache_tlb_parms+0d48/D
cache_tlb_parms+0d52/D
cache_tlb_parms+0d84/D
cache_tlb_parms+0d88/D
EOF
if [ ! -s $TMP ]
then
echo >&2 $0: info not present in this kernel
exit 1
fi
exec < $TMP
echo ICACHE:
read ISIZE
echo " $ISIZE bytes"
read ICONF
BLOCK=`expr $ICONF / 16777216 % 256`
LINE=`expr $ICONF / 2097152 % 8`
LINESIZE=`expr $BLOCK \* $LINE \* 16`
echo " $LINESIZE byte cache line"
SH=`expr $ICONF / 65536 % 2`
case $SH in
0) echo " separate I and D caches" ;;
1) echo " shared I and D caches" ;;
esac
ASSOC=`expr $ICONF % 256`
echo " $ASSOC way associative"
echo DCACHE:
read DSIZE
echo " $DSIZE bytes"
read DCONF
BLOCK=`expr $DCONF / 16777216 % 256`
LINE=`expr $DCONF / 2097152 % 8`
LINESIZE=`expr $BLOCK \* $LINE \* 16`
echo " $LINESIZE byte cache line"
WT=`expr $DCONF / 131072 % 2`
case $WT in
0) echo " write-to" ;;
1) echo " write-through" ;;
esac
SH=`expr $DCONF / 65536 % 2`
case $SH in
0) echo " separate I and D caches" ;;
1) echo " shared I and D caches" ;;
esac
ASSOC=`expr $DCONF % 256`
echo " $ASSOC way associative"
echo ITLB:
read ITSIZE
case $ITSIZE in
0) echo " no instruction TLB" ;;
*) echo " $ITSIZE entries"
read ITCONF
HW=`expr $ITCONF / 131072 % 2`
case $HW in
0) echo " software instruction TLB" ;;
1) echo " hardware instruction TLB" ;;
esac
SH=`expr $ITCONF / 65536 % 2`
case $SH in
0) echo " separate I and D TLBs" ;;
1) echo " shared I and D TLBs" ;;
esac
ASSOC=`expr $ITCONF % 256`
echo " $ASSOC way associative"
;;
esac
echo DTLB:
read DTSIZE
case $DTSIZE in
0) echo " no data TLB" ;;
*) echo " $DTSIZE entries"
read DTCONF
HW=`expr $DTCONF / 131072 % 2`
case $HW in
0) echo " software data TLB" ;;
1) echo " hardware data TLB" ;;
esac
SH=`expr $DTCONF / 65536 % 2`
case $SH in
0) echo " separate I and D TLBs" ;;
1) echo " shared I and D TLBs" ;;
esac
ASSOC=`expr $DTCONF % 256`
echo " $ASSOC way associative"
;;
esac
exit 0
------------------------------------cut here------------------------------------
--
Stan Sieler [log in to unmask]
http://www.allegro.com/sieler.html
|
|
|