1 Introduction
2 Related work
3 Background
3.1 Introduction to SDRAM memories
TC
|
Description
|
Cycles
|
---|---|---|
tCK | Clock period | 1 |
tRCD | Minimum time between ACT and RD or WR commands to the same bank | 8 |
tRRD | Minimum time between ACT commands to different banks | 6 |
tRAS | Minimum time between ACT and PRE commands to the same bank | 28 |
tFAW | Time window in which at most four banks may be activated | 32 |
tCCD | Minimum time between two RD or two WR commands | 4 |
tWL | Write latency. Time after a WR command until first data is available on the bus | 8 |
tRL | Read latency. Time after a RD command until first data is available on the bus | 8 |
tRTP | Minimum time between a RD and a PRE command to the same bank | 6 |
tRP | Precharge period time | 8 |
tWTR | Internal WR command to RD command delay | 6 |
tWR | Write recovery time. Minimum time after the last data has been written to a bank until a precharge may be issued | 12 |
tRFC | Refresh period time | 128 |
tREFI | Refresh interval | 6240 |
3.2 Real-time memory controllers
4 Memory controller front-end
4.1 Front-end architecture
4.2 Work-conserving TDM arbitration for variable-sized transactions
4.2.1 TDM arbitration issues for variable-sized transactions
4.2.2 Transaction scheduling algorithm
4.2.3 Example
5 Memory controller back-end
5.1 Back-end architecture
5.2 Dynamic command scheduling algorithm
6 Formalization of dynamic command scheduling
Variables
|
Descriptions
|
---|---|
i
| The number of an arbitrary transaction arrived at the back-end. \(\textit{i} \ge 0\). |
\(\textit{T}_\textit{i}\)
| The \(\textit{i}\mathrm{th}\) transaction received by the back-end |
\(\textit{S}(\textit{T}_\textit{i})\)
| The size of transaction \(\textit{T}_\textit{i}\)
|
j
| The first bank access number for the current transaction \(\textit{T}_\textit{i}\). \(\textit{j} \ge 0\) is defined by Eq. (3). |
\(\textit{BI}_\textit{i}\), \(\textit{BC}_\textit{i}\)
| The bank interleaving number (BI) and burst count (BC) of \(\textit{T}_\textit{i}\)
|
\(\textit{b}_\textit{j}\)
| The bank number that is targeted by the \(\textit{j}\mathrm{th}\) bank access, which is also the starting bank of \(\textit{T}_\textit{i}\). \(\textit{b}_\textit{j}\in [0, 7]\) represents one of the 8 banks in DDR3 SDRAMs. |
\(\textit{ACT}_{\textit{j}}\)
| The ACT command of the \(\textit{j}^\textit{th}\) bank access |
\(\textit{t}(\textit{ACT}_{\textit{j}}\)) | The scheduling time of \(\textit{ACT}_{\textit{j}}\)
|
C(j) | The delay in scheduling \(\textit{ACT}_{\textit{j}}\) due to a collision; and it is either 1 or 0 cycle depending on whether the collision exists or not. |
\(\textit{RW}_{\textit{j}}^{\textit{k}}\)
| The \(\textit{k}\mathrm{th}\) (\(\forall \textit{k}\in [0, \textit{BC}_\textit{i}-1]\)) RD or WR command of the \(\textit{j}^\textit{th}\) bank access |
t(\(\textit{RW}_{\textit{j}}^{\textit{k}}\)) | The scheduling time of \(\textit{RW}_{\textit{j}}^{\textit{k}}\)
|
\(\textit{PRE}_{\textit{j}}\)
| The PRE command for the \(\textit{j}^\textit{th}\) bank access |
t(\(\textit{PRE}_{\textit{j}}\)) | The scheduling time of \(\textit{PRE}_{\textit{j}}\)
|
\(\textit{t}_{\textit{s}}\)(\({\textit{T}_\textit{i}}\)) | The starting time of \(\textit{T}_\textit{i}\)
|
\(\hat{\textit{t}}_{\textit{s}}\)(\({\textit{T}_\textit{i}}\)) | The worst-case starting time of \(\textit{T}_\textit{i}\)
|
\(\textit{t}_{\textit{f}}\)(\({\textit{T}_\textit{i}}\)) | The finishing time of \(\textit{T}_\textit{i}\)
|
\(\hat{\textit{t}}_{\textit{f}}\)(\({\textit{T}_\textit{i}}\)) | The worst-case finishing time of \(\textit{T}_\textit{i}\)
|
\(\textit{t}_{\textit{ET}}\)(\({\textit{T}_\textit{i}}\)) | The execution time of \(\textit{T}_\textit{i}\)
|
l
| Used to index the banks of a transaction \(\textit{T}_\textit{i}\) and \(\forall \textit{l} \in [0, \textit{BI}_\textit{i}-1]\)
|
k
| Used to index the bursts of a bank for \(\textit{T}_\textit{i}\), and \(\forall \textit{k} \in [0, \textit{BC}_\textit{i}-1]\)
|
6.1 Timing dependencies
6.2 Formalization
7 Worst-case initial bank states
7.1 Worst-case starting time
7.2 ALAP scheduling
8 Worst-case finishing time
8.1 Conservative \(\hat{\textit{t}_\textit{f}}(\textit{T}_\textit{i})\) based on ALAP scheduling
8.2 Worst-case finishing time
9 Worst-case execution time
9.1 Generic worst-case execution time
9.2 Scheduled worst-case execution time
9.3 Monotonicity of worst-case execution time
10 Worst-case response time in the front-end
11 Experimental results
11.1 Experimental setup
Experiment
|
Trans Size
|
Content
|
Section
|
---|---|---|---|
1 | Any | Formalization validation | |
2 | Fixed | Execution time | |
3 | Fixed | Response time | |
4 | Variable | Execution time | |
5 | Variable | Effect of preceding transaction size | |
6 | Variable | Effect of TDM service orders | |
7 | Variable | Response time | |
8 | Variable | WCET monotonicity |
11.2 Experimental validation of the formalization
11.3 Fixed transaction size
Size
|
gsmdecode
|
epic
|
unepic
|
jpegencode
| ||||
---|---|---|---|---|---|---|---|---|
TransN
|
RRatio (%)
|
TransN
|
RRatio (%)
|
TransN
|
RRatio (%)
|
TransN
|
RRatio (%)
| |
32 | 19734 | 64.4 | 182957 | 69.7 | 129145 | 61.0 | 173995 | 87.4 |
64 | 10104 | 64.3 | 96984 | 69.3 | 67664 | 61.0 | 92905 | 87.8 |
128 | 5216 | 64.1 | 55644 | 69.8 | 36540 | 60.9 | 55192 | 89.1 |