17 extraMemoryDelay[page] =
18 extraMemoryDelays[page][primarySlot][secondarySlot];
23 unsigned val = dram ? 0 : 1;
24 extraMemoryDelays[0][0][0] = val;
25 extraMemoryDelays[1][0][0] = val;
26 extraMemoryDelays[0][3][1] = val;
27 extraMemoryDelays[1][3][1] = val;
40 , lastRefreshTime(time)
45 for (
int page = 0; page < 4; ++page) {
46 for (
int prim = 0; prim < 4; ++prim) {
47 for (
int sec = 0; sec < 4; ++sec) {
49 if ((prim == 1) || (prim == 2)) {
52 }
else if ((prim == 3) && (sec == 0)) {
59 extraMemoryDelays[page][prim][sec] = val;
63 for (
int page = 0; page < 4; ++page) {
64 extraMemoryDelay[page] = extraMemoryDelays[page][0][0];
73 template <
bool PRE_PB,
bool POST_PB>
76 int newPage = address >> 8;
82 unlikely(extraMemoryDelay[address >> 14])) {
90 template <
bool POST_PB>
93 add(extraMemoryDelay[address >> 14]);
98 template <
bool PRE_PB,
bool POST_PB>
101 int newPage = address >> 8;
105 if (
unlikely(extraMemoryDelay[address >> 14])) {
109 if (
unlikely(extraMemoryDelay[address >> 14])) {
111 }
else if (
unlikely(newPage != lastPage)) {
119 template <
bool POST_PB>
122 add(2 * extraMemoryDelay[address >> 14]);
143 lastRefreshTime += 210;
158 lastRefreshTime.
reset(time);
164 static const int I = 6;
165 static const int O = 1;
169 static const int P = 1;
267 template<
typename Archive>
271 ar.serialize(
"lastRefreshTime", lastRefreshTime);
272 ar.serialize(
"lastPage", lastPage);
273 ar.serialize(
"extraMemoryDelay", extraMemoryDelay);
283 unsigned extraMemoryDelays[4][4][4];
284 unsigned extraMemoryDelay[4];