View Full Version : Performance questions


missile
13-11-2002, 05:49 PM
Salve!

I'm somewhat interested in programing mathematical applications on the
P800, for the working scientist. Some of the written algorithms should also
be used in games. To do this efficiently, I have to know the given
architecture, esp. about the core and the memory interface, very well.

I already know, the P800 utilizes an ARM9 core. But there are differnt
ARM9 core's. So, which one does we have? I guess, its an ARM926EJ-S.
See: http://www.arm.com/armtech/ARM926EJ_S?OpenDocument
and http://www.arm.com/aboutarm/4X8JCD/$File/ARM926EJ-S.pdf
Because, if you watch the specs. of this core and the specs. of the P800,
then this might be a conclusion. Obviously, the main core must be one
of the ARM9***J** core's, because this 'J' stand for 'Java acceleration'.
If this is true, then we will have about 180MHz in the worst case.
But, I do not believe this! Compared to the GBA (GameBoyAdvance),
which utilizes an ARM7TDMI@16.78MHz (yes, only 16.78MHz!), the
ARM techpaper says : ARM7TDMI would have at worst 90MHz.
Hence, ... . See: http://www.arm.com/armtech/ARM7TDMI?OpenDocument
Anyway. Is seems that we can use some already wirtten binary code (and
also asm source code) from the GBA, becuase the the ARM7TDMI core is
"binary-compatible with other members of the ARM7 Family and forwards
compatible with ARM9, ARM9E and ARM10 families." This ease creating
games or whatsoever for the P800 somewhat, because there is already
a developer community about the GBA.

Does anybody know someting more about the P800 core?
I have quest some developers, currently developing games for the
P800, but without success. There are pictures on the web, where you
can see a decomposed P800 model. But I cannot figure out the letters
on the main core. The images quality lacks a bit.

How fast and width is the memory bus between the Memery-Stick(DUO)
and the main core?

Does the main core have an FPU? I don't think so, but... (it would be nice).

Is it possible to use assembler within C++ on P800?
And, is it possible to program directly in assember?

etc..

Does anyone have some insight in all of this?

cu,
m i s s i l e

MirekCz
13-11-2002, 06:59 PM
i don't know p800 specs (besides that i have heard it uses 185mhz arm cpu), but comparing it to PPC/nokia phones cpu here are your answers:

-no fpu, floating point calcs are SLOW, 10-20 times slower then integer calcs
-mem is quite fast when looking at cpu speed(comparing to PC systems)
-divides are slow
-32bit regs
-you can use asm mixed with C++ without bigger probs
-arm asm is very easy to learn and use comparing to 80x86

in short, it's not a computer where you would want to make some complex and exact scentific calculations(lack of fast fpu, slow emulation). But it will be good for calcs that can be fit into 32bit integer values.(esp. when they use small number of divides)

missile
16-11-2002, 05:22 PM
Salve!

Nobody has some detailed technical informations? :-(


Hi, MirekCz!

> in short, it's not a computer where you would want to make some complex and exact
> scentific calculations(lack of fast fpu, slow emulation). But it will be good for calcs that
> can be fit into 32bit integer values.(esp. when they use small number of divides)

Yes, for sure!
Without an FPU, floating-point calculations gets slow. But 'slow' compared to what?
If you compare to an actual PC, then we are really slow. I remember using a raytracer
on a 286 at 16MHz, and also an enhanced mathemtical calculator on a 386w/FPU at
25MHz. This programs were very usable to me. And I also have used an raytracer on
a Amiga500 at 4MHz. Amiga, the good old times. ;-) So, if the ARM9 core, in the
P800, can utilize 180MHz, then we can do a lot of calculations. Compare to the
GameBoy Advance (16MHz) there is also no FPU, but this hasn't stop people from
making nice looking 3D demos. And with 180MHz on the P800 we can do fast fixed-
point math calculations with the aid of some shifting tricks written in asm.

Anyway. To have a Linear Equation Solver, a Root Finder or an Integrator should
not be really a problem for the ARM9 in the P800. And, to have an raytracer on the
P800 would also be nifty thing, heh? Btw; We don't have to do such things in
real-time.


cu,
m i s s i l e

MirekCz
16-11-2002, 10:04 PM
missile:well, i would say 180mhz arm in integer calculations is around the same speed as 100-150mhz pentium cpu. Now divide it by 10-20 and you have got fpu speed.

Regarding 3d engines.. yes sure, they all use 16:16fixedpoint math or similar.. but that's not good for complex scientific calculations where you would rather tend to use double variables:-)

All the things you mentioned aren't a problem to do on ARM with little help from asm, but your calcs will be done using fixedpoint math which might not give you accurate enought results. And when you start to use fpu calculations you will get a big performace hit.

It's best for you if you try and see if it satisfies you. Comparing to pentium cpu you should see about 50-75% of cpu speed and 5-10% fpu speed with the same clock. Those are of course numbers taken from the top of my head and might vary quite much.

regarding ram transfer speed, 206mhz strongarm cpu could transfer around 25mb/s using dwords.

missile
17-11-2002, 05:44 PM
Hi Mirek!

> Regarding 3d engines.. yes sure, they all use 16:16fixedpoint math or similar..

> but that's not good for complex scientific calculations where you would rather tend to
> use double variables:-)

'complex scientific calculations' ?
Its not my goal to write a partial differential equation solver, for fluid dynamic problems, on
the P800. ;-) For sure, that is impossible. As I said "...for the working scientist" and not
"for scientific research". This will be done in the future.

In the fist place, I envision a powerful mathematical calculator on the P800, like the graphical
calculator TI-92 from Texas Instruments. This calculator has only an MC68000 at 10MHz
and 68k bytes of memory. But you can solve a lot of small problems, on the fly, with the
TI-92. A lot of students of engineering science, here at the university, have bought such
a device. At least, this can also be done with a P800. And also do we have a better
display, colored and pressure sensitive (hence, a touch-screen) for better user interactions.
Writing such a software (like the TI-92 software) , or parts of it, for the P800, can bring a
lot of joy to some people. Heh? :-)

However, I need more insight to the internal structure of the P800.
I think, buying a developer kit from Metrowerks would clear a lot of things.

cu,
m i s s i l e

MirekCz
17-11-2002, 09:07 PM
hehe, 400 or 1000+$? no thank you.
And you don't seem to need much details.. just download some docs regarding arm cpus from arm site:) www.arm.com There are even few bits of code for fixedpoint math in arm asm etc...