The invention presents a software agent that optimizes processing
resources for multiple instances of a software module that are executing
simultaneously. The agent allocates and distributes processing resources,
such as MIPS (millions of instruction cycles per second), to software
functions executing on a core and controls resource distributions and
module functions in a manner such that maximum processing capacity is
utilized but not exceeded. The agent schedules the enabling and disabling
of software module instance functions using a prioritization scheme that
allocates MIPS to functions as the functions are enabled. An exemplary
embodiment optimizes MIPS resources for multiple instances of an echo
cancellation unit operating on a DSP (digital signal processor) core.