1/* 2 * Copyright (c) 2012-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 --- 140 unchanged lines hidden (view full) --- 149 class Bank 150 { 151 152 public: 153 154 static const uint32_t NO_ROW = -1; 155 156 uint32_t openRow; |
157 uint8_t rank; 158 uint8_t bank; |
159 160 Tick colAllowedAt; 161 Tick preAllowedAt; 162 Tick actAllowedAt; 163 164 uint32_t rowAccesses; 165 uint32_t bytesAccessed; 166 167 Bank() : |
168 openRow(NO_ROW), rank(0), bank(0), 169 colAllowedAt(0), preAllowedAt(0), actAllowedAt(0), |
170 rowAccesses(0), bytesAccessed(0) 171 { } 172 }; 173 174 /** 175 * A burst helper helps organize and manage a packet that is larger than 176 * the DRAM burst size. A system packet that is larger than the burst size 177 * is split into multiple DRAM packets and all those DRAM packets point to --- 207 unchanged lines hidden (view full) --- 385 uint64_t minBankActAt(const std::deque<DRAMPacket*>& queue) const; 386 387 /** 388 * Keep track of when row activations happen, in order to enforce 389 * the maximum number of activations in the activation window. The 390 * method updates the time that the banks become available based 391 * on the current limits. 392 * |
393 * @param bank Reference to the bank |
394 * @param act_tick Time when the activation takes place |
395 * @param row Index of the row |
396 */ |
397 void activateBank(Bank& bank, Tick act_tick, uint32_t row); |
398 399 /** 400 * Precharge a given bank and also update when the precharge is 401 * done. This will also deal with any stats related to the 402 * accesses to the open page. 403 * 404 * @param bank The bank to precharge 405 * @param pre_at Time when the precharge takes place --- 286 unchanged lines hidden --- |