• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Digital Signal Processors (DSP) » DaVinci™ Video Processors » DM64x DaVinci Video Processor Forum » Finding Interrupt Latency
Share
DaVinci™ Video Processors
  • Forums
  • Announcements
Options
  • Subscribe via RSS

Forums

Finding Interrupt Latency

This question is not answered
an_2008
Posted by an_2008
on Aug 19 2008 12:09 PM
Prodigy130 points
Hi, I want to measure the interrupt latency of my code.I thought of using the "C6000 Interrupt Latency Detection Feature on the Simulator" available in CCS. I am using 'C64x+ Cycle Accurate Simulator, Little Endian' on CCS v3.3.38.2.I see that this feature is not supported on this simulator (driver cfg file – simc64plus.cfg).I am referring to a document 'ug_interrupt_latency_c64plus.doc' obtained with CCS v3.3 for the procedure. There is nothing mentioned about the simulator types on which this feature is supported. Please let me know if this feature is supported only on particular simulators or I need to install anything else to use this feature on my simulator.Also, is there a way to measure the interrupt latency of my code on Codec Engine framework? If so, please share the information. Awaiting your response.Thanks & regards,Akshatha

 

Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Bernie Thompson TI
    Posted by Bernie Thompson TI
    on Aug 19 2008 13:13 PM
    Mastermind41680 points

    Based on the Wiki article regarding the interrupt latency checker you may want to try 'C64x+ CPU Cycle Accurate Simulator, Little Endian' instead, which brings in the 'simc64plus_cpu.cfg'. I have not had a chance to use this tool myself but hopefully the minor simulator configuration change will help it to work for you.

    As to measuring the interrupt latency once the code is in Codec Engine, I am not sure such a tool exists, the SoC Analyser collects a lot of trace information but I believe interrupt latency is beyond the scope of SoC Analyzer.

    interrupts Simulator
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • an_2008
    Posted by an_2008
    on Aug 20 2008 08:10 AM
    Prodigy130 points

    Thanks for the response.

    But, I cannot find the ILC feature in 'simc64plus_cpu.cfg' also. I do have CCS v3.3.38.2. Is there a different version of the drivers that I should use?

    Regards,

    Akshatha

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Bernie Thompson TI
    Posted by Bernie Thompson TI
    on Aug 20 2008 16:40 PM
    Mastermind41680 points

    I looked through my config files and none of them seem to have that with the exception of some of the simtci64xx configuration files. I believe you are supposed to add in the text into the configuration files by hand, as my .cfg files should be relatively up to date since I just recently went to the latest CCS service pack so if mine does not have them chances are none of the current production CCS releases have them. For an example, based on where it is placed in the simtci6486.cfg file, I would guess that you want to place it just before the END C64xplus; line in simc64plus_cpu.cfg. I will check on this internally to see if this is really the right way to go and let you know if there is a better way.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • an_2008
    Posted by an_2008
    on Aug 21 2008 00:37 AM
    Prodigy130 points

    Thank you.
    I will try adding it myself and let you know the results.
    Please do inform me if this is the right way to do it.
    Regards,
    Akshatha

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Bernie Thompson TI
    Posted by Bernie Thompson TI
    on Aug 21 2008 09:11 AM
    Mastermind41680 points

    It looks like there is now an easier way to do this, in particular if you load C:\CCStudio_v3.3\cc\gel\interruptlatencydetector.gel it will give you GEL commands to start and stop the interrupt latency detector. The wiki page has been updated with this, and if you look inside that GEL file it provides some additional insight on how to use it.

    interrupts Simulator
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • an_2008
    Posted by an_2008
    on Aug 22 2008 05:39 AM
    Prodigy130 points

    Thanks a lot for the information.
    I will try it out.

    Regards,
    Akshatha

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • an_2008
    Posted by an_2008
    on Aug 22 2008 08:35 AM
    Prodigy130 points

    Hi,

    I was able to use the ILC feature and measure the interrupt latency of my code.
    Thanks for your help.
    I have another doubt. The interrupt latency is determined between the points of usage of DINT and RINT instructions. But not by monitoring the GIE bit of CSR register. Is this right?

    Regards,
    Akshatha

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Bernie Thompson TI
    Posted by Bernie Thompson TI
    on Aug 22 2008 09:22 AM
    Mastermind41680 points

    I am glad to hear that it worked for you.

    Based on what processors the ILC supports and the Wiki page description I believe it is actually monitoring directly the capability of the processor to execute interrupts through monitoring GIE writes, branch delay slots, and NMI writes. It must not be just watching DINT and RINT instructions because these are specific C64x+, and the ILC supports C64x devices.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • an_2008
    Posted by an_2008
    on Aug 22 2008 12:26 PM
    Prodigy130 points

    Hi,
    I have experimented with the following code:

    function1()
    {
     ..
     DINT; // mark1
     ..
     function2();
     ..
     RINT; // mark4
    }
    function2()
    {
     ..
     DINT; // mark2
     ..
     ..
     RINT; // mark3
     ..
    }

    GIE was set to 1 before 'mark1'. The interrupt latency was equal to number of cycles between 'mark1' and 'mark3'.
    Hence, we did not get the right value for interrupt latency. Can you please comment on this?

    Regards,

    Akshatha

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Bernie Thompson TI
    Posted by Bernie Thompson TI
    on Aug 22 2008 17:23 PM
    Mastermind41680 points

    This is an interesting situation, as a set of nested pair or DINT/RINT like will happen in this pair of function calls means that the RINT will not set the GIE bit since the GIE=1 is pushed off of the SGIE bit with the second DINT. So as you say just looking at this code it would seem to me that interrupts could be disabled indefinitely, so it seems this may be a flaw in the utility... I will have to check with the software folks on this to see if this is a situation that the tool recognizes.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • an_2008
    Posted by an_2008
    on Aug 25 2008 06:09 AM
    Prodigy130 points

    Yes, that is true.
    In the normal cases (no nesting of DINTs), the tool worked fine. But, it did not seem to handle the nested case.
    Hence, I raised my doubt earlier that it must be just monitoring the instructions, not the GIE bit actually.
    Please let me know if the tool can support this.

    Regards,
    Akshatha

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Bernie Thompson TI
    Posted by Bernie Thompson TI
    on Aug 26 2008 08:52 AM
    Mastermind41680 points

    It looks like this is officially a defect in the ILC tool, the simulator team verified that it is interpreting RINT as a enable by default as shown by your testing. This should be fixed in a future service release of CCS 3.3 (likely SR12), and is referenced internally by defect# SDSCM00027632.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • an_2008
    Posted by an_2008
    on Aug 27 2008 00:53 AM
    Prodigy130 points

    Thanks a lot for the information.
    Hoping to get the service release soon.

    Regards,
    Akshatha

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • an_2008
    Posted by an_2008
    on Aug 28 2008 02:57 AM
    Prodigy130 points

    Hi,

    While using the ILC feature on CCS 3.3, we noticed that the change in the 'SET_INT_THRESHOLD' value other than 500 in the GEL file is not taking effect.
    hotmenu SetThreshold(){
        GEL_DriverString("SET_INT_THRESHOLD::500");
    }

    Please let me know if I have to change this value in any other place ?

    We followed the following steps:
      1. Edit the GEL file
        * Open the GEL file in a test editor
        * Look for "hotmenu SetThreshold"
        * You would notice a statement
          GEL_DriverString("SET_INT_THRESHOLD::500");
        * Change the value "500" to a latency
          threshold  to a desired value
        * Save the GEL file
      2. Reload the GEL file
     

    Regards,
    Akshatha

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • an_2008
    Posted by an_2008
    on Aug 29 2008 05:00 AM
    Prodigy130 points

    Hi,

    While using the ILC feature on CCS 3.3, we noticed that the cycle counts were negative (as below)
    (we ran the profile for a long duration)
    <cycle_start>-1720899472</cycle_start>
    <cycle_end>-1720810930</cycle_end>

    So, is this data valid?
    Why is the cycle count negative?

    Regards,
    Akshatha

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
12
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use