doc updated
This commit is contained in:
45
README.md
45
README.md
@@ -890,6 +890,12 @@ by four in 4X mode. The maximum number of refresh commands that can be
|
|||||||
postponed or pulled-in is affected in the same manner. The number of rows per
|
postponed or pulled-in is affected in the same manner. The number of rows per
|
||||||
refresh command is divided by two and by four in 2X and 4X mode respectively.
|
refresh command is divided by two and by four in 2X and 4X mode respectively.
|
||||||
|
|
||||||
|
The nomenclature tREFIx is used to denote the refresh interval which value
|
||||||
|
changes accordingly to the operation mode, e.g., in 2X mode tREFIx corresponds
|
||||||
|
to tREFI/2. Similarly tRFCx denotes the refresh cycle time which value changes
|
||||||
|
accordingly to the operation mode. Nevertheless, the values of tRFCx must be
|
||||||
|
obtained from memory specifications, estimated, measured, etc.
|
||||||
|
|
||||||
**Flexible Refresh**
|
**Flexible Refresh**
|
||||||
|
|
||||||
The feature can be used together with regular refresh, bankwise refresh and
|
The feature can be used together with regular refresh, bankwise refresh and
|
||||||
@@ -898,29 +904,34 @@ with all refresh modes are possible.
|
|||||||
|
|
||||||
**Pull-In Refresh**
|
**Pull-In Refresh**
|
||||||
|
|
||||||
A pull-in starts when there are no pending requests in the memory controller's
|
A pull-in starts when a refresh is triggered (in a multiple of tREFIx) and
|
||||||
buffer, meaning the memory is in idle state. Therefore, in order to prepare
|
there are no pending requests in the memory controller's buffer. This can be
|
||||||
for possible accesses that might happen in the future, a burst of REF commands
|
done in order to prepare for possible accesses that might happen in the
|
||||||
is initiated. If, at any point, requests start coming in, the burst is
|
future. When a burst of REF commands is initiated a REF command is issued (due
|
||||||
|
to the current tREFIx) followed by one or more REF commands separated in time
|
||||||
|
by tRFCx. If, at any point, requests start coming in, the burst is
|
||||||
interrupted, meaning that the maximum amount of time, considering the worst
|
interrupted, meaning that the maximum amount of time, considering the worst
|
||||||
case scenario (a request arrives at the same time a REF was issued), is a
|
case scenario (a request arrives at the same time a REF was issued), is a
|
||||||
refresh cycle time (tRFC). The advantage of pulling-in refreshes is that they
|
refresh cycle time (tRFCx).
|
||||||
will not be issued in the near future (in their actual times), allowing for more
|
|
||||||
efficient accesses to the memory.
|
The advantage of pulling-in refreshes is that they will not be issued in the
|
||||||
|
near future, i.e., in their actual times multiples of tREFIx, allowing for
|
||||||
|
more efficient accesses to the memory.
|
||||||
|
|
||||||
**Postpone Refresh**
|
**Postpone Refresh**
|
||||||
|
|
||||||
Similarly, the decision to postpone a refresh is done if by the time of a
|
Similarly, the decision to postpone a refresh is done if by the time of a
|
||||||
refresh due there are pending requests on the buffer. Buffered requests may
|
refresh due (multiple of tREFIx) there are pending requests on the memory
|
||||||
generate row-hits, so postponing refreshes may be beneficial for it avoids
|
controller's buffer. Buffered requests may generate row-hits, so postponing
|
||||||
breaking row-hit sequences what reduces the number of commands (e.g., ACT,
|
refreshes may be beneficial for it avoids breaking row-hit sequences what
|
||||||
PRE) to carry out the memory accesses and improves the overall system
|
reduces the number of commands (e.g., ACT, PRE) to carry out the memory
|
||||||
preformance (accesses that are row-hits consume less time). If the memory is
|
accesses and improves the overall system preformance because accesses that are
|
||||||
idle, in the next refresh interval (tREFI) a burst is issued for the same
|
row-hits consume less time. If the memory is idle, in the next refresh
|
||||||
number of REF commands postponed plus the actual refresh for that tREFI. When
|
interval (tREFIx) a burst is issued for the same number of REF commands
|
||||||
the maximum number of postponed refreshes is reached a burst is issued in the
|
postponed plus the actual refresh for that tREFIx. When the maximum number of
|
||||||
next tREFI despite the memory state (busy or idle). A burst of postponed
|
postponed refreshes is reached a burst is issued in the next tREFIx despite
|
||||||
refreshes cannot be interrupted.
|
the state of the memory controller's buffer (empty or not). A burst of
|
||||||
|
postponed refreshes cannot be interrupted.
|
||||||
|
|
||||||
**The Flexible Refresh FSM**
|
**The Flexible Refresh FSM**
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user