Texas Instruments TMS320 User Manual page 156

Dsp/bios v5.40
Hide thumbs Also See for TMS320:
Table of Contents

Advertisement

Power Management
4.6.1
Idling Clock Domains
4.6.2
Saving Power at Boot Time
4-52
TI DSPs include an "IDLE" instruction that gates off DSP clocks to reduce
active power consumption. This is the primary mechanism used to reduce
power consumption at run-time. On the 'C55x, clocks are divided into the
following clock domains: CPU, CACHE, DMA, EMIF, PERIPH, and CLKGEN.
These domains can be idled by setting the corresponding bit in the Idle
Configuration Register (ICR), and then executing the IDLE instruction.
When idling clock domains, care must be used to avoid adverse effects on
application scheduling. For example, if a task decides to idle the DSP CPU
until more data arrives, other tasks of equal or lower priority cannot run until
the next interrupt occurs. The task has inadvertently blocked scheduling of
other tasks. To avoid this situation, the DSP CPU should only be idled within
the DSP/BIOS idle loop, which runs when no other threads are ready to run.
To facilitate this, the PWRM module allows you to automatically idle selected
clock domains in the DSP/BIOS idle loop. The clock domains to be idled can
be statically configured using PWRM module properties, and can be changed
dynamically with the PWRM_configure function.
When PWRM is configured to idle clock domains in the IDL loop, other IDL
loop processing does not run as regularly as it did previously. For example,
when real-time analysis is enabled, the idle loop runs functions to compute
the CPU load, to gather real-time analysis data from the DSP, and to pump
data from the DSP to Code Composer Studio. When PWRM idling is enabled,
the PWRM_F_idleDomains function is added to the list of idle loop functions.
If PWRM idles the CPU domain, then each time PWRM_F_idleDomains runs
in the idle loop, the CPU domain is suspended until the next interrupt occurs.
As a result, dynamic updating of real-time analysis data in Code Composer
Studio stalls or appears "choppy".
Idling clock domains within the idle loop is intended for use in deployed
systems; that is, those for systems in which Code Composer Studio is not
used.
The PWRM_idleClocks function provides a way to idle clock domains
immediately and indefinitely. If for example, an application runs entirely from
on-chip memory, it can call PWRM_idleClocks to idle the EMIF clock domain.
DSPs typically boot up fully powered and at their maximum clock rate.
However, there are inevitably powered resources that are not needed initially,
or that may never be used by a particular application.

Advertisement

Table of Contents
loading

Table of Contents