Instrucțiunea NOP (No Operation, opcode 0x90) nu modifică nicio stare a procesorului și este utilizată pentru alinierea instrucțiunilor la granițe de 16 octeți. PAUSE este o instrucțiune specializată pentru bucle de așteptare activă (busy-wait spinlocks).
; Bucle de spinlock optimizate energetic:
asteapta_eliberare_resursa:
cmp dword [rel flag_blocare], 0
je obtinut_acces
pause ; Oferă un indiciu pipeline-ului CPU: economisește curent și
; previne penalizările masive de speculație a memoriei la deblocare
jmp asteapta_eliberare_resursa
obtinut_acces:
; ... continua execuția ...
Efectul PAUSE: Pe procesoarele multi-core cu Hyper-Threading, PAUSE eliberează resursele de execuție ale nucleului pentru celălalt fir logic partajat.
Întrebări & Exemple de Cod:
NOP și PAUSE în x86_64: Alinierea Codului și Optimizarea Spinlock-urilorAi o nelămurire despre utilizarea comenzii
NOP și PAUSE în x86_64: Alinierea Codului și Optimizarea Spinlock-urilorsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.