Determinación de la frecuencia de la CPU en Windows

Tengo algunos problemas para encontrar un método confiable para determinar la frecuencia de la CPU en Windows (7).

He intentado usar Perfmon, pero tiene una frecuencia de muestreo máxima de 1 Hz. Además, no tengo acceso a nivel de kernel, por lo que no puedo usar registros específicos de la máquina. Hay una serie de funciones C que pueden determinar la frecuencia máxima del procesador, pero SpeedStep y Turbo Boost hacen que estos métodos no sean confiables, ya que los que probé usan un temporizador en el chip que se ejecuta a una velocidad constante y, por lo tanto, no t reflejan la frecuencia variable del procesador.

Sé que los programas como CPU-Z pueden medir directamente la frecuencia de la CPU, pero no sé cómo lo están haciendo realmente. Cualquier ayuda es muy apreciado!

Editar: también he estado investigando la posibilidad de usar ACPI para monitorear los estados P de la CPU ... ¿es esta una opción?

Edit2: actualmente estoy investigando el uso de registros específicos de la máquina (http://www.intel.com/content/dam/doc/manual/64-ia-32-architectures-software-developer-vol-3b-part-2-manual.pdf) para obtener esta información... Siento que esto podría ser excesivo para la solución, pero es la mejor pista que tengo en este momento.

preguntado el 12 de junio de 12 a las 16:06

Simplemente léalo desde el registro, HKLM\Hardware\Description\System\CentralProcessor\0\~Mhz value. -

Desafortunadamente, esta entrada de registro no varía con los cambios de frecuencia de SpeedStep. Proporciona la frecuencia de CPU máxima estándar, pero no cambia cuando el sistema reduce la frecuencia de CPU debido a una carga baja. -

Bastante inútil tratar de medir la frecuencia variable. El resultado que obtenga depende completamente de la forma en que mida. Cuanto más preciso intentes hacerlo, más alto se vuelve :) -

No estoy muy seguro de entender... Estoy tratando de medir cuál es la frecuencia en un momento dado, no solo averiguar cuál es la frecuencia máxima del procesador. Estoy haciendo un análisis de energía, y la frecuencia instantánea afecta en gran medida el consumo de energía... Entiendo que está ocurriendo un efecto de observador, pero debería ser insignificante en comparación con el número total de ciclos de CPU. -

2 Respuestas

Pude determinar la frecuencia de la CPU a través de un controlador de Windows que analiza el aperf y el mperf rato, como se describe en el siguiente enlace: Contadores del procesador de hardware que se restablecen incorrectamente

contestado el 23 de mayo de 17 a las 13:05

por favor, compruebe este enlace.

  • En este enlace un WDM simple IOCTL conductor con solicitud se da con una buena explicación. Pude encontrar la frecuencia usando este código. La frecuencia se calcula utilizando los valores MSR (Registros específicos del modelo) APERF y MPERF.

Respondido 25 Oct 16, 06:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.