/**
* ****************************************************************************
* Copyright (c) 2010-2016 by Min Cai (min.cai.china@gmail.com).
* <p>
* This file is part of the Archimulator multicore architectural simulator.
* <p>
* Archimulator is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* Archimulator is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with Archimulator. If not, see <http://www.gnu.org/licenses/>.
* ****************************************************************************
*/
package archimulator.uncore.helperThread;
/**
* Basic helper thread L2 cache request breakdown.
*
* @author Min Cai
*/
public class BasicHelperThreadL2RequestBreakdown implements HelperThreadL2RequestBreakdown {
private long numMainThreadL2Hits;
private long numMainThreadL2Misses;
private long numHelperThreadL2Hits;
private long numHelperThreadL2Misses;
private long numRedundantHitToTransientTagHelperThreadL2Requests;
private long numRedundantHitToCacheHelperThreadL2Requests;
private long numTimelyHelperThreadL2Requests;
private long numLateHelperThreadL2Requests;
private long numBadHelperThreadL2Requests;
private long numEarlyHelperThreadL2Requests;
private long numUglyHelperThreadL2Requests;
/**
* Create a basic helper thread L2 cache request breakdown.
*
* @param numMainThreadL2Hits the number of main thread L2 hits
* @param numMainThreadL2Misses the number of main thread L2 misses
* @param numHelperThreadL2Hits the number of helper thread L2 hits
* @param numHelperThreadL2Misses the number of helper thread L2 misses
* @param numRedundantHitToTransientTagHelperThreadL2Requests the number of redundant hit-to-transient-tag helper thread L2 requests
* @param numRedundantHitToCacheHelperThreadL2Requests the number of redundant hit-to-cache helper thread l2 requests
* @param numTimelyHelperThreadL2Requests the number of timely helper thread L2 requests
* @param numLateHelperThreadL2Requests the number of late helper thread L2 requests
* @param numBadHelperThreadL2Requests the number of bad helper thread L2 requests
* @param numEarlyHelperThreadL2Requests the number of early helper thread L2 requests
* @param numUglyHelperThreadL2Requests the number of ugly helper thread L2 requests
*/
public BasicHelperThreadL2RequestBreakdown(
long numMainThreadL2Hits,
long numMainThreadL2Misses,
long numHelperThreadL2Hits,
long numHelperThreadL2Misses,
long numRedundantHitToTransientTagHelperThreadL2Requests,
long numRedundantHitToCacheHelperThreadL2Requests,
long numTimelyHelperThreadL2Requests,
long numLateHelperThreadL2Requests,
long numBadHelperThreadL2Requests,
long numEarlyHelperThreadL2Requests,
long numUglyHelperThreadL2Requests
) {
this.numMainThreadL2Hits = numMainThreadL2Hits;
this.numMainThreadL2Misses = numMainThreadL2Misses;
this.numHelperThreadL2Hits = numHelperThreadL2Hits;
this.numHelperThreadL2Misses = numHelperThreadL2Misses;
this.numRedundantHitToTransientTagHelperThreadL2Requests = numRedundantHitToTransientTagHelperThreadL2Requests;
this.numRedundantHitToCacheHelperThreadL2Requests = numRedundantHitToCacheHelperThreadL2Requests;
this.numTimelyHelperThreadL2Requests = numTimelyHelperThreadL2Requests;
this.numLateHelperThreadL2Requests = numLateHelperThreadL2Requests;
this.numBadHelperThreadL2Requests = numBadHelperThreadL2Requests;
this.numEarlyHelperThreadL2Requests = numEarlyHelperThreadL2Requests;
this.numUglyHelperThreadL2Requests = numUglyHelperThreadL2Requests;
}
/**
* Get the number of main thread L2 hits.
*
* @return the number of main thread L2 hits
*/
public long getNumMainThreadL2Hits() {
return numMainThreadL2Hits;
}
/**
* Get the number of main thread L2 misses.
*
* @return the number of main thread l2 misses
*/
public long getNumMainThreadL2Misses() {
return numMainThreadL2Misses;
}
/**
* Get the number of helper thread L2 hits.
*
* @return the number of helper thread l2 hits
*/
public long getNumHelperThreadL2Hits() {
return numHelperThreadL2Hits;
}
/**
* Get the number of helper thread L2 misses.
*
* @return the number of helper thread L2 misses
*/
public long getNumHelperThreadL2Misses() {
return numHelperThreadL2Misses;
}
/**
* Get the number of redundant hit-to-transient-tag helper thread L2 requests.
*
* @return the number of redundant hit-to-transient-tag helper thread L2 requests
*/
public long getNumRedundantHitToTransientTagHelperThreadL2Requests() {
return numRedundantHitToTransientTagHelperThreadL2Requests;
}
/**
* Get the number of redundant hit-to-cache helper thread L2 requests.
*
* @return the number of redundant hit-to-cache helper thread L2 requests
*/
public long getNumRedundantHitToCacheHelperThreadL2Requests() {
return numRedundantHitToCacheHelperThreadL2Requests;
}
/**
* Get the number of timely helper thread L2 requests.
*
* @return the number of timely helper thread l2 requests
*/
public long getNumTimelyHelperThreadL2Requests() {
return numTimelyHelperThreadL2Requests;
}
/**
* Get the number of late helper thread L2 requests.
*
* @return the number of late helper thread L2 requests
*/
public long getNumLateHelperThreadL2Requests() {
return numLateHelperThreadL2Requests;
}
/**
* Get the number of bad helper thread L2 requests.
*
* @return the number of bad helper thread L2 requests
*/
public long getNumBadHelperThreadL2Requests() {
return numBadHelperThreadL2Requests;
}
/**
* Get the number of early helper thread L2 requests.
*
* @return the number of early helper thread L2 requests
*/
public long getNumEarlyHelperThreadL2Requests() {
return numEarlyHelperThreadL2Requests;
}
/**
* Get the number of ugly helper thread L2 requests.
*
* @return the number of ugly helper thread L2 requests
*/
public long getNumUglyHelperThreadL2Requests() {
return numUglyHelperThreadL2Requests;
}
}