mshr.hh (6227:a17798f2a52c) | mshr.hh (7667:aa8fd8f6a495) |
---|---|
1/* 2 * Copyright (c) 2002-2005 The Regents of The University of Michigan 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; --- 120 unchanged lines hidden (view full) --- 129 /** True if we need to get an exclusive copy of the block. */ 130 bool needsExclusive() const { return targets->needsExclusive; } 131 132 /** True if the request is uncacheable */ 133 bool _isUncacheable; 134 135 bool downstreamPending; 136 | 1/* 2 * Copyright (c) 2002-2005 The Regents of The University of Michigan 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; --- 120 unchanged lines hidden (view full) --- 129 /** True if we need to get an exclusive copy of the block. */ 130 bool needsExclusive() const { return targets->needsExclusive; } 131 132 /** True if the request is uncacheable */ 133 bool _isUncacheable; 134 135 bool downstreamPending; 136 |
137 bool pendingInvalidate; 138 bool pendingShared; | 137 /** The pending* and post* flags are only valid if inService is 138 * true. Using the accessor functions lets us detect if these 139 * flags are accessed improperly. 140 */ |
139 | 141 |
142 /** Will we have a dirty copy after this request? */ 143 bool pendingDirty; 144 bool isPendingDirty() const { 145 assert(inService); return pendingDirty; 146 } 147 148 /** Did we snoop an invalidate while waiting for data? */ 149 bool postInvalidate; 150 bool hasPostInvalidate() const { 151 assert(inService); return postInvalidate; 152 } 153 154 /** Did we snoop a read while waiting for data? */ 155 bool postDowngrade; 156 bool hasPostDowngrade() const { 157 assert(inService); return postDowngrade; 158 } 159 |
|
140 /** Thread number of the miss. */ 141 ThreadID threadNum; 142 /** The number of currently allocated targets. */ 143 unsigned short ntargets; 144 145 146 /** Data buffer (if needed). Currently used only for pending 147 * upgrade handling. */ --- 27 unchanged lines hidden (view full) --- 175 * @param addr The address of the miss. 176 * @param asid The address space id of the miss. 177 * @param size The number of bytes to request. 178 * @param pkt The original miss. 179 */ 180 void allocate(Addr addr, int size, PacketPtr pkt, 181 Tick when, Counter _order); 182 | 160 /** Thread number of the miss. */ 161 ThreadID threadNum; 162 /** The number of currently allocated targets. */ 163 unsigned short ntargets; 164 165 166 /** Data buffer (if needed). Currently used only for pending 167 * upgrade handling. */ --- 27 unchanged lines hidden (view full) --- 195 * @param addr The address of the miss. 196 * @param asid The address space id of the miss. 197 * @param size The number of bytes to request. 198 * @param pkt The original miss. 199 */ 200 void allocate(Addr addr, int size, PacketPtr pkt, 201 Tick when, Counter _order); 202 |
183 bool markInService(); | 203 bool markInService(PacketPtr pkt); |
184 185 void clearDownstreamPending(); 186 187 /** 188 * Mark this MSHR as free. 189 */ 190 void deallocate(); 191 --- 72 unchanged lines hidden --- | 204 205 void clearDownstreamPending(); 206 207 /** 208 * Mark this MSHR as free. 209 */ 210 void deallocate(); 211 --- 72 unchanged lines hidden --- |