CPUs were plenty fast for desktop/office/web/etc. use 15-20 years ago. Comparable apps run SLOWER on affordable systems now than they did then due to much worse software architectures (giant js apps, etc.).
-
-
Replying to @RichFelker @halvarflake
Moreover OOOE can be made safe, at low or no perf cost, if you're careful about cache side effects. Vendors traded marginal perf/$ gain for sloppiness that compromised safety.
1 reply 0 retweets 10 likes -
Replying to @RichFelker @halvarflake
Show me. And performance needed for better energy usage, doing more work.
1 reply 0 retweets 0 likes -
Replying to @WatsonLadd @halvarflake
Naive approach which likely works (but needs verification): never fetch cache lines speculatively, only speculate with already-in-cache data.
1 reply 0 retweets 3 likes -
Replying to @RichFelker @halvarflake
You said minimal performance impact. That won't be true. Hiding latency of cache miss by speculating on addresses crucial
4 replies 0 retweets 3 likes -
Tagging cache units with branch IDs and flush as branches become invalid?
2 replies 0 retweets 0 likes -
Replying to @curious_corn @WatsonLadd and
Flushing is pointless because the speculative load will invalidate the attackers cache line anyway, letting her know which line was loaded. We need a hidden cache that can somehow be made 'visible' when a speculated branch is taken. ARM spec allows hidden cache levels for e.g.
1 reply 0 retweets 1 like -
Replying to @siddhesh_p @curious_corn and
I think it's also possible to speculatively fetch to visible cache as long as the address to fetch is a retired result, not speculative, but not 100% sure.
1 reply 0 retweets 2 likes -
Replying to @RichFelker @curious_corn and
It's definitely better than completely giving up on speculation, although I believe that was a necessary first step. The approach of putting in speculation barriers seems kinda naive though given the amount of understanding the average dev has even of memory barriers.
1 reply 1 retweet 0 likes -
Replying to @siddhesh_p @curious_corn and
Absolutely. Any approach that requires work by the programmer or compiler is fundamentally bogus.
2 replies 0 retweets 0 likes
I was talking about having the cpu do what you're calling a "speculation barrier" though not introducing it as a programming model.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.