TSC invariante
Invariant TSC descreve um contador de carimbo de data/hora (time-stamp counter) cuja taxa permanece constante em todos os estados arquiteturais de energia e frequência cobertos pelo recurso. Ele não é uma medição direta da frequência atual do núcleo.
O que você precisa saber
Invariant TSC descreve um contador de carimbo de data/hora (time-stamp counter) cuja taxa permanece constante em todos os estados arquiteturais de energia e frequência cobertos pelo recurso. Ele não é uma medição direta da frequência atual do núcleo.
Como funciona
O time-stamp counter é incrementado a uma taxa definida pela plataforma. O comportamento invariante separa essa taxa das alterações na frequência de operação do núcleo. Converter tiques em tempo decorrido exige uma referência de frequência válida, enquanto comparar valores entre processadores ou máquinas virtuais também requer garantias de sincronização e virtualização.
Onde é útil
Um runtime pode usar um contador adequado como parte de sua implementação de temporização de alta resolução. Dividir a diferença do contador de uma carga de trabalho curta por um valor nominal de GHz da CPU pode ser incorreto porque a taxa de TSC e a frequência do núcleo em execução são grandezas diferentes.
Como verificar o suporte e a ativação
CPUID.80000007H:EDX bit 8 enumera invariant TSC sob a definição da arquitetura relevante. Prefira o relógio monotônico suportado pelo sistema operacional para temporização comum, pois ele pode levar em conta a política de plataforma e de virtualização.
Escolha um relógio de acordo com a questão: tempo decorrido, tempo de CPU da thread e ciclos são medições diferentes. As interfaces de relógio do sistema operacional incorporam políticas de plataforma que uma amostragem direta de instrução pode ignorar.
O que o recurso não estabelece
Invariant não estabelece por si só sincronização entre soquetes, comportamento monotônico através de migração de VM, serialização em torno de instruções medidas ou a ausência de atrasos de escalonamento. Uma amostragem bruta de contador não é uma porcentagem de utilização de CPU.
Compatibilidade e desempenho na prática
Um benchmark também necessita de limites de compilador corretos, aquecimento, dados representativos e uma compreensão de migração e escalonamento. Repetir uma medição mal ordenada não a torna precisa. Relate o ambiente e a incerteza com qualquer resultado.
Uma lista de verificação prática de verificação
- Registre o modelo exato do processador ou da plataforma e as versões envolvidas do aplicativo, SO e runtime. Mantenha o texto exato do erro ou requisito.
- Consulte a referência do fabricante para esse modelo exato e, em seguida, inspecione a capacidade efetiva e o estado ativado no ambiente em que o programa é executado.
- Compare cada requisito do binário ou backend selecionado. Um recurso com nome semelhante, alias ou rótulo genérico de tecnologia não é suficiente.
- Confirme se o aplicativo selecionou a implementação pretendida. Use seus diagnósticos documentados e um fallback suportado quando os requisitos não forem atendidos.
- Faça uma alteração suportada por vez e repita a mesma carga de trabalho. Mantenha a configuração original e o caminho de recuperação disponíveis.
Se o recurso estiver listado, mas o software não puder usá-lo
Comece pelo componente exato com falha. Um banco de dados de hardware descreve a capacidade registrada; o sistema operacional ou o hipervisor pode expor um ambiente efetivo diferente. Um erro de instrução ilegal também precisa de investigação da instrução falha real e da compilação do binário, porque corrupção ou uma instrução não suportada não relacionada pode produzir um sintoma semelhante.
Instale a versão do aplicativo, driver ou runtime suportada para a plataforma exata e use a compilação de linha de base ou fallback documentada do fornecedor, se necessário. Uma atualização de software não pode criar uma instrução que o processador não possui. As alterações de firmware e de política de segurança devem seguir o procedimento do fabricante do sistema e um plano de recuperação em vez de uma receita genérica de otimização.
Fontes e escopo desta explicação
Intel 64 and IA-32 Architectures Software Developer's Manual
Essas referências estabelecem o comportamento arquitetural e os requisitos de software. Elas não verificam de forma independente cada valor de recurso em uma página de modelo de hardware vinculada. Para obter suporte a modelos, use a evidência do fabricante dessa página e verifique a configuração efetiva do sistema. Este artigo não fornece um benchmark, certificação ou data de análise independente.
Fontes e verificação
Propriedade editorial: Feex. Nenhuma data de revisão independente foi registrada. Como pesquisamos.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Os Volumes 1 e 2 descrevem as famílias de instruções nomeadas e CPUID; o Volume 3 descreve estado, paginação, VMX e controles de proteção. A documentação de arquitetura não estabelece o suporte para um modelo específico.
Este artigo foi útil?
Um sim ou não é suficiente. Escolha um motivo se desejar, ou adicione uma breve observação.
Obrigado. Isso nos ajuda a melhorar esta página.