Qualcomm Hexagon

Hexagon (QDSP6) is the brand for a family of 32-bit multi-threaded microarchitectures implementing the same instruction set for a digital signal processor (DSP) developed by Qualcomm. According to 2012 estimation, Qualcomm shipped 1.2 billion DSP cores inside its system on a chip (SoCs) (average 2.3 DSP core per SoC) in 2011 year, and 1.5 billion cores were planned for 2012, making the QDSP6 the most shipped architecture of DSP[2] (CEVA had around 1 billion of DSP cores shipped in 2011 with 90% of IP-licenseable DSP market[3]).

Hexagon
DesignerQualcomm
Bits32-bit
Introduced2006 (QDSP6)
Design4-way multithreaded VLIW
TypeRegister-Register
EncodingFixed 4 byte per instruction, up to 4 instructions in VLIW multiinstruction
OpenProprietary
Registers
General purpose32-bit GPR: 32, can be paired to 64-bit[1]

The Hexagon architecture is designed to deliver performance with low power over a variety of applications. It has features such as hardware assisted multithreading, privilege levels, Very Long Instruction Word (VLIW), Single Instruction, Multiple Data (SIMD),[4][5] and instructions geared toward efficient signal processing. The CPU is capable of in-order dispatching up to 4 instructions (the packet) to 4 Execution Units every clock.[6][7] Hardware multithreading is implemented as barrel temporal multithreading - threads are switched in round-robin fashion each cycle, so the 600 MHz physical core is presented as three logical 200 MHz cores before V5.[8][9] Hexagon V5 switched to dynamic multithreading (DMT) with thread switch on L2 misses, interrupt waiting or on special instructions.[9][10]

At Hot Chips 2013 Qualcomm announced details of their Hexagon 680 DSP. Qualcomm announced Hexagon Vector Extensions (HVX). HVX is designed to allow significant compute workloads for advanced imaging and computer vision to be processed on the DSP instead of the CPU.[11] In March 2015 Qualcomm announced their Snapdragon Neural Processing Engine SDK which allow AI acceleration using the CPU, GPU and Hexagon DSP.[12]

Qualcomm's Snapdragon 855 contains their 4th generation on-device AI engine, which includes the Hexagon 690 DSP and Hexagon Tensor Accelerator (HTA) for AI acceleration.[13]

Software support

Operating systems

The port of Linux for Hexagon runs under a hypervisor layer ("Hexagon Virtual Machine"[14]) and was merged with the 3.2 release of the kernel.[15][16] The original hypervisor is closed-source, and in April 2013 a minimal open-source hypervisor implementation for QDSP6 V2 and V3, the "Hexagon MiniVM" was released by Qualcomm under a BSD-style license.[17][18]

Compilers

Support for Hexagon was added in 3.1 release of LLVM by Tony Linthicum.[19] Hexagon/HVX V66 ISA support was added in 8.0.0 release of LLVM.[20] There is also a non-FSF maintained branch of GCC and binutils.[21]

Adoption of the SIP block

Qualcomm Hexagon DSPs have been available in Qualcomm Snapdragon SoC since 2006.[22][23] In Snapdragon S4 (MSM8960 and newer) there are three QDSP cores, two in the Modem subsystem and one Hexagon core in the Multimedia subsystem. Modem cores are programmed by Qualcomm only, and only Multimedia core is allowed to be programmed by user.

They are also used in some femtocell processors of Qualcomm, including FSM98xx, FSM99xx and FSM90xx.[24]

Third-party integration

In March 2016, it was announced that semiconductor company Conexant's AudioSmart audio processing software was being integrated into Qualcomm's Hexagon.[25]


In May 2018 wolfSSL added support for using Qualcomm Hexagon. [26] This is support for running wolfSSL crypto operations on the DSP. In addition to use of crypto operations a specialized operation load management library was later added.

Versions

There are six versions of QDSP6 architecture released: V1 (2006), V2 (2007–2008), V3 (2009), V4 (2010–2011), QDSP6 V5 (2013, in Snapdragon 800[27]); and QDSP6 V6 (2016, in Snapdragon 820).[23] V4 has 20 DMIPS per milliwatt, operating at 500 MHz.[22][23] Clock speed of Hexagon varies in 400–2000 MHz for QDSP6 and in 256–350 MHz for previous generation of the architecture, the QDSP5.[28]

