O LFENCE está serializando nos processadores AMD?
Nos documentos recentes Intel ISA, olfence
instrução foi definida comoserializando o fluxo de instruções (impedindo a execução fora de ordem). Em particular, odescrição da instrução inclui esta linha:
Especificamente, o LFENCE não é executado até que todas as instruções anteriores tenham sido concluídas localmente e nenhuma instrução posterior inicia a execução até que o LFENCE seja concluído.
Observe que isso se aplica atudo instruções de carregamento de memória, não apenaslfence
Mais do que apenas uma cerca de pedidos de memória.
Embora isso agora apareça na documentação do ISA, não está claro se é "arquitetural", isto é, a ser obedecido por todas as implementações x86 ou se é específico da Intel. Em particular,os processadores AMD também tratamlfence
como serializar o fluxo de instruções?