Pasar al contenido

Invariant TSC

Referencia de arquitecturaFeex

Invariant TSC describe un contador de marcas de tiempo cuya frecuencia permanece constante a través de los estados de energía y frecuencia arquitectónicos cubiertos por la función. No es una medición directa de la frecuencia actual del núcleo.

Lo que necesita saber

Invariant TSC describe un contador de marcas de tiempo cuya frecuencia permanece constante a través de los estados de energía y frecuencia arquitectónicos cubiertos por la función. No es una medición directa de la frecuencia actual del núcleo.

Cómo funciona

El contador de marcas de tiempo se incrementa a una frecuencia definida por la plataforma. El comportamiento invariante separa esa tasa de los cambios en la frecuencia operativa del núcleo. Convertir tics en tiempo transcurrido requiere una referencia de frecuencia válida, mientras que comparar valores entre procesadores o máquinas virtuales también requiere garantías de sincronización y virtualización.

Dónde resulta útil

Un entorno de ejecución puede utilizar un contador adecuado como parte de su implementación de temporización de alta resolución. Dividir la diferencia del contador de una carga de trabajo corta entre un valor nominal de GHz de la CPU puede ser erróneo, ya que la tasa de TSC y la frecuencia del núcleo en ejecución son magnitudes distintas.

Cómo comprobar la compatibilidad y la habilitación

El bit 8 de CPUID.80000007H:EDX enumera TSC invariante bajo la definición de arquitectura pertinente. Prefiera el reloj monotónico admitido por el sistema operativo para la temporización habitual, ya que este puede considerar las políticas de la plataforma y de virtualización.

Elija un reloj según la cuestión: el tiempo transcurrido, el tiempo de CPU del hilo y los ciclos son mediciones distintas. Las interfaces de reloj del sistema operativo incorporan directivas de la plataforma que una muestra directa mediante instrucciones puede eludir.

Lo que la función no establece

Invariante no establece por sí mismo la sincronización entre zócalos, un comportamiento monotónico durante la migración de VM, la serialización en torno a las instrucciones medidas o la ausencia de retrasos de planificación. Una muestra directa del contador no constituye un porcentaje de utilización de la CPU.

Compatibilidad y rendimiento en la práctica

Una prueba de rendimiento también requiere límites de compilador correctos, calentamiento, datos representativos y la comprensión de la migración y la planificación. Repetir una medición mal ordenada no hace que sea precisa. Indique el entorno y la incertidumbre con cualquier resultado.

Lista de comprobación práctica para la verificación

  1. Registre el modelo exacto de procesador o plataforma, así como las versiones de la aplicación, el sistema operativo y el entorno de ejecución involucrados. Conserve la redacción del error o requisito real.
  2. Consulte la referencia del fabricante para ese modelo exacto y, a continuación, inspeccione la capacidad efectiva y el estado habilitado en el entorno donde se ejecuta el programa.
  3. Compare cada requisito del binario o backend seleccionado. Una función con nombre similar, un alias o una etiqueta de tecnología general no son suficientes.
  4. Confirme que la aplicación haya seleccionado la implementación prevista. Utilice sus diagnósticos documentados y una alternativa compatible cuando no se cumplan los requisitos.
  5. Realice un cambio admitido a la vez y repita la misma carga de trabajo. Mantenga disponibles la configuración original y la vía de recuperación.

Si la función aparece listada pero el software no puede usarla

Comience con el componente exacto que falla. Una base de datos de hardware describe la capacidad registrada; el sistema operativo o el hipervisor pueden exponer un entorno efectivo diferente. Un error de instrucción no válida también requiere investigar la instrucción que generó el fallo y la compilación del binario en sí, ya que la corrupción o una instrucción no compatible no relacionada pueden producir un síntoma similar.

Instale la versión de la aplicación, controlador o entorno de ejecución compatible con la plataforma exacta, y utilice la compilación de referencia o de contingencia documentada por el fabricante si es necesario. Una actualización de software no puede crear una instrucción de la que el procesador carece. Los cambios de firmware y directivas de seguridad deben seguir el procedimiento del fabricante del sistema y un plan de recuperación, en lugar de una fórmula de optimización genérica.

Fuentes y alcance de esta explicación

Intel 64 and IA-32 Architectures Software Developer's Manual

Estas referencias establecen el comportamiento arquitectónico y los requisitos de software. No verifican de forma independiente cada valor de función en la página de un modelo de hardware vinculado. Para conocer la compatibilidad de un modelo, consulte las pruebas del fabricante en dicha página y compruebe la configuración efectiva del sistema. Este artículo no proporciona una prueba de rendimiento, certificación ni fecha de revisión independiente.

Fuentes y verificación

Titularidad editorial: Feex. No se registra ninguna fecha de revisión independiente. Cómo investigamos.

  • Intel 64 and IA-32 Architectures Software Developer's Manual · Los volúmenes 1 y 2 describen las familias de instrucciones designadas y CPUID; el volumen 3 describe el estado, la paginación, VMX y los controles de protección. La documentación de la arquitectura no establece la compatibilidad con un modelo en particular.

¿Fue útil este artículo?

Un sí o un no es suficiente. Elija un motivo si lo desea o agregue una breve nota.

¿Fue útil este artículo?