Public Version
IVA2.2 Subsystem Basic Programming Model
www.ti.com
5.4.6 iME and iLF Basic Programming Model
5.4.6.1
Typical Use
The iME and iLF coprocessors are parallel coprocessors, so they are partially autonomous and provide
highly parallel video processing. To use the iME/iLF coprocessor in a video accelerator design, perform
the following steps:
Step 1.
Initialize the module.
Step 2.
Prepare the data to be processed in the shared L2 memory.
Step 3.
Prepare the instructions for processing in the L2 memory.
Step 4.
Prepare the parameter stack in the L2 memory.
Step 5.
Configure the device to generate an interrupt on completion.
Step 6.
Write a LoadInstBuf() instruction in the program buffer register
(
and
or
and
) with the
address parameter pointing to the instruction in L2 shared memory.
Step 7.
Start the coprocessor by writing to START in the
or
register.
Step 8.
Wait for the coprocessor interrupt (the DSP or sequencer is free to perform other tasks during
coprocessor processing).
Steps 2, 3, and 4 can be performed with the help of the DSP EDMA, which can be configured by both the
sequencer and the DSP megamodule.
Steps 5, 6, and 7 can be performed by both the sequencer and the DSP megamodule, but using the DSP
megamodule for this task causes long DSP stalls because of high latency between the DSP megamodule
and the iLF/iME module.
The DSP megamodule or the sequencer can prepare multiple sets of data in shared L2 memory (Steps 2,
3, and 4), then the sequencer can launch multiple processing with the coprocessor (Steps 6 and 7) until all
prepared data sets in shared L2 memory are used. This way, the DSP and/or DSP EDMA is offloaded for
a longer time.
is a flow chart of a typical use of iLF/iME in video processing. In the flow chart,
the four units (DSP, EDMA, sequencer, and coprocessor) work in parallel.
772
IVA2.2 Subsystem
SWPU177N – December 2009 – Revised November 2010
Copyright © 2009–2010, Texas Instruments Incorporated