Quais são os custos de latência e taxa de transferência do compartilhamento produtor-consumidor de um local de memória entre irmãos hiper-irmãos versus irmãos não-hiper?

Dois threads diferentes em um único processo podemcompartilhar um local de memória comum, lendo e / ou escrevendo nele.

Geralmente, esse compartilhamento (intencional) é implementado usando operações atômicas usando olock prefixo x86, que possui custos bastante conhecidos tanto para olock próprio prefixo (ou seja, o custo incontestável) e também custos adicionais de coerência quando a linha de cache érealmente compartilhado (verdadeiro oufalso compartilhamento).

Aqui, estou interessado nos custos do consumidor produzido, em que um único segmentoP grava em um local de memória e outro encadeamento `C lê a partir do local de memória, ambos usandoavião lê e escreve.

Qual é a latência e a taxa de transferência dessa operação quando executada em núcleos separados no mesmo soquete e em comparação quando executada em hyperthreads irmãos no mesmo núcleo físico, em núcleos x86 recentes.

No título, estou usando o termo "hiper-irmãos" para se referir a dois segmentos em execução nos dois segmentos lógicos do mesmo núcleo, e entre-irmãos para se referir ao caso mais comum de dois segmentos em execução em núcleos físicos diferentes .

questionAnswers(2)

yourAnswerToTheQuestion