3 ms·
There's a bit more information at [1], but I think the details are not public. The hardware is tracking a separate program counter (and call stack) for each thr
by raphlinus 2y ago
There's a bit more information at [1], but I think the details are not public. The hardware is tracking a separate program counter (and call stack) for each thread. So in the CAS example, one thread wins and continues making progress, while the other threads loop.
There seems to some more detail in a Bachelors thesis by Phillip Grote[2], with lots of measurements of different synchronization primitives, but it doesn't go too deep into the hardware.
[1]: https://arxiv.org/abs/2205.11659 https://arxiv.org/abs/2205.11659
[2]: https://www.clemenslutz.com/pdfs/bsc_thesis_phillip_grote.pdf https://www.clemenslutz.com/pdfs/bsc_thesis_phillip_grote.pd...
- xoranth 2y agoThanks!