J'ai récemment rencontré un processeur STM avec 2 oscillateurs sur le circuit - je suppose que l'un pour un fonctionnement à haute vitesse et l'autre pour une faible puissance.
Pour quelque chose comme un processeur de bureau où la vitesse d'horloge peut être modifiée à n'importe quelle fréquence souhaitée (dans des limites raisonnables) - comment cela fait-il physiquement ?
microcontroller
oscillator
clock
microprocessor
pll
alex.forencich
la source
la source
Réponses:
Cela se fait à l'aide d'un périphérique appelé boucle à verrouillage de phase , ou PLL. Voici un schéma de principe d'une PLL de base:
simuler ce circuit - Schéma créé à l'aide de CircuitLab
L'oscillateur de la carte mère ne fonctionne pas à la fréquence d'horloge du processeur, mais à une fréquence de l'ordre de 100 MHz. Cet oscillateur sert uniquement de fréquence de référence connue et stable. À l'intérieur du CPU, la fréquence d'horloge réelle sera générée par un oscillateur commandé en tension , ou VCO. Le VCO peut être réglé pour générer des fréquences sur une plage relativement large, mais en soi, il n'est pas particulièrement stable ou précis - pour une tension de commande donnée, la fréquence variera d'une partie à l'autre et avec la tension d'alimentation et la température. Une boucle à verrouillage de phase sert alors à verrouiller la fréquence de sortie du VCO dans une relation spécifique avec la fréquence de référence.
Par exemple, supposons que la fréquence de référence est de 100 MHz, la référence est divisée par 1 (D) et le VCO est divisé par 30 (M). Il en résulterait une fréquence de sortie de 100 MHz * 30/1 = 3 GHz. Cette relation peut être modifiée en changeant simplement les paramètres du diviseur, ce qui peut être fait dans le logiciel via les registres de contrôle. Notez que changer la fréquence à la volée peut ne pas être aussi simple que de simplement changer les valeurs du diviseur, la fréquence doit être modifiée de manière à garantir que le CPU ne voit pas de `` pépins '' ou d'impulsions d'horloge trop courtes. Il peut être nécessaire d'utiliser 2 PLL et de basculer entre elles, ou d'arrêter temporairement l'horloge ou de passer à une autre source d'horloge jusqu'à ce que la PLL se stabilise à la nouvelle fréquence.
Les PLL sont utilisées partout pour générer des fréquences précises et facilement accordables à partir de références fixes et stables. Votre carte Wi-Fi et votre routeur Wi-Fi les utilisent pour sélectionner le canal approprié en générant ce que l'on appelle la fréquence de l'oscillateur local, un signal utilisé à l'intérieur de la radio pour convertir en amont et en aval les données modulées. Votre radio FM en utilise probablement un pour activer le contrôle du logiciel sur la fréquence de réception, permettant un rappel facile des différentes stations. Les PLL sont également utilisées pour générer les signaux d'horloge haute fréquence utilisés pour piloter les sérialiseurs et désérialiseurs pour Ethernet, PCI express, série ATA, Firewire, USB, DVI, HDMI, DisplayPort et de nombreux autres protocoles série modernes.
la source
En plus des réponses précédentes ...
Votre micro STM a presque certainement le deuxième oscillateur pour l'horloge en temps réel. Cela permet à l'horloge de continuer à fonctionner (consommant un minimum d'énergie) tandis que le reste de la puce et le reste du circuit sont hors tension. L'appareil peut ensuite garder son horloge et son calendrier en cours d'exécution, et généralement il peut également redémarrer le processeur principal sur une minuterie également - toutes choses utiles pour les appareils intégrés.
la source
très soigneusement !
Les processeurs ont des prescalaires programmables binaires et une PLL avec VCO pour piloter le compteur afin qu'il multiplie l'horloge FSB du bus frontal (disons 100 MHz).
Ce mode d'économie d'énergie dynamique est automatiquement sélectionné lorsque l'utilisation du processeur est faible avec les bons pilotes de CPU, CPU, OS et BIOS.
Mon i7 (8cpu) passe de 3101 MHz à 800 MHz et passe instantanément à 1100, 1300, 1500 ... etc
Si le BIOS choisit x31 comme dans mon cas, le processeur fonctionne à 100 MHz x 3100 MHz et avec un compteur binaire dans le processeur, choisissez de x8 à x15 pour réduire la puissance du processeur en même temps qu'il régule la tension de la puce du processeur dans le 0,9 V région tout pour économiser l'énergie.
Je peux afficher mon curseur dans le coin supérieur droit sur Win8.1 avec CPU% et memory%
la source