Les ticks de l'horloge du processeur sont-ils strictement périodiques?

51

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?

Gaël
la source
7
Il existe de nombreux types de CPU. La plupart utilisent un cristal qui vibre à une fréquence spécifique pour se chronométrer. Ce qui signifie que la plupart sont à peu près aussi précises qu'une montre-bracelet numérique (qui utilise le même type de cristal pour conserver l'heure). en.wikipedia.org/wiki/Crystal_oscillator
krowe
5
@Gael Certaines instructions nécessitent des centaines de ticks ou cycles d' horloge .
Misha256
1
@ Gael: De plus, il est assez courant que les processeurs se ralentissent ou s'accélèrent, et ils le font assez souvent. Bien que je ne sache pas exactement comment cela se rapporte aux tiques.
Mooing Duck
18
Voter pour clore ceci en cherchant des recommandations sur des produits, des services ou du matériel d'apprentissage ? Vraiment, les gens?
un CVn
30
C'est une question légitime qui cherche à clarifier le fonctionnement du matériel.
studiohack

Réponses:

49

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; pense 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 seule instruction est une chose complexe et peut prendre de moins d'un cycle à des milliers de cycles pour terminer 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 les cœurs multiples, l'HyperThreading, le traitement en pipeline, la mise en cache, le dérèglement et l'exécution 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 les performances globales , qui peuvent être quantifiées en exécutant divers tests.

Ce que vous demandez, ce sont des informations hautement techniques. Intel ne publie pas d’informations complètes ou précises sur la latence / le débit des instructions de l’UC .

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 des données sur la variance . 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!

Misha256
la source
1
Les commentaires ne sont pas pour une discussion prolongée; cette conversation a été déplacée pour discuter .
Sathyajith Bhat
4
Très agréable. Bien sûr, cela But at all times the CPU is absolutely 100% locked to the clock signalne s'applique qu'aux CPU synchrones. C'est idiot de parler de ticks dans un processeur asynchrone (sans horloge), mais cela me semblait une omission :)
Luaan
1
@ Luan - Vrai. Je pense que les vrais processeurs asynchrones sont encore assez rares, mais ils existent (ou l'ont été par le passé). Seulement vraiment pertinent pour les chercheurs et les geeks du matériel, cependant.
Daniel R Hicks
@DanielRHicks Ils présentaient un certain intérêt pour les périphériques intégrés (il y a des vieux processeurs asynchrones MIPS et ARM autour), mais oui, ce n'est pas vraiment le gros problème sur le marché grand public. Après tout, pourquoi se préoccuper de la consommation d'énergie du processeur d'un smartphone alors que l'écran avide d'énergie se trouve juste à côté. Les économies d’énergie (et d’autres fonctionnalités) pourraient être très utiles pour d’autres applications - IBM SyNAPSE ressemble à un projet intéressant à des fins scientifiques.
Luaan
@ Luan - Le point intéressant, quand ils ont été inventés pour la première fois, était que l'ordinateur fonctionnait exactement aussi vite / lentement que nécessaire pour effectuer le calcul. Mais des systèmes de chronométrage plus élaborés ont essentiellement permis de faire la même chose, en quelque sorte.
Daniel R Hicks
29

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, très difficilement, de dépasser 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 assisterons encore une fois au chaos lorsque les meilleures horloges atomiques du monde iront 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.

David Hammen
la source
9
+1, drôle et informatif. Et le deuxième sujet de Leap est également une bonne lecture.
Jimm-cl
9
Eh bien, IIRC, la raison est grande parce que les routines d’horloge du noyau étaient conscientes de la possibilité de secondes intercalaires, mais elles ont implémenté l’ajustement comme un appel à une routine d’ajustement d’horloge qui ne pouvait pas être appelée alors que l’horloge était déjà allumée. en cours de réglage ... Et bien sûr, l'horloge système n'a rien à voir avec l'horloge du processeur.
Hagen von Eitzen
1
Lol, génial. Je dois ajouter quelque chose à votre "horloge du processeur est des ordures par rapport aux horloges atomiques" observation: En effet! Mais tout cela est très subjectif, sans parler de relatif. Nous pouvons nous émerveiller de la précision supérieure de nos meilleures horloges atomiques, mais quelque part ailleurs (en dehors de notre réalité intime), il peut exister une technologie qui donne à nos horloges atomiques un aspect "
sordide
2
@ misha256 la réalité est qu'il ne peut y avoir aucune horloge précise . Le temps est relatif.
Keltari
L'horloge du processeur peut être compliquée, mais rien ne permet de laisser un débordement de registre 8 bits simplement pour laisser un peu de temps au pilote d'affichage à 7 segments dans un état inconnu pour modifier votre instruction avant d'émettre la suivante. Nous n'avons pas besoin de cristaux pour cela. Ou, plus important encore, rien ne vaut l'attente d'une nanoseconde pour que l'ALU termine son calcul avant de stocker ses résultats dans un registre (ou sur un bus menant à une autre ALU).
John Dvorak
22

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.

MSalters
la source
13
Cette option est souvent décrite dans le BIOS sous le nom "Spread Spectrum"
Mark Sowul
1
J'ai lu que, dans les processeurs multicœurs, les cœurs utilisent également des horloges offset, car cela évite les bruits radio, facilite la distribution de l'alimentation et évite la création d'harmoniques dans les cœurs.
Zan Lynx
3
@MarkSowul merci, enfin quelqu'un qui raconte l'utilisation pratique de ce "spectre étalé".
22

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 le bord d'horloge auquel le premier ensemble de registres change. "L'horloge de capture" est le prochain front d'horloge 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 l' heure d'arrivée dans le pire des cas pour toute entrée d'une sortie. Le plus grand de ces chiffres dans le système définit la période d'horloge minimale.

Notez le pire des cas . Le temps de propagation réel sera plus court, mais cela dépendra 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, par exemple en décidant que 0x1fffffff + 1 = 0x1f000000si 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 (réponse de MSalter sur l'utilisation du spectre étalé pour réussir les tests de CEM).

pjc50
la source
Dans certains cas, l'horloge de capture peut être le deuxième cycle ou un cycle ultérieur plutôt que le suivant. Certaines conceptions supposent que les données prendront toujours au moins un minimum de temps (par exemple, si on sait que le délai de propagation est compris entre 2,1 et 2,9 cycles, les données pourraient être sorties et les résultats échantillonnés à chaque cycle; chaque résultat échantillonné refléterait les données de 3 cycles avant); d'autres conceptions plus conservatrices modifient les données de sortie plus lentement et ignorent le résultat jusqu'à ce qu'il soit garanti qu'il soit stable.
Supercat
2

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 dans 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 atteindre, 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.

David Schwartz
la source