The consensus number of a shift register equals its width
James Aspnes
TL;DR
The paper analyzes the consensus power of shift-register objects in the asynchronous shared-memory model. By applying Ruppert's $n$-discerning criterion to two register families, it proves that $w$-bit logical shift registers have consensus number $C(T)=w$, while $w$-bit arithmetic shift registers have infinite consensus power for $w\ge 2$. The results extend to $w$-wide registers over larger alphabets and place familiar hardware-like objects at all finite levels of the consensus hierarchy. This sharpens our understanding of which machine-code-like operations contribute to wait-free consensus and suggests further exploration of other instructions. Overall, the work connects practical register operations to fundamental limits in distributed computing, guiding both theory and potential hardware-software design considerations.
Abstract
The consensus number of a w-bit register supporting logical left shift and right shift operations is exactly w, giving an example of a class of types, widely implemented in practice, that populates all levels of the consensus hierarchy. This result generalizes to w-wide shift registers over larger alphabets. In contrast, a register providing arithmetic right shift, which replicates the most significant bit instead of replacing it with zero, is shown to solve consensus for any fixed number of processes as long as its width is at least two.
