This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Reducing DSP clock rate in DM6467

Hi,

We are using the DM6467 DSP for developing our set top box system.

The DSP bios version is 5.41

The ARM clock is set to 495Mhz whereas the DSP being twice the clock rate for ARM is set to approx 1GHz.

This basically leads to very high power consumption and additionally heats up the device in long run.

Additionally the DSP is used only for decoding digital streams hence it may not be necessary to clock the DSP at such a high rate

Hence my query is

1) Is is possible to change the DSP clock rate with out effecting the ARM clock since we do need the ARM clock to run at the at the same rate as mentioned above ie ca we change the clock ratio between ARM and DSP?

2) Additionally can we also the turn off the DSP clocks when we dont need them. (This has been asked already in a separate query on e2e for which the reply  is still pending)

3) Does the DSP BIOS have an idle mode implementation whereby it can go to low power mode when not in use

Thanks and Regards

Mohammed Anwar

 

 

  • 1> Unfortunately, NO. ARM and DSP clock ratio can not be changed. Always DSP speed = 2x of ARM.

    2> Yes, DSP clock can be turned off and disabled. Look at following sections/chapters in DM646x ARM Subsystem User's Guide (http://www.ti.com/litv/pdf/spruep9e):

    Chapter 6 (Power and Sleep Controller)

    Sections 12.5.2 and 12.5.3

    3> I will move this post to BIOS forum so that some from BIOS team will answer your question.

    Regards, Srirami.

  • Mohammed,

    No, DSP/BIOS does not provide any support for power managing the DM6467 devices. 

    For reducing “idle mode” consumption (as you mention), one thing you can do in your application is to add a function to the BIOS Idle loop that invokes the CPU’s ‘idle’ instruction.  For example:

    void idleFunction(void) {
        asm(“ idle”);
    }

    When executed, this will cause the CPU to wait (in the idle instruction) until the next interrupt occurs.
    The amount of savings will depend upon how heavily loaded the CPU is (and how long the CPU can stay idle), but this is typically an easy way to save some power.

    I’m going to ask that this thread be moved back to the previous forum, as that seems more appropriate…

    Regards,
    Scott