dram_ctrl.cc (10721:3e6a3eaac71b) dram_ctrl.cc (10809:e3963342ead4)
1/*
2 * Copyright (c) 2010-2014 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 1160 unchanged lines hidden (view full) ---

1169 // either look at the read queue or write queue
1170 const deque<DRAMPacket*>& queue = dram_pkt->isRead ? readQueue :
1171 writeQueue;
1172 auto p = queue.begin();
1173 // make sure we are not considering the packet that we are
1174 // currently dealing with (which is the head of the queue)
1175 ++p;
1176
1/*
2 * Copyright (c) 2010-2014 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 1160 unchanged lines hidden (view full) ---

1169 // either look at the read queue or write queue
1170 const deque<DRAMPacket*>& queue = dram_pkt->isRead ? readQueue :
1171 writeQueue;
1172 auto p = queue.begin();
1173 // make sure we are not considering the packet that we are
1174 // currently dealing with (which is the head of the queue)
1175 ++p;
1176
1177 // keep on looking until we have found required condition or
1178 // reached the end
1179 while (!(got_more_hits &&
1180 (got_bank_conflict || pageMgmt == Enums::close_adaptive)) &&
1181 p != queue.end()) {
1177 // keep on looking until we find a hit or reach the end of the queue
1178 // 1) if a hit is found, then both open and close adaptive policies keep
1179 // the page open
1180 // 2) if no hit is found, got_bank_conflict is set to true if a bank
1181 // conflict request is waiting in the queue
1182 while (!got_more_hits && p != queue.end()) {
1182 bool same_rank_bank = (dram_pkt->rank == (*p)->rank) &&
1183 (dram_pkt->bank == (*p)->bank);
1184 bool same_row = dram_pkt->row == (*p)->row;
1185 got_more_hits |= same_rank_bank && same_row;
1186 got_bank_conflict |= same_rank_bank && !same_row;
1187 ++p;
1188 }
1189

--- 1097 unchanged lines hidden ---
1183 bool same_rank_bank = (dram_pkt->rank == (*p)->rank) &&
1184 (dram_pkt->bank == (*p)->bank);
1185 bool same_row = dram_pkt->row == (*p)->row;
1186 got_more_hits |= same_rank_bank && same_row;
1187 got_bank_conflict |= same_rank_bank && !same_row;
1188 ++p;
1189 }
1190

--- 1097 unchanged lines hidden ---