dram_ctrl.cc (10561:e1a853349529) | dram_ctrl.cc (10617:471d390943f0) |
---|---|
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 --- 1463 unchanged lines hidden (view full) --- 1472 } 1473 } 1474 1475 // Determine the earliest time when the next burst can issue based 1476 // on the current busBusyUntil delay. 1477 // Offset by tRCD to correlate with ACT timing variables 1478 Tick min_cmd_at = busBusyUntil - tCL - tRCD; 1479 | 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 --- 1463 unchanged lines hidden (view full) --- 1472 } 1473 } 1474 1475 // Determine the earliest time when the next burst can issue based 1476 // on the current busBusyUntil delay. 1477 // Offset by tRCD to correlate with ACT timing variables 1478 Tick min_cmd_at = busBusyUntil - tCL - tRCD; 1479 |
1480 // Prioritize same rank accesses that can issue B2B | 1480 // if we have multiple ranks and all 1481 // waiting packets are accessing a rank which was previously active 1482 // then bank_mask_same_rank will be set to a value while bank_mask will 1483 // remain 0. In this case, the function should return the value of 1484 // bank_mask_same_rank. 1485 // else if waiting packets access a rank which was previously active and 1486 // other ranks, prioritize same rank accesses that can issue B2B |
1481 // Only optimize for same ranks when the command type 1482 // does not change; do not want to unnecessarily incur tWTR 1483 // 1484 // Resulting FCFS prioritization Order is: 1485 // 1) Commands that access the same rank as previous burst 1486 // and can prep the bank seamlessly. 1487 // 2) Commands (any rank) with earliest bank prep | 1487 // Only optimize for same ranks when the command type 1488 // does not change; do not want to unnecessarily incur tWTR 1489 // 1490 // Resulting FCFS prioritization Order is: 1491 // 1) Commands that access the same rank as previous burst 1492 // and can prep the bank seamlessly. 1493 // 2) Commands (any rank) with earliest bank prep |
1488 if (!switched_cmd_type && same_rank_match && 1489 min_act_at_same_rank <= min_cmd_at) { | 1494 if ((bank_mask == 0) || (!switched_cmd_type && same_rank_match && 1495 min_act_at_same_rank <= min_cmd_at)) { |
1490 bank_mask = bank_mask_same_rank; 1491 } 1492 1493 return bank_mask; 1494} 1495 1496void 1497DRAMCtrl::processRefreshEvent() --- 651 unchanged lines hidden --- | 1496 bank_mask = bank_mask_same_rank; 1497 } 1498 1499 return bank_mask; 1500} 1501 1502void 1503DRAMCtrl::processRefreshEvent() --- 651 unchanged lines hidden --- |