This is primarily about setting realistic expectations but what kind of performance increases should one expect when going from a Panda II to a Cobra II?
I have previously written some managed code for the Panda II which parses a fairly long byte array, looking for a specific pattern of bytes and returning its index.
That code has since been ported to a Cobra II by starting a new 4.2 project, adding the source code, and updating references and namespaces to agree with the 4.2 convention.
Shockingly, the execution times between the Panda II and Cobra II programs are almost exactly the same. In fact, the Cobra II is a tiny, tiny smidge slower. This was not the outcome I was expecting. Mainly due to the improvement in DMIPS when going from an ARM7 to Cortex-M3, I was expecting perhaps a 50% speed boost.
Was this a naive expectation? Does the managed layer swamp any processor gains? Perhaps the G120 incurs additional latency when accessing its much larger RAM?
Basically, typically how much faster should a G120-based solution be?
a g120 solution will not be faster. as you saw, it will be a Little slower. this is due to the use of external memory with the g120 versus internal memory with the USBizi chip.
What you see is expected. Many factors come in play, not just the CPU clock.
By the way, there is a way to make G120 runs almost double fast by overclocking the SDRAM but that is beyond what the manufacture recommends. You can look at teh CPU datasheet if you want to change the clock device on SDRAM from 2 to 1, using the Register class.
Oh, and that post does mention a wait time of a few weeks, but since this project is for a commercial product, I’m looking for a more refined estimate. Is a “few weeks” analogous to a month from now? Or closer to 3 months in the future?
@ Iggmoe - Thanks for your sharing this information. I was also expecting a huge performance boost from the g120 over the Panda, so thanks for sharing your experience.
@ Iggmoe - I too am surprised! However, I remember a post on this forum many months ago comparing the speed of a Panda II to a Cobra I, and the author of the post was surprised to find that the Cobra I was actually slower than the Panda II. The reason was the same, the Cobra was accessing external RAM.
Hmm, by setting Bit 0 of the EMCCLKSEL register to 0, I got a 32.3% speed boost for my particular process. The speed is currently borderline for what I need, so RLP may still be needed, but hey, it’s pretty cool to see it work!
Is this the perform-at-your-own-risk overclocking technique that’s been mentioned for the G120? I ask because it seemed a little too easy =)
Dunno if something else needs to be done.