Hi All,
Preface :
during development of the EDMA3 functionality wrapper for QDMA transfers (between DDR3 and MSMC SRAM) i met a strange problem with the performance. While setting single transfer for about 128 KB I could achieved expectable transfer speed (the speed was measured after transfering 256 MB). But while setting smaller single transfer sizes I observed that the performance is decreasing. I tried to find the reason of such behavior and it looks like using the interrupt causes the latency between transfers (while manually pooling the interrupt pending register in EDMA3 CC the performance was ok).
System description :
Processor : TMS320C6671
SYSBIOS : 6.34.2.18
Chip interrupt controller configured with CpIntc_xxx functions
HWI created with Hwi_create function
Problem :
Interrupt latency
I made a test and triggered the system event in the chip interrupt controller (using CpIntc api) and checked the core timestamp register (using the CLS_tscrRead) to check the time from triggering the function to the enterance of the interrupt function (passed to HWI_create) and the time of the interrupt function (the function was using CpIntc_xxx to reset the interrupt reason and register accesses to EDMA controller to read and clear interrupt). The values I got was about 500 for each.
Questions :
1. Is it a normal behavior (high latency using HWI interrupts) ?
2. Is there a way to improve the interrupt performance?
3. Is there a logical mistake in the the way I configured the interrupt from EDMA ?
I'll be very thankful for any hints.