La découverte de la fréquence d'horloge du PROCESSEUR (par cœur, par processeur)

Des programmes comme CPUz sont très bons à donner des informations en profondeur sur le système (vitesse de bus, les timings de la mémoire, etc.)

Cependant, est-il un moyen via un programme de calcul du par cœur (et par processeur, dans les systèmes multi-processeurs à plusieurs cœurs par PROCESSEUR) fréquence sans avoir à traiter avec un PROCESSEUR spécifique info.

Je suis en train de développer un anti triche outil (pour une utilisation avec de l'horloge limitée de l'indice de référence des compétitions) qui sera capable d'enregistrer de l'horloge du PROCESSEUR lors de l'indice de référence exécuter pour tous les cœurs actifs dans le système (sur tous les processeurs.)

  • J'ai essayé de faire quelque chose comme cela auparavant - comme je suis l'auteur de l'une de ces overclocker repères. C'est très dur. Vous ne pouvez pas il suffit de mesurer la fréquence, vous avez également à rendre le système des minuteries résistant à l'horloge de la manipulation...
  • Pour ajouter à mon point de vue. Des méthodes pour mesurer la fréquence d'impliquer le matériel/les compteurs de performance. Mais vous avez besoin d'une mesure précise du temps-la durée (comme le nombre de cycles en 1 seconde). Toutefois, lorsque vous avez affaire à un déterminé les tricheurs, vous ne pouvez pas avoir confiance dans les résultats de l'une de ces fonctions: clock(), gettimeofday(), QueryPerformanceCounter(), etc... comme ils peuvent tous être altéré. (Et je sais comment les manipuler moi-même...)
  • Wow... c'est révélateur... avez-vous finalement décider d'une stratégie pour au moins faire en sorte qu'il est difficile pour quelqu'un de tricher "facilement"?
  • J'ai développé ce sujet dans la réponse que je viens de poster.
  • Vous cet être marqués avec un PROCESSEUR de la famille?
  • J'ai besoin de gérer les différentes CPU familles. Core 2/i7/i5/K8/K10/Bulldozer, etc. D'où le générique de la balise.
  • Question connexe: stackoverflow.com/questions/65095/...
  • Oui, c'est possible. Sur les Processeurs Intel, vous devez utiliser un kernel-mode driver WDM pour le faire. Le code Source et un exemple pour les puces Intel peut être trouvé sur mon blog: dima.de/blog/?p=101

InformationsquelleAutor kidoman | 2011-12-02