cache.hh (9529:28d6d9663a7e) | cache.hh (9548:63d36f7ef562) |
---|---|
1/* 2 * Copyright (c) 2012-2013 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 --- 220 unchanged lines hidden (view full) --- 229 * @param pkt The memory request with the fill data. 230 * @param blk The cache block if it already exists. 231 * @param writebacks List for any writebacks that need to be performed. 232 * @return Pointer to the new cache block. 233 */ 234 BlkType *handleFill(PacketPtr pkt, BlkType *blk, 235 PacketList &writebacks); 236 | 1/* 2 * Copyright (c) 2012-2013 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 --- 220 unchanged lines hidden (view full) --- 229 * @param pkt The memory request with the fill data. 230 * @param blk The cache block if it already exists. 231 * @param writebacks List for any writebacks that need to be performed. 232 * @return Pointer to the new cache block. 233 */ 234 BlkType *handleFill(PacketPtr pkt, BlkType *blk, 235 PacketList &writebacks); 236 |
237 238 /** 239 * Performs the access specified by the request. 240 * @param pkt The request to perform. 241 * @return The result of the access. 242 */ 243 bool recvTimingReq(PacketPtr pkt); 244 245 /** 246 * Handles a response (cache line fill/write ack) from the bus. 247 * @param pkt The response packet 248 */ 249 void recvTimingResp(PacketPtr pkt); 250 251 /** 252 * Snoops bus transactions to maintain coherence. 253 * @param pkt The current bus transaction. 254 */ 255 void recvTimingSnoopReq(PacketPtr pkt); 256 257 /** 258 * Handle a snoop response. 259 * @param pkt Snoop response packet 260 */ 261 void recvTimingSnoopResp(PacketPtr pkt); 262 263 /** 264 * Performs the access specified by the request. 265 * @param pkt The request to perform. 266 * @return The number of cycles required for the access. 267 */ 268 Cycles recvAtomic(PacketPtr pkt); 269 270 /** 271 * Snoop for the provided request in the cache and return the estimated 272 * time of completion. 273 * @param pkt The memory request to snoop 274 * @return The number of cycles required for the snoop. 275 */ 276 Cycles recvAtomicSnoop(PacketPtr pkt); 277 278 /** 279 * Performs the access specified by the request. 280 * @param pkt The request to perform. 281 * @param fromCpuSide from the CPU side port or the memory side port 282 */ 283 void functionalAccess(PacketPtr pkt, bool fromCpuSide); 284 |
|
237 void satisfyCpuSideRequest(PacketPtr pkt, BlkType *blk, 238 bool deferred_response = false, 239 bool pending_downgrade = false); 240 bool satisfyMSHR(MSHR *mshr, PacketPtr pkt, BlkType *blk); 241 242 void doTimingSupplyResponse(PacketPtr req_pkt, uint8_t *blk_data, 243 bool already_copied, bool pending_inval); 244 --- 41 unchanged lines hidden (view full) --- 286 * since some architecture models don't implement cache 287 * maintenance operations. We won't even try to get a decent 288 * timing here since the line should have been flushed earlier by 289 * a cache maintenance operation. 290 */ 291 void uncacheableFlush(PacketPtr pkt); 292 293 /** | 285 void satisfyCpuSideRequest(PacketPtr pkt, BlkType *blk, 286 bool deferred_response = false, 287 bool pending_downgrade = false); 288 bool satisfyMSHR(MSHR *mshr, PacketPtr pkt, BlkType *blk); 289 290 void doTimingSupplyResponse(PacketPtr req_pkt, uint8_t *blk_data, 291 bool already_copied, bool pending_inval); 292 --- 41 unchanged lines hidden (view full) --- 334 * since some architecture models don't implement cache 335 * maintenance operations. We won't even try to get a decent 336 * timing here since the line should have been flushed earlier by 337 * a cache maintenance operation. 338 */ 339 void uncacheableFlush(PacketPtr pkt); 340 341 /** |
294 * Performs the access specified by the request. 295 * @param pkt The request to perform. 296 * @return The result of the access. 297 */ 298 bool timingAccess(PacketPtr pkt); 299 300 /** 301 * Performs the access specified by the request. 302 * @param pkt The request to perform. 303 * @return The number of ticks required for the access. 304 */ 305 Tick atomicAccess(PacketPtr pkt); 306 307 /** 308 * Performs the access specified by the request. 309 * @param pkt The request to perform. 310 * @param fromCpuSide from the CPU side port or the memory side port 311 */ 312 void functionalAccess(PacketPtr pkt, bool fromCpuSide); 313 314 /** 315 * Handles a response (cache line fill/write ack) from the bus. 316 * @param pkt The request being responded to. 317 */ 318 void handleResponse(PacketPtr pkt); 319 320 /** 321 * Snoops bus transactions to maintain coherence. 322 * @param pkt The current bus transaction. 323 */ 324 void snoopTiming(PacketPtr pkt); 325 326 /** 327 * Snoop for the provided request in the cache and return the estimated 328 * time of completion. 329 * @param pkt The memory request to snoop 330 * @return The number of cycles required for the snoop. 331 */ 332 Cycles snoopAtomic(PacketPtr pkt); 333 334 /** | |
335 * Squash all requests associated with specified thread. 336 * intended for use by I-cache. 337 * @param threadNum The thread to squash. 338 */ 339 void squash(int threadNum); 340 341 /** 342 * Generate an appropriate downstream bus request packet for the --- 74 unchanged lines hidden --- | 342 * Squash all requests associated with specified thread. 343 * intended for use by I-cache. 344 * @param threadNum The thread to squash. 345 */ 346 void squash(int threadNum); 347 348 /** 349 * Generate an appropriate downstream bus request packet for the --- 74 unchanged lines hidden --- |