Des MSDOS et ISA aux CPUs Multi-cœurs et Windows

MS-DOS

MS-DOS

 

  • Au début des années 1980 quand le PC IBM a été introduit, IBM et les autres sociétés ont rapidement fait des cartes d’extension avec des communications série RS232 disponibles pour permettre la connexion du PC à des périphériques externes.
  • Le PC utilisait généralement un système d’exploitation MS-DOS et des programmes ont été codés pour que le programme communique directement avec toutes les ressources matérielles dont il avait besoin. Les ports Série standards étaient toujours censés être à des adresses entrés/sorties fixes et des adresses d’interruption fixes.
  • COM1: ADDRESS=03F8 hex IRQ=04
  • COM2: ADDRESS=02F8 hex IRQ=03
  • MS-DOS pouvait seulement exécuter un seul programme d’application à la fois et les hypothèses non écrites de tous ces programmes étaient qu’elles avaient une utilisation exclusive et un accès non restreint immédiat à toutes les ressources systèmes du PC. 

 

Cartes ISA

IRQ setting

  • Cartes ISA 1981-1997
  • Les Ressources de Port Série sont établies par les utilisateurs utilisant des DIP Switch et des cavaliers.
  • Les ISA non Plug and Play – l’ajout de la carte n’avait pas de mécanisme pour informer automatiquement le système du PC quelles ressources étaient nécessaires.
  • Le PC n’a pas de mécanismes pour allouer des ressources aux cartes ajoutées, tout dépendait de l’utilisateur qui savait exactement ce qu’il y avait dans le PC et était capable d’assurer personnellement qu’un périphérique dans le PC n’était pas contradictoire avec un autre. 

Windows 3.1

Windows 3.1

  • Avec le succès retentissant de Windows 3.1 au début des années 1990 les programmeurs ont commencé à devenir familiers avec les écritures de code pour que les programmes d’application communiquent avec les pilotes de périphériques qui présentent un API standard dans le monde. Ce pilote de périphérique Windows a ensuite géré les communications actuelles des matériels à port série.
  • Windows 3.1 était un système qui a implémenté le multitâche coopératif et était donc capable d’exécuter de multiples programmes d’application tout en leur fournissant l’accès aux ressources du système via le système de pilotes de périphérique.
  • Il était impératif pour les utilisateurs de demander à Windows quelles carte était ajoutée par port série afin d'entrer les données en utilisant le système de panneau de configuration. 
  • Bien que les Pilotes de Périphériques autorisent en principe les ports série sur n’importe laquelle des adresses i/o non utilisées et interrompt en pratique COM1: et COM2: utilisent exactement les mêmes valeurs prévues par les programmes MSDOS. Cela facilite grandement la transition de MSDOS aux applications série de Windows.

Transition ISA vers PCI

  • A la fin des années 1990 les slots sur les nouvelles cartes mères des PC subissent un changement progressif entre ISA et un mix d’ISA et de PCI pour finir par des slots entièrement PCI.
  • Les cartes PCI ont été configurées électroniquement lorsque le PC démarre. La carte requiert des ressources à partir du PC qui répond en allouant des adresses I/O. En général les ressources allouées ne correspondent pas à celles traditionnellement utilisées par les cartes ISA.
  • Les anciennes applications MS-DOS s’exécutant dans une fenêtre DOS sous Windows parce qu’ils pensaient communiquer avec les ports série en particulier aux adresses I/O.
  • Des efforts importants ont été faits par l’industrie et les clients pour modifier leur code afin qu’il fonctionne avec des PCI situées sur des PC. Cependant les problèmes avec les postulats cachés sont qu’ils avaient une utilisation exclusive et un accès non restreint immédiat à toutes les ressources systèmes du PC étant cachées dans le code du programme.

Amélioration des Ports Série

  • La tâche de l’implémentation du CPU sur l'OS Windows où les programmes d’application ne fonctionnent que durant de cours laps de temps signifiait que le PC ne pouvait plus faire de contrôle en temps réel des ports séries. Pour résoudre cela, des fonctionnalités supplémentaires ont été ajoutées à la puce de port série – Le UART- pour diminuer la charge sur le PC, le premier étant des tampons FIFO à 16 octets. Les données envoyées et reçues par Windows au port série ne sont plus un caractère à la fois mais sont transférées par des paquets de taille FIFO. Cette tendance s’est poursuivie jusqu’à aujourd’hui avec les fonctionnalités suivantes implémentées dans des UART à la pointe de la technologie.
    • La taille des FIFO augmente de 16 à 32 à 64 à 128 à 256 octets
    • Le contrôle de flux automatique RTS/CTS ou DTR/DSR est implémenté dans le matériel
    • Le contrôle de flux XOn/XOff est dans le matériel 
    • Autogating Half Duplex RS485
    • Des transferts de données DMA vers et à partir d’un port série
    • Des taux Baud supérieurs à 115 200 et des taux Bauds non standards
  • Aujourd’hui la façon dont une application communique vers un port série est devenue complètement découplée du matériel qui implémente l’interface série. Au lieu que l’application communique avec l’API de Windows de manière standard, le fabricant de matériel de port série fournit un pilote de périphérique qui connecte Windows OS et les transactions de manière à être compatible avec l’implémentation série actuelle. 

Validation de Plateforme

  • Comme à l’époque du DOS, il a été prouvé qu’il y a souvent plusieurs *** dans le code des programmes d’application de Windows sur l’implémentation du matériel et de la performance. Cela signifie « casser » des programmes quand on passe d’une version de Windows à une autre ou avec différentes versions de microprogrammes dues aux changements du système réseau externe.
  • Les délais d’attentes dans les programmes qui permettent à une application de quand les systèmes de communication échouent souvent à cause d’erreurs qui sont incorrectement reportées quand le matériel de port série est changé en un avec une latence plus longue.
  • Ces problèmes peuvent être aggravés par l’utilisation de CPU multi-cœur dans le PC depuis que le temps de changement de contexte d’un cœur à un autre ajoute sa propre latence.
  • Pour atténuer ces problèmes les fournisseurs de systèmes ont adopté une couteuse période de validation d’une solution donnée, caractérisant sa performance opérationnelle dans un grand nombre de cas de test définis.
  • Parfois cela résulte juste à faire fonctionner un système particulier à cause de la mise au point de paramètres pour faire correspondre les caprices de divers périphériques impliqués, prévoyant l’évolution de la plateforme au fil du temps. 

Ceci est la partie 1 d'une série de 3 parties.

Partie 2: Latence et Temps de Réponse

Partie 3: Le Défi du Logiciel

Télécharger la présentation compète ci-dessous:

Revenir