Editorial: Why A Snapdragon S4 Galaxy S III Is Awesome

Yesterday, we found out the full specifications of the Galaxy S III for AT&T and T-Mobile USA. And many of you were disappointed that T-Mobile’s version will have the dual-core Snapdragon S4 instead of the quad-core Exynos 4 SoC (system on a chip), even though the T-Mobile version will have 2GB of RAM instead of the 1GB amount in the international model. However, I see it as a good thing for us.

Obviously, having 2GB of RAM instead of 1GB of RAM means that Android can manage more in memory at once more quickly. What isn’t often mentioned is that this benefit offers a performance increase that is greater than having more CPU cores, since the Dalvik VM can aggressively manage memory better than it can handle threading and delegating threads to multiple CPU cores. Plus, more CPU cores takes more power, which eats away at battery quite a bit. More RAM with a dual-core processor instead of less RAM and a quad-core processor will offer far greater benefits on a smartphone. As for the CPU type, let me explain why I am of the opinion that the Snapdragon S4 is better than the Exynos 4.

As many know, there are many different ARM chips used by device makers. Texas Instruments makes the OMAP series, Samsung makes the Exynos series, Qualcomm makes the Snapdragon series, ST-Ericsson makes the Nova and NovaThor series, and Apple makes the A series.

By and large, most of the CPU component of these chips are the same, with the exception of Qualcomm. OMAP 4, Exynos 4, Nova/NovaThor, and the A5/A5x are all ARM Cortex-A9 CPUs. That means that they are all virtually identical in performance. At one level or another, most people generally recognize this, which is why we focus so much on the GPU rather than the CPU in an SoC.

Let’s focus purely on the CPU for the moment. Most ARM chipmakers have to use designs provided by ARM for the CPU cores. What the chipmakers get to decide is how the system chip is actually laid out and what interactions to optimize (I/O, caching, etc.). This means that there isn’t a lot for most chipmakers to optimize beyond the interactions with the CPU and external components. NVIDIA takes this to the extreme with the Tegra architecture by making interactions between the CPU and the GPU extremely efficient for gaming.

Qualcomm is special because it has a license from ARM to develop its own CPU core technology based on ARM designs and instruction sets. Basically, it can cherry-pick the best features and optimize at every level. The result is that the Qualcomm Snapdragon of a particular generation will crush all competitors of that generation.

Snapdragon S2 and S3 use the Scorpion core, which takes some of the best features of both Cortex-A8 and Cortex-A9 ARM core designs and brings them into a single ARM core. That’s why the Scorpion core is very competitive to Exynos 3 (aka Hummingbird), OMAP 3, and other Cortex-A8 based SoCs. It also fared surprisingly well against many dual-core Cortex-A9 based SoCs like the Exynos 4 and the OMAP 4.

Snapdragon S4 uses the Krait core, which takes the best features of the Cortex-A9 and the Cortex-A15 ARM core designs with a much better manufacturing process to produce smaller chips that are far more power efficient and deliver amazing amounts of performance compared to its competitors (which are Cortex-A9 based). This is why dual-core Snapdragon S4 devices can go toe to toe with the quad-core Tegra 3 and Exynos 4 on the CPU front. At the same time, because of the massively improved power efficiency, CPUs using Krait cores will consume so much less power than Cortex-A9 CPUs that the amount of battery life improvement can be measured in several hours for active use and days for standby usage.

On the GPU side, the performance gap is a lot closer. The Adreno 225 is essentially the same GPU that was included in the Snapdragon S3 except with a few spec bumps and a doubling of the clock speed for the GPU cores. Though, a lot of bottlenecks were also eliminated in the new SoC arrangement in the Snapdragon S4. The result of this is that the performance of the Adreno 225 on a screen of 1024×600 resolution beats out all competitors except for the iPhone 4S performance wise (all competitors measured are pushing at lower resolutions, meaning the GPUs would perform much worse against the Adreno at the same resolution the Adreno is benched at). And even then, adjusting the Adreno 225 to push out at the same resolution as the iPhone 4S would make it surpass the GPU used in the iPhone 4S (the PowerVR SGX543MP2). With that in mind, I believe that the Adreno 225 is more than satisfactory for the Galaxy S III. Would I like a more powerful GPU? You bet. The Adreno 320 coming this fall to Snapdragon S4 is a total redesign for Adreno and is considerably more powerful, but I think nearly everyone will be fine with the performance the Galaxy S III will have with the Adreno 225.

If you don’t believe me, you can check out the benchmarks yourself.