Versions of QDSP6 Process node, nm Date[9] Number of simultaneous threads Per-thread clock, MHz Total core clock, MHz
QDSP6 V165[9]Oct 2006
QDSP6 V2[29]65Dec 2007[9]6100600
QDSP6 V3 (1st gen)[29]452009667400
QDSP6 V3 (2nd gen)[29]4520094100400
QDSP6 V4[29] (V4M, V4C, V4L[9])282010–20113[10]167500
QDSP6 V5[30] (V5A, V5H[9])2820133[9]200 or greater with DMT[10]600
QDSP6 V6 68X[31]14/102016-201845002000

Availability in Snapdragon products

Both Hexagon (QDSP6) and pre-Hexagon (QDSP5) cores are used in modern Qualcomm SoCs, QDSP5 mostly in low-end products. Modem QDSPs (often pre-Hexagon) are not shown in the table.

QDSP5 usage:

Snapdragon generation Chipset (SoC) ID DSP Generation DSP Frequency, MHz Process node, nm
S1[28]MSM7627, MSM7227, MSM7625, MSM7225QDSP532065
S1[28]MSM7627A, MSM7227A, MSM7625A, MSM7225AQDSP535045
S2[28]MSM8655, MSM8255, APQ8055, MSM7630, MSM7230QDSP525645
S4 Play[28]MSM8625, MSM8225QDSP535045
S200[32]8110, 8210, 8610, 8112, 8212, 8612, 8225Q, 8625QQDSP538445 LP

QDSP6 (Hexagon) usage:

Snapdragon generation Chipset (SoC) ID QDSP6 version DSP Frequency, MHz Process node, nm
S1[28]QSD8650, QSD8250QDSP660065
S3[28]MSM8660, MSM8260, APQ8060QDSP6 (V3?)40045
S4 Prime[28]MPQ8064QDSP6 (V3?)50028
S4 Pro[28]MSM8960 Pro, APQ8064QDSP6 (V3?)50028
S4 Plus[28]MSM8960, MSM8660A, MSM8260A, APQ8060A, MSM8930,
MSM8630, MSM8230, APQ8030, MSM8627, MSM8227
QDSP6 (V3?)50028
S400[32]8926, 8930, 8230, 8630, 8930AB, 8230AB, 8630AB, 8030AB, 8226, 8626QDSP6V450028 LP
S600[32]8064T, 8064MQDSP6V450028 LP
S800[32]8974, 8274, 8674, 8074QDSP6V5A60028 HPm
S820[31]8996QDSP6V6200014 FinFet LPP

Code sample

This is a single instruction packet from the inner loop of a FFT:[7][10]

{ R17:16 = MEMD(R0++M1)
  MEMD(R6++M1) = R25:24
  R20 = CMPY(R20, R8):<<1:rnd:sat
  R11:10 = VADDH(R11:10, R13:12)
}:endloop0

This packet is claimed by Qualcomm to be equal to 29 classic RISC operations; it includes vector add (4x 16-bit), complex multiply operation and hardware loop support. All instructions of the packet are done in the same cycle.

gollark: You can't "set up" a static IP, your ISP has to provide it, silly.
gollark: ... it is not.
gollark: I wonder if the thing I left running to find the management page is done yet.
gollark: Also, the nice osmarks.tk 404 page is back, so you can all enjoy the rainbow square thing.
gollark: Personally, I'd use ttyd, which provides an actual terminal in the browser, if I wanted something other than just SSH.

See also

