CPU

The Kryo 280 CPU inside Snapdragon 835 is the first semi-custom architecture to use ARM’s new "Built on ARM Cortex Technology" license. This license (which we abbreviate as BoC) sits between the traditional Cortex processor license, which grants the vendor access to one of ARM’s stock cores, and the architecture license, which allows the vendor to create a completely custom design that conforms to ARM’s ISA. Over the past three generations, Qualcomm has used all three of these licenses: the Snapdragon 810 implemented stock ARM Cortex-A57 and A53 cores with a processor license, the 820’s fully-custom Kryo cores required an architecture license, and the 835 takes advantage of this new license type.

The BoC license allows Qualcomm to make certain changes to a stock ARM core, thereby, creating a semi-custom core that aligns more closely with its performance and power targets, achieves better integration with its proprietary IP (GPU, DSP, etc.), and is specially tailored to the workloads and applications Qualcomm is targeting. There are parts of the microarchitecture that cannot be altered, however. The decoder width and execution pipelines are off limits, for example, because the amount of redesign would be too extensive. For this reason, many of the possible changes involve branch prediction and instruction fetch in the front end.

For the Kryo 280, Qualcomm uses an octa-core, big.LITTLE configuration with four “performance” cores and four lower-power “efficiency” cores, with semi-custom designs for both clusters. Qualcomm did not disclose which ARM cores serve as the foundation for Kryo 280, but the Cortex-A53 is the obvious choice for the efficiency cores, while the performance cores are likely based on the A72 or A73. As expected, Qualcomm did not go into great detail about what modifications it made, but it did confirm that the memory controllers are a custom Qualcomm design. It’s not clear if it uses ARM’s CCI-550 Cache Coherent Interconnect or its own internal solution, though. The performance cores also get a larger instruction window, which determines the number of instructions that can be executed out of order. This potential performance booster requires modifications to several features, including the reorder buffer and issue queues.

Kryo 280’s efficiency cluster reaches a peak frequency of 1.9GHz, while the performance cluster tops out at 2.45GHz, which seems a bit conservative. According to ARM, the A73 is comfortable running between 2.6GHz to 2.8GHz when using the 14/16nm node. This number could be even higher using Samsung’s new 10nm process, which the Snapdragon 835 uses. There are a few possible explanations that come to mind: Kryo 280’s performance cores are based on the A72 instead of the A73; the changes Qualcomm made, particularly the ones to increase the instruction window size, are limiting the peak frequency; more of the thermal budget is being used for the GPU; or Qualcomm is prioritizing battery life over peak performance. I suspect there’s still some headroom available, leaving the door open for a Snapdragon 835 variant with higher CPU frequencies later this summer.

The Kryo 280’s L2 caches have doubled in size relative to those in the Snapdragon 820. The efficiency cluster uses a 1MB L2 cache, while the performance cluster uses a 2MB L2 cache. The larger caches increase performance and reduce power consumption at the same time by reducing memory traffic, according to Qualcomm.

At this point you’re probably wondering why Qualcomm went the semi-custom route for Snapdragon 835’s CPUs instead of using its custom Kryo architecture? The company said that it considers all of the available options (stock ARM, custom, and now semi-custom) for each generation and selects the best technology. Performance and power are obvious criteria, but other factors like cost, availability, and marketing affect this decision too.

