linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* How to caculate the MIPS of my MVME2600?
@ 2000-08-21  8:20 Gong Zhuo
  2000-08-21 14:51 ` Gabriel Paubert
  0 siblings, 1 reply; 2+ messages in thread
From: Gong Zhuo @ 2000-08-21  8:20 UTC (permalink / raw)
  To: linuxppc dev


Hi:
   I am developing program under MVME2600. But I found the program is not as
fast as I think. So I tested my computer board using the mothed like this
and get some impossible results:

  * fill the mem from 0x4000 to 0x8000 with instruction 'or r0,r0,r0'
  * DEC ==> r3, us counter value ==> r13 at 0x4000
  * DEC ==> r4, us counter value ==> r14 at 0x8000
  * breakpoint at 0x8008
  * go from 0x4000

The display of PPCbug like this:

Copyright Motorola Inc. 1988 - 1997, All Rights Reserved

PPC1 Debugger/Diagnostics Release Version 3.5 - 01/30/98 RM01
COLD Start

Local Memory Found =04000000 (&67108864)

MPU Clock Speed =200Mhz

BUS Clock Speed =67Mhz

WARNING: Keyboard Not Connected

Reset Vector Location  : ROM Bank A
Mezzanine Configuration: Single-MPU
Current 60X-Bus Master : MPUIdle MPU(s)            : NONE

System Memory: 64MB, ECC Enabled (ECC-Memory Detected)
L2Cache:       256KB

PPC1-Bug>

PPC1-Bug>bf 4000:4000 7c000378 ;w
Effective address: 00004000
Effective count  : &65536
PPC1-Bug>as 4000
00004000 3D80FEF8  ADDIS       R12,R0,$FEF8?
00004004 81AC0100  LWZ         R13,$100(R12) ($00000100)
00004008 7C7602A6  MFSPR       R3,22
0000400C 7C000378  OR          R0,R0,R0? .
PPC1-Bug>as 8000
00008000 7C9602A6  MFSPR       R4,22
00008004 81CC0100  LWZ         R14,$100(R12) ($00000100)
00008008 7C000378  OR          R0,R0,R0? .
PPC1-Bug>br 8008
BREAKPOINTS
00008008
PPC1-Bug>g 4000
Effective address: 00004000
At Breakpoint
IP     =00008008 MSR    =00003040 CR     =00000000 FPSCR  =00000000
R0     =00000000 R1     =03F78000 R2     =00000000 R3     =3F0A7D37
R4     =3F0A64CE R5     =00000000 R6     =00000000 R7     =00000000
R8     =00000000 R9     =00000000 R10    =00000000 R11    =00000000
R12    =FEF80000 R13    =0BF88E8D R14    =0BF89008 R15    =00000000
R16    =00000000 R17    =00000000 R18    =00000000 R19    =00000000
R20    =00000000 R21    =00000000 R22    =00000000 R23    =00000000
R24    =00000000 R25    =00000000 R26    =00000000 R27    =00000000
R28    =00000000 R29    =00000000 R30    =00000000 R31    =00000000
SPR0   =00000000 SPR1   =00000000 SPR8   =00000000 SPR9   =00000000
00008008 7C000378  OR          R0,R0,R0
PPC1-Bug>


The result:
r4 -r3 = 0x1869 , r14 - r13 = 0x17B (379us) . There are 0x1000 asm
instruction from 0x4000 to 0x8000 (4096), than the MIPS = 4096/379 = 10MIPS
. It's impossilbe because the MPU is 200Mhz and bus is 67Mhz. The MIPS
should be higher than 200MIPS.

  I have made some mistakes? What are they?


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: How to caculate the MIPS of my MVME2600?
  2000-08-21  8:20 How to caculate the MIPS of my MVME2600? Gong Zhuo
@ 2000-08-21 14:51 ` Gabriel Paubert
  0 siblings, 0 replies; 2+ messages in thread
From: Gabriel Paubert @ 2000-08-21 14:51 UTC (permalink / raw)
  To: Gong Zhuo; +Cc: linuxppc dev


	Hi,


> PPC1-Bug>bf 4000:4000 7c000378 ;w
> Effective address: 00004000
> Effective count  : &65536
> PPC1-Bug>as 4000
> 00004000 3D80FEF8  ADDIS       R12,R0,$FEF8?
> 00004004 81AC0100  LWZ         R13,$100(R12) ($00000100)
> 00004008 7C7602A6  MFSPR       R3,22
> 0000400C 7C000378  OR          R0,R0,R0? .
> PPC1-Bug>as 8000
> 00008000 7C9602A6  MFSPR       R4,22
> 00008004 81CC0100  LWZ         R14,$100(R12) ($00000100)
> 00008008 7C000378  OR          R0,R0,R0? .
> PPC1-Bug>br 8008
> BREAKPOINTS
> 00008008
> PPC1-Bug>g 4000
> Effective address: 00004000
> At Breakpoint
> IP     =00008008 MSR    =00003040 CR     =00000000 FPSCR  =00000000
> R0     =00000000 R1     =03F78000 R2     =00000000 R3     =3F0A7D37
> R4     =3F0A64CE R5     =00000000 R6     =00000000 R7     =00000000
> R8     =00000000 R9     =00000000 R10    =00000000 R11    =00000000
> R12    =FEF80000 R13    =0BF88E8D R14    =0BF89008 R15    =00000000
> R16    =00000000 R17    =00000000 R18    =00000000 R19    =00000000
> R20    =00000000 R21    =00000000 R22    =00000000 R23    =00000000
> R24    =00000000 R25    =00000000 R26    =00000000 R27    =00000000
> R28    =00000000 R29    =00000000 R30    =00000000 R31    =00000000
> SPR0   =00000000 SPR1   =00000000 SPR8   =00000000 SPR9   =00000000
> 00008008 7C000378  OR          R0,R0,R0
> PPC1-Bug>
>
>
> The result:
> r4 -r3 = 0x1869 , r14 - r13 = 0x17B (379us) . There are 0x1000 asm
> instruction from 0x4000 to 0x8000 (4096), than the MIPS = 4096/379 = 10MIPS
> . It's impossilbe because the MPU is 200Mhz and bus is 67Mhz. The MIPS
> should be higher than 200MIPS.
>
>   I have made some mistakes? What are they?

That the instrucctions are fetched while you are executing them and that
you measure memory bandwidth. 16kB loaded in 380 microseconds into the
I-cache sound slow but is possible given the latency of RAM accesses on
2600 and the fact that you execute unmapped, execute the code twice
without entering PPPCBUG (add a loop) and measure the execution time
again...


BTW nops on the 603e execute at the speed of 1 per clock, so it will be
about 4096 clocks (21 us). If you replace them with pairs of:

	addi	r5,r5,0
	addi	r6,r6,0

it should go twice as fast (dual issue).

Oh, and don't believe the microsecond counter that precisely, the
decrementer is much more reliable (really!). It runs always close to 16.65
MHz, while the microsecond counter has roundoff error since the bus
period is 15nS (theoretical frequency ~ 66.667 Mhz). From a collection of
MVME2600 and 2400, I always get decrementer frequencies between 16.654 and
16.667 MHz and frequency errors given by NTP range between + and -10 ppm
except when there is a frequency measurement problem at boot.

	Regards,
	Gabriel.


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2000-08-21 14:51 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2000-08-21  8:20 How to caculate the MIPS of my MVME2600? Gong Zhuo
2000-08-21 14:51 ` Gabriel Paubert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).