2 ms·
Couldn't the CPU maintain a few speculative cache lines that commit to regular cache if the speculation worked, and dump if not? This would keep the L1 clean,
by lallysingh 8y ago
Couldn't the CPU maintain a few speculative cache lines that commit to regular cache if the speculation worked, and dump if not?
This would keep the L1 clean, at least
- amluto 8y agoYes, but it wouldn't help enough. For example, a speculative load from one core can observably evict or change the state of a cacheline on another core.
- lallysingh 8y agoThat seems to require a much more sophisticated attack. Also my point is that a speculative cache would be a separate (like a peer to L1) cache, only showing its side effects in L2/3. That'd be a bit harder to crack with the shared core noise and larger size.
- simcop2387 8y agoThe problem with that is, what happens when your speculative code changed values in that region of memory that another core just wrote to. who wins? and how do you do it without now violating a bunch of other problems where one core sets up a memory fence and other things like that. It ends up incredibly complicated to decide what to do with the result that it's probably not worth the extra work.
- lallysingh 8y agoWhy not ask the folks who did TSX?