Mpfe Sdram Burst Scheduling - Altera cyclone V Technical Reference

Hard processor system
Hide thumbs Also See for cyclone V:
Table of Contents

Advertisement

cv_5v4
2016.10.28
transactions serviced. To avoid transaction starvation, you should assign ports the same priority level and
adjust the bandwidth allocated to each port by adjusting the static weights.
MPFE Weight Calculation
The MPFE applies a deficit round-robin arbitration scheme to determine which port is serviced. The larger
the port weight, the more often it is serviced. Ports are serviced only when they have buffered transactions
and are set to the highest priority of all the ports that also have buffered transactions. The arbiter
determines which port to service by examining the running weight of all the same ports at the same
priority level and the largest running weight is serviced.
Each time a port is drained of all transactions, its running weight is set to 0x80. Each time a port is
serviced, the static weight is added and the sum of weights is subtracted from the running weight for that
port. Each time a port is not serviced (same priority as another port but has a lower running weight), the
static weight for the port is added to the running weight of the port for that particular priority level. The
running weight additions and subtractions are only applied to one priority level, so any time ports of a
different priority level are being serviced, the running weight of a lower priority port is not modified.
MPFE Multi-Port Arbitration Considerations for Use
When using MPFE multi-port arbitration, the following considerations apply:
• To ensure that the dynamic weight value does not roll over when a port is serviced, the following
equation should always be true:
(sum of weights - static weight) < 128
If the running weight remains less than 128, arbitration for that port remains functional.
• The memory controller commits the priority and weight registers into the MPFE arbiter once every 10
SDRAM clock cycles. As a result, when the
configured at run time, the update interval can occur while the registers are still being written and
ports can have different priority or weights than intended for a brief period. Because the
and
mpweight_*_4
updating first to ensure that transactions that need to be serviced have the appropriate priority after the
next update. Because the static weights are divided among four 32-bit registers
• In addition to the
another level of priority to the port scheduling. By programming bit N in the
the
remappriority
command queue and is serviced before any other transaction. Please refer to the
register for more details.
The scheduler is work-conserving. Write operations can only be scheduled when enough data for the
SDRAM burst has been received. Read operations can only be scheduled when sufficient internal memory
is free and the port is not occupying too much of the read buffer.
Related Information
Port Mappings
Refer to the "Port Mappings" section, for more information about command, read and write port
assignments.

MPFE SDRAM Burst Scheduling

SDRAM burst scheduling recognizes addresses that access the same row/bank combination, known as
open page accesses. Operations to a page are served in the order in which they are received by the single-
port controller. Selection of SDRAM operations is a two-stage process. First, each pending transaction
SDRAM Controller Subsystem
Send Feedback
registers can be updated in a single 32-bit transaction, Altera recommends
register and
mppriority
register, any port with an absolute priority N is sent to the front of the single port
on page 11-26
MPFE SDRAM Burst Scheduling
register and
mppriority
registers, the
mpweight_*_*
registers are
mpweight_*_4
mppriority
register adds
remappriority
priorityremap
remappriority
Altera Corporation
11-13
field of

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents