NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

STM Statistics Collector

From Texas Instruments Wiki
Jump to: navigation, search


Statistics Collector
[edit]

In OMAP4, the L3 interconnect supports a built-in performance monitoring feature by implementing a Statistics Collector (STATCOLL) component, which computes traffic statistics within a user-defined window and periodically reports to the user through the STM interface.

Three STATCOLL instances are instantiated in the device:

  • One statistics collector dedicated to SDRAM load monitoring

     STATCOLL_SDRAM

  • Two statistics collectors dedicated to master latency monitoring

    STATCOLL_LAT0
    STATCOLL_LAT1


Tools Use Cases[edit]

  • Average Burst Length:

Description:Calculate the average size (bytes) in a burst transaction. A normal signle word access will result 4 bytes of data per burst(transaction access). DMA transaction, in general, can transfer data up to 128 bytes per transaction. This calculation helps to optimize data transaction and improves bus utilization. For example, to transfer a large buffer using DMA efficiently, the average burst length for DMA should be close to 128.

  • Throughput per Sample Period:

Description: Calculate number of transaction (bytes) per sampling window (cycles). It is commonly used in bus bandwidth analysis.
Uer can convert the results to bytes/second by multiply the above result by statistic collector's operation frequence. For example, if the result is 1(byte\cycle) and statistic collector is operated at 100Mhz. The conversion will yeild 1*100M = 100Mbytes/s.
Note that different statistic collector may operate at different frequency on the same chip.

  • Link Occupancy for All Transactions: percentage of the time used for data transaction in a sample window period:

Description: Calculate the percentage of time the module is in active (non-idle) state. When module is in active state, it could be tranfering data, doing arbitration, or analyzing header.

  • Arbitration Conflicts for Request: percentage of target busy cycles in a sample window period

Description: Calculate the percentage of which the initiator(s) has(have) to wait for the respond. The arbitration conflict cycles is defined as the number of cycles that an initiator has to wait when it sends a write transaction but the target cannot accept it.

  • Initiator Busy on Response: percentage of initiator busy cycles in a sample window period:

Description: Calculate the percentage of time the module is in busy state such that it cannot accept any read data from a target.
NOTE: Both "Arbitration Conflicts for Request" use case and "Initiator Busy on Response" use case are measure and calculate % of time the module is in busy state. The difference is that one is to measure on the request side and the other one is to measure on the response side.

  • Transaction Underflow on Request:

Description: This statistic allows determination of the cycles during a write transaction when the initiator is not able to send data to a target at the rate at which the target can accept it. Note that this support may not be avaiable at all probe types.

  • Histogram of Payload Length:

Description: Show usage of N counters to determine how many packet payloads per sampling period are in a range of 0..n, n+1…m, m+1…k for different transaction types.
For an example, a DMA can transfer data at 16bytes/burst, 32bytes/burst, 64bytes/burst, and 128/bytes/burst. By setting up 4 counters to count the range of [0,20];[21,40];[41,80];[81,160], we can profile the DMA transfer activities to see what is the mostly use tranfer rate.

  • Histogram of Pressure Distribution:

Description: Amount of data bytes for low and high priority transferred during the sample window period.
Show usage of N counters to determine traffic priority attribute of each burst per sampling period are in a range of 0..n, n+1…m, m+1…k for different transaction types.

  • Average Latency Distribution:

Description: Calculate average read latency for each data packet. It is only avaiable on NTTP probe type. Only read transaction is applicable to this statistic.

  • Histogram of Latency Distribution: Number of the packets for different latency range transferred during the sample window period

Description: Show usage of N counters to determine latency of read transaction per sampling period are in a range of 0..n, n+1…m, m+1…k for different transaction types.

CCS Usage Examples[edit]

These are video clips to demonstrate how to setup sd560v2 emulator and setup STM related jobs:

  • Setup a performance probe job to monitor EMIF0 and display result using Average Burst length formula (setup example)

    Note: To achieve the best result in viewing these video clips, please zoom in or use Chrome browser.


Trace output view with EMIF statistics collectors example 


Hints and Tips
[edit]

How to use Group Initiators option under Trasaction Filter in CCS?

Ans: The group initiator option allow user to monitor more that one initiator within a job. For example, M3 subsystem has initiator ID as b' 010001 and SDMA_WR has initiator ID as b' 010101. If a user wants to use statistic collector module to profile Average burst Length between EMIF 0 module and M3 subsystem along with EMIF 0 and SDMA_WR module at the same time, then the user should use this Group Initiators option. User should first select Group Initiators as Initiator Enable type; then selects M3 as Initator Type, which use M3's value (b' 010001) as the base value. After that, user needs to input 0x4 (b' 000100) as the mask value. this mask value will be applied to the base value, which is (b'010001) in this case to mask out bit 3. As the result, both M3 (b' 010001) and SDMA_WR (b' 010101) will be trace with this configuration.

Sc group initiator.jpg

E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article STM Statistics Collector here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article STM Statistics Collector here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article STM Statistics Collector here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article STM Statistics Collector here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article STM Statistics Collector here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article STM Statistics Collector here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article STM Statistics Collector here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article STM Statistics Collector here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article STM Statistics Collector here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity