This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

understanding VFP and NEON on OMAP35x

What is NEON?
Neon is a SIMD (Single Instruction Multiple Data) accelerator processor integrated in with the ARM Cortex-A8. What does SIMD mean. It means that during one instruction you can have many operations occurring at the same time. It is also synonymous with the term vector processor. Since there is parallelism inside the NEON, you can get more MIPS or FLOPS out of NEON than you can a standard SISD processor such as the ARM running at the same clock rate. Many NEON benchmarks are shown as ARM takes N instructions while NEON takes less than N instructions. This shows how much parallelism can be achieved for that benchmark. Reducing instruction count will reduce the number of clocks used to perform the same task.


What is VFP?
VFP is a floating point hardware accelerator. It is not a parallel architecture like NEON. Basically it performs one operation on one set of inputs and returns one output. It's purpose is to speed up floating point calculations. If a processor like ARM does not have floating hardware, then it relies on software math libraries which can take 10 to 100's of cycles to complete one floating point calculation. The VFP supports both single and double precision floating point calculations compliant with IEEE754.


What is the relationship between NEON and VFP:
NEON and VFP share the same register file inside of the Cortex-A8. They have 32 - 64 bit registers that are separate from the ARM's registers. You can also configure the NEON/VFP registers as 16 - 128 bit registers.

There are 2 paths or pipelines in NEON:
   Integer and fixed point
   Single precision floating point
VFP has a single path:
   single or double precision floating point