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 --- |