0

And can we hope it will be supported in all future mobile devices on ARM architecture (including NVIDIA Tegra)?

Zloten
  • 97
  • 2
  • 4
  • What is modern ARM SoCs? Upcoming 64-bit server targeting ones? or armv7 based mobile processors? – auselen May 07 '14 at 12:23
  • No. Only the *ARM Cortex-M4F* has it in the [Cortex-M](http://en.wikipedia.org/wiki/ARM_Cortex-M) family. Also, this is a site for programmers, not fortune tellers. ARM typically gives some way to tell if the NEON extension is present. An OS may also install an *undefined instruction* handler to probe support. – artless noise May 07 '14 at 14:41
  • Sorry, I should gave more information about subject in my questions. Mostly I mean armv7a because as I can read at the ARM site the armv8a has the NEON extension as mandatory extension. Currently we have to create two branches of application (NEON and non-NEON). So the question is may be it's worth to kill non-NEON branch and concentrate on NEON one. – Zloten May 07 '14 at 15:48

2 Answers2

3

Unlike certain other ISA author companies, ARM does not have a hard commitment to backward compatibility. Mobile devices, the primary market for ARM cores, are unique and heterogeneous to the point where having a stable ISA would not make much difference. ARM is also targeted at low-power applications, meaning it is desirable to exclude unwanted features and keep the instruction set small, using only what the target application can take advantage of. As a result, a given release of the ARM architecture is a union of ISA families that together define feature-rich a system with relatively few unwanted instruction families.

An (incomplete) argument for a changing instruction set across releases is that an ISA is no longer seen as the programmer abstraction, and a chip-specific compiler is tasked with presenting a stable language for the programmer. Of course, compilers are only so good at squeezing C into extravagant instructions, and architecture-specific directives (and hand-coded segments of assembly) are still common in efficiency-critical libraries.

While some of the ISA extensions we have seen crop up over the years that prove to be widely useful ISA features (NEON appearing to be one of them - 128-bit SIMD is handy!) persist more reliably than others, there does not appear to be a guarantee that any specific ISA extension is to become future-compatible.

In response to the original question, NEON is mandatory in all Cortex-A8 devices but optional in Cortex-A9. ARM's business model allows companies to license a Cortex-A9 core and omit non-mandatory extensions. Tegra 2 appears to exclude NEON (but makes up for it by offering a "SIMD"-ish coprocessor in form of the GPU).

Ilia Lebedev
  • 355
  • 3
  • 7
0

In theory, NEON is optional in ARM processors implementing ARM v7 architecture (for example Cortex-A9 based SoCs). In practice, most modern SoCs indeed have NEON.

On the other hand, NEON is mandatory in ARM processors based on ARMv8 architecture (the processors with 64-bit support).

Oak Bytes
  • 4,649
  • 4
  • 36
  • 53