Qualcomm Snapdragon SoCs: Three Generations
SoC Snapdragon 835
(MSM8998)
Snapdragon 820 / 821
(MSM8996 / MSM8996 Pro)
Snapdragon 810
(MSM8994)
CPU 4x Kryo 280 Performance
@ 2.45GHz
4x Kryo 280 Efficiency
@ 1.90GHz
2x Kryo @ 2.15GHz / 2.34GHz
2x Kryo @ 1.59GHz / 2.19GHz
4x Cortex-A57 @ 2.00GHz
4x Cortex-A53 @ 1.50GHz
GPU Adreno 540 Adreno 530 @ 624MHz / 653MHz Adreno 430 @ 630MHz
Memory 2x 32-bit @ 1866MHz
LPDDR4x
29.9GB/s
2x 32-bit @ 1866MHz
LPDDR4
29.9GB/s
2x 32-bit @ 1600MHz
LPDDR4
25.6GB/s
ISP/Camera Dual 14-bit Spectra 180 ISP
1x 32MP or 2x 16MP
Dual 14-bit Spectra ISP
1x 25MP or 2x 13MP
Dual 14-bit ISP
1x 21MP
Encode/Decode 2160p30 (2160p60 decode), 1080p120
H.264 & H.265
2160p30 (2160p60 decode), 1080p120
H.264 & H.265
2160p30 (2160p60 decode), 1080p120
H.264 & H.265
Integrated Modem Snapdragon X16 LTE
(Category 16/13)
DL = 1000Mbps
3x20MHz CA, 256-QAM
UL = 150Mbps
2x20MHz CA, 64-QAM
Snapdragon X12 LTE
(Category 12/13)
DL = 600Mbps
3x20MHz CA, 256-QAM
UL = 150Mbps
2x20MHz CA, 64-QAM
Snapdragon X10 LTE
(Category 9)
DL = 450Mbps
3x20MHz CA, 64-QAM
UL = 50Mbps
1x20MHz CA, 16-QAM
Mfc. Process 10nm LPE 14nm LPP 20nm SoC

GPU

The Snapdragon 835 includes an updated Adreno 540 GPU. It uses the same basic architecture as the Adreno 530 in Snapdragon 820, which accounts for the product number’s small increment. For this generation, Qualcomm focused on optimizing bottlenecks and reducing the amount of work done per pixel by improving depth rejection, for example. The ALUs and register files also received some attention, although, nothing specific was mentioned.

The Adreno 540 performs higher-order texture filtering at lower cost relative to previous designs, processing 16 texels/clock for trilinear filtering. For comparison, ARM’s Mali-G71 processes 1 bilinear filtered texel per clock, or 1 trilinear filtered texel over 2 clocks, per core. So a 16 core configuration (MP16) is capable of 16 texels/clock (bilinear) but only 8 texels/clock (trilinear).

According to Qualcomm, the Adreno 540 sees a 25% increase in 3D rendering performance relative to the Adreno 530 in Snapdragon 820. It’s not clear how much of this is due to architectural improvements, however, because the peak GPU frequency is not official; initial clues point to a modest frequency boost for the GPU, although not enough to account for the claimed 25% increase in performance.

The Adreno 540 supports the latest graphics APIs, including OpenGL ES 3.2, DirectX 12, and Vulkan. It also includes full support for OpenCL 2.0 and Renderscript.

DSP & ISP


Hexagon 680 DSP

Last year, Qualcomm introduced a completely new architecture for the Hexagon 680 DSP in Snapdragon 820, featuring its new Hexagon Vector eXtensions (HVX) specifically designed for advanced photo and video processing, virtual reality, and computer vision workloads. The Hexagon 680 can work on two vector threads in parallel using two HVX contexts, each containing four 1024-bit SIMD pipelines, which are significantly wider than the 64-bit SIMD NEON pipelines typically found in ARM CPUs, allowing each HVX context to work on 4,096 bits/cycle compared to 128 bits/cycle for a single CPU core.

In addition to the two HVX contexts for vector instructions, the Hexagon 680 also contains four threads for scalar instructions, each with 4 VLIW pipelines. Scalar and vector instructions can be processed in parallel too, using two scalar threads and two vector threads. This allows concurrent execution of audio and imaging tasks, because the scalar threads generally handle audio and voice processing.


Hexagon 680 DSP

While the Hexagon 680 DSP uses a multithreaded programming model similar to a CPU, it’s still a specialized processor designed to accelerate specific workloads involving streaming data. It’s meant to work alongside the CPU and GPU rather than replace them. For example, in order to reduce die space and power consumption, it only performs integer and not floating point operations. This specialization gives the DSP a significant performance and power advantage over the CPU for certain tasks.

Qualcomm did not discuss the updated Hexagon 682 DSP in Snapdragon 835 in much detail, but considering the big changes last year and the small increment in the product number, it’s likely the Hexagon 682’s architecture looks very similar to what’s summarized above.

