Question

Is there much difference (in terms of performance) between two ARM SoCs that have the same core?

e.g., What differences (aside from those that can be attributed to the different clock rates) could be expected between:

  • Apple A5, based on 1GHz dual-core ARM Cortex-A9
  • Samsung Exynos GT-I9100, based on 1.2 GHz dual-core ARM Cortex-A9

Are some ARM SoCs with the same core better than others? (if so, why?)

Was it helpful?

Solution

Snapdragon is especially different here. Qualcomm didn't license the architecture, but only the instruction set from ARM just to remain binary compatible with others.

They claim it to be more like A9 than A8, but Snapdragon unfortunately belongs rather to the worse ones among major Coretex-A SoCs.

Note that Apple's A series and Samsung's Hummingbird/Exynos are overall the top performing ones in this league.

So, if you are doing some benchmarking on an iPhone with your optimized routines, beware that it will most probably perform not that great on other platforms with different SoCs. The difference might be marginal or significant, depending on the nature of the benchmarking algorithms.

Besides, most MMU related instructions like PLD/PLI have been optional all the time along, I don't know this for sure with the ARMv7 though.

cheers

OTHER TIPS

The cores have rev numbers and that plays a roll. And sometimes you can get them with say a 32 bit AXI interface or a 64 bit AXI interface and that plays a big role in performance. Also, certainly with a Cortex-A you probably want to add an L2 cache, and that will sit between the core and stuff costing you some clocks. there are add on items to the core like the L2 that I assume you are not required to buy.

Yes, you can see differences between vendors that have bought the same core. the core itself will likely perform very much like its family members or namesake. Understand that ARM stops at the edge of the core or the cache or other ARM add ons. the chip vendor has to turn that AXI or AMBA bus into something inside and in a case like a Cortex-A likely outside the chip (DRAM for system memory for example). And that will vary from chip vendor to chip vendor and can vary dramatically. If the chip supports DDR DRAM for example they probably bought a IP from yet another vendor to implement the DDR interface and each chip and chip vendor is free to chose whatever ip they want to plant in their chip.

If you stay in the core say L1 and L2 memory systems if it has an L2 you will probably see similar but not necessarily exact performance (assuming you ran your two examples at the same clock frequency), once it goes outside the arm into the rest of the chip all bets are off I would expect noticeable performance differences. Depending on the interface one chip would win one performance contest, then change to another interface and the other chip might do much better.

The term better core is a loaded question. You have to decide what you think is meant by "better". One might have a good mixture of I/O that is fast the other might have nice on chip stuff but have horrible external interfaces. One might provide a real network interface another might just give you usb and you have to turn that into network, storage, video, etc. That part of your question cannot be answered by anyone else but you. if you had a very detailed requirements spec for your product then sure, the community could converge on an opinion but depending on your requirements and similarities in features of the contest might result in a tie.

I have no idea what your project/goals are but if you are going to need to push then envelope you should buy or build eval boards for each of the contestants and put your application on all of them and see what happens. The only performance benchmark that matters is how fast YOUR application runs on something not some other application.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top