Qualcomm Snapdragon Mobile Platform
The processors of mobile devices over the past few years have crossed the 1.5 GHz threshold, gained multi-core capabilities, learned how to decode video, accelerate flash and questioned the dominance of x86 architecture in the personal computing market. The smartphone, which easily fits in the palm of your hand, has come close to the netbook in terms of performance.
Qualcomm SoC MSM8260 is the heart of HTC Sensation and Evo 3D, and we will get to know it in more detail. MSM8260 is the second generation of Qualcomm Snapdragon chips, made according to the 45 nm process.
Qualcomm Snapdragon System-on-Chip consists of the following function blocks:
To increase productivity and maintain an acceptable level of energy consumption, Scorpion supports superscalarity and an out-of-order mechanismexecution). Both technologies have long been used in the x86 architecture, but have recently appeared in ARM processors. The superscalarity mechanism allows the processor to load two instructions in one clock cycle in order to avoid downtime of the processor execution units. Support for the extraordinary execution of commands allows you to speculatively run commands to execute as they are ready, without waiting for the result of the previous ones. The Cortex-A8 processor supports a less advanced in-order execution mechanism, which uses processor execution units less efficiently.
The Scorpion pipeline has 13 stages and is similar in design to the Cortex-A8, but the Qualcomm processor can run at higher frequencies. The Cortex-A9 pipeline contains 8 stages, which at the same frequencies allows it to be more productive than Scorpion, due to the reduction in overhead when errors occur in the branch prediction mechanism. However, Scorpion at the same time remains a more economical processor, and its frequency margin is larger.
The times when floating point operations were performed on ARM processors exclusively with the help of an emulation program are already far in the past. Scorpion, like Cortex A8 / A9, implements the FPU VFP (Vector Floating-point Architecture). Scorpion and Cortex A9 have FPU performance parity, while the A8 is inferior to its counterparts. In A8, ARM decided not to use pipelining for VFP and lost a lot.
Separately, it is worth mentioning the NEON SIMD extension block, which first appeared in Scorpion (128-bit data) and Cortex A8 (64-bit data) processors. NEON is a runtime device for processing integer data and floating point data. A curious fact is that in A9 the presence of NEON is completely optional, and for example, in nVidia Tegra 2 this block is not! As you probably already guessed, NEON SIMD instructions are used to optimize multimedia processing applications. For example, RockPleer uses NEON to decode video, and the number of such applications will only grow in the future.
Consider the differences in more detail:
Adreno’s performance is growing at a tremendous pace: if Adreno 2xx can provide a level of graphics comparable to PS2, then in the Adreno 3xx series Qualcomm promises to make a quantum leap and is equal in level of graphics to PS3 and XBox 360. For example, hardware tessellation appeared in modern video accelerators quite recently, but its support is already available in Adreno 205 and above.
Scorpion and Adreno have enormous potential, which is currently used only for the smallest part (NEON SIMD, hardware acceleration of OpenVG), but it will certainly show itself in the near future.
Inside the box
Unlike their desktop counterparts, mobile platforms are a thing in themselves. All components of the system, including CPU, GPU and much more - are placed on a single integrated circuit. A similar design is called System-On-Chip (SoC, system-on-chip). Using SoC allows you to simplify the wiring of the motherboard, reduce production costs, as well as optimize the energy consumption and heat dissipation of the system as a whole.Qualcomm SoC MSM8260 is the heart of HTC Sensation and Evo 3D, and we will get to know it in more detail. MSM8260 is the second generation of Qualcomm Snapdragon chips, made according to the 45 nm process.
Qualcomm Snapdragon System-on-Chip consists of the following function blocks:
- Application Processor / CPU is the central processor core on which the operating system runs. Qualcomm's Scorpion processor core runs on Snapdragon chipsets.
- GPU - Adreno video accelerator with support for a unified shader architecture and OpenGL ES 2.0. In addition to its direct duties, Adreno (205 and above) is also engaged in hardware acceleration of Adobe Flash, SVG, etc.
- Baseband / Modem - a microprocessor on whose shoulders lies the work with GSM / UMTS / CDMA. Transceivers and signal amplifiers, as a rule, are made in the form of separate microcircuits.
- DSP is a specialized microprocessor that performs the tasks of video encoding, image processing, mp3 and other audio streams. Thus, the DSP offloads the main processor from performing too costly multimedia operations. The Snapdragon family employs a QDSP6000 coprocessor with a frequency of 595 MHz.
- GPS is a microprocessor for executing the logic associated with determining the current location. The technology used in Qualcomm's SoC is called gpsOne and uses signals from GPS, GLONASS satellites, as well as from cell phone towers.
Scorpion
While most manufacturers license the architecture from ARM, Qualcomm decided to create a processor core on their own using only a set of ARMv7 instructions. The result of the hard work of the unit in North Carolina was the processor core Scorpion. Scorpion is compatible with the Cortex-A8 in a set of instructions, but is significantly ahead of the possibilities, coming close to the Cortex-A9.To increase productivity and maintain an acceptable level of energy consumption, Scorpion supports superscalarity and an out-of-order mechanismexecution). Both technologies have long been used in the x86 architecture, but have recently appeared in ARM processors. The superscalarity mechanism allows the processor to load two instructions in one clock cycle in order to avoid downtime of the processor execution units. Support for the extraordinary execution of commands allows you to speculatively run commands to execute as they are ready, without waiting for the result of the previous ones. The Cortex-A8 processor supports a less advanced in-order execution mechanism, which uses processor execution units less efficiently.
The Scorpion pipeline has 13 stages and is similar in design to the Cortex-A8, but the Qualcomm processor can run at higher frequencies. The Cortex-A9 pipeline contains 8 stages, which at the same frequencies allows it to be more productive than Scorpion, due to the reduction in overhead when errors occur in the branch prediction mechanism. However, Scorpion at the same time remains a more economical processor, and its frequency margin is larger.
The times when floating point operations were performed on ARM processors exclusively with the help of an emulation program are already far in the past. Scorpion, like Cortex A8 / A9, implements the FPU VFP (Vector Floating-point Architecture). Scorpion and Cortex A9 have FPU performance parity, while the A8 is inferior to its counterparts. In A8, ARM decided not to use pipelining for VFP and lost a lot.
Separately, it is worth mentioning the NEON SIMD extension block, which first appeared in Scorpion (128-bit data) and Cortex A8 (64-bit data) processors. NEON is a runtime device for processing integer data and floating point data. A curious fact is that in A9 the presence of NEON is completely optional, and for example, in nVidia Tegra 2 this block is not! As you probably already guessed, NEON SIMD instructions are used to optimize multimedia processing applications. For example, RockPleer uses NEON to decode video, and the number of such applications will only grow in the future.
Multicore
Support for multi-core Snapdragon was laid down initially, and the first swallow was the SoM MSM8260 in HTC Sensation and Evo 3D. Dual-core solutions based on the Cortex A9 architecture appeared on the market a little earlier, but, unlike Snapdragon, they have less flexibility.Consider the differences in more detail:
- L2 cache. MSM8X60 contains two Scorpion processor cores, which share 512 Kb of L2 cache (second level cache), versus 1 Mb in configurations with Cortex A9. However, the cache in Qualcomm solutions is clocked completely independent of the processor cores and in most cases operates at the maximum processor core frequency. Cortex A9 L2 cache is combined with processor cores through a slower AXI bus and operates at a lower frequency.
- Asynchronous multi-core. It's no secret that modern mobile processors can dynamically lower their own frequency and core voltage to reduce power consumption. When developing multi-core solutions, Qualcomm made it possible to set different frequencies and voltages on the processor cores. This effect is called asynchronous multi-core. At the same time, Cortex A9 does not have such flexibility: processor cores are forced to work at the same frequency and voltage.
Adreno
For a long time, Qualcomm licensed the Imageon video processor from ATI / AMD, and in early 2009, AMD announced the sale of Qualcomm's mobile GPU development unit. The result of the work of Qualcomm and AMD specialists was the Qualcomm Adreno video accelerator.Adreno’s performance is growing at a tremendous pace: if Adreno 2xx can provide a level of graphics comparable to PS2, then in the Adreno 3xx series Qualcomm promises to make a quantum leap and is equal in level of graphics to PS3 and XBox 360. For example, hardware tessellation appeared in modern video accelerators quite recently, but its support is already available in Adreno 205 and above.
Wrap-up!
Despite the fact that the first version of Snapdragon was released in 2008, it is constantly being improved and today is one of the most popular and competitive ones. Next year, Qualcomm plans to launch a new Krait processor core and an updated version of the Adreno accelerator. It is expected that the solution will not only outperform the Cortex A9 in performance, but will be able to go on par with the Cortex A15.Scorpion and Adreno have enormous potential, which is currently used only for the smallest part (NEON SIMD, hardware acceleration of OpenVG), but it will certainly show itself in the near future.