1/* 2 * Copyright (c) 2018 Inria 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 86 unchanged lines hidden (view full) --- 95 /** The amount to shift the address to get the tag. */ 96 const int tagShift; 97 98 /** Mask out all bits that aren't part of the sector tag. */ 99 const unsigned sectorMask; 100 /** Mask out all bits that aren't part of the set index. */ 101 const unsigned setMask; 102 |
103 /** 104 * Find all possible block locations for insertion and replacement of 105 * an address. Should be called immediately before ReplacementPolicy's 106 * findVictim() not to break cache resizing. 107 * Returns sector blocks in all ways belonging to the set of the address. 108 * 109 * @param addr The addr to a find possible locations for. 110 * @return The possible locations. 111 */ 112 std::vector<ReplaceableEntry*> getPossibleLocations(const Addr addr) const 113 override; 114 |
115 public: 116 /** Convenience typedef. */ 117 typedef SectorTagsParams Params; 118 119 /** 120 * Construct and initialize this tag store. 121 */ 122 SectorTags(const Params *p); --- 27 unchanged lines hidden (view full) --- 150 * @param addr The address to find. 151 * @param is_secure True if the target memory space is secure. 152 * @param lat The access latency. 153 * @return Pointer to the cache block if found. 154 */ 155 CacheBlk* accessBlock(Addr addr, bool is_secure, Cycles &lat) override; 156 157 /** |
158 * Insert the new block into the cache and update replacement data. 159 * 160 * @param addr Address of the block. 161 * @param is_secure Whether the block is in secure space or not. 162 * @param src_master_ID The source requestor ID. 163 * @param task_ID The new task ID. 164 * @param blk The block to update. 165 */ --- 89 unchanged lines hidden --- |