Motorola Moto G Reviewby Brian Klug on December 18, 2013 2:00 PM EST
At the heart of Moto G is a new Snapdragon 400 SoC that it’s our first time seeing, specifically MSM8226. MSM8226 consists of four ARM Cortex A7 cores clocked at between 300 MHz and 1.2 GHz, and the same Adreno 305 GPU as the former S400 variants clocked at up to 450 MHz. There’s a single channel 533 MHz LPDDR2 memory interface feeding the SoC, and video encode/decode specced for 1080p30 video. All of this is built on TSMC’s 28nm LP process, not 28HPM like the newer S800 tiered SoCs from Qualcomm.
For some, Qualcomm using an ARM core and not a Krait or Scorpion might seem odd, however Qualcomm has used straight ARM cores like the Cortex A5 for some time in its lower end SoCs and as an optional AP its modems for offloading tasks like routing or driving a web interface. MSM8x26 is our first time looking at their new A7 based S400 lineup, and succeeds the MSM8x30 series which was based on dual core Krait 200 (MSM8x30) and 300 CPUs (MSM8x30AB).
Anand has previously gone over some of the architectural details for the Cortex A7 CPU, which is an in-order core with an 8 stage integer pipeline capable of dual-issuing integer instructions, but not floating point, NEON, or some others. ARM’s goals for A7 seem to have been keeping die size small and integer performance close to a Cortex A8, while maintaining complete ISA compatibility with Cortex A15 for big.LITTLE. The ARM Cortex A7 CPUs in 8x26 are r0p3 revision, and there’s 1 MB of L2 cache, the maximum configurable option for Cortex A7. At 1.2 GHz the CPU clocks are basically at ARM’s recommended point, although I suspect we’ll see a similar S400 tier part with slightly higher clocked A7s.
My previous experience on a similarly tiered Qualcomm SoC was the MSM8930 with dual Kraits inside the HTC One mini, which was adequate for most things but definitely struggled when multitasking and jumping between applications. For the most part, I’m surprised at how much faster MSM8x26 feels in the Moto G with quad A7s. Storage I/O being decent no doubt helps a lot of the multitasking experience along, but even stuff like browsing in Chrome seems much better than I remember. The only real thing gating experience is memory footprint, as apps and background processes definitely get suspended more often than on the flagships I usually carry with 2 GB of RAM, it’ll be very interesting to see how the Moto G fares with the 4.4 KitKat update running on its 1 GB of LPDDR2.
|I Can't Believe I Still Have To Update This Table|
|3DM||AnTuTu||AndEBench||Basemark X||Geekbench 3||GFXB 2.7||Vellamo|
|ASUS Padfone Infinity||Qualcomm Snapdragon 800||N||Y||N||N||N||N||Y|
|HTC One||Qualcomm Snapdragon 600||Y||Y||N||N||N||Y||Y|
|HTC One mini||Qualcomm Snapdragon 400||Y||Y||N||N||N||Y||Y|
|HTC One max||Qualcomm Snapdragon 600||Y||Y||N||N||N||Y||Y|
|LG G2||Qualcomm Snapdragon 800||N||Y||N||N||N||N||Y|
|Moto RAZR i||Intel Atom Z2460||N||N||N||N||N||N||N|
|Moto X||Qualcomm Snapdragon S4 Pro||N||N||N||N||N||N||N|
|Moto G||Qualcomm Snapdragon 400||N||N||N||N||N||N||N|
|Nexus 4||Qualcomm APQ8064||N||N||N||N||N||N||N|
|Nexus 5||Qualcomm MSM8974||N||N||N||N||N||N||N|
|Nexus 7||Qualcomm Snapdragon 600||N||N||N||N||N||N||N|
|Samsung Galaxy S 4||Qualcomm Snapdragon 600||N||Y||Y||N||N||N||Y|
|Samsung Galaxy Note 3||Qualcomm Snapdragon 800||Y||Y||Y||Y||Y||N||Y|
|Samsung Galaxy Tab 3 10.1||Intel Atom Z2560||N||Y||Y||N||N||N||N|
|Samsung Galaxy Note 10.1 (2014 Edition)||Samsung Exynos 5420||Y(1.4)||Y(1.4)||Y(1.4)||Y(1.4)||Y(1.4)||N||Y(1.9)|
|NVIDIA Shield||Tegra 4||N||N||N||N||N||N||N|
Motorola continues to not participate in the benchmark boost or performance mode shenanigans that we’ve been keeping track of. My proverbial hat is off to Motorola for erring on the right side of the benchmark boost situation once again, and Moto G doesn’t change anything in that regard, CPU doesn’t plug in at maximum frequency upon launching any apps I can find.
In addition, MSM8x26 seems to have a relatively modest thermal budget, which isn’t surprising. I haven’t yet seen the SoC throttle down CPU clocks, and Moto G doesn’t get very warm to the touch at all. It’s really at the high end that SoCs are already essentially thermally constrained and have steady state performance deltas versus short term performance for a minute or so.
For an objective look at performance, we turn to our usual mix of CPU, GPU, and storage benchmarks. The most interesting comparisons are arguably the other non S600 (Nexus 4, SGS4, HTC One) or S800 (Nexus 5, LG G2, Padfone Infinity) based devices:
Moto X - 1.7 GHz MSM8960 Pro (2x Krait 300 CPU, Adreno 320 GPU)
HTC One mini - 1.4 GHz MSM8930 (2x Krait 200 CPU, Adreno 305 GPU)
We start with our CPU related benchmarks which consist of a mix of JS benchmarks and a few others. I’m still not pleased with the state of CPU benchmarking on Android, even four years into this foray of characterizing mobile device performance the situation isn’t pretty.
Sunspider was one of the first benchmarks I started running on mobile devices, primarily since the web was (and still is) one of the few places you could test anything cross-platform. There’s now a variety of other JS benchmarks we run on devices (Kraken, Octane, Vellamo HTML5), some which are less of a performance optimization target for vendors than others.
It's interesting to look at the Moto X versus Moto G cases since they're completely differently tiered SoCs, and the Moto X's 8960Pro is a bit north of what was flagship last generation. In that case, there's anywhere between a 20 and 30 percent performance advantage for the Moto X, not huge, but still substantial.
The One mini is again the other interesting data point, here there's performance north of the Moto G in the web based benchmarks, but separation the other way on the other native CPU tests. I'd say this is indicative of how single threaded performance is expectedly greater on Krait 200 than it is Cortex A7, but obviously workloads that can scale to all 4 threads help the platform pull ahead.
On the graphics side we turn to the usual assortment of 3Dmark, Basemark X, and GFXBench (formerly GLBenchmark 2.7) for comparing performance. At this point we've seen the bulk of the Adreno 3xx family at least once before, and the Moto G uses the same Adreno 305 GPU as 8930 inside the One mini, but at slightly higher 450 MHz clocks (vs 400 MHz). Motorola previously disclosed that Adreno 320 was a "quad core" part quite publicly with their Motorola X8 branding, which makes it easy to speculate about what's inside Adreno 305, although you have to keep in mind that scaling isn't totally linear due to what does get replicated across "cores" and shared memory bandwidth.
There's a big delta between the Moto X and Moto G here, with Adreno 305 offering around 30 percent of the 320 GPU's performance, depending on the test. There's a substantially bigger delta between the Moto G and the highest end devices. The 50 MHz clock advantage and newer platform help the 8x26 based Moto G also pull ahead of the 8930 based One mini.
Last but not least is GFXBench 2.7 (formerly GLBenchmark) and its associated subtests, which has been a long staple in the 3D graphics section and hopefully doesn’t need much introduction at this point.
The primarily compute-bound game subtests (Egypt and T-Rex HD) which are part of GFXBench show a slightly bigger delta, with Adreno 305 offering just shy of 40 percent of the performance of the 320.
Last up is NAND or storage performance. We’ve been tracking storage performance on these devices for a little while now and have noticed forward progress over the generations.
In the case of Moto G, the device continues the use of F2FS (Flash Friendly File System) for the /data mount which began with the Moto X. This helps the device post some impressive numbers and feel speedy when performing I/O heavy tasks in spite of having a pragmatic storage solution. I should note that we were sampled the 16 GB Moto G, not the smaller 8 GB model.