Lines Matching defs:bank

57 void CommandAnalysis::handleAct(unsigned bank, int64_t timestamp)
59 printWarningIfPoweredDown("Command issued while in power-down mode.", MemCommand::ACT, timestamp, bank);
60 // If command is ACT - update number of acts, bank state of the
61 // target bank, first and latest activation cycle and the memory
63 // If the bank is already active ignore the command and generate a
65 if (isPrecharged(bank)) {
66 numberofactsBanks[bank]++;
76 bank_state[bank] = BANK_ACTIVE;
79 printWarning("Bank is already active!", MemCommand::ACT, timestamp, bank);
83 void CommandAnalysis::handleRd(unsigned bank, int64_t timestamp)
85 printWarningIfPoweredDown("Command issued while in power-down mode.", MemCommand::RD, timestamp, bank);
88 if (isPrecharged(bank)) {
89 printWarning("Bank is not active!", MemCommand::RD, timestamp, bank);
91 numberofreadsBanks[bank]++;
96 void CommandAnalysis::handleWr(unsigned bank, int64_t timestamp)
98 printWarningIfPoweredDown("Command issued while in power-down mode.", MemCommand::WR, timestamp, bank);
101 if (isPrecharged(bank)) {
102 printWarning("Bank is not active!", MemCommand::WR, timestamp, bank);
104 numberofwritesBanks[bank]++;
109 void CommandAnalysis::handleRef(unsigned bank, int64_t timestamp)
111 printWarningIfPoweredDown("Command issued while in power-down mode.", MemCommand::REF, timestamp, bank);
112 // If command is REF - update number of refreshes, set bank state of
117 printWarningIfActive("One or more banks are active! REF requires all banks to be precharged.", MemCommand::REF, timestamp, bank);
134 void CommandAnalysis::handleRefB(unsigned bank, int64_t timestamp)
137 if (isPrecharged(bank)) {
142 numberofrefbBanks[bank]++;
144 // also as act cycles because the bank will be precharged (stable) after
146 actcyclesBanks[bank] += memSpec.memTimingSpec.RAS + memSpec.memTimingSpec.RP;
148 printWarning("Bank must be precharged for REFB!", MemCommand::REFB, timestamp, bank);
152 void CommandAnalysis::handlePre(unsigned bank, int64_t timestamp)
154 printWarningIfPoweredDown("Command issued while in power-down mode.", MemCommand::PRE, timestamp, bank);
155 // If command is explicit PRE - update number of precharges, bank
156 // state of the target bank and last and latest precharge cycle.
159 // (i.e., this is the last active bank).
160 // If the bank is already precharged ignore the command and generate a
163 // Precharge only if the target bank is active
164 if (bank_state[bank] == BANK_ACTIVE) {
165 numberofpresBanks[bank]++;
166 actcyclesBanks[bank] += zero_guard(timestamp - first_act_cycle_banks[bank], "first_act_cycle is in the future (bank).");
167 // Since we got here, at least one bank is active
171 // This is the last active bank. Therefore, here a memory state
179 bank_state[bank] = BANK_PRECHARGED;
182 printWarning("Bank is already precharged!", MemCommand::PRE, timestamp, bank);
186 void CommandAnalysis::handlePreA(unsigned bank, int64_t timestamp)
188 printWarningIfPoweredDown("Command issued while in power-down mode.", MemCommand::PREA, timestamp, bank);
190 // number of precharges by the number of active banks, update the bank
198 // At least one bank was active, therefore the current memory state is
210 actcyclesBanks[b] += zero_guard(timestamp - first_act_cycle_banks[b], "first_act_cycle is in the future (bank).");
222 printWarning("All banks are already precharged!", MemCommand::PREA, timestamp, bank);
226 void CommandAnalysis::handlePdnFAct(unsigned bank, int64_t timestamp)
233 printWarningIfNotActive("All banks are precharged! Incorrect use of Active Power-Down.", MemCommand::PDN_F_ACT, timestamp, bank);
240 actcyclesBanks[b] += zero_guard(timestamp - first_act_cycle_banks[b], "first_act_cycle is in the future (bank).");
247 void CommandAnalysis::handlePdnSAct(unsigned bank, int64_t timestamp)
254 printWarningIfNotActive("All banks are precharged! Incorrect use of Active Power-Down.", MemCommand::PDN_S_ACT, timestamp, bank);
261 actcyclesBanks[b] += zero_guard(timestamp - first_act_cycle_banks[b], "first_act_cycle is in the future (bank).");
268 void CommandAnalysis::handlePdnFPre(unsigned bank, int64_t timestamp)
274 printWarningIfActive("One or more banks are active! Incorrect use of Precharged Power-Down.", MemCommand::PDN_F_PRE, timestamp, bank);
282 void CommandAnalysis::handlePdnSPre(unsigned bank, int64_t timestamp)
288 printWarningIfActive("One or more banks are active! Incorrect use of Precharged Power-Down.", MemCommand::PDN_S_PRE, timestamp, bank);
301 // all the individual bank states to the respective saved states
353 void CommandAnalysis::handleSREn(unsigned bank, int64_t timestamp)
358 printWarningIfActive("One or more banks are active! SREF requires all banks to be precharged.", MemCommand::SREN, timestamp, bank);
369 void CommandAnalysis::handleSREx(unsigned bank, int64_t timestamp)
387 printWarning("Invalid Self-Refresh duration!", MemCommand::SREX, timestamp, bank);
393 printWarning("Self-Refresh duration < CKESR!", MemCommand::SREX, timestamp, bank);
577 actcyclesBanks[b] += zero_guard(timestamp - first_act_cycle_banks[b], "first_act_cycle is in the future (bank)");