cache.hh (11484:08b33c52a16d) | cache.hh (11601:382e0637fae0) |
---|---|
1/* 2 * Copyright (c) 2012-2016 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 --- 289 unchanged lines hidden (view full) --- 298 /** 299 * Invalidate a cache block. 300 * 301 * @param blk Block to invalidate 302 */ 303 void invalidateBlock(CacheBlk *blk); 304 305 /** | 1/* 2 * Copyright (c) 2012-2016 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 --- 289 unchanged lines hidden (view full) --- 298 /** 299 * Invalidate a cache block. 300 * 301 * @param blk Block to invalidate 302 */ 303 void invalidateBlock(CacheBlk *blk); 304 305 /** |
306 * Maintain the clusivity of this cache by potentially 307 * invalidating a block. This method works in conjunction with 308 * satisfyRequest, but is separate to allow us to handle all MSHR 309 * targets before potentially dropping a block. 310 * 311 * @param from_cache Whether we have dealt with a packet from a cache 312 * @param blk The block that should potentially be dropped 313 */ 314 void maintainClusivity(bool from_cache, CacheBlk *blk); 315 316 /** |
|
306 * Populates a cache block and handles all outstanding requests for the 307 * satisfied fill request. This version takes two memory requests. One 308 * contains the fill data, the other is an optional target to satisfy. 309 * @param pkt The memory request with the fill data. 310 * @param blk The cache block if it already exists. 311 * @param writebacks List for any writebacks that need to be performed. 312 * @param allocate Whether to allocate a block or use the temp block 313 * @return Pointer to the new cache block. --- 82 unchanged lines hidden (view full) --- 396 397 /** 398 * Performs the access specified by the request. 399 * @param pkt The request to perform. 400 * @param fromCpuSide from the CPU side port or the memory side port 401 */ 402 void functionalAccess(PacketPtr pkt, bool fromCpuSide); 403 | 317 * Populates a cache block and handles all outstanding requests for the 318 * satisfied fill request. This version takes two memory requests. One 319 * contains the fill data, the other is an optional target to satisfy. 320 * @param pkt The memory request with the fill data. 321 * @param blk The cache block if it already exists. 322 * @param writebacks List for any writebacks that need to be performed. 323 * @param allocate Whether to allocate a block or use the temp block 324 * @return Pointer to the new cache block. --- 82 unchanged lines hidden (view full) --- 407 408 /** 409 * Performs the access specified by the request. 410 * @param pkt The request to perform. 411 * @param fromCpuSide from the CPU side port or the memory side port 412 */ 413 void functionalAccess(PacketPtr pkt, bool fromCpuSide); 414 |
404 void satisfyCpuSideRequest(PacketPtr pkt, CacheBlk *blk, 405 bool deferred_response = false, 406 bool pending_downgrade = false); 407 bool satisfyMSHR(MSHR *mshr, PacketPtr pkt, CacheBlk *blk); | 415 /** 416 * Perform any necessary updates to the block and perform any data 417 * exchange between the packet and the block. The flags of the 418 * packet are also set accordingly. 419 * 420 * @param pkt Request packet from upstream that hit a block 421 * @param blk Cache block that the packet hit 422 * @param deferred_response Whether this hit is to block that 423 * originally missed 424 * @param pending_downgrade Whether the writable flag is to be removed 425 * 426 * @return True if the block is to be invalidated 427 */ 428 void satisfyRequest(PacketPtr pkt, CacheBlk *blk, 429 bool deferred_response = false, 430 bool pending_downgrade = false); |
408 409 void doTimingSupplyResponse(PacketPtr req_pkt, const uint8_t *blk_data, 410 bool already_copied, bool pending_inval); 411 412 /** 413 * Perform an upward snoop if needed, and update the block state 414 * (possibly invalidating the block). Also create a response if required. 415 * --- 194 unchanged lines hidden --- | 431 432 void doTimingSupplyResponse(PacketPtr req_pkt, const uint8_t *blk_data, 433 bool already_copied, bool pending_inval); 434 435 /** 436 * Perform an upward snoop if needed, and update the block state 437 * (possibly invalidating the block). Also create a response if required. 438 * --- 194 unchanged lines hidden --- |