base_set_assoc.hh (12557:16b682f1d8a2) base_set_assoc.hh (12566:d6d48df9bf0f)
1/*
1/*
2 * Copyright (c) 2012-2014 ARM Limited
2 * Copyright (c) 2012-2014,2017 ARM Limited
3 * All rights reserved.
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

--- 56 unchanged lines hidden (view full) ---

67 * The BaseSetAssoc tags provide a base, as well as the functionality
68 * common to any set associative tags. Any derived class must implement
69 * the methods related to the specifics of the actual replacment policy.
70 * These are:
71 *
72 * BlkType* accessBlock();
73 * BlkType* findVictim();
74 * void insertBlock();
3 * All rights reserved.
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

--- 56 unchanged lines hidden (view full) ---

67 * The BaseSetAssoc tags provide a base, as well as the functionality
68 * common to any set associative tags. Any derived class must implement
69 * the methods related to the specifics of the actual replacment policy.
70 * These are:
71 *
72 * BlkType* accessBlock();
73 * BlkType* findVictim();
74 * void insertBlock();
75 * void invalidate();
76 */
77class BaseSetAssoc : public BaseTags
78{
79 public:
80 /** Typedef the block type used in this tag store. */
81 typedef CacheBlk BlkType;
82 /** Typedef the set type used in this tag store. */
83 typedef CacheSet<CacheBlk> SetType;

--- 45 unchanged lines hidden (view full) ---

129 * Find the cache block given set and way
130 * @param set The set of the block.
131 * @param way The way of the block.
132 * @return The cache block.
133 */
134 CacheBlk *findBlockBySetAndWay(int set, int way) const override;
135
136 /**
75 */
76class BaseSetAssoc : public BaseTags
77{
78 public:
79 /** Typedef the block type used in this tag store. */
80 typedef CacheBlk BlkType;
81 /** Typedef the set type used in this tag store. */
82 typedef CacheSet<CacheBlk> SetType;

--- 45 unchanged lines hidden (view full) ---

128 * Find the cache block given set and way
129 * @param set The set of the block.
130 * @param way The way of the block.
131 * @return The cache block.
132 */
133 CacheBlk *findBlockBySetAndWay(int set, int way) const override;
134
135 /**
137 * Invalidate the given block.
138 * @param blk The block to invalidate.
139 */
140 void invalidate(CacheBlk *blk) override
141 {
142 assert(blk);
143 assert(blk->isValid());
144 tagsInUse--;
145 assert(blk->srcMasterId < cache->system->maxMasters());
146 occupancies[blk->srcMasterId]--;
147 blk->srcMasterId = Request::invldMasterId;
148 blk->task_id = ContextSwitchTaskId::Unknown;
149 blk->tickInserted = curTick();
150 }
151
152 /**
153 * Access block and update replacement data. May not succeed, in which case
154 * nullptr is returned. This has all the implications of a cache
155 * access and should only be used as such. Returns the access latency as a
156 * side effect.
157 * @param addr The address to find.
158 * @param is_secure True if the target memory space is secure.
159 * @param lat The access latency.
160 * @return Pointer to the cache block if found.

--- 206 unchanged lines hidden ---
136 * Access block and update replacement data. May not succeed, in which case
137 * nullptr is returned. This has all the implications of a cache
138 * access and should only be used as such. Returns the access latency as a
139 * side effect.
140 * @param addr The address to find.
141 * @param is_secure True if the target memory space is secure.
142 * @param lat The access latency.
143 * @return Pointer to the cache block if found.

--- 206 unchanged lines hidden ---