Se trata de bloquear el bus de memoria para esa dirección. The Intel 64 and IA-32 Architectures Software Developer's Manual - Volume 3A: System Programming Guide, Part 1 nos dice:
7.1.4 Efectos de una operación de BLOQUEO en cachés de procesador interno.
Para los procesadores Pentium y Intel486, la señal LOCK # siempre se afirmó en el autobús durante una operación de bloqueo , incluso si el área de la memoria estar encerrado se almacena en caché en el procesador .
Para el P6 y los últimos procesadores familias más, si el área de memoria que se está bloqueado durante una operación de bloqueo se en caché en el procesador que es llevar a cabo la operación de bloqueo como memoria de escritura no simultánea y es completamente contenido en una línea de caché, el procesador no puede hacer valer la señal LOCK # en el bus. En cambio, modificará la ubicación de la memoria internamente y permitirá [su] mecanismo de coherencia de caché para asegurar que la operación se lleve a cabo atómicamente. Esta operación se denomina "bloqueo de caché". El mecanismo de coherencia de caché impide automáticamente que dos o más procesadores que tengan la misma área de memoria modifiquen simultáneamente los datos en esa área. (énfasis agregado)
Aquí nos enteramos de que los chips P6 y más nuevos son lo suficientemente inteligentes como para determinar si realmente tienen que bloquear el bus o simplemente pueden confiar en el almacenamiento en caché inteligente. Creo que esta es una buena optimización.
He hablado de ello más en mi blog "How Do Locks Lock?"
relacionadas: [? Puede ser num ++ atómica para 'int num'] (https://stackoverflow.com/questions/39393850/can-num-be -atomic-for-int-num) donde mi respuesta explica más acerca de cómo las instrucciones 'lock'ed se ejecutan internamente. –