112266Sradhika.jagtap@arm.com/* 212266Sradhika.jagtap@arm.com * Copyright (c) 2012-2014, TU Delft 312266Sradhika.jagtap@arm.com * Copyright (c) 2012-2014, TU Eindhoven 412266Sradhika.jagtap@arm.com * Copyright (c) 2012-2016, TU Kaiserslautern 512266Sradhika.jagtap@arm.com * All rights reserved. 612266Sradhika.jagtap@arm.com * 712266Sradhika.jagtap@arm.com * Redistribution and use in source and binary forms, with or without 812266Sradhika.jagtap@arm.com * modification, are permitted provided that the following conditions are 912266Sradhika.jagtap@arm.com * met: 1012266Sradhika.jagtap@arm.com * 1112266Sradhika.jagtap@arm.com * 1. Redistributions of source code must retain the above copyright 1212266Sradhika.jagtap@arm.com * notice, this list of conditions and the following disclaimer. 1312266Sradhika.jagtap@arm.com * 1412266Sradhika.jagtap@arm.com * 2. Redistributions in binary form must reproduce the above copyright 1512266Sradhika.jagtap@arm.com * notice, this list of conditions and the following disclaimer in the 1612266Sradhika.jagtap@arm.com * documentation and/or other materials provided with the distribution. 1712266Sradhika.jagtap@arm.com * 1812266Sradhika.jagtap@arm.com * 3. Neither the name of the copyright holder nor the names of its 1912266Sradhika.jagtap@arm.com * contributors may be used to endorse or promote products derived from 2012266Sradhika.jagtap@arm.com * this software without specific prior written permission. 2112266Sradhika.jagtap@arm.com * 2212266Sradhika.jagtap@arm.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 2312266Sradhika.jagtap@arm.com * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 2412266Sradhika.jagtap@arm.com * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 2512266Sradhika.jagtap@arm.com * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2612266Sradhika.jagtap@arm.com * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2712266Sradhika.jagtap@arm.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 2812266Sradhika.jagtap@arm.com * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 2912266Sradhika.jagtap@arm.com * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 3012266Sradhika.jagtap@arm.com * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 3112266Sradhika.jagtap@arm.com * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 3212266Sradhika.jagtap@arm.com * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3312266Sradhika.jagtap@arm.com * 3412266Sradhika.jagtap@arm.com * Authors: Subash Kannoth, Matthias Jung, Eder Zulian 3512266Sradhika.jagtap@arm.com * 3612266Sradhika.jagtap@arm.com */ 3712266Sradhika.jagtap@arm.com#ifndef MEMBANKWISEPARAMS_H 3812266Sradhika.jagtap@arm.com#define MEMBANKWISEPARAMS_H 3912266Sradhika.jagtap@arm.com 4012266Sradhika.jagtap@arm.com#include <stdint.h> 4112266Sradhika.jagtap@arm.com#include <vector> 4212266Sradhika.jagtap@arm.com#include <algorithm> 4312266Sradhika.jagtap@arm.com#include <numeric> 4412266Sradhika.jagtap@arm.com 4512266Sradhika.jagtap@arm.comnamespace Data { 4612266Sradhika.jagtap@arm.com class MemBankWiseParams { 4712266Sradhika.jagtap@arm.com public: 4812266Sradhika.jagtap@arm.com // Set of possible PASR modes 4912266Sradhika.jagtap@arm.com enum pasrModes{ 5012266Sradhika.jagtap@arm.com PASR_0, 5112266Sradhika.jagtap@arm.com PASR_1, 5212266Sradhika.jagtap@arm.com PASR_2, 5312266Sradhika.jagtap@arm.com PASR_3, 5412266Sradhika.jagtap@arm.com PASR_4, 5512266Sradhika.jagtap@arm.com PASR_5, 5612266Sradhika.jagtap@arm.com PASR_6, 5712266Sradhika.jagtap@arm.com PASR_7 5812266Sradhika.jagtap@arm.com }; 5912266Sradhika.jagtap@arm.com // List of active banks under the specified PASR mode 6012266Sradhika.jagtap@arm.com std::vector<unsigned> activeBanks; 6112266Sradhika.jagtap@arm.com // ACT Standby power factor 6212266Sradhika.jagtap@arm.com int64_t bwPowerFactRho; 6312266Sradhika.jagtap@arm.com // Self-Refresh power factor( true : Bankwise mode) 6412266Sradhika.jagtap@arm.com int64_t bwPowerFactSigma; 6512266Sradhika.jagtap@arm.com // Bankwise or Normal mode 6612266Sradhika.jagtap@arm.com bool bwMode; 6712266Sradhika.jagtap@arm.com // Wherther PASR is enabled ( true : enabled ) 6812266Sradhika.jagtap@arm.com bool flgPASR; 6912266Sradhika.jagtap@arm.com //Default constructor 7012266Sradhika.jagtap@arm.com MemBankWiseParams(); 7112266Sradhika.jagtap@arm.com MemBankWiseParams(int64_t factRho, int64_t factSigma, 7212266Sradhika.jagtap@arm.com bool hasPASR, int64_t pasrMode, 7312266Sradhika.jagtap@arm.com bool opMode, unsigned nbrofBanks); 7412266Sradhika.jagtap@arm.com 7512266Sradhika.jagtap@arm.com bool isBankActiveInPasr(const unsigned bankIdx) const; 7612266Sradhika.jagtap@arm.com }; 7712266Sradhika.jagtap@arm.com} 7812266Sradhika.jagtap@arm.com 7912266Sradhika.jagtap@arm.com#endif // MEMBANKWISEPARAMS_H 80