ac6-training, un département d'Ac6 SAS
 
Site affiché en Français
Site affiché en FrançaisVoir le site en English (USA)Voir le site en English (GB)
+ +
- -
Cours en ligne
 
Calendrier  Détails
Systèmes d'Exploitation
 
Calendrier  Détails
Programmation
Calendrier  Détails
Processors
 
Calendrier  Détails
Communications
 
 
 
Calendrier  Détails
+ +
> >
- -

ac6 >> ac6-training >> Processors >> ARM Cores >> VFP programming Télécharger la page Ecrivez nous

RC0 VFP programming

This course explains how to use VFP instructions to boost multimedia algorithms

formateur
Objectives
  • This course has been designed for programmers wanting to develop algorithm based on hardware floating point calculations.
  • Each instruction family is detailed, first at assembly level, and then at C level using macros.
  • Several tricky usage of vector instructions are provided.
  • The underlying cache operation as well as preload mechanisms (instruction and hardware prefetch) are detailed to explain how a processing can be pipelined .
  • The course shows how DSP typical algorithms such as FIR and FFT can be vectorized and then optimized to be executed on VFP unit.

  • THIS COURSE IS PROPOSED EITHER AS AN INSTRUCTOR-LED COURSE OR AS E-LEARNING.

  • ACSYS has developed an optimized VFP based FFT coded in assembler language
    • performance for 1024 complex floating point single precision samples is 220_000 core clock cycles (ARM11)
    • for any information contact training@ac6-training.com
Labs are run under RVDS
A more detailed course description is available on request at training@ac6-training.com
  • Knowledge of 4T / V5TE instruction set.
  • Cours théorique
    • Support de cours au format PDF (en anglais) et une version imprimée lors des sessions en présentiel
    • Cours dispensé via le système de visioconférence Teams (si à distance)
    • Le formateur répond aux questions des stagiaires en direct pendant la formation et fournit une assistance technique et pédagogique
  • Au début de chaque demi-journée une période est réservée à une interaction avec les stagiaires pour s'assurer que le cours répond à leurs attentes et l'adapter si nécessaire
  • Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus.
  • Les prérequis indiqués ci-dessus sont évalués avant la formation par l'encadrement technique du stagiaire dans son entreprise, ou par le stagiaire lui-même dans le cas exceptionnel d'un stagiaire individuel.
  • Les progrès des stagiaires sont évalués par des quizz proposés en fin des sections pour vérifier que les stagiaires ont assimilé les points présentés
  • En fin de formation, une attestation et un certificat attestant que le stagiaire a suivi le cours avec succès.
    • En cas de problème dû à un manque de prérequis de la part du stagiaire, constaté lors de la formation, une formation différente ou complémentaire lui est proposée, en général pour conforter ses prérequis, en accord avec son responsable en entreprise le cas échéant.

Plan du cours

  • Floating point number coding
  • Denormalized numbers
  • NaN utilization
  • Rounding modess
  • VFP FPEXC register
  • Register bank, D registers, S registers
  • Instruction coding, either ARM or Thumb-2
  • Related system registers
  • Alignment issues
  • Context switching
  • Length / Stride combinations
  • Scalar operations
  • Vector operations
  • Mixed operations
  • Addressing modes
  • Floating point load / store
  • Floating point load / store multiple
  • Processor acceleration mechanisms: store merging buffers
  • Add / subtract / absolute value instructions
  • Multiply and multiply accumulate instructions
  • Divide instruction
  • Square root instruction
  • Compare instructions
  • Integer to FP and FP to convert instructions
  • FIR filter
    • Converting the scalar algorithm into a vector algorithm
    • Finding the VFP instructions to encode the vector algorithm
    • Optimizing the code
  • FFT (DFT)
    • Converting the scalar algorithm into a vector algorithm, understanding how circle properties can be used to process 4 angles concurrently
    • Finding the VFP instructions to encode the vector algorithm
    • Optimizing the code