3 ms·
Ironically, a high performance, general purpose architecture without speculative execution might require a deep reinvestment in SMT. Instead of trying to specu
by saltcured 7y ago
Ironically, a high performance, general purpose architecture without speculative execution might require a deep reinvestment in SMT. Instead of trying to speculatively make one thread fast to mask IO stalls, run a large pool of threads that can stall frequently but still keep the execution units and memory channels busy.
To avoid reintroducing these spectre like bugs, you'd have to conservatively design the per-thread execution to avoid those covert channels. Not only synchronously enforcing all logical ISA guarantees for paging and other exception states, but also using more heavy-handed tagging methods to partition TLB, cache, etc. for separate protection domains.
- jdmichal 7y agoAKA a barrel processor: https://en.wikipedia.org/wiki/Barrel_processor https://en.wikipedia.org/wiki/Barrel_processor
- cesarb 7y ago> Instead of trying to speculatively make one thread fast to mask IO stalls, run a large pool of threads that can stall frequently but still keep the execution units and memory channels busy. Isn't something like that done for GPUs? They have the advantage of having a massive number of threads to execute. For CPUs, the number of runnable threads tends to be lower.
- gpderetta 7y agoSUN tried the flock of (in-order) chickens in the past, targeting JVM workloads. It wasn't great. On the other hand GPUs are pretty much what are you describing: excellent for some specific workloads, terrible for others.