SlideServe
Menu
Préférences
© SlideServe · v2026

Multi-core programming frameworks for embedded systems

dhailey avatar
16 diapositives · 233 Views · Jan 05, 2020

Explore the challenges of multi-core programming in embedded systems, framework requirements and methodology, multimedia data-flow analysis, and the analysis of the BF561 dual-core architecture. Learn about framework models, combining frameworks, results, and conclusions.

Multi-core programming frameworks for embedded systems - slide 1
01 / 16Multi-core programming frameworks for embedded systems
1 / 17

Télécharger la présentation

Multi-core programming frameworks for embedded systems
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Multi-core programming frameworks for embedded systems Kaushal Sanghai and Rick Gentile Analog Devices Inc., Norwood, MA

  2. Outline • Multi-core programming challenge • Framework requirements • Framework Methodology • Multimedia data-flow analysis • BF561 dual-core architecture analysis • Framework models • Combining Frameworks • Results • Conclusion

  3. Multi-core Programming Challenge • To meet the growing processing demands placed by embedded applications, multi-core architectures have emerged as a promising solution • Embedded developers strive to take advantage of extra core(s) without a corresponding increase in programming complexity • Ideally, the performance increase should approach “N” times where “N” is the number of cores • Managing shared-memory and inter-core communications makes the difference! • Developing a framework to manage code and data will help to speed development time and ensure optimal performance • We target some compute intensive and high bandwidth applications on an embedded dual-core processor

  4. Framework requirements • Scalable across multiple cores • Equal load balancing between all cores • A core data item request is always met at the L1 memory level • Minimum possible data memory footprint

  5. Framework methodology • Understanding the parallel data-flow of the application with respect to spatial and temporal locality • Efficiently mapping the data-flow to the private and shared resources of the architecture

  6. Multimedia Data-flow Analysis

  7. Dual-Core architecture Private L1 code and Data memory Shared L2 and external memory 4 Memory DMA channels Shared peripheral interface ADSP-BF561 Dual-core Architecture Analysis SDRAM (L3) 4x(16 – 128 MB) 8-10 sclk L2 shared and Unified Code and Data (128KB) SRAM 8-10 sclk SRAM/Cache 9 cclk L1 Code (32KB) L1 Data (64KB) 1 cclk Core A Core B

  8. Framework models • Slice/Line processing • Macro-block processing • Frame processing • GOP processing

  9. Framework design • Data moved directly from the peripheral DMA to the lowest (Level 1 or Level 2) possible memory level based on the data access granularity • DMA is used for all data management across memory levels, saving essential core cycles in managing data • Multiple Data buffers are used to avoid core and DMA contention • Semaphores are used for inter-core communication

  10. Line processing framework Video In Video Out Rx_Line0 Rx_Line1 Rx_Line2 Rx_Line3 Tx_Line0 Tx_Line1 Tx_Line2 Tx_Line3 Core A Internal L1 memory Core B Internal L1 memory • No L2 or L3 accesses made, thereby saving external memory bandwidth and DMA resources • Only DMA channels used to manage data • Applicable examples - color conversion, histogram equalization, filtering, sampling etc.

  11. L2 Rx Buffers L2 Tx Buffers Video In PPI1 Rx0 Rx0 Rx1 Rx1 Tx0 Tx0 Tx1 Tx1 Core A Internal L1 memory Core B Internal L1 memory Macro-block processing framework • No L3 accesses • Applicable examples - edge detection, JPEG/MJPEG encoding/decoding algorithms, convolution encoding etc

  12. L3 Frame Buffers Rx0 Rx0 Rx0 Rx0 Rx1 Rx1 Rx1 Rx1 Tx0 Tx0 Tx1 Tx1 Core A Internal L1 memory Core B Internal L1 memory Frame processing framework • Applicable example - motion detection

  13. L3 Frame Buffers GOP = 4 Rx0 Rx0 Rx0 Rx0 Rx0 Rx0 Rx1 Rx1 Rx1 Rx1 Rx1 Rx1 Tx0 Tx0 Tx1 Tx1 Core A Internal L1 memory Core B Internal L1 memory GOP processing framework • Applicable examples - encoding/decoding algorithms such as MPEG-2/MPEG-4

  14. Results

  15. Using the Templates Identify the following items for an application • The granularity of the sub-processingblock in the image processing algorithm • The available L1 and L2 data memory, as required by the specific templates. • The estimate of the computation cycles required per sub-processing block • The spatial and temporal dependencies between the sub-processing blocks. If dependencies exist, then the templates needs modification to account for data dependencies

  16. Conclusion • Understanding the data access pattern of an application is key to efficient programming model for embedded systems • The frameworks combine techniques to efficiently manage the shared resources and exploit the known data access pattern in multimedia applications to achieve a 2X speed-up • The memory footprint is equal to the smallest data access granularity of the application • The frameworks can be combined to integrate multiple algorithms with different data access pattern within an application