Part Number: TMS320C6746
I am running a real-time audio processing algorithm on the c6746. When I run the code in externally cached DDR2 memory it intermittently consumes many more clock cycles then it should. By intermittently more than it should, I mean the main processing loop consumes what I consider to be the correct number of clock cycles on the majority of its main loop iterations and then every several iterations (randomly between 2 and 10) the code consumes 5 or 6 times the standard clock cycles. I can get this behavior to stop by disabling the UPP. So it appears to be some kind of interaction with the UPP running. When I run the same code out of all internal memory then the code consumes the correct clocks consistently even with the UPP running.
The UPP is exchanging audio samples with an external FPGA, which is I obviously can’t do without. I have to run the code in external memory because when fully configured the code will not fit (not even close) in internal memory. I am running the same paired down version in both internal and external memory for this test. The UPP uses its own DMA to write/read from external cache memory as well. For this test case there are no other peripherals running, just the UPP and DDR2 cached memory accesses.
Is it possible that this type of behavior is what you would expect from conflicts in the Switched Central Resource? Any ideas on what I may be able to do to get more consistent performance or to alleviate this problem?
