Articles - Ordinateurs old school

Bouton turbo, affichage LED et vitesse de bus ISA

  |   2710  |   Commentaire (1)  |  Ordinateurs old school
Sur un de mes 3 ordinateurs de type 486, j'avais remplacé le processeur 486DX-33 par un 486DX-66 il y a quelques temps. Cet ordinateur étant équipé d'un bouton turbo et d'un afficheur LCD 7-segments qui affiche la fréquence, il fallait donc mettre à jour ce dernier.



Changer la vitesse affichée



Ces afficheurs ne procèdent à aucune mesure réelle, il n'y a aucun calcul ou comptage derrière, ils sont juste réglés pour afficher tel ou tel nombre. Avant d'aller plus loin, voici comment fonctionnent ces afficheurs : chaque segment correspond à une diode électroluminescente qui est étiquetée/repérée par une lettre allant de A à G (sens horaire) :

comb15



De ce fait on peut certes constituer des chiffres mais aussi des lettres :

NV_0501_Marston_Figure02



La configuration s'effectue via une armée de cavaliers situés derrière.






En fait il y a une rangée de broches pour le chiffre des dizaines (Tens) et une autre pour les unités (Ones). Un autre cavalier sert pour le chiffre des centaines (quand il est présent, libellé H pour Hundreds). Sur chaque rangée, certaines broches sont estampillées de A à G, soit 7 lettres qui correspondent aux 7 segments à allumer ou à éteindre pour le chiffre. Chacune de ces broches A à G peut être couplée avec une des trois autres broches situées à proximité. Chacune de ces broches A à G est donc systématiquement entourée de 3 autres broches : 1, 2 et 3. Il ne reste plus qu'a mettre le cavalier à telle position pour :
  • ne jamais allumer le segment (sans cavalier),
  • allumer le segment uniquement en mode ralenti,
  • allumer le segment uniquement en mode turbo ou
  • allumer le segment dans les deux cas.


Voici un exemple de schéma coloré (www.minuszerodegrees.net) :



Sur cette page vous trouverez de nombreux schémas. La démarche impose donc d'identifier la vitesse en Mhz en mode ralenti, d'identifier la vitesse en mode "Turbo", et enfin de faire un tableau de calcul des positions des cavaliers (combinaisons) avec les deux valeurs.

Le problème de la vitesse au ralenti



Tous les ordinateurs ne sont pas égaux en mode "ralenti". Avec mon 486DX33, l'assembleur avait choisit la fréquence de 8Mhz sur l'afficheur. Pour autant je n'ai jamais pu retrouver cette valeur avec différents logiciels de benchmarks. Alors comment savoir à quelle vitesse le CPU fonctionne vraiment ? Il suffit de prendre le signal d'horloge du bus qui arrive sur la broche D4 (CLK) du socket 3 (on peut le repiquer sur le socket du 487) et de demander à un fréquencemètre ce qu'il en est.



Et là surprise ! La fréquence envoyée au processeur est toujours de 33Mhz et ce même en mode ralenti (hors turbo). Pour autant, il y a bien une différence flagrante de performance avec et sans. Ce qui signifie que cette carte mère utilise un autre mécanisme que l'abaissement de la fréquence pour ralentir le processeur. Un mécanisme basé sur l'ajout de latences (waitstates) lors des accès en mémoire. Vous pouvez en apprendre plus sur ce topic du forum VOGONS (en anglais). Visiblement d'autres se sont également posé la question avant moi. :)

Pour autant cela m'embête beaucoup car je n'ai aucune idée de la fréquence à mettre pour mon afficheur 7-segment, puisque là fréquence est la même. Quelle valeur choisir ? 5, 8, 12Mhz ? Pour information, en mode ralenti (sloweddown) l'utilitaire chkcpu m'indique un CPU à 59Mhz et PC-Check reste à 66Mhz. Et puis même si un soft de benchmark pourrait me dire une équivalence avec tel CPU à telle vitesse, ce serait quelque part techniquement faux puisque les 66Mhz restent toujours là dans le processeur. :)

Au final j'ai opté pour la solution la moins mauvaise/fausse selon moi : afficher constamment 66Mhz dans les deux cas. Mais pour autant la LED turbo fait toujours office de témoin pour savoir dans quel mode je me trouve. Ou alors mettre HI et LO.



Le BIOS de la carte mère permet aussi de manipuler l'état du turbo via le clavier avec les raccourcis CTRL-ALT-(+) et CTRL-ALT-(-).

La vitesse du bus ISA



Les vitesses sont réglées via cavaliers sur la carte mère mais quelques options sont présentes dans le BIOS :



Déjà pour que ces valeurs puissent être appliquées correctement il faut passer le paramètre "AUTO Config Function" à "Disabled". Sinon comme son nom l'indique, c'est automatique et les réglages mis manuellement ne sont pas pris en compte. En premier il y a le "Slow Speed Select For CCLK2" qui chez moi ne change rien, que ce soit avec/sans turbo, en terme de fréquence de bus CPU ou de performances aux benchmark. Le plus intéressant se situe à la ligne suivante "BUS Clock Selection" = vitesse du bus ISA.

Toutes les cartes ISA ne sont logées à la même enseigne concernant leur tolérance à une vitesse de fonctionnement supérieure. Certaines peuvent supporter plus de 16Mhz. La vitesse nominale est de 8Mhz, c'est le standard. Comme généralement cette fréquence est générée par la même puce sur le carte mère on applique un ratio par rapport à la vitesse du CPU. Si le CPU en externe tourne à 33Mhz (CLK2), il faudra diviser par 4 pour avoir 8.25Mhz. Sur ce PC, la valeur est de 8Mhz de manière forcée au boot. Ce n'est qu'à un moment du POST que le PC applique dynamiquement le réglage et réduit/augmente la fréquence du bus ISA.

Pour connaître la fréquence réelle, idem on va sonder ce qu'il se passe sur la broche B20 (CLK), de n'importe quel slot puisque cette broche est commune sur le bus.




Réglage : "CLK2/6" = 33/6 = 5.5Mhz



Réglage : "CLK2/4" = 33/4 = 8.25Mhz



Réglage : "CLK2/2.5" = 33/2.5 = 13.2Mhz



Réglage : "CLK2/2" = 33/2 = 16.5Mhz



Pour ma part j'ai laissé le réglage sur CLK2/3, ce qui donne 11Mhz et c'est stable.