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.

About the priority levels in MSMC arbitration

Hi

I have a question about MSMC arbitration of C6670.

 I found  MSMC Bandwidth Management in MSMC user guide (sprugw7a) below:

2.3.3 MSMC Bandwidth Management

The central arbiters for the memory banks and the EMIF master port contain a
starvation counter for each of the requestors being tracked. Whenever a SBND register
SCNT bitfield is programmed, the counter for the requestor is initialized with the same
value.

 I want to konow how is the "Starvation Counters" work? When did the "Starvation Counters" countdown?

and When is it  reloaded?

The SCNT is the "Starvation Counters"? or the "reload value" will be loaded?

Where can I check the current value of "Starvation Counters"?

 

Where can I find the detailed description?

Best regards,

Yin

  • Yin,

    The MSMC arbitrates the access requests, and it will attempt to re-order things for better efficiency.  However, sometimes this can result in items of the same priority level waiting longer than expected.

    The starvation counter works to prevent this.  When a request is seen by the arbiter it will immediately start the countdown of the starvation counter until the data transfer is completed or it reaches 0.

    If the count reaches zero it will be elevated to priority level 0 and the count is reset from the SBNDCn's and SBNDM registers relative SCNT bitfield.  Note that the countdown will not start until the next data reaches the arbitration point.

    The programmed count values can be seen in the SBNDCn and SBNDM registers.

    The MSMC UG that was quoted from has these details.

    Best Regards,

    Chad