« Fonctionnement d'un ordinateur/La carte mère, chipset et BIOS » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 65 :
De nos jours, les ordinateurs font faire cette conversion de fréquence par un composant appelé une '''PLL''' (''Phase Locked Loop''), qui sont des composants assez versatiles et souvent programmables, mais il est aussi possible d'utiliser des circuits à base de portes logiques plus simples mais moins pratiques. Comprendre le fonctionnement des PLLs et des générateurs de fréquence demande des bases assez solides en électronique analogique, ce qui fait que nous n'en parlerons pas en détail dans ce cours.
 
===La gestionCMOS du temps et de la dateRAM===
 
Le générateur de fréquence est souvent combiné à des circuits qui s'occupent de tout ce qui a trait aux durées en général. Leur utilité la plus connue est de compter les secondes, afin que l'ordinateur soit toujours à l'heure. Vous savez déjà que l'ordinateur sait quelle heure il est (vous pouvez regarder le bureau de Windows dans le coin inférieur droite de votre écran pour vous en convaincre) et il peut le faire avec une précision de l'ordre de la seconde. Mais pour savoir quel jour, heure, minute et seconde il est, l'ordinateur doit faire deux choses : mémoriser la date exacte à la seconde près, et avoir la capacité de compter le temps qui s'écoule, seconde par seconde. Pour cela, un ordinateur contient deux circuits : une CMOS RAM qui mémorise la date, et un circuit de comptage des secondes appelé l'horloge temps réel.
 
La '''CMOS RAM''' mémorise la date exacte à la seconde près. Son nom nous dit qu'elle est fabriquée avec des transistors CMOS, mais aussi qu'il s'agit d'une mémoire RAM. Mais attention, il s'agit d'une mémoire RAM ''non-volatile'', c'est à dire qu'elle ne perd pas ses données quand on éteint l'ordinateur. Nous expliquerons plus bas comment cette RM fait pour être non-volatile. La ''CMOS RAM'' est adressable, mais on y accède indirectement, comme si c'était un périphérique, à savoir que la CMOS RAM est mappée en mémoire. On y accède via les adresses 0x0007 0000 et 0x0007 0001 (ces adresses sont écrites en hexadécimal). Elle mémorise, outre la date et l'heure, des informations annexes, comme les paramètres du BIOS (voir plus bas).
 
L''''horloge temps réel''' est un circuit qui compte les secondes, voire les millisecondes. Dans ce qui suit, nous la noterons RTC, ce qui est l'acronyme du terme anglais ''Real Time Clock''. Elle contient des ''timers matériels'' (''hardware timer''), à savoir des compteurs/décompteurs dont le rôle est de compter les cycles d'horloge. La RTC est cadencée par l’horloge de 32KHz générée par l’oscillateur à Quartz, et chaque ''timer'' peut compter/décompter un certain nombre de cycles. Chaque ''timer'' est initialisé avec un certain nombre de cycles, et il émet une interruption à direction du processeur quand ce nombre de cycles est écoulé. Les ''timers'' sont configurables, ce qui permet de préciser s'il faut émettre une interruption après 32 cycles d'horloge, tous les 50 cycles, après 29 cycles, etc.
 
La RTC a plusieurs rôles, mais le principal est de générer une interruption toutes les millisecondes, soit à une fréquence de 1KHz. Cela permet au processeur de mettre à jour la date exacte, mais aussi de compter des durées plus courtes, comme le ''ping'' (le temps de latence d'un réseau, pour simplifier), le temps de rafraichissement de l'écran, ou bien d'autres choses. A ce propos, c'est la raison pour laquelle il est impossible de dépasser les 1000 FPS sur les jeux vidéos Windows et Linux. L'interruption en question, l'IRQ8, est utilisée pour mesurer le temps dans les jeux vidéos, compter la durée d'une frame, et sert de ''timing'' pour démarrer le calcul d'une nouvelle image. La fréquence de 1 KHz est obtenue en divisant la fréquence de l’oscillateur à Quartz par 32. Pour cela, la RTC émet une interruption tous les 32 cycles de l'horloge. Elle est initialisée avec un nombre de cycles égal à 32 et fonctionne en mode répétitif.
 
===La source d'alimentation de la RTC et de la CMOS RAM===