The bottleneck in fine-grained multithreading is the cost of interlocked operations like LOCK XADD, LOCK OR, etc. In the case where code doesn't depend on the opcode's result or flags, couldn't these be made free by extending CPU write buffers to support GPU-style ROPs?
Write buffers store (address,value) already - both up to 64 bits. Couldn't we easily add a ROP byte? Semantics are clean for ADD, OR, AND, XOR, etc.
-
-
Well, you can do any 64-bit operation you like by wrapping it in CMPXCHG.
-
CMPXCHG = 18 clocks, no ILP, so 100x slower than a non-atomic operation. And this is stupid, as some CPU architecture improvements could make uncontended atomics much faster.
- 10 more replies
New conversation -
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.