Apple’s A8 SoC: GPU And The Uncore
Over the past few years we’ve gotten used to Apple announcing that its new chips get twice as much graphics performance compared to the previous generation. This year, Apple broke that trend and announced only a 50-percent improvement over the PowerVR G6430 inside its A7 SoC. This improvement is inline with what Imagination promised at CES this year when it announced the new PowerVR Series6XT GPUs. The direct successor to the PowerVR G6430 is the PowerVR GX6450, which has the same number of clusters (four), while the clock speed is unknown at this time.
Because Apple increased the pixel count of its iPhone 6 Plus by almost three times compared to the iPhone 5s, many were expecting the beefier PowerVR GX6650, Imagination’s top-of-the-line mobile GPU. It would have yielded the expected 2x increase in performance over the previous generation, and it would’ve also made the transition to a 1080p phone easier (at least in terms of gaming performance at native resolution).
Apple must have determined that the performance of a PowerVR GX6450 GPU would be more than enough for the iPhone 6 Plus, considering the weaker PowerVR G6430 powered its 2048x1536 iPad Air last year. Apple is likely using the GX6650 in its A8X SoC and using it as a selling point for the iPad Air 2.
Although Apple promised a 50% performance improvement, most benchmarks fall short of that value. This year, Apple seems to be focusing even more than usual on battery efficiency, so it’s possible the company kept the clock speeds lower than necessary to reach Imagination’s promised speed-up. Apple is also pushing developers to use the Metal API, so it may be betting on Metal adoption to reach that performance increase.
Imagination’s Series6XT is an iteration of Series6, but it does come with a few new features, such as improved support for OpenGL ES 3.0 (OpenGL ES 3.1 support seems to be lacking right now), support for next-generation ASTC texture compression with fine-grained quality options and improved power management.
Khronos is pushing for ASTC as a universal texture compression format that it hopes all GPU makers will adopt. Although the Khronos Group hasn’t made ASTC support mandatory yet, it seems new GPUs from different companies are starting to support it, and it could be widely supported by all GPU makers in a few years anyway.
The new “PowerGearing G6XT” feature allows individual clusters to power down or spin up when needed, thus improving power consumption for idle or light usage, where all clusters may not be utilized.
Overall, the PowerVR GX6450 seems to be sufficient for the iPhone 6, and even the iPhone 6 Plus, considering the previous GPU could handle even higher resolutions quite easily. If developers take advantage of Apple’s Metal API (possibly to the detriment of cross-platform portability) they might be able to squeeze a little more performance out of it for gaming, and show the iPhone 6 users more impressive graphics than what they’ve seen before on their older iPhone 5s devices.
The CPU, GPU and L3 cache only account for roughly half of the overall die area, the remainder occupied by memory interfaces, I/O, DSPs and various fixed-function hardware. It’s in this area of the SoC that Apple uses some of those extra transistors. One of the new features for the iPhone 6 and 6 Plus is High Efficiency Video Coding (HEVC) for FaceTime video calls over cellular. Since this feature is exclusive to iPhone 6, it implies that the A8 includes a fixed-function H.265 encoder/decoder, which may cut bandwidth requirements in half.
Last year, alongside the A7, Apple introduced its M7 motion coprocessor. The M7 is a Cortex M3-based microcontroller from NXP Semiconductors, labeled LPC18A1, that has been customized by Apple to collect and process data from the accelerometer, gyroscope and compass in a battery-friendly way, feeding its data to fitness apps.
The new iPhones receive an improved M8 coprocessor that tracks barometer data from a new sensor. It may also be based on Cortex M3 (rather than Cortex M4) going by its very similar name: LPC18B1. NXP has also named its Cortex M4-based microcontrollers to the LPC4300 family, so it’s even more likely Apple stuck with the older microcontroller.