DSPRelated.com
Forums

question on DAT module

Started by behcsiang April 9, 2003
Dear All,

I'm confused with the DAT module of DSP/BIOS. I'm
using C6415 chip.

According to the help, before begin any DAT_copy /
DAT_fill tranfer, the DAT_open(...) must be called to
allocate an exclusive channels for the module.

Is that means the DAT module only use that particular
channel (only one exclusive channel) in it's operation ?

Let say I have a few DAT_copy calls like this :

xfrid1 = DAT_copy(DAT_2D1D, srcPtr1, dstPtr1, byteCnt1); /* 1st
DAT Operation */
xfrid2 = DAT_copy(DAT_2D1D, srcPtr2, dstPtr2, byteCnt1); /* 2nd
DAT Operation */
xfrid3 = DAT_copy(DAT_2D1D, srcPtr3, dstPtr3, byteCnt1); /* 3rd
DAT Operation */
xfrid4 = DAT_copy(DAT_2D1D, srcPtr4, dstPtr4, byteCnt1); /* 4st
DAT Operation */
xfrid5 = DAT_copy(DAT_2D1D, srcPtr5, dstPtr5, byteCnt1); /* 5nd
DAT Operation */
xfrid6 = DAT_copy(DAT_2D1D, srcPtr6, dstPtr6, byteCnt1); /* 6rd
DAT Operation */
... That means the DAT_copy(s) actually happens in a serial
(sequencial) manner? The 1st DAT Operation starts.
The 2nd DAT operation will not start before the 1st DAT
operation complete ? Then, after the 2nd DAT operation completes,
the 3rd DAT Operation will begin ? And so on ?

Are the DAT requests being served as "first come first serve
basis" ?

Is it possible the DAT_copy(s) happens in parallel ?
(maybe more than one channel is used ?)

According to the help file, it is possible to have multiple
DAT requests pending because of hardware request queues.
What is the limit to the pending / queues ? What will happens
if the queue is full ? The program will be blocked until there
is free slot in the hardware queue ? Thanks for advices.

--
Beh CS