Lines Matching refs:superblock
63 // Locate next cache superblock
64 SuperBlk* superblock = &superBlks[superblock_index];
68 superblock->setBlkSize(blkSize);
71 superblock->replacementData = replacementPolicy->instantiateEntry();
73 // Initialize all blocks in this superblock
74 superblock->blks.resize(numBlocksPerSector, nullptr);
77 SectorSubBlk*& blk = superblock->blks[k];
85 // Associate superblock to this block
86 blk->setSectorBlock(superblock);
88 // Associate the superblock replacement data to this block
89 blk->replacementData = superblock->replacementData;
99 indexingPolicy->setEntry(superblock, superblock_index);
108 // Get all possible locations of this superblock
112 // Check if the superblock this address belongs to has been allocated. If
119 SuperBlk* superblock = static_cast<SuperBlk*>(entry);
120 if ((tag == superblock->getTag()) && superblock->isValid() &&
121 (is_secure == superblock->isSecure()) &&
122 !superblock->blks[offset]->isValid() &&
123 superblock->isCompressed() &&
124 superblock->canCoAllocate(compressed_size))
126 victim_superblock = superblock;
132 // If the superblock is not present or cannot be co-allocated a
133 // superblock must be replaced
139 // The whole superblock must be evicted to make room for the new one
145 // Get the location of the victim block within the superblock
171 const SuperBlk* superblock = static_cast<const SuperBlk*>(
173 const bool is_co_allocatable = superblock->isCompressed() &&
174 superblock->canCoAllocate(compression_blk->getSizeBits());