Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
ARM architecture family
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==={{anchor|NEON}}{{anchor|Advanced SIMD (NEON)}}Advanced SIMD (Neon)=== The ''Advanced SIMD'' extension (also known as ''Neon'' or "MPE" Media Processing Engine) is a combined 64- and [[128-bit computing|128-bit]] SIMD instruction set that provides standardised acceleration for media and signal processing applications. Neon is included in all Cortex-A8 devices, but is optional in Cortex-A9 devices.<ref>{{cite web |url=https://www.arm.com/products/processors/cortex-a/cortex-a9.php |title=Cortex-A9 Processor |website=arm.com |access-date=21 November 2011}}</ref> Neon can execute MP3 audio decoding on CPUs running at 10 MHz, and can run the [[GSM]] [[adaptive Multi-Rate audio codec|adaptive multi-rate]] (AMR) speech codec at 13 MHz. It features a comprehensive instruction set, separate register files, and independent execution hardware.<ref>{{cite web |url=http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0409f/Chdceejc.html |title=About the Cortex-A9 NEON MPE |website=arm.com |access-date=21 November 2011}}</ref> Neon supports 8-, 16-, 32-, and 64-bit integer and single-precision (32-bit) floating-point data and SIMD operations for handling audio and video processing as well as graphics and gaming processing. In Neon, the SIMD supports up to 16 operations at the same time. The Neon hardware shares the same floating-point registers as used in VFP. Devices such as the ARM Cortex-A8 and Cortex-A9 support 128-bit vectors, but will execute with 64 bits at a time,<ref name="cortex_a9"/> whereas newer Cortex-A15 devices can execute 128 bits at a time.<ref>{{cite web |url=https://patents.google.com/patent/US20050125476A1/en |title=US20050125476A1}}</ref><ref>{{cite web |url=https://patents.google.com/patent/US20080141004A1/en |title=US20080141004A1}}</ref> A quirk of Neon in Armv7 devices is that it flushes all [[subnormal number]]s to zero, and as a result the [[GNU Compiler Collection|GCC]] compiler will not use it unless {{code|-funsafe-math-optimizations}}, which allows losing denormals, is turned on. "Enhanced" Neon defined since Armv8 does not have this quirk, but as of {{nowrap|GCC 8.2}} the same flag is still required to enable Neon instructions.<ref>{{cite web |title=ARM Options |url=https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html |website=GNU Compiler Collection Manual |access-date=20 September 2019}}</ref> On the other hand, GCC does consider Neon safe on AArch64 for Armv8. ProjectNe10 is ARM's first open-source project (from its inception; while they acquired an older project, now named [[Mbed TLS]]<!--the sub-project https://github.com/ARMmbed/mbed-crypto seems to have only x86 assembly-->). The Ne10 library is a set of common, useful functions written in both Neon and C (for compatibility). The library was created to allow developers to use Neon optimisations without learning Neon, but it also serves as a set of highly optimised Neon intrinsic and assembly code examples for common DSP, arithmetic, and image processing routines. The source code is available on GitHub.<ref>{{GitHub|projectNe10/Ne10|Ne10: An open optimized software library project for the ARM Architecture}}</ref>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
ARM architecture family
(section)
Add topic