The Snapdragon 835, like the 820, contains two additional DSP cores. One performs signal processing in the X16 LTE modem. The other is a special low-power DSP core Qualcomm calls the All-Ways Aware Hub. This lives on a separate power island and connects to a range of different sensors. With support for the Google Awareness API, it enables low-power activity tracking, such as step counting, and positioning using LTE, Wi-Fi, and Bluetooth LE. As the name implies, this DSP is always active, feeding contextual data from sensors to various apps and allowing the more complex, compute-focused Hexagon DSP to power down.

Also packed inside the Snapdragon 835 is an updated ISP. The Spectra 180 is a dual 14-bit ISP that supports up to a 32MP single camera or two 16MP cameras, which is an increasingly important feature for flagship phones. The ISP gains enhanced support for hybrid autofocus systems, which select the best AF method based on lighting conditions. It also supports dual photodiode phase-detect autofocus (2PDAF), which splits each pixel (typically a larger 1.4µm pixel) into two photodiodes: one for image capture and one for phase detection. By using every pixel for phase detection, AF performance is significantly improved, focusing up to twice as fast as PDAF in low-light conditions.

The Spectra 180 ISP also gains a fixed-function block to perform hardware accelerated zig-zag HDR (zzHDR), an HDR imaging technique that diagonally interleaves lines of pixels with long and short exposures in a zig-zag pattern. zzHDR can be used to show a live preview of the HDR image, record HDR video, or capture HDR photos without any shutter lag, but sacrifices some image resolution.

Introduction Features and Final Thoughts
Comments Locked

58 Comments

View All Comments

  • colinisation - Saturday, January 7, 2017 - link

    There was a leaked roadmap from 2015 that stated an A53 refresh would occur but it would be segmented into 2. With something called mercury which would attack the lower segment of the A53 power range - mercury turned out to be Cortex A35. The other codename mentioned was Ananke which is currently MIA, might have been cancelled or delayed. One of ARM's engineers did say he thought A53 represented the pinnacle of what could be achieved in terms of in order dual issue, so I do wonder what Ananke would have looked like - really small instruction window (~ 32) perhaps?
  • lilmoe - Sunday, January 8, 2017 - link

    Well, I guess they thought that process node improvements are enough to keep efficiency in check, coupled with higher clocks. That does work for a while, but not for long.

    I'm really interested to see the results of Qualcomm's customization of the core. Some "leaked" documents show the little cluster in the SD 835 clocked at 2.4Ghz, while Samsung chose to stick with 1.7Ghz with no customization. If that's true, keeping in mind the fact that it has just as many CPU cores (better efficiency on Android), I'm guessing this will have a large impact on perceived snappiness of devices running the SD835, making it the better chip in 2017.
  • Nehemoth - Tuesday, January 3, 2017 - link

    One question, I understand that in Windows 10 for ARM (I don't know the name) 32bits apps are going to work just fine, but what about x64 apps?, I do understand that x64 are extension of x86 but still I don't know if a 64bits apps are going to work over W10.

    If you ask me, I would say yes as the 280 CPU would be a 64bits, but I would like a confirmation.

    Regards
  • Matt Humrick - Tuesday, January 3, 2017 - link

    The emulation Snapdragon 835 uses for 32-bit x86 does not support x86-64, even though Kryo 280 is 64-bit.
  • Nehemoth - Wednesday, January 4, 2017 - link

    Thank you very much for your kindly answer
  • 0iron - Tuesday, January 3, 2017 - link

    Did Qualcomm mention or someone asking why it is named 835 instead of 830?
  • MrSpadge - Wednesday, January 4, 2017 - link

    Their naming nver made much sense. 835 isn't too bad in this context ;)
  • Assimilator87 - Tuesday, January 3, 2017 - link

    **Correction?**

    The article refers to the Snapdragon 835's DSP as the Hexagon 682 but the marketing slide "A heterogeneous computing approach for immersive interactions" on page 3, section "Virtual Reality," which I assume was provided by Qualcomm, says "Hexagon 690."
  • Matt Humrick - Wednesday, January 4, 2017 - link

    The Hexagon 690 reference is an error. The final press materials and spec sheet show Hexagon 682.
  • SydneyBlue120d - Wednesday, January 4, 2017 - link

    Video encoding still stuck at 2160p30. Let's hope 835 successor will show AV1 2160p60 encoding support.

Log in

Don't have an account? Sign up now