splitlock
Splitlock is a term used in computer architecture to describe a condition in which an atomic operation that uses a lock prefix cannot complete atomically because the memory system must service the request with multiple bus transactions. In x86 architectures, the LOCK prefix is intended to serialize access to a memory operand for the duration of the instruction, ensuring exclusive ownership. However, under certain hardware configurations—such as accesses to memory-mapped I/O, non-cache-coherent memory, or complex cache/memory scenarios—the lock may be distributed across more than one bus transaction. When this occurs, the operation is effectively split into segments, potentially compromising the intended atomicity of the instruction and introducing performance penalties.
Detection and handling of split locks vary by processor and platform. Some CPUs can detect split-lock conditions
Impact and mitigation center on performance and correctness. Split locks can significantly slow down systems and,
See also: LOCK prefix, atomic operation, memory ordering, x86 architecture, cache coherence.