As per my understanding by referring to many links to ARM's site I understand Cortex-M7 doesn't support NEON instructions, but the host (CORTEX-M7) processor that we are using in our organization specifies "ARM Cortex-M7 with single precision floating point and SIMD operations". Now I am totally out of mind and in confusion. Is there any difference between SIMD and NEON instructions, please can any one explain in detail? Thanks in advance for the good explanation.
Asked
Active
Viewed 6,519 times
1 Answers
9
There are some instructions in the basic instruction set that can add and subtract 32-bit wide vectors of 8 or 16 bit integer values and in the ARM marketing material they are referred to as SIMD. NEON on the other hand is a much more capable SIMD implementation that works on 64 or 128 bit wide vectors of 8, 16, or 32 bit integer values and single or double precision floats. In the marketing material NEON is often referred to as "advanced SIMD".

Johan
- 3,667
- 6
- 20
- 25
-
Thank you for the info. So I can assume that SIMD supporting single precision floating point is NEON. Do we have categories for SIMD instructions? Please can you explain in detail if possible. – harishchandra manchikanti Jul 03 '17 at 12:33
-
2@harishchandramanchikanti No, you can't. You are interpreting two different bullet points in the marketing material as one. Cortex-M7 supports single precision operations on single elements of floating poing point data (normal single precision floating point instructions). In addition to this Cortex-M7 has the limited SIMD instructions from the normal instruction set. There is no NEON on CM7. – Johan Jul 03 '17 at 13:00
-
Thank you, I will dig in deep regarding VFP and NEON as well understanding of single precision operations. – harishchandra manchikanti Jul 04 '17 at 04:46
-
2This is a good oveview: https://community.arm.com/processors/b/blog/posts/white-paper-dsp-capabilities-of-cortex-m4-and-cortex-m7 (see attached PDF on that page) – solidpixel Jul 13 '17 at 13:32