CacheMemory.hh (10973:4820cc8408b0) | CacheMemory.hh (10974:bbdf1177f250) |
---|---|
1/* 2 * Copyright (c) 1999-2012 Mark D. Hill and David A. Wood 3 * Copyright (c) 2013 Advanced Micro Devices, Inc. 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 60 unchanged lines hidden (view full) --- 69 bool isTagPresent(const Address& address) const; 70 71 // Returns true if there is: 72 // a) a tag match on this address or there is 73 // b) an unused line in the same cache "way" 74 bool cacheAvail(const Address& address) const; 75 76 // find an unused entry and sets the tag appropriate for the address | 1/* 2 * Copyright (c) 1999-2012 Mark D. Hill and David A. Wood 3 * Copyright (c) 2013 Advanced Micro Devices, Inc. 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 60 unchanged lines hidden (view full) --- 69 bool isTagPresent(const Address& address) const; 70 71 // Returns true if there is: 72 // a) a tag match on this address or there is 73 // b) an unused line in the same cache "way" 74 bool cacheAvail(const Address& address) const; 75 76 // find an unused entry and sets the tag appropriate for the address |
77 AbstractCacheEntry* allocate(const Address& address, AbstractCacheEntry* new_entry); | 77 AbstractCacheEntry* allocate(const Address& address, 78 AbstractCacheEntry* new_entry, bool touch); 79 AbstractCacheEntry* allocate(const Address& address, 80 AbstractCacheEntry* new_entry) 81 { 82 return allocate(address, new_entry, true); 83 } |
78 void allocateVoid(const Address& address, AbstractCacheEntry* new_entry) 79 { | 84 void allocateVoid(const Address& address, AbstractCacheEntry* new_entry) 85 { |
80 allocate(address, new_entry); | 86 allocate(address, new_entry, true); |
81 } 82 83 // Explicitly free up this address 84 void deallocate(const Address& address); 85 86 // Returns with the physical address of the conflicting cache line 87 Address cacheProbe(const Address& address) const; 88 --- 91 unchanged lines hidden --- | 87 } 88 89 // Explicitly free up this address 90 void deallocate(const Address& address); 91 92 // Returns with the physical address of the conflicting cache line 93 Address cacheProbe(const Address& address) const; 94 --- 91 unchanged lines hidden --- |