Snapdragon Becomes Snappier
By all accounts, Qualcomm’s Snapdragon processors are incredibly successful, powering over 1350 announced or available devices and, according to Strategy Analytics, garnering more than half of all smartphone SoC revenue in Q3 2013. The auspicious Snapdragon lineage started in 2008 when the Snapdragon S1 emerged from its lair with Adreno 200 graphics (based on technology acquired from AMD) and a Scorpion-based CPU core leveraging the ARMv7 instruction set. Manufactured on a 65 nm process and operating at clock rates as high as 1 GHz, Scorpion was a custom design based on the ARM Cortex-A8 reference architecture. In the years that followed, the Snapdragon S2, S3, and S4 were added to the family, each new SoC pushing the performance envelope further.
Then, in 2013, Qualcomm introduced a new CPU architecture named Krait and paired it with Adreno 3xx-series graphics to create the Snapdragon 400, 600, and 800 SoCs.
The top-performing Snapdragon 800 employs an Adreno 330 engine (450 MHz) and Krait 400 quad-core CPU at up to 2.26 GHz. Earlier this year, though, Qualcomm pushed frequencies even higher with its Snapdragon 801: 578 MHz for the GPU, up to 2.45 GHz for the CPU, and 465 MHz for the ISP (up from 320 MHz in Snapdragon 800).
Mobile is a highly competitive market, and for Qualcomm to remain a premier provider, it had to keep evolving. The newer Snapdragon 805 sports a faster Krait 450 CPU, a new Gobi 9x35 modem with support for up to 300 Mb/s LTE Advanced CAT6, and an improved ISP for purportedly better imaging. Company reps call this the first commercially available mobile SoC supporting a 4K viewing experience. To enable that, the 805 boasts an updated Adreno 420 GPU architecture along with significantly increased memory bandwidth.
CPU and Memory
The Krait 450 CPU in Snapdragon 805 is the final addition to the Krait family, and the last high-end 32-bit SoC on Qualcomm’s roadmap. We’ll have to wait for the Snapdragon 810's introduction in 2015 before we see a new 64-bit CPU architecture supporting the ARMv8 instruction set. So, there aren't any significant changes baked into Krait 450. It has four cores, each with a 4 KB + 4 KB L0 cache and a 16 KB + 16 KB L1 cache, complemented by a shared 2 MB L2 cache. The CPU is a custom design by Qualcomm (which, like Apple, has an architecture license for creating ARM ISA-compatible products) with some similarities to the ARM Cortex-A15.
But it’s interesting to note how Qualcomm’s approach to CPU design differs from both ARM and Apple (Nvidia and Samsung are ARM processor licensees; they haven’t introduced anything unique yet on the architecture front). With Krait, Qualcomm implements a narrower, simplified architecture with high clock rates. On the other hand, Apple’s Cyclone-based host processor in the A7 SoC appears more desktop-like in terms of execution width and complexity, but operates at much lower frequencies. Both IPC (instructions per cycle) throughput and frequency for ARM’s Cortex-A15 fall between Krait and Cyclone.
Krait features an out-of-order speculative issue (an optimization technique whereby the CPU uses branch prediction to guess the path a program may take and executes the instructions before they’re needed) superscalar execution pipeline with 11 integer stages, compared to the -A15's 15 stages. While the execution pipeline is out-of-order, the initial fetch/decode stages are in-order and instructions must also be retired in-order. Krait 450 can still fetch and decode three instructions per clock cycle, and execute up to four instructions in parallel. For comparison, Apple’s Cyclone design offers twice the IPC of Krait, fetching/decoding, executing, and retiring six instructions per cycle. Cyclone also has a larger instruction reorder buffer, holding up to 192 micro-ops versus 128 for the -A15 and only 40 for Krait, which, in theory, should allow for fewer stalls and more efficient use of its pipeline. Even though the Krait 450's architecture and IPC remain unchanged, it should still offer a small performance increase over Krait 400 thanks to a boost in maximum frequency from 2.45 to 2.65 GHz (Qualcomm’s advertised frequencies are rounded up to the nearest 100 MHz).
Right about now you're probably thinking that this situation sounds a lot like the transition from Snapdragon 800 to 801. So, why is the Krait brand incrementing for 805 when it retained its Krait 400 designation for 801? The answer begins with another question. Since Krait 450 reuses the same underlying architecture and 28 nm HPm process as Krait 400, how did Qualcomm boost its peak frequency again? Although we are unable to confirm this with Qualcomm, it’s likely that the circuit traces on the die have been optimized. With a new die comes a new designation.
While Snapdragon 805 doesn’t offer any alluring CPU performance gains, it does provide a substantial memory bandwidth increase. The 805 SoC pairs a 32-bit quad-channel bus with LPDDR3-800 memory for a peak throughput of 25.6 GB/s. That's twice the maximum bandwidth of Snapdragon 800 (12.8 GB/s) and about 70% more than Snapdragon 801 (14.9 GB/s). It’s also more than Apple’s A7. It actually approaches what a fairly modern desktop CPU's integrated memory controller can do. All of this extra memory bandwidth isn’t for the CPU, though. It's reserved for Qualcomm’s new Adreno 420 GPU.