web-dev-qa-db-fra.com

Les tics d'horloge du processeur sont-ils strictement périodiques?

La fréquence d'un processeur est-elle une valeur moyenne d'environ combien de ticks d'horloge il y a en une seconde ou a-t-il une stabilité physique plus forte?

À mon avis, il ne doit être ni stable ni instable. Alors, y a-t-il des informations disponibles sur la variance d'un processeur?

La durée de cycle d'une CPU est-elle strictement synchronisée avec la vibration du cristal? Ou faut-il simplement que le processeur réalise un cycle avant le prochain tick?

51
Gael

Comme toute chose compliquée, vous pouvez décrire le fonctionnement d’un processeur à différents niveaux.

Au niveau le plus fondamental, un processeur est piloté par une horloge précise. La fréquence de l'horloge peut changer; penser SpeedStep d’Intel. Mais à tout moment, le processeur est absolument verrouillé à 100% sur le signal d'horloge.

Les instructions de la CPU fonctionnent à un niveau beaucoup plus élevé. Une instruction unique est une chose complexe et peut aller de moins d’un cycle à des milliers de cyclesà compléter comme expliqué ici sur Wikipedia .

Donc, fondamentalement, une instruction consomme un certain nombre de cycles d'horloge. Dans les processeurs modernes, en raison de technologies telles que plusieurs cœurs, HyperThreading, pipeline, mise en cache, exécution déréglée et spéculative, le nombre exact de cycles d'horloge pour une seule instruction n'est pas garanti et varie chaque fois que vous émettez une telle instruction. !

MODIFIER

existe-t-il des informations disponibles sur la variance pour un processeur spécifique?

Oui et non. 99,99% des utilisateurs finaux sont intéressés par la performance globale, qui peut être quantifiée en exécutant différents tests de performance.

Ce que vous demandez, ce sont des informations hautement techniques. Intel ne publie pas d'informations complètes ou exactes sur le temps de latence/débit des instructions de la CPU .

Il y a des chercheurs qui ont pris l'initiative d'essayer de comprendre cela. Voici deux fichiers PDF pouvant vous intéresser:

Malheureusement, il est difficile d'obtenir variancedata. Citant du premier PDF:

les nombres indiqués sont des valeurs minimales. Les erreurs de cache, les défauts d'alignement et les exceptions peuvent augmenter considérablement le nombre d'horloges.

Lecture intéressante quand même!

49
misha256

Les horloges du processeur sont-elles de nature strictement périodique?

Bien sûr que non. Même les toutes meilleures horloges ne sont pas strictement périodiques. Les lois de la thermodynamique disent le contraire:

  • Loi Zeroth: L'univers joue sur vous avec un vilain petit jeu.
  • Première loi: vous ne pouvez pas gagner.
  • Deuxième loi: Mais vous pourriez juste faire vos frais, par une journée très froide.
  • Troisième loi: il ne fait jamais froid.

Les développeurs des toutes meilleures horloges s’efforcent de surmonter les lois de la thermodynamique. Ils ne peuvent pas gagner, mais ils arrivent très près du seuil de rentabilité. L'horloge sur votre CPU? C'est des déchets en comparaison de ces meilleures horloges atomiques. C'est pourquoi le protocole de temps réseau existe.


Prédiction: nous verrons encore un peu le chaos lorsque les meilleures horloges atomiques du monde passeront du 2015 30 juin 23:59:59 UTC à 2015 30 juin 23:59:60 UTC à 2015 1 juillet 2015 00:00:00 UTC. Trop de systèmes ne reconnaissent pas les secondes intercalaires et définissent leur niveau de sécurité sur deux (ce qui empêche toute modification de l'heure de plus d'une seconde). La gigue d'horloge dans ces systèmes signifie que la seconde intercalaire du protocole temporel de réseau sera rejetée. Un certain nombre d'ordinateurs vont faire faillite, comme en 2012.

29
David Hammen

