Computer Hardware Algorithm Standard User's Guide
Table Of Contents
- Table of Contents
- Preface
- 1 Overview
- 2 General Programming Guidelines
- 3 Algorithm Component Model
- 3.1 Interfaces and Modules
- 3.1.1 External Identifiers
- 3.1.2 Naming Conventions
- 3.1.3 Module Initialization and Finalization
- 3.1.4 Module Instance Objects
- 3.1.5 Design-Time Object Creation
- 3.1.6 Run-Time Object Creation and Deletion
- 3.1.7 Module Configuration
- 3.1.8 Example Module
- 3.1.9 Multiple Interface Support
- 3.1.10 Interface Inheritance
- 3.1.11 Summary
- 3.2 Algorithms
- 3.3 Packaging
- 3.1 Interfaces and Modules
- 4 Algorithm Performance Characterization
- 5 DSP-Specific Guidelines
- 6 Use of the DMA Resource
- 6.1 Overview
- 6.2 Algorithm and Framework
- 6.3 Requirements for the Use of the DMA Resource
- 6.4 Logical Channel
- 6.5 Data Transfer Properties
- 6.6 Data Transfer Synchronization
- 6.7 Abstract Interface
- 6.8 Resource Characterization
- 6.9 Runtime APIs
- 6.10 Strong Ordering of DMA Transfer Requests
- 6.11 Submitting DMA Transfer Requests
- 6.12 Device Independent DMA Optimization Guideline
- 6.13 C6xxx Specific DMA Rules and Guidelines
- 6.14 C55x Specific DMA Rules and Guidelines
- 6.15 Inter-Algorithm Synchronization
- A Rules and Guidelines
- B Core Run-Time APIs
- C Bibliography
- D Glossary
www.ti.com
A.5 DMA Guidelines
DMA Guidelines
Guideline 12 — All C6x algorithms should be supplied in both little- and big-endian formats. (See
Section 5.3.1 )
Guideline 13 — On processors that support large program model compilations, a version of the algorithm
should be supplied that accesses all core run-time support functions as near functions and all
algorithms as far functions (mixed model). (See Section 5.4.2 )
Guideline 14 — All C55x algorithms should not assume any specific stack configuration and should work
under all the three stack modes. (See Section 5.5.1 )
DMA Guideline 1 — The data transfer should complete before the CPU operations executing in parallel
(DMA guideline). (See Section 6.6 )
DMA Guideline 2 — All algorithms should minimize channel (re)configuration overhead by requesting a
dedicated logical DMA channel for each distinct type of DMA transfer it issues, and avoid calling
ACPY2 configure and preferring the new fast configuration APIs where possible. (See Section 6.12 )
DMA Guideline 3 — To ensure correctness, All C6000 algorithms that implement IDMA2 need to be
supplied with the internal memory they request from the client applciation using algAlloc(). (See
Section 6.13.1 )
DMA Guideline 4 — To facilitate high performance, C55x algorithms should request DMA transfers with
source and destinations aligned on 32-bit byte addresses. (See Section 6.14.1 )
DMA Guideline 5 — C55x algorithms should minimize channel configuration overhead by requesting a
separate logical channel for each different transfer type. They should also call ACPY2_configure
when the source or destination addresses belong in a different type of memory (SARAM, DARAM,
External) as compared with that of the most recent transfer. (See Section 6.14.2 )
SPRU352G – June 2005 – Revised February 2007 Rules and Guidelines 79
Submit Documentation Feedback