Can there be a case in a cache employing a MESI protocol (has l1 and l2 inclusivity employed) where l2 can send an invalid instruction to an already invalid line in l1.
Cache coherence- MESI protocol
320 Views Asked by user8768024 At
2
There are 2 best solutions below
0
Leeor
On
There could be a scenario where the L2 simply does not know if the L1 has the line, because the L1 is allowed to silently drop it.
In fact, if the L2 is inclusive, there's hardly any reason to waste bandwidth when evicting a non-modified line from the L1 (capacity eviction), because the L2 already has a copy and there's no change. It is therefore likely that many lines in the L2 are still there long after they were evicted from the L1. An eviction from the L2 when it finally arrives (later, since it's bigger) would have to send back a snoop to enforce inclusiveness, because it can't be sure if the line is still in the L1 or not.
Related Questions in CPU-ARCHITECTURE
- Real-world analog to TIS-100
- What is faster: equal check or sign check
- Multicore clock counter consistency
- How do MemReq and MemResp exactly work in RoccIO - RISCV
- What is the simplest Turing complete CPU instruction set which can execute code from ROM?
- Had 16-bit DOS a memory access limitation of 1 MB? If yes, how?
- Are correct branch predictions free?
- Assembly: why some x86 opcodes are invalid in x64?
- Memory barriers force cache coherency?
- FreeRTOS : How to measure context switching time?
- HACK Machines and its assembler
- Peak FLOPs per cycle for ARM11 and Cortex-A7 cores in Raspberry Pi 1 and 2
- Computer Architecture/Assembly, Amdahl's Law
- How the heap and stack size is decided in process image
- How can I get the virtual address of a shared library by the use of computer architecture state?
Related Questions in CPU-CACHE
- 3D FFT with data larger than cache
- How can I mitigate the performance impact of transposed array access order?
- How do I find the L2CacheSize, L3CacheSize from C++ on Windows7?
- Fastest use of a dataset of just over 64 bytes?
- Loop stride and cache line
- Can't sample hardware cache events with linux perf
- cache coherence MESI protocol
- What is PDE cache?
- Performance cost of MESI protocol?
- cache optimization of matrice operation
- How can I measure cache misses on OS X Yosemite?
- Write-back vs Write-Through caching?
- Cache specifications for intel core i7
- Is it possible the to lock the ISR instructions to L1 cache?
- loop tiling. how to choose block size?
Related Questions in SECOND-LEVEL-CACHE
- How to fix java.lang.NoClassDefFoundError: net/sf/ehcache/CacheException when configuring EhCache for Hibernate 5.2.5
- Hibernate Session.multiLoad L2 cache issue
- Hibernate 2nd level cache, Get all the child collections cache associated with a particular entity cache
- what is the impact of a jdbc query on hibernate second level cache? Can I trigger the cache refresh for a specific cache region
- Why ? - Second level cache should be set to false for batch updates is this true
- Error while implementing second-level caching in Rest Spring boot application
- Nhibernate and SetCacheable with second level cache
- Is it possible to limit the size of Hibernate second-level-cache for a specific entity?
- Rhino.Security: second-level cache is never hit for DetachedCriteria
- Rolling back and 2nd level collection cache
- Setting hibernate second level cache
- Which implementation is hibernate's default for second level (L2) cache?
- Advanced knowledge on Hibernate second-level cache
- Which Hibernate Queries Hits Second Layer Cache?
- Cached association not get updated upon child item created
Related Questions in MESI
- Why is the standard C# event invocation pattern thread-safe without a memory barrier or cache invalidation? What about similar code?
- Performance cost of MESI protocol?
- Invalidation of an Exclusive cache line
- How `memory_order_relaxed` is enough in TTAS spinlock for Arm64?
- Can CPU load data from another CPU's cache using LOCK CMPXCHG instruction in x86?
- Shortcomings of cache coherence alternative
- Is synchronization faster on the same physical CPU core?
- Can MESI protocol auto sync a variable value bewteen cpu cores?
- MSI: When shared and invalid states can occur at the same time
- How does cache coherence work in multi-core and multi-processor architecture?
- Cache coherence- MESI protocol
- Data races with MESI optimization
- How is message queue implemented in cache coherence protocol?
- Which cache-coherence-protocol does Intel and AMD use?
- When CPU flush value in storebuffer to L1 Cache?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
An "invalidate request", you mean?
I guess so, if L2 doesn't filter its requests according to what it knows about L1, it might just always send an INVD to L1 every time it evicts a line. No idea if this is plausible for a real design. (Eviction from L2 could be caused by a HW or SW prefetch into L2, rather than in response to L1 write-back.)
Or if the CPU core can invalidate a line in L1 at the same time that L2 is sending an invalidate, the INVD could arrive in L1 after it's already invalidated the line.