« 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.
 
===Les ''timers'' intégrés à la carte mère===
===La CMOS RAM===
 
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 divers ''timers'' pour compter les durées. Pour rappel, les ''timer'' sont des compteurs/décompteurs qui générent une interruption ou un circuitsignal quand ils atteignent une valeur limite. Ils permettent de comptagecompter des secondesdurées, appeléexprimées l'horlogeen tempscycles réeld’horloge.
 
Une carte mère contient un grand nombre de ''timers'', des circuits qui comptent des durées bien précises et sont capables de générer des fréquences. Le ''timer'' principal est l'horloge temps réel, qui généregénère une fréquence de 1 KHz. Outre le ''timer'' dédié aux interruptions de fréquence 1 KHz, d'autres ''timers'' émettent des interruptions à des intervalles différents, configurables par l'utilisateur ou le système d’exploitation. Par exemple, on peut vouloir générer une interruption à une fréquence de 60 Hz, pour gérer le rafraichissement de l'écran, ou une fréquence de 1 Hz pour compter les secondes. Comme autre exemple, on peut vouloir émettre une interruption à une heure bien précise tous les jours, ce qui demande de configurer un des ''timer'' de la RTC de manière à ce qu'il fasse cela. Les fonctions de Windows ou de certains logiciels se basent là-dessus, comme celles pour baisser la luminosité à une heure précise, passer les couleurs de l'écran en mode nuit, certaines notifications, les tâches planifiées, et j'en passe.
 
====L'horloge temps réel====
 
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. CelaElle 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 '''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).
Ligne 80 ⟶ 88 :
 
Sur la plupart des cartes mères, la RTC et la CMOS RAM sont fusionnées en un seul circuit qui s'occupe de la gestion de la date et des durées. Il arrive rarement que la pile au lithium soit intégrée dans ce circuit, mais c'est très rare. La plupart des concepteurs de carte mère préfèrent séparer la pile au lithium de la RTC/CMOS RAM pour une raison simple : on peut changer la pile au lithium en cas de problèmes. Ainsi, si la pile au lithium est vide, on peut la remplacer. Enlever la pile au lithium permet aussi de résoudre certains problèmes, en réinitialisant la CMOS RAM. L'enlever et la remettre réinitialise la ''CMOS RAM'', ce qui remet à zéro la date, mais aussi les paramètres du BIOS.
 
===Les ''timers'' intégrés à la carte mère===
 
Une carte mère contient un grand nombre de ''timers'', des circuits qui comptent des durées bien précises et sont capables de générer des fréquences. Le ''timer'' principal est l'horloge temps réel, qui génére une fréquence de 1 KHz. Outre le ''timer'' dédié aux interruptions de fréquence 1 KHz, d'autres ''timers'' émettent des interruptions à des intervalles différents, configurables par l'utilisateur ou le système d’exploitation. Par exemple, on peut vouloir générer une interruption à une fréquence de 60 Hz, pour gérer le rafraichissement de l'écran, ou une fréquence de 1 Hz pour compter les secondes. Comme autre exemple, on peut vouloir émettre une interruption à une heure bien précise tous les jours, ce qui demande de configurer un des ''timer'' de la RTC de manière à ce qu'il fasse cela. Les fonctions de Windows ou de certains logiciels se basent là-dessus, comme celles pour baisser la luminosité à une heure précise, passer les couleurs de l'écran en mode nuit, certaines notifications, les tâches planifiées, et j'en passe.
 
====L'horloge temps réel====
 
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.
 
==Le Firmware : BIOS et UEFI==