Merci beaucoup, Jacques !
Ce résultat permet d'imaginer de véritablement ressusciter le NR, un peu trop tard certes, mais c'est tout un monde passionnant à explorer.
Il y a deux aspects sur lesquels j'aimerais donner quelques détails :
1. L'interruption IRQ2 est utilisée par la carte nanoréseau. Or, celle-ci sur PC-AT est en fait redirigée sur l'IRQ 9 et l'IRQ2 est utilisée pour gérer le deuxième contrôleur d'interruption (1 seul sur PC-XT). J'avais raté ce détail. Une des premières choses que j'ai faites avec Fabrice a été de modifier le pilote pour utiliser l'IRQ9 et proprement gérer l'indirection du deuxième contrôleur sur l'IRQ2. C'est un point fondamental.
2. Pour les boucles de temporisation, il n'existe AUCUNE méthode logicielle fiable de mesure du temps à la résolution de la us à partir du moment ou le processeur a un cache. Ce problème a été partiellement corrigé sur les Pentium et supérieur avec l'ajout de l'instruction assembleur RDTSC qui compte les cycles d'exécution. Sauf que ça ne fonctionne pas toujours de la même manière suivant l'architecture (en particulier Intel vs. AMD) et qu'évidemment, ce n'est plus fiable dès que l'horloge du processeur est dynamique, ce qui est apparu avec le PIII. Une autre manière aurait été d'utiliser le HPET, mais sa programmation est complexe puisqu'il faut d'abord initialiser l'ACPI et interroger ce dernier pour configurer le HPET. Beaucoup de code à écrire et plusieurs versions d'ACPI à gérer.
J'ai d'abord cru que j'allais devoir écrire une routine spécifique à chaque architecture et je dois bien avouer que cette perspective ne m'enchantait guère.
Mais je me suis souvenu qu'il y a un timer 8253 inutilisé sur la carte NR. Il tourne à la cadence de 447 KHz, soit une résolution de 2.23 us, quelle que soit la machine hôte. Et là, c'est gagné : on a une base de temps unique sur tous les PCs.
Cette approche s'est avéré excellente. Les chronogrammes entre le central sur le Duron 1.2 GHz et celui sur l'AthlonXP 2400+ cadencé à 2.175 GHz ne diffèrent que de 10-30 us sur un échange de 2 secondes environ.
Nanoréseau Thomson sur PC "récents" : c'est possible !
Modérateurs : Papy.G, fneck, Carl
-
- Messages : 2365
- Inscription : 06 avr. 2009 12:07
-
- Messages : 2365
- Inscription : 06 avr. 2009 12:07
Re: Nanoréseau Thomson sur PC "récents" : c'est possible !
Voici un pilote beta. Il ne faut pas s'attendre à ce que ça fonctionne correctement et il est inutile de me dire "ça ne marche pas". Je sais qu'il n'est pas encore parfait. Par contre, si les testeurs me donnent leur config et les symptômes, ou me disent ça marche sur telle machine, ça m'intéresse.
Ne vous attardez pas sur le nom (CTDURON), c'est juste qu'il fallait bien donner un nom, mais ça ne signifie pas que ça tourne seulement sur Duron.
Ne vous attardez pas sur le nom (CTDURON), c'est juste qu'il fallait bien donner un nom, mais ça ne signifie pas que ça tourne seulement sur Duron.
- Pièces jointes
-
- CTDURON.zip
- (2.9 Kio) Téléchargé 39 fois
Re: Nanoréseau Thomson sur PC "récents" : c'est possible !
Exceptionnel Fool!!!
Bravo à tous!
Bravo à tous!
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
Re: Nanoréseau Thomson sur PC "récents" : c'est possible !
Incroyable, bravo !
MO5 - MO5 Platini - TO7 - TO7/70 - TO8 - TO9+