Philips Semiconductors
PNX15xx Series
Chapter 26: Memory Arbiter
Volume 1 of 1
12NC 9397 750 14321
Koninklijke Philips Electronics N.V. 2002-2003-2004. All rights reserved.
Product data sheet
Rev. 2 — 1 December 2004
26-5
Assuming the arbiter has been configured to include the priority list and both round-
robin lists, any arbiter decision is made through the following four steps:
1. First the DMA requests are compared against the current entry in the TDMA
timing wheel. If the agent in the current entry is requesting this agent will be
granted.
2. If the agent in the current entry is not requesting the DMA requests will be
compared against the agents in the priority list and if one or more of the agents in
the priority list is requesting the one that has the highest priority will be granted.
3. If none of the DMA requests matches the current entry in the TDMA timing wheel
or one or more entries in the priority list, the arbiter will grant the DMA agent that
has not been served for the longest time by choosing from the round robin #1 list.
Every time the arbiter provides a grant to any DMA agent, the round robin #1
arbiter checks if this agent is in it’s list and makes that agent the lowest priority
entry in the round robin #1 list. If a certain agent is granted because of its entry in
the TDMA timing wheel or priority list and the same agent has also an entry in the
round-robin #1 list, then in the next clock cycle this agent will have the lowest
priority in the round-robin #1 list. Also, in case there are multiple entries of the
same agent in the round-robin #1 list, the highest entry in the list gets the lowest
priority during the next cycle. The other entries of the same agents do not get the
lowest priority.
4. If none of the DMA requests matches: the current entry in the TDMA timing
wheel, or one or more entries in the priority list or one or more entries in the first
round-robin list, the arbiter will grant the DMA agent that has not been served for
the longest time from the round robin #2 list of entries. The round-robin #2 list
operates the same way as the round-robin #1 list but all entries in this list have a
lower priority than the entries in the round-robin #1 list.
The TDMA wheel will proceed to the next entry if and only if one of the two following
situations apply:
when there is a grant at the level of the TDMA wheel
when there is no match in the complete list (TDMA, priority and both round-robin
lists)
All entries in the TDMA wheel, priority list and both round-robin lists are fully
programmable via the DTL MMIO interface of the arbiter. The same is true for the
number of entries in any of these four. It is also possible to set the number of entries
in the TDMA wheel, priority list and/or round-robin lists to zero. This allows the user to
use only one of the four mechanisms or any combination of them. In case all four are
set to zero for the active set of entries, the arbiter defaults to a round-robin arbitration
over all agents.
The arbitration algorithm only starts after the arbiter has been properly initialized via
the programming registers. Following the de-assertion of a hard reset, the arbiter
uses a simple counting algorithm to arbitrate between all request inputs. In this boot
mode agents are granted in the order that they are internally wired.