PNX1300/01/02/11 Data Book
Philips Semiconductors
20-4
PRELIMINARY SPECIFICATION
Hierarchy also makes it easy and natural to allocate bus
bandwidth or latency to a group of units. Most bandwidth
or latency-demanding units are located at the top of the
hierarchy while the less demanding are at the bottom
and get a small amount of overall bandwidth.
20.4
ARBITER ARCHITECTURE
In addition to the dual priority mechanism described in
Section 20.2
, PNX1300 supports an arbitration architec-
ture made of 6 fixed levels of hierarchy. This is combined
with a programmable weighted round robin algorithm per
level, as pictured in
Figure 20-5
.
The weights can be adjusted by software to allocate
bandwidth and latency depending on application require-
ments. Within a level of hierarchy the units can have
equal weights, giving them an equal share of bandwidth.
Alternatively, they can have different weights, giving
them an unequal share of the bandwidth for that level.
The arbitration weights at each level are described in
Table 20-3
and illustrated in
Figure 20-5
.
Table 20-2
presents the minimum bandwidth allocation
at Level 1 between the DSPCPU and the peripherals
(level 2) according to the different weight values that can
be programmed. Note that programming a weight of 3/3
or 2/2 instead of 1/1 is legal and results in the same allo-
cation.
Note
: The different types of requests from the DSPCPU
caches are arbitrated locally before sending a single
CPU request to the arbiter. The PCI bus also performs lo-
cal arbitration before sending a system request to the ar-
biter.
The weight programming is done by setting the MMIO
register ARB_BW_CTL
.
Register offset as well as field
description and coding is provided in
Table 20-4
.
The hardware RESET value of ARB_BW_CTL is 0, re-
sulting in a weight of 1 for all requests .
Note that each media processor application needs to
carefully review its arbiter settings.
Table 20-2. Minimum bandwidth allocation between
CPU caches and peripheral units.
weight of
CPU and
caches
weight of
level 2
bandwidth
at level 1
bandwidth
at level 2
3
2
3
1
2
1
1
1
1
2
1
3
2
3
75%
67%
60%
50%
40%
33%
25%
25%
33%
40%
50%
60%
67%
75%
Table 20-3. Arbitration weights at each level
Level
Arbitration Weights
level 1: CPU MMIO, Dcache, Lcache are arbitrated with
fixed priorities between each other and together
have a programmable weight of 1, 2 or 3.
Level 2 has a programmable weight of 1, 2 or 3.
level 2: VO unit has a programmable weight of 1, 3 or 5.
Level 3 has a programmable weight of 1, 3, 5 or 7.
level 3: The ICP unit has a programmable weight of 1,3,5 or
7. Level 4 has a programmable weight of 1,3 or 5.
level 4
The VI unit has a programmable weight of 1 or 2.
Level 5 has a programmable weight of 1,3 or 5.
level 5: The PCI unit has a programmable weight of 1,3 or 5.
Level 6 has a programmable weight of 1 or 2.
level 6: Level 6 contains several lower bandwidth and/or
latency-tolerant units. The VLD has a weight of 2. AI,
AO, DVDD and the boot block (only active during
booting) have a weight of 1.
Table 20-4. ARB_BW_CTL MMIO register
Offset
level of
arbitration
field
bits
allowed
values
0x100104
n/a
RESERVED
CPU weight
25:18
17:16
level 1
00 = weight 1
01 = weight 2
10 = weight 3
00 = weight 1
01 = weight 2
10 = weight 3
00 = weight 1
01 = weight 3
10 = weight 5
00 = weight 1
01 = weight 3
10 = weight 5
11 = weight 7
00 = weight 1
01 = weight 3
10 = weight 5
11 = weight 7
00 = weight 1
01 = weight 3
10 = weight 5
0 = weight 1
1 = weight 2
00 = weight 1
01 = weight 3
10 = weight 5
00 = weight 1
01 = weight 3
10 = weight 5
0 = weight 1
1 = weight 2
level 1
L2 weight
15:14
level 2
VO weight
13:12
level 2
L3 weight
11:10
level 3
ICP weight
9:8
level 3
L4 weight
7:6
level 4
VI weight
5
level 4
L5 weight
4:3
level 5
PCI weight
2:1
level 5
L6 weight
0