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.

TMS320F28377D-EP: Shared memory arbitration - does fixed or round-robin incrment on subsequenct cycles?

Part Number: TMS320F28377D-EP
Other Parts Discussed in Thread: TMS320F28377D

Hi,

I have a question about the fixed order/round-robin arbitration scheme on global shared RAM (question still applies to local shared RAM), on the TMS320F28377D.

Let's say that a global RAM block has been configured to allow full access from both sub-sytems (as above), and that the current round-robin state is for CPU1 accesses.

Let us further say that the following accesses are requested at the same time:

CPU1 data read

CPU1 fetch

CPU2 data write

CPU2.DMA read

In what order are they processed? Specifically, does the fixed-order scheme need to be empty before the round-robin scheme can be incremented?

Thanks,

Karl

  • Hi Karl,

    Let's say that a global RAM block has been configured to allow full access from both sub-sytems (as above), and that the current round-robin state is for CPU1 accesses.

    We can not have full access from both subsystem (CPU1 & CPU2) for global RAMs. Write and fetch access is allowed from one CPU only (based on master ownership). Only READ is allowed from both the CPU.

    Since the arbitration logic is round robin for access from different masters, the order will depend on which master made the last access to that specific RAM block. E.g, if CPU1 READ was the previous access and CPU1/CPU2 read comes next in same cycle, CPU2 read will get priority.

    Hope this is clear.

    Regards,

    Vivek Singh 

  • Hi Vivek,

    Yes, sorry, 'full access' was the wrong term to use. I understand that only one sub-system can have read/CPU fetch/write access, whilst the other sub-system has only read access. Perhaps I should have said 'with no additional protections applied'.

    You say "arbitration is round robin for access from different masters", but equally arbration is fixed-priority for the same master. So that statement alone doesn't answer my question.

    But your example states if a CPU1 access is currently being processed, then the next access granted will be from CPU2, even if other CPU1 requests are queued.

    So IMO, round robin appears to take priority. Forgive me if my terminology is poor.

    Thanks for such a quick answer.

    Karl

  • Hi,

    So IMO, round robin appears to take priority. Forgive me if my terminology is poor.

    Yes, that is correct. fixed priority is only comes into picture when accesses are only from same master and no access from other masters are pending.

    Regards,

    Vivek Singh

  • Hi Vivek,

    Okay, that's all perfectly clear now. Thank you for your help.

    Karl