/** * **************************************************************************** * 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.cache.replacement; /** * Cache replacement policy type. * * @author Min Cai */ public enum CacheReplacementPolicyType { /** * Least recently used (LRU). */ LRU, /** * Least frequently used (LFU). */ LFU, /** * Random. */ RANDOM, /** * Helper thread aware least recently used (LRU) policy 3. */ HELPER_THREAD_AWARE_LRU_3, /** * Reuse distance prediction. */ REUSE_DISTANCE_PREDICTION, /** * Rereference interval prediction (RRIP). */ REREFERENCE_INTERVAL_PREDICTION, /** * Static cache partitioning based least recently used (LRU). */ STATIC_CACHE_PARTITIONING_LRU, /** * Simple static cache partitioning based least recently used (LRU). */ SIMPLE_STATIC_CACHE_PARTITIONING_LRU, /** * CPI based cache partitioning based least recently used (LRU). */ CPI_BASED_CACHE_PARTITIONING_LRU, /** * Min-miss cache partitioning based least recently used (LRU). */ MIN_MISS_CACHE_PARTITIONING_LRU, /** * MLP-aware cache partitioning based least recently used (LRU). */ MLP_AWARE_CACHE_PARTITIONING_LRU, /** * Set dueling cache partitioning based least recently used (LRU). */ SET_DUELING_CACHE_PARTITIONING_LRU, /** * Set dueling static cache partitioning based least recently used (LRU). */ SET_DUELING_STATIC_CACHE_PARTITIONING_LRU, /** * Helper thread and MLP-aware cache partitioning based least recently used (LRU). */ HELPER_THREAD_AND_MLP_AWARE_CACHE_PARTITIONING_LRU, /** * Linear MLP-aware least recently used (LRU), with lambda being 0. */ LINEAR_MLP_AWARE_LRU_LAMBDA_0, /** * Linear MLP-aware least recently used (LRU), with lambda being 1. */ LINEAR_MLP_AWARE_LRU_LAMBDA_1, /** * Linear MLP-aware least recently used (LRU), with lambda being 2. */ LINEAR_MLP_AWARE_LRU_LAMBDA_2, /** * Linear MLP-aware least recently used (LRU), with lambda being 3. */ LINEAR_MLP_AWARE_LRU_LAMBDA_3, /** * Linear MLP-aware least recently used (LRU), with lambda being 4. */ LINEAR_MLP_AWARE_LRU_LAMBDA_4, /** * Linear MLP-aware least recently used (LRU), with lambda being 5. */ LINEAR_MLP_AWARE_LRU_LAMBDA_5, /** * Linear MLP-aware least recently used (LRU), with lambda being 6. */ LINEAR_MLP_AWARE_LRU_LAMBDA_6, /** * Linear MLP-aware least recently used (LRU), with lambda being 7. */ LINEAR_MLP_AWARE_LRU_LAMBDA_7, /** * MLP-sensitive least recently used (LRU). */ MLP_SENSITIVE_LRU, /** * Helper thread sensitive least recently used (LRU). */ HELPER_THREAD_SENSITIVE_LRU, /** * Prefetch aware R least recently used (LRU). */ PREFETCH_AWARE_R_LRU, /** * Prefetch aware H least recently used (LRU). */ PREFETCH_AWARE_H_LRU, /** * Prefetch aware M least recently used (LRU). */ PREFETCH_AWARE_M_LRU, /** * Prefetch aware RH least recently used (LRU). */ PREFETCH_AWARE_RH_LRU, /** * Prefetch aware HM least recently used (LRU). */ PREFETCH_AWARE_HM_LRU, /** * Prefetch aware RM least recently used (LRU). */ PREFETCH_AWARE_RM_LRU, /** * Prefetch aware RHM least recently used (LRU). */ PREFETCH_AWARE_RHM_LRU, /** * Prefetch aware set dueling based HM least recently used (LRU). */ PREFETCH_AWARE_SET_DUELING_HM_LRU, /** * Helper thread prefetch accuracy based prefetch aware and reuse distance prediction set dueling. */ HT_PREF_ACC_BASED_PREF_AND_RDP_SET_DUELING, /** * Helper thread useful prefetch based prefetch aware and reuse distance prediction set dueling). */ HT_USEFUL_PREF_BASED_PREF_AND_RDP_SET_DUELING, /** * Dead block prediction based least recently used (LRU). */ DEAD_BLOCK_PREDICTION_LRU }