Articles of intel

Instrução jmp lenta

Na sequência da minha pergunta As vantagens de usar 32bits registradores / instruções em x86-64 , comecei a medir os custos das instruções. Estou ciente de que isso foi feito várias vezes (por exemplo, Agner Fog ), mas estou fazendo isso por diversão e auto-educação. Meu código de teste é bem simples (para simplicidade aqui […]

Qual é a latência e o rendimento da instrução RDRAND no Ivy Bridge?

Não consigo encontrar nenhuma informação sobre agend.org na latência ou throughput da instrução RDRAND . No entanto, esse processador existe, portanto, as informações devem estar lá. Edit: Na verdade, o mais novo manual de otimização menciona esta instrução. É documentado como <200 ciclos e uma largura de banda total de pelo menos 500MB / s […]

Por que o XCHG reg registra 3 instruções de microinstruções em arquiteturas modernas da Intel?

Eu estou fazendo micro-otimização em uma parte crítica do desempenho do meu código e me deparei com a seqüência de instruções (na syntax da AT & T): add %rax, %rbx mov %rdx, %rax mov %rbx, %rdx Eu pensei que finalmente tinha um caso de uso para xchg que me permitiria raspar uma instrução e escrever: […]

Qual é o mecanismo de pilha na microarquitetura Sandybridge?

Estou lendo http://www.realworldtech.com/sandy-bridge/ e estou enfrentando alguns problemas para entender alguns problemas: O rastreador de ponteiro de pilha dedicado também está presente em Sandy Bridge e renomeia o ponteiro de pilha, eliminando dependencies seriais e removendo um número de uops. O que é um dedicated stack pointer tracker na verdade? Para o Sandy Bridge (e […]

Qual é o propósito da instrução “PAUSE” no x86?

Eu estou tentando criar uma versão estúpida de um bloqueio de rotação. Navegando na web, me deparei com uma instrução de assembly chamada “PAUSE” em x86, que é usada para dar uma dica a um processador que um “spin-lock” está atualmente sendo executado nesta CPU. O manual da Intel e outras informações disponíveis afirmam que […]

Existe uma dica de compilador para o GCC forçar a previsão de ramificação a sempre seguir um determinado caminho?

Para as arquiteturas da Intel, existe uma maneira de instruir o compilador GCC para gerar código que sempre força a predição de ramificação de uma maneira específica no meu código? O hardware da Intel ainda suporta isso? E quanto a outros compiladores ou hardwares? Eu usaria isso em código C ++, onde eu sei o […]

Qual técnica de mapeamento de cache é usada no processador Intel Core i7?

Eu aprendi sobre diferentes técnicas de mapeamento de cache como mapeamento direto, mapeamento associado e técnica de mapeamento associativo de conjunto e também aprendi as compensações. Mas estou curioso sobre o que é usado atualmente no processador Intel Core i7 ou AMD. E como as técnicas são evoluídas. E quais são as coisas que precisam […]

Qual é a boot apropriada do OpenGL na Intel HD 3000?

Eu tenho um problema com charts Intel HD 3000 no notebook Toshiba (OS Win7 x32, lang C ++) . Os aplicativos OpenGL de contexto único clássico funcionam bem, mas em vários contextos OpenGL no único App cria um comportamento estranho: em versões mais antigas dos meus aplicativos, o driver Intel não pode criar o segundo […]

Como o x86 é agendado, exatamente?

As modernas CPUs x86 quebram o stream de instruções de input em micro-operações (uops 1 ) e agendam esses uops fora de ordem conforme suas inputs se tornam prontas. Embora a ideia básica seja clara, gostaria de saber os detalhes específicos de como as instruções prontas estão agendadas, já que ela afeta as decisões de […]

Desativando um programa para o pipeline nas CPUs da família Sandybridge da Intel

Eu estive quebrando meu cérebro por uma semana tentando completar essa tarefa e espero que alguém aqui possa me levar ao caminho certo. Deixe-me começar com as instruções do instrutor: Sua tarefa é o oposto da nossa primeira tarefa de laboratório, que era otimizar um programa de número primo. Sua finalidade nesta tarefa é pessimizar […]