Vers l'an 2000, lorsque les vitesses d'horloge des processeurs ont commencé à entrer dans la plage d'utilisation des téléphones mobiles, il est devenu courant d'ajouter une variation à la vitesse d'horloge réelle. La raison est simple: si l'horloge du processeur est exactement de 900 MHz, toutes les interférences électroniques sont générées à cette fréquence. Variez la fréquence d'horloge d'un bit entre 895 et 905 MHz, et le brouillage est également réparti sur cette plage.

Cela a été possible parce que les processeurs modernes sont limités en chaleur. Ils n'ont aucun problème à courir un peu plus vite pendant une courte période, car ils peuvent se refroidir quand l'horloge est ralentie plus tard.

22
MSalters

Concepteur de logique numérique ici. Le temps réel nécessaire à un réseau logique pour changer en réponse à un signal d'entrée est le délai de propagation . Pensez au système comme:

registers A,B,C... ---> logic cloud ---> registers A',B',C'

L '"horloge de lancement" est l'horloge Edge à laquelle le premier ensemble de registres change. La "capture clock" est la prochaine horloge Edge une période plus tard. Pour que le système fonctionne, la sortie du nuage logique doit être stable avant l'arrivée de l'horloge de capture.

Le processus permettant de s’assurer que cela fonctionne est une analyse temporelle. À l'aide d'une simulation du système basée sur la physique, calculez le cas le plus défavorablel'heure d'arrivée de toute entrée de toute sortie. Le plus grand de ces chiffres dans le système définit la période d'horloge minimale.

Remarque dans le pire des cas . Le temps de propagation réel sera plus court, mais cela dépend de la variation du processus de fabrication, de la température actuelle et de la tension de la puce ( PVT ). Cela signifie concrètement que vous pouvez appliquer une horloge plus rapide (overclocking) et que cela peut fonctionner. Il peut également commencer à générer des erreurs, telles que la décision de 0x1fffffff + 1 = 0x1f000000 si le bit de report n'arrive pas à temps.

Les puces peuvent également avoir plus d’une horloge à bord (généralement le FSB est plus lent que le cœur), et l’horloge réelle peut être augmentée ou diminuée à des fins de contrôle thermique ou variée (la réponse de MSalter sur l’utilisation du spectre étalé pour réussir les tests CEM).

22
pjc50

La durée d'instruction d'un processeur est-elle strictement synchronisée avec la vibration du cristal? Ou faut-il que le processeur s'assure de réaliser une instruction avant le prochain tick?

Ni. La durée de l'instruction sera d'un certain nombre de tics d'horloge, mais ce nombre peut varier en fonction des exigences de l'instruction. Par exemple, si une instruction ne peut pas avancer jusqu'à ce qu'un emplacement de mémoire particulier soit dans le cache L1, l'instruction ne sera pas terminée avant le prochain coup d'horloge. Aucun progrès en avant sur cette instruction ne sera fait jusqu'à ce que cela se produise.

Mais lorsque le processeur décide de faire quelque chose, la méthode de base par laquelle il le fait est de configurer ses commutateurs internes de manière à ce qu'un élément d'information particulier parvienne à une partie particulière du processeur. Il attend que l'entrée arrive à cette partie et que la sortie arrive à la partie suivante. Cette partie d'attente est le but de l'horloge.

Imaginez un circuit physique qui prend deux entrées binaires et les additionne, en générant la somme sur un troisième jeu de fils. Pour effectuer une addition, la CPU doit faire en sorte que les deux numéros soient ajoutés pour atteindre cet additionneur et les sorties pour accéder, par exemple, à un verrou de registre de la CPU. La CPU ne peut pas demander au verrou de stocker la sortie tant que les entrées n'atteignent pas l'additionneur, l'additionneur produisant la sortie et la sortie atteignant le verrou. C’est l’objet de l’horloge - de définir le temps d’attente entre l’organisation d’une entrée et son espoir que la sortie sera prête à être utilisée.

2
David Schwartz