References

  1. Baseband exploitation in 2013: Hexagon challenges Archived December 24, 2013, at the Wayback Machine /Ralf-Philipp Weinmann Pacsec 20132013-11-14, Tokyo, Japan: "32-bit unified address space for code and data – Byte addressable; 32 General registers (32-bit) – also usable pairwise: 64-bit register pairs"
  2. Will Strauss, Forward Concepts. Wireless/DSP Market Bulletin: Qualcomm Leads in Global DSP Silicon Shipments Archived May 28, 2013, at the Wayback Machine // Forward Concepts: "In calendar year 2011, Qualcomm shipped a reported 521 million MSM chip shipments and we estimate that an average of 2.3 of its DSP cores in each unit resulted in 1.2 billion DSPs shipped in silicon. This (calendar) year, we estimate that the company will ship an average of 2.4 DSP cores with each (more complex) MSM chip."
  3. ; ; Ceva grabs 90% of DSP IP market, 2012
  4. Hexagon v2 Programmers Reference
  5. Lucian Codrescu (Qualcomm) (March–April 2014). "HEXAGON DSP: AN ARCHITECTURE OPTIMIZED FOR MOBILE MULTIMEDIA AND COMMUNICATIONS" (PDF). IEEE Micro 34.2. pp. 34–43.
  6. "Rob Landley's Blog Thing for 2012". Landley.net. Retrieved 2012-10-19.
  7. Porting LLVM to a Next Generation DSP, L. Taylor Simpson (Qualcomm) // LLVM Developers’ Meeting: 11/18/2011
  8. Faster 128-EEA3 and 128-EIA3 Software, Roberto Avanzi and Billy Bob Brumley (Qualcomm Research), Cryptology ePrint Archive: Report 2013/428, 2 Jul 2013. Page 9.
  9. Lucian Codrescu (Qualcomm) (August 2013). "Qualcomm Hexagon DSP: An architecture optimized for mobile multimedia and communications" (PDF). Palo Alto, CA: Hot Chips 25.
  10. Qualcomm Extends Hexagon DSP: Hexagon v5 Adds Floating-Point Math, Dynamic Multithreading // Linley Gwennap, Microprocessor Report, August 2013
  11. Ho, Joshua. "Qualcomm Details Hexagon 680 DSP in Snapdragon 820: Accelerated Imaging". www.anandtech.com. Retrieved 2019-05-12.
  12. "On-Device AI with Qualcomm Snapdragon Neural Processing Engine SDK". Qualcomm Developer Network. Retrieved 2019-05-12.
  13. "Artificial Intelligence Engine in Qualcomm Snapdragon 855 Mobile Platform Powers On-Device AI User Experiences in Flagship Premium-Tier Smartphones". Qualcomm. 2019-02-24. Retrieved 2019-05-12.
  14. https://developer.qualcomm.com/download/80-nb419-3ahexagonvirtualmachinespec.pdf%5B%5D (restricted access)
  15. "3.2 merge window, part 1". lwn.net. Retrieved 2012-10-19.
  16. Linux Kernel 3.2 Release Notes "1.4. New architecture: Hexagon"
  17. Richard Kuo, Hexagon MiniVM // linux.ports.hexagon, 25 Apr 2013
  18. Hexagon MiniVM // CodeAurora (Qualcomm)
  19. "LLVM 3.1 Release Notes". Llvm.org. 2012-05-15. Retrieved 2012-10-19.
  20. "LLVM 8.0.0 Release Notes". Llvm.org. 2019-03-20. Retrieved 2019-04-03.
  21. "Hexagon Project Wiki". Codeaurora.org. " "Hexagon download".
  22. Qualcomm Announces Its 2012 Superchip: 28nm Snapdragon S4, 10/12/2011 by John Oram. Quote: "Hexagon DSPs have been in Snapdragon chips since 2006."
  23. QDSP6 V4: Qualcomm Gives Customers and Developers Programming Access to its DSP Core // InsideDSP, June 22, 2012
  24. Qualcomm Aims Hexagon at Femtocells, October 31, 2011. Linley Gwennap// Linley WIRE
  25. "Qualcomm to Integrate Conexant AudioSmart into Hexagon DSPs". Speech Tech Magazine. 2016-03-01. Retrieved 2016-03-11.
  26. "wolfSSL Use With Hexagon Toolchain". wolfSLS. 2018-05-18. Retrieved 2020-07-10.
  27. Qualcomm Announces Next Generation Snapdragon Premium Mobile Processors // Qualcomm, January 07, 2013
  28. "List of Snapdragon SoCs" (PDF). Developer.qualcomm.com. Archived from the original (PDF) on 2012-10-26. Retrieved 2012-10-19.
  29. QDSP6 V4: BDTI Benchmark Results and Implementation Details Of Qualcomm's DSP Core // BDTI, February 12, 2013
  30. Qualcomm's QDSP6 v5: Benchmarking Results Confirm That Floating-Point Support Has Arrived // BDTI, June 12, 2013
  31. Qualcomm's QDSP6 v6: Imaging and Vision Enhancements Via Vector Extensions // BDTI, September 29, 2015
  32. Snapdragon 800, 600, 400, 200 Processor Specs // Qualcomm
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.