[
    {
        "ArchStdEvent": "L2D_CACHE",
        "PublicDescription": "Counts level 2 cache accesses. level 2 cache is a unified cache for data and instruction accesses. Accesses are for misses in the first level caches or translation resolutions due to accesses. This event also counts write back of dirty data from level 1 data cache to the L2 cache."
    },
    {
        "ArchStdEvent": "L2D_CACHE_REFILL",
        "PublicDescription": "Counts cache line refills into the level 2 cache. level 2 cache is a unified cache for data and instruction accesses. Accesses are for misses in the level 1 caches or translation resolutions due to accesses."
    },
    {
        "ArchStdEvent": "L2D_CACHE_WB",
        "PublicDescription": "Counts write-backs of data from the L2 cache to outside the CPU. This includes snoops to the L2 (from other CPUs) which return data even if the snoops cause an invalidation. L2 cache line invalidations which do not write data outside the CPU and snoops which return data from an L1 cache are not counted. Data would not be written outside the cache when invalidating a clean cache line."
    },
    {
        "ArchStdEvent": "L2D_CACHE_ALLOCATE",
        "PublicDescription": "TBD"
    },
    {
        "ArchStdEvent": "L2D_CACHE_RD",
        "PublicDescription": "Counts level 2 cache accesses due to memory read operations. level 2 cache is a unified cache for data and instruction accesses, accesses are for misses in the level 1 caches or translation resolutions due to accesses."
    },
    {
        "ArchStdEvent": "L2D_CACHE_WR",
        "PublicDescription": "Counts level 2 cache accesses due to memory write operations. level 2 cache is a unified cache for data and instruction accesses, accesses are for misses in the level 1 caches or translation resolutions due to accesses."
    },
    {
        "ArchStdEvent": "L2D_CACHE_REFILL_RD",
        "PublicDescription": "Counts refills for memory accesses due to memory read operation counted by L2D_CACHE_RD. level 2 cache is a unified cache for data and instruction accesses, accesses are for misses in the level 1 caches or translation resolutions due to accesses."
    },
    {
        "ArchStdEvent": "L2D_CACHE_REFILL_WR",
        "PublicDescription": "Counts refills for memory accesses due to memory write operation counted by L2D_CACHE_WR. level 2 cache is a unified cache for data and instruction accesses, accesses are for misses in the level 1 caches or translation resolutions due to accesses."
    },
    {
        "ArchStdEvent": "L2D_CACHE_WB_VICTIM",
        "PublicDescription": "Counts evictions from the level 2 cache because of a line being allocated into the L2 cache."
    },
    {
        "ArchStdEvent": "L2D_CACHE_WB_CLEAN",
        "PublicDescription": "Counts write-backs from the level 2 cache that are a result of either:\n\n1. Cache maintenance operations,\n\n2. Snoop responses or,\n\n3. Direct cache transfers to another CPU due to a forwarding snoop request."
    },
    {
        "ArchStdEvent": "L2D_CACHE_INVAL",
        "PublicDescription": "Counts each explicit invalidation of a cache line in the level 2 cache by cache maintenance operations that operate by a virtual address, or by external coherency operations. This event does not count if either:\n\n1. A cache refill invalidates a cache line or,\n2. A Cache Maintenance Operation (CMO), which invalidates a cache line specified by set/way, is executed on that CPU.\n\nCMOs that operate by set/way cannot be broadcast from one CPU to another."
    }
]
