Another Performance Question


Optimus

Member
Joined
May 8, 2005
Messages
339
Age
44
Location
Greece
Website
optimus.untergrund.net
It's gonna probably be a silly question (yeah I know, there are no such things as silly questions) and if I knew more about hardware architecture or something I would already know, but..

If you take a Caanoo and underclock it to the Mhz of a GP2X for example, why the performance would be much worse than the GP2X at the same Mhz?
Then, if you take a GP2X and underclock it to the Mhz of GP32 why the performance would be like crawling?

An example (on Wiz because I found batterytest to underclock there and then run other stuff from the menu at the same speed): Wiz underclocked to 133Mhz. Even the blitting test on my gpmark makes 60fps (182 without blit), plasma make 20-30fps (60 without blit). I know the same tests on GP32 (it's broken now but I remember similar older tests) were performing enormously well (150fps or more). I know even the GBA at almost 16Mhz could make those numbers (but ok different resolution).

I mean,. the numbers are not what expected. Of course I know there are memory bottlenecks, it's not just the MHz, but if memory bottlenecks make the Caanoo/Wiz at normal speed not reach it's MHz potential, at least I would expect that underclocking it to the Mhz of their predecesors would make them around the same or maybe a bit worse because of different architecture or something. But not extremely worse. I don't expect an 133Mhz ARM to run those effects at 20-30fps only. That would be like GBA at 16 maybe.

Stupid questions for someone who knows it's not just the Mhz, which I know too. But if you underclock every gamepark to the normal or max Mhz of it's previous predecesor it always gets quite slower, crawling. Why?

p.s. Also, is it true that the GP2X memory had better bandwidth from Caanoo/Wiz memory? I remember I have read that somewhere but what are the details?
 
The GP2X runs dual CPU's at 200 Mhz, I don't know if both of those CPU's were being used in your benchmark though but maybe the operating system is still being offloaded to the second CPU.

Also I think the GP2x vs Wiz/Cannoo would be different because the Wiz/Cannoo uses software while the GP2x uses direct hardware which would be faster. I think Nintendo also highly optimized for the GBA where everything is running directly on the hardware and remember there is no operating system.
 
No, it's not the second CPU. You have to program it yourself to gain from it.
Well, I read somewhere and confirmed GP2X has 32bit memory bus while GP32, Caanoo and Wiz have 16bit. But still not enough for those results.

But I think I have a clue about the reason. I think when people over/underclock the change various memory and CPU timings to synchronize (it's all those obscure values I copied for my projects and never tried to find out why, doh :p ). So maybe, a handheld that naturally runs in 533Mhz, to underclock it to say 133Mhz one would have to change those memory timings in such a way that they would be way much worse than timings in a GP32 at normal speed for example. This is what I think it could be the reason but maybe we will hear another opinion.

Atm, I am download and checking Pollux datasheet, forum discussions for tech stuff, to learn the tech things I was missing all those years :p
 
Darkknight512 said:
The GP2X runs dual CPU's at 200 Mhz, I don't know if both of those CPU's were being used in your benchmark though but maybe the operating system is still being offloaded to the second CPU.

The OS was never offloaded to the second core. Only applications could use it. I think the only gph app to use it was their video player.
 
Last edited by a moderator:
Optimus said:
But I think I have a clue about the reason. I think when people over/underclock the change various memory and CPU timings to synchronize (it's all those obscure values I copied for my projects and never tried to find out why, doh :p ). So maybe, a handheld that naturally runs in 533Mhz, to underclock it to say 133Mhz one would have to change those memory timings in such a way that they would be way much worse than timings in a GP32 at normal speed for example. This is what I think it could be the reason but maybe we will hear another opinion.
More precisely, in the Wiz/Caanoo case the AHB bus (the bus between CPU and RAM) clock is divided from CPU clock by 4. So when you underclock to 133MHz you get 33MHz AHB bus which is way below memory bus speed on GP32, which I assume is at least half of CPU clock (haven't checked that).
 
Last edited by a moderator:
AHB bus is divided by 3 for most clocks AFAIK, but it probably depends on firmware revision and whatever additional nonsense. It's possible to set the clock division differently depending on how the clock scheme works, really it depends on what the over/underclocking code is doing.

The RAM subsystem is really totally different.. on Wiz and Caanoo DDR-SDRAM is used, but it's only 16-bit. The kicker is that you can only burst up to 2 words, so only 32-bits. On GP2X at least you could burst 8 32-bit words, an entire cache line. So cache misses scale worse than you would expect, especially if you need to writeback a line. The latency cycles for the memory bus (before it gets off the chip) could also be different. Non-cached loads and stores were expensive for me on Wiz.
 
Back
Top