01.08.2013 Views

Chapter 10 Memory Subsystem.pdf

Chapter 10 Memory Subsystem.pdf

Chapter 10 Memory Subsystem.pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Public Version<br />

www.ti.com SDRAM Controller (SDRC) <strong>Subsystem</strong><br />

• Intra-class arbitration: A first level of arbitration is done in parallel within each class between the<br />

different thread groups (request FIFOs).<br />

• Interclass arbitration: A second level of arbitration is done among the three winners of the in-class<br />

arbitration.<br />

<strong>10</strong>.2.4.1.2.1 Arbitration Policy Within a Burst and at a Burst Boundary<br />

Arbitration is performed on the transaction boundary. The transaction can be either a single transaction or<br />

a burst transaction.<br />

• Within a burst, if the thread cannot provide the subsequent request of the burst, a mechanism provides<br />

a wait for one idle cycle before moving the arbitration grant to the next thread. If only one idle cycle<br />

appears on one thread, an arbitration grant must not move (the next request served must be from the<br />

same thread). One idle cycle is then inserted in the SDRC request path.<br />

• If the thread still cannot provide the request in the next cycle, the slot can be awarded to another<br />

initiator to avoid locking the SDRAM resource, if a thread cannot supply a subsequent request within<br />

the burst. In this case, there must not be a second idle cycle insertion in the SDRC request path. A<br />

burst with fewer than two idle cycles cannot be interrupted by a higher priority request.<br />

• On burst boundary, the arbitration does not wait one idle cycle before moving the arbitration grant. As<br />

soon as the thread cannot request one transaction at a burst boundary, the arbitration grant can move<br />

to the next thread.<br />

This is also valid within the ExtendedGrant and NOfServices windows; as soon as the thread cannot<br />

request a transaction, the arbitration grant can move to the next thread. For more information, see the<br />

following descriptions of the ExtendedGrant and NOfServices features.<br />

<strong>10</strong>.2.4.1.2.2 Burst-Complete Feature (BURST-COMPLETE Field in SMS_CLASS_ARBITER0,<br />

SMS_CLASS_ARBITER1, and SMS_CLASS_ARBITER2)<br />

A burst request can be submitted to the arbitration either as soon as the first request of the burst is<br />

received by the SMS or when at least one complete burst is buffered into the FIFO. The behavior is<br />

programmable on a per-group basis using the BURST-COMPLETE field of the SMS_CLASS_ARBITER0,<br />

SMS_CLASS_ARBITER1, and SMS_CLASS_ARBITER2 registers. A per-FIFO counter tracks the number<br />

of complete bursts in a FIFO.<br />

<strong>10</strong>.2.4.1.2.3 ExtendedGrant Feature (EXTENDEDGRANT Field in SMS_CLASS_ARBITER0,<br />

SMS_CLASS_ARBITER1, and SMS_CLASS_ARBITER2)<br />

EXTENDEDGRANT is a programmable control field that allows a group to be granted for N consecutive<br />

transactions (single or burst), assuming the group is still requesting service (FIFO is not empty).<br />

EXTENDEDGRANT is applicable on a single/burst boundary. This multiple-service grant is intended to<br />

take advantage of the high probability of two consecutive transactions within a group accessing<br />

consecutive memory addresses (that is, in the same SDRAM page). This mechanism does not apply to<br />

consecutive transactions that have been split by the RE. The maximum number of consecutive grants is<br />

given in the EXTENDEDGRANT field of the SMS_CLASS_ARBITER0, SMS_CLASS_ARBITER1, and<br />

SMS_CLASS_ARBITER2 registers. The allowed range is 1 to 3.<br />

The ExtendedGrant logic is in the internal class arbitration but must be propagated to the interclass<br />

arbitration. The flag qualifying a second-service request is provided to the interclass arbiter so the<br />

extended grant scheme can be applied at the second level of arbitration.<br />

• Class 0 requests can still override the ExtendedGrant scheme of class 1/class 2. Within an<br />

ExtendedGrant window, hand-over to another class/thread (granting another thread) can occur as soon<br />

as one idle cycle appears in the thread at burst or single boundary.<br />

• The PWM counter of the interclass arbitration obeys the ExtendedGrant completion before handing<br />

priority to the other class.<br />

• When a split transaction from the RE is interleaved within an ExtendedGrant window, completion of the<br />

ExtendedGrant window starts with the last ExtendedGrant counter value (not the initial value), because<br />

there are two independent counters for ExtendedGrant and NOfServices. The ExtendedGrant counter<br />

is reloaded to its programmed value when it reaches 0.<br />

SPRUGN4L–May 20<strong>10</strong>–Revised June 2011 <strong>Memory</strong> <strong>Subsystem</strong><br />

Copyright © 20<strong>10</strong>–2011, Texas Instruments Incorporated<br />

2221

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!