Of course, the Snapdragon S4 also includes an integrated modem onto the chip, which means that Wi-Fi, Bluetooth, FM radio, 2G GSM, HSPA+, and LTE are all controlled by a single chip. Having two chips as opposed to five or six chips (as required for several other solutions) means that even less power is required to actually use all these radios. Given how power-hungry radios can get, any form of reduction in power usage will be great. As of right now, only Qualcomm’s modem is certified for DC-HSPA (HSPA+42) on the T-Mobile network. Perhaps next year, ST-Ericsson’s Thor M7300 and M7400 modems will be validated for use on T-Mobile’s HSPA+42 and upcoming LTE networks. When that happens, we’ll see more diversity for SoCs on high end devices.

But if you are thinking that other carriers will get SoCs other than Qualcomm’s in the future, you’d probably be wrong. Most LTE modems do not support U.S. Digital Dividend frequencies, which means the LTE networks of AT&T, Verizon Wireless, and most regional carriers will be stuck with Qualcomm’s modems. T-Mobile can use non-Qualcomm LTE modems because the AWS band T-Mobile is using is a standardized band that is well-supported. Verizon Wireless, Sprint, and most regional carriers operate CDMA2000 networks, which means they have no choice but to use Qualcomm’s modems, since no one else makes CDMA2000 modems because Qualcomm owns all the IP rights to the cdmaOne/CDMA2000 technologies. Maybe once CDMA2000/LTE carriers start offering devices that don’t support CDMA2000, then we’ll see non-Qualcomm Snapdragon LTE devices on those networks, provided that U.S. Digital Dividend, ESMR+Cellular 850, and Extended U.S. PCS bands are all supported by non-Qualcomm modems by then.

While it is technically possible to implement a multi-chip solution separating the system chip from the modem chip, it usually isn’t worth it unless you have a specialized platform (or it is a tablet and you have the space to spare). Apple and Motorola take this route, but the cost is heavy. They lose quite a bit of internal space to having more chips to represent the SoC. It also worsens battery life as more chips must be powered by the battery. They only do it because of CDMA2000 support. Motorola does it with OMAP4, a 3G Qualcomm modem, and an in-house LTE radio chip. Apple does it with its in-house A-series chip and a Qualcomm modem.

For the foreseeable future, I think Qualcomm’s Snapdragon SoCs will dominate the non-Apple LTE device ecosystem. It will change over time as legacy technologies are phased out (in particular, CDMA2000) so that other modem chip makers can have their modems on the network, but for now, we’re going to have to deal with it. At least it is quite the enjoyable ride!

Tags: , , , , , , , ,

  • souggie

    So you’ve hated every HTC phone…..nice
    #slanderpending

  • WoW

    What you said wasn’t very smart at all. 1080p has 2.25 times for pixels than 720p and you surely don’t need 2.25 times more video cards when going from 720p to 1080p when playing bf3 on same settings. If you have a video card that handles bf3 at 720p and it gets right at 60 fps then when you use it at 1080p you will be getting about 30fps which means a 50% reduction in speed which means 0.5 times slower or one half. You would need a video card that has about 50% more power or has 1/2 more power to play at 1080p and get 60fps. Again your mind is wrong with 2.4 times more powerful gpu. The phone would need to have a gpu roughly 50% faster not 2.4 times faster which would be 240% LOL.

    •  ((2.4-1)/1)*100%=140% increase. I don’t know how pc games are optimized but if you look at the youtube videos of the nova 3 gameplay, the Exynos does much better than the HTC one x. So I would think that the S4 in the galaxy s3 would do no better than the HTC one x.
       
      Samsung will certainly optimize the software for the North American version of the samsung galaxy s3 but third party games will rely heavily on the hardware. The s4 already is not capable playing new mobile games with high end graphics, atleast not very well.

  • A preview
  • Tiger Wang

    “Plus, more CPU cores takes more power, which eats away at battery quite a bit.” – Each core can be turned ON and OFF based on the demand. If you like, you can disable 3 cores of them so that it saves more power. Choice is a pro, not a con. 

    • JG01

      I’m sure tmobile will do someting to screw it up and drain the battery anyway.

  • JG01

    Changing the processor . has just killed my thoughts of wanting to buy this device( already got the SG2) from TMobile…..why do they have to spoil things….the original is perfection…why? why? why change it? Cheap asses!!

    • Kellic

      did you even bother to read the article?

  • JG01

    Another thing about the processor. Whoever wrote this article does not understand the reason for having multiple cores. It is to distribute the load. for example, to have dual core means the cores will run at a higher utilization than quad core, plus there is offloading of processes, meaning certain processes can be assigned to run on a specifi core. therefore it is possible that at any one time, only one or two cores are active. With dual cores, the cores will be more active which will consume power. Having said that, there is also the issue of what applications and OS service that are running. If OS and apps are tuned properly, battery life on any device can have a dramatic improvement. This is one reason many people root their device in order to have control of what is running and how it runs. Carriers place a lot of bloatware which consumes power, plus the data google, msn and apple collects of the user’s activities. Look at the tablets that do not have 3G/4G and GSM, their batteries last a very long time. Those radios are always on synching with the towers and others, which is also a constant battery drain.

    A combinations of tuning the OS , apps, radios and distribution of processing  is what is needed to  have optimal battery performance. The problem is , the device manufactures tunes the hardware, google / MS / Apple tune the OS and the carriers then adds their stuff.  Each doing their own things in distributes manor without a collective unity. Thank GOD for xda-developers( and other website like this), they seem to do a better job at tuning things ( the developrs actually share and help each other to get thing working right).

    • http://pharaohtechblog.blogspot.com/ Conan Kudo (ニール・ゴンパ)

      I fully understand the purpose of having multiple cores. While in theory that is true (and it is often true in PC-land), the problem in the mobile world is that it is completely false. 

      iOS, for example, barely can handle dual-core operation because CPU 0 always has the GUI thread while CPU 1 actually runs the app binary execution threads. If there are multiple threads on the app, CPU 1 has to switch around to each thread to execute. CPU 0 is dedicated to the GUI thread, while CPU 1 is the mutable core and can swap out threads on the fly. Incidentally, that’s why iOS on the iPhone 4S and dual-core iPads have permanent buttery-smoothness in the GUI.

      In Android, all layers below the Dalvik VM work quite well with multiple cores, as the Linux binary execution environment is highly optimized for both symmetric and asymmetric multiprocessing. However, the Dalvik VM is not so good at this. The Dalvik VM works well with symmetric multiprocessing (for multiple CPUs) just like the Java VM does. However, multi-core operations requires asymmetric multiprocessing. Each thread has to run independently and sync up as needed, rather than remaining constantly in sync. This problem has been worked on somewhat in Gingerbread and ICS, but it isn’t completely solved. Each iteration of the Dalvik VM improves asymmetric performance, but it still isn’t very good. Additionally, most Android apps really only have two threads: a GUI thread and an app execution thread. If there are more threads, then it is up to the Dalvik VM to assign threads to cores and execute them. However, since Dalvik (and most Android app developers) aim to symmetric multiprocessing, the benefit of multi-core operation is pretty much gone. Threads remaining constantly in sync and communicating automatically eliminates the benefits of multi-threaded use, because each thread would block on each other until it receives information in the correct order.

      Part of the issue is that Android app developers are developing their apps with symmetric multiprocessing in mind when creating multi-threaded applications. But the Dalvik VM doesn’t do a great job of assigning threads to logical cores, as it assigns based on physical CPUs first and works from there. This means that CPU 0 or CPU 1 may get flooded with thread execution requests long before CPU 2 and CPU 3 ever get any. Additionally, this causes a lot of leakage and power waste. Intel agrees with me on the thread scheduler[1].

      Ironically, Windows Phone is best set for handling this problem. The .NET Framework has been well optimized for asymmetric and symmetric multiprocessing. If you check out Miguel de Icaza’s blog post about XobotOS (Android ported to Mono), you’ll see benchmarks showing that Android is many times more efficient with the Mono CLR than the Dalvik VM[2]. When Windows Phone 8 comes out on multi-core phones, you’ll see performance that is just as good as XobotOS, if not better because the .NET CLR that powers the Metro environment is highly efficient. Microsoft Research spent over a decade developing the solution before Microsoft commercialized it as the .NET Framework. Really, swapping out Dalvik for Mono would improve performance way more than anything else you do to Android. You don’t even have to go the radical route of changing programming languages like XobotOS did, since Mono can execute Java code in its environment with a little extra work.

      At best, Android’s current execution environment will efficiently work with two cores, while a quad-core chip would have all four cores turned on (Cortex-A9 MPCore and Dalvik stupidity there) but two of those cores would spend most of the time idling, which wastes power. Cortex-A15 introduces standard utilization features that only turn on cores when instructions are sent to them, but this can be overridden by the OS. Cortex-A9 relies entirely on the OS to direct CPU core utilizations.

      [1]: http://www.theinquirer.net/inquirer/news/2182710/intel-claims-android-ready-multi-core-processors
      [2]: http://blog.xamarin.com/2012/05/01/android-in-c-sharp/

    • God

      I don’t know what Conan is talking about, but I think he knows his sheet better than any poster here for sure.

  • Sunnyybarra

    I was just wanting to know the Nam of the screen saver on phone pictured above. Thank you

    • Sunnyybarra

      *name*

  • Lazydude

    Its just a damn phone. dual-core / quad-core…who gives a sh*t. Its not like phones are a workstation….