INF 6500 Structures d’ordinateurs

Slides:



Advertisements
Présentations similaires
Active Directory Windows 2003 Server
Advertisements

Module Systèmes d’exploitation
Module Systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
ACTIVE DIRECTORY. Qu'est-ce un service d'annuaire ?: Un service d'annuaire peut être comparé à un agenda téléphonique, celui- ci contient au départ des.
PC / Traitement numérique / Contrôle Environnement logiciel
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
Module 5 : Implémentation de l'impression
LES MEMOIRES INTRODUCTION UN PEU D ’HISTOIRE LES DIFFERENTES MEMOIRES
GPO Group Policy Object
Serveur jeu Le serveur fait partie d'un logiciel de jeu en ligne multi joueur en architecture client serveur. Il répond à des demandes.
auxiliaires ou mémoires de masse ou alors secondaire).
TRANSMISSION DES DONNEES INFORMATIQUES
Architecture de machines Principes généraux
Assistance à distance Parfois on se sent bien seul face à un problème informatique surtout si on n’est qu’un simple utilisateur. Lorsqu'un problème survient.
Lycée ELKHAWARIZMI De SAFI
AS-interface Présentation Patrick MONASSIER Université Lyon 1 France.
Chapitre VII :Commande par retour d’état
Technique et cas d‘applications
Environnement matériel d’un réseau informatique
Système de stockage réseaux NAS - SAN
Active Directory Windows 2003 Server
LA CARTE MERE PROJET REALISER PAR : BELGHITI ALAOUI Anas.
SECURITE DU SYSTEME D’INFORMATION (SSI)
Prof : M.Trannoy - Professeur d'électrotechnique.
Gestion des Périphériques
Initiation à la conception de systèmes d'information
par Bernard Maudhuit Anne-Marie Droit
Réalisée par :Samira RAHALI
La formation Virtuelle
Les instructions PHP pour l'accès à une base de données MySql
NOTE : Pour faire évoluer le diaporama, si le clic de souris ne fait rien utilisez les touches du clavier : Pg up Pg down.
TRANSMISSION DES DONNEES.
Architecture des Ordinateurs
Fonction COMMUNIQUER les liaisons série
DUFOUR Joffrey BTS IRIS session
Les relations clients - serveurs
Concept matériel du E-Liner Bastelgruppe Hannover Département Hardware.
PROFIBUS-DP pour le process : zone Ex, Hart©
Présentation du mémoire
Console MMC de Windows 2000 Présenté par Suzanne Savoie Cours 4.
Périphériques et bus système
Module 4 : Maintenance des pilotes de périphériques
Principes de tarification de base
Réalisé par Mr CALVO du Lycée Bon Secours à PERPIGNAN
Chapitre 1: Réseaux Informatiques
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Chapitre 5 : Les circuits séquentiels
Passer directement au Quiz
Elève: ibtihal bekraoui
Windows 2003 Server Modification du mode de domaine
1. Introduction Le traitement informatisé de données requiert un dialogue, une communication entre l’homme et la machine, et parfois, entre plusieurs.
Système slow-control au LAPP
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
PHP 6° PARTIE : LES SESSIONS 1.Introduction 2.Identificateur de session 3.Variables de session 4.Client / Serveur 5.Principe 6.Ouverture de session 7.Enregistrement.
Gestion des Périphériques
Un programme Algorithme permettant au processeur de s'alimenter:
En route vers le déploiement . . .
1 Windows 2003 Server Stratégie des comptes. 2 Windows 2003 Server Il faut tenir compte de ces 3 paramètres.
Protocole DMX P.G D’après un travail d’élèves de 1ère SIN 2012
V- Identification des ordinateurs sur le réseau
USB (Universal Serial Bus)
Applications Internet Cours 3 21 janvier 2010 Cours 3 21 janvier 2010.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
Encadrer par Mr Chelly Nizar
Les bascules et registres
© Promaintech Novaxa – Tous droits d’utilisation réservés Plans factoriels Introduction à la statistique industrielle.
Je suis de retour ! Vous avez passé de belles Fêtes? Je suis de retour ! Vous avez passé de belles Fêtes? Aujourd’hui, nous parlons : Technologie Proximité.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Transcription de la présentation:

INF 6500 Structures d’ordinateurs

Partie 1: Introduction et principes

Partie 1: Introduction et principes Le principe du cours se construit sur un environnement matériel et logiciel en constante évolution grâce aux étudiants. Le déroulement du cours se fait dans un concept de simulation en entreprise où une équipe logicielle et une équipe matérielle interagissent pour mener à bien un projet. Le matériel (la carte PCI Modula) et le logiciel (l’environnement Flextrox) sont étudiés, conçus et améliorés pour permettre à l’environnement d’atteindre de nouvelles fonctionnalités.

Partie 1: Introduction et principes La carte Modula: Carte d’extension PCI, programmable pour PC, dans un environnement Windows. Cette carte est produite par FLEXTROX inc. (compagnie fictive). Possibilité de changer les fonctionnalités de la carte par reprogrammation logiciel. Elle possède 5 prises (slots) d’extension pour de futurs modules matériels. Une sortie SCSI est présente en vue de contrôler de possibles servo-moteurs via différents contrôleurs.

Partie 1: Introduction et principe

Partie 1: Introduction et principes L’environnement FLEXTROX inc.: Compagnie fictive qui se charge du développement de l’interface, des pilotes (drivers),des modules logiciels de la carte MODULA ainsi que du site web et de la base de données. Par le biais d’un site web et d’une base de donnée, l’ensemble des usagers inscrits peuvent se procurer les modules qu’ils désirent et les installer sur leur carte par un simple ‘glisser-déplacer’ (drag and drop). La conception physique et logicielle de l’environnement MODULA et FLEXTROX nécessite des choix bien adaptés aux possibilités de la carte. Ces multiples choix de conception feront l’objet d’une étude approfondie à travers le cours.

Partie 1: Introduction et principes A travers le cours, il sera donc question de passer à travers les différents composants matériels et logiciels envisageables pour le design de la carte Modula et de l’environnement FLEXTROX et tenter de justifier par l’exemple, les raisons de leur choix. Les différentes notions abordées seront les suivantes: Partie matérielle (MODULA) Bus de communication PCI ISA SCSI Survol des autres bus commerciaux FPGA Choix et modes de programmation (EPROM, EEPROM…) Mode de communication avec les composants externes (contrôleur PCI, SRAM) Bus de données interne Modules internes

Partie 1: Introduction et principes Mémoire Différents types de mémoire (mémoire physique, mémoire virtuelle, mémoire cache) Modes d’adressage Communication externe Interfaces de communication (SCSI, IDE) Sorties analogiques Sorties digitales Partie logicielle (FLEXTROX) Pilotes (drivers) Principe Chargement dynamique (DLL) Bases de données Choix et différences

Partie 2: La partie matérielle Chapitre 1: Les bus de communication

Chapitre 1: Les bus de communication 1.1 Introduction Dans un ordinateur, les nombreux sous-ensembles communiquent entre eux via des bus de communication. Le bus sert de lien de communication partagé par les sous-systèmes. Les bus sont généralement très abordables et très flexibles. En définissant un seul schéma d’interconnexion, on peut facilement ajouter de nouveaux composants et même déplacer des périphériques entre des ordinateurs qui utilisent un bus courant. Le coût est faible parce que plusieurs chemins se partagent un ensemble simple de fils. L’inconvénient principal, c’est le goulot d’étranglement qu’il crée, limitant le débit maximal d’E/S.

Chapitre 1: Les bus de communication La vitesse maximale d’un bus est limitée surtout par des facteurs physiques: la longueur du bus et le nombre de composants Ces limites physiques empêchent d’accélérer à volonté le bus. Dans le pire scénario, N composants voulant communiquer avec tous les autres, nécessiteront N^2/2 liens.

Chapitre 1: Les bus de communication 1.2 Un exemple de bus au niveau de la carte mère d’un ordinateur Une carte mère typique contient des circuits intégrés (UCT, mémoire), des réseaux de connections et un certain nombre de bus pour les puces ou composants qui ont besoin de communiquer entre eux. Un bus consiste en des parties physiques que sont les connecteurs et les fils ainsi qu’un protocole de bus.

Chapitre 1: Les bus de communication Le filage peut être partitionné en groupes séparés spécifiques comme le contrôle, les adresses, les données et l’alimentation. Les composants partagent un réseau de fils commun et peuvent envoyer des données un à la fois. Tous les composants peuvent écouter sur le bus simultanément mais normalement, seulement un seul reçoit les données. Un seul composant peut être le maître du bus (« bus master ») pendant que tous les autres sont considérés comme les esclaves du bus (« bus slaves »).

Chapitre 1: Les bus de communication Le maître du bus contrôle le bus et peut soit envoyer soit recevoir des informations. Cette configuration maître/esclaves introduit un important ralentissement, l’obligation de créer un protocole de communication et un manque d’extensibilité dû à la sortance (« fan out ») et les contraintes de temps. Une bus peut être synchrone ou asynchrone. Si le bus est synchrone, un des composants rattaché à celui-ci contient un oscillateur (une horloge). Idéalement, l’horloge devrait être une parfaite onde carrée, mais en réalité le temps de descente et de montée sont approximés par des formes trapézoïdales.

Chapitre 1: Les bus de communication Dans un bus synchrone, le signal de l’horloge est utilisé pour les opérations du bus. L’horloge du bus est généralement dérivée de l’horloge centrale interne mais peut être plus lente que celle-ci, surtout avec des UCT (‘CPU’) très rapides. Un G3 de Macintosh a, par exemple, une horloge système roulant à 333 Mhz alors que la vitesse du bus est de 66 Mhz. Cette différence se justifie par la latence mémoire des accès qui sont plus longs que la vitesse de l’horloge interne (une mémoire typique à un temps d’accès de 20 ns contrairement à un temps d’horloge interne de 3 ns dans le précédent exemple).

Chapitre 1: Les bus de communication Voici un exemple de lecture d’un mot en mémoire par l’UCT sur un bus synchrone. Durant T1, lorsque l’horloge est haute, l’adresse est mise sur le bus par L’UCT.

Chapitre 1: Les bus de communication Les signaux MREQ et RD sont alors mis à 0 pour indiquer une requête mémoire en lecture par l’UCT. La lecture s’effectue durant T2 et le début de T3. L’UCT prend ensuite les données sur le bus et remet MREQ et RD à 1 de façon à libérer le bus. Si on remplace la mémoire d’un bus synchrone avec une mémoire plus rapide, le temps d’accès ne sera pas amélioré étant donné que l’horloge du bus est inchangée. D’un autre côté, si on augmente la vitesse d’horloge du bus pour atteindre celle de la mémoire, les composants lents qui utilisent l’horloge du bus pourraient ne plus fonctionner correctement. Le bus asynchrone résout ce problème, mais est plus complexe car il n’y a pas d’horloge.

Chapitre 1: Les bus de communication Le maître du bus dans un tel schéma dépose tout ce qu’il veut sur le bus et change la valeur du signal MSYN (« master synchronisation ») à 0. L’esclave exécute alors la demande et modifie la valeur de SSYN (« slave synchronisation ») à 0 une fois terminé. Le maître remet alors MSYN à 1, informant l’esclave de faire de même avec SSYN. De cette façon, une combinaison rapide maître/esclave répond plus rapidement qu’une combinaison lente maître/esclave. Cette suite de signaux précis est une poignée de main complète (« full handshake »).

Chapitre 1: Les bus de communication Le problème d’arbitrage de bus (« bus arbitration ») survient lorsque plusieurs composants veulent être maître du bus en même temps. Dans ce cas, il existe deux modèles, le modèle centralisé et décentralisé. On dénote trois formes de bus centralisés: Centralisé simple: Tous les composants sont rattachés au même bus et partagent une ligne commune appelée demande de bus (« bus request ») qui rejoint un arbitre. Quand un composant veut devenir maître du bus, il envoie une demande sur la ligne de demande de bus. Lorsque l’arbitre reçoit la demande, il détermine si une concession du bus peut être faite (« bus grant »). Si c’est le cas, l’arbitre envoie une permission sur une ligne de bus de concession (« grant bus line »). Celle-ci est reliée en série à tous les composants (« daisy chained »).

Chapitre 1: Les bus de communication Le premier composant qui reçoit la permission et qui avait demandé de devenir maître du bus le devient et ne propage pas le signal de permission. Si le composant ne veut pas devenir maître du bus, il fait simplement propager le signal vers le prochain composant. De cette manière, les composants qui sont électriquement plus près de l’arbitre sont les plus prioritaires. Centralisé avec niveaux de priorité: Parfois, il n’est pas souhaitable d’avoir un bus à priorité absolue comme dans le cas précèdent. On divise alors la ligne de demande de bus en plusieurs lignes distinctes. Chacune de ces lignes possède une priorité (la ligne 0 possède la plus haute priorité). Si on veut augmenter la priorité d’un composant qui est électriquement loin du bus, on peut lui assigner une ligne prioritaire plus basse (donc une priorité plus haute). Les priorités sont assignées dans un groupe, au sein d’une même ligne de demande de bus selon la règle de proximité électrique par rapport à l’arbitre.

Chapitre 1: Les bus de communication Totalement centralisé: Chaque composant possède sa ligne de demande de bus. Cette distribution est la plus puissante d’un point de vue logique. D’un point de vue pratique cependant, c’est la moins extensible. Cette méthode engendre des coûts importants pour les lignes supplémentaires sur le bus. Le bus décentralisé: Il n’y a pas d’arbitre. Si un composant veut devenir maître du bus, il prend possession de la ligne de demande de bus et regarde si le bus est occupé. Si la ligne du bus occupé (« busy line ») n’est pas prise, le composant envoie un 0 au prochain composant placé plus haut sur la ligne chaînée (voir illustration), prend possession de la ligne du bus occupé (« busy line ») et relâche la ligne de demande du bus. Si le bus est occupé ou si un composant ne veut pas le bus, le message de demande de bus est propagé au prochain composant.

Chapitre 1: Les bus de communication

Chapitre 1: Les bus de communication L’arbitrage doit être une opération rapide et pour cette raison, un modèle centralisé fonctionnera uniquement avec un nombre limité de composants (jusqu’à 8). Pour un grand nombre de composants, le modèle décentralisé est plus approprié. Cela dit, si un composant m (une carte PCI par exemple) est enlevé du lot de n composants (m<n), les bus de demande et de concession sont alors rompus, empêchant tous les composants se trouvant après celui qui a été enlevé, de pouvoir devenir maître de bus. Quand un composant est enlevé, il serait utile de repositionner les composants supérieurs ou de remplacer le manquant par un factice. De nos jours, il est commun pour chaque composants d’avoir un chemin séparé vers l’arbitre, malgré les coûts additionnels qui s’y rattachent.

Chapitre 1: Les bus de communication 1.3 Les architectures de bus basés sur ponts (« bridge based bus ») D’un point de vue logique, tous les composants d’un système sont connectés directement au bus du système, comme l’illustre la section précédente. D’un point de vue opérationnel, cette approche n’est pas idéale car des transferts simultanés ne peuvent pas avoir lieu entre les composants. Alors que tous les composants sont connectés sur le bus en même temps, plusieurs transferts pourraient être nécessaires en tout temps. Une carte graphique pourrait vouloir repeindre un écran vidéo alors qu’une ligne de cache serait récupérée de la mémoire principale, le tout pendant qu’une opération d’E/S prend place sur le réseau. Dans les architectures modernes, ces différents transferts sont divisés sur plusieurs bus à travers l’utilisation de ponts (« bridges »).

Chapitre 1: Les bus de communication Un pont est en fait un relais entre les différents bus (PCI, ISA ou AGP) qui gère les passage de l’information entre ceux-ci. Schéma des ponts sur un Pentium II Xeon à deux UCT

Chapitre 1: Les bus de communication 1.4 Méthodologies des communications Les ordinateurs ont une grande panoplie de taches de communication. L’UCT doit communiquer avec la mémoire et avec de nombreux composants d’E/S aussi bien lents (claviers) que très rapide (disques durs, cartes réseaux). Les différentes méthodes pour gérer les E/S sont: L’interrogation (« polling ») ou encore E/S programmée (« programmed I/O »). Dans le cas d’une lecture d’un bloc de données provenant d’un disque, l’UCT va interroger chaque composant pour vérifier s’il requiert un service. L’UCT vérifie d’abord l’état du disque en lisant un registre spécial qui peut être accéder dans l’espace mémoire ou en émettant une instruction d’E/S. Si le disque n’est pas prêt à être lue ou écrit, l’opération se répète et vérifie l’état du disque de façon continue jusqu’à ce qu’il le soit. Ceci est connu sous le nom d’attente occupée (« busy-wait »).

Chapitre 1: Les bus de communication Une fois que le transfert est complété, l’UCT vérifie s’il n’y aurait pas une autre demande de communication pour le disque. Si c’est le cas, le processus d’interrogation recommence. Sinon, l’UCT poursuit avec d’autres tâches. Dans ce modèle, l’UCT perd un temps précieux à interroger les composants. De plus, les tâches de hautes priorités ne sont pas vérifiées tant que l’UCT n’a pas fini l’interrogation, qui peut être une tâche de moins haute priorité. Un avantage de ce modèle est qu’il est simple à implémenter. E/S gérées par interruptions. Avec ce type de communication, l’UCT n’a pas besoin d’accéder au composant tant que celui-ci n’a pas besoin d’un service, il n’y a donc pas d’attente. Le composant fait la demande d’un service par le biais d’un ligne d’interruption spéciale qui va directement à l’UCT. L’UCT envoie au début une requête de lecture ou d’écriture au disque et retourne à ses tâches. Lorsque le disque est prêt, il émet une interruption à l’UCT. Celui-ci envoie alors une ISR (« interrupt service routine ») pour le disque et retourne à ses tâches une nouvelle fois lorsque l’ISR a terminé son exécution.

Chapitre 1: Les bus de communication Il arrive parfois qu’en raison de l’importance de la tache exécutée, un processus ne doive pas être interrompu. Il existe donc un ensemble d’instructions qui permettent de désactiver et réactiver les interruptions pour un programme donné. Le fait que des interruptions puissent être acceptées ou non dépend de l’état du drapeau d’interruption (« interrupt flag » ou IF), qui fait parti des registres d’état de l’UCT. Dans la plupart des systèmes, des priorités sont assignées aux interruptions qui sont gérées par le processeur ou par un contrôleur périphérique d’instructions (« peripheral interrupt controller » ou PIC). Au sommet du niveau de priorité, on retrouve une interruption non masquable (« non maskable interrupt » ou NMI), qui, comme son nom l’indique, ne peut être désactivée. Le NMI est utilisée pour prendre en charge des événements potentiellement catastrophiques, comme des coupures de courant, et d’autres plus ordinaires, mais ne pouvant être interrompues comme la mise à jour du système de fichier.

Chapitre 1: Les bus de communication Lorsqu’une interruption arrive, le registre d’état du processeur et le compteur de programme sont chargés sur la pile automatiquement. Le compteur de programme est chargé avec l’adresse de l’ISR à être utilisée. Le registre d’état est mis sur la pile car il contient le drapeau d’interruption (IF) et le processeur doit désactiver les interruptions de la première instruction de l’ISR. La routine est alors exécutée. Lorsqu’elle se termine, l’exécution du programme interrompu se poursuit à partir des informations récupérées de la pile. L’accès mémoire direct (DMA) Bien que le modèle d’interruption précédent libère l’UCT jusqu’à ce que le composant ait besoin d’un service, celui-ci est tout de même responsable du transfert de données. Si l’on veut transférer un bloc de données entre la mémoire et le disque en utilisant soit l’interrogation soit les interruptions, chaque mot voyage à travers le bus (ou le pont hôte) deux fois: une fois vers l’UCT et une nouvelle fois vers sa destination. Un accès direct en mémoire (DMA) peut transférer les données directement en provenance de ou vers la mémoire sans passer par l’UCT et peut donc éviter la congestion sur le bus système.

Chapitre 1: Les bus de communication Les services de DMA sont gérés par un contrôleur DMA qui est un processeur spécialisé en soit, qui se charge du transfert entre les composants d’E/S et la mémoire. La plus part des contrôleurs DMA peuvent être programmés pour effectuer les mouvements de blocs vers la mémoire. Un composant DMA prend donc le relais sur l’UCT lors des transferts. L’UCT prépare le composant DMA et signale au composant de démarrer le transfert. Pendant celui-ci, l’UCT continue l’exécution des autres processus. Lorsque le transfert DMA est complété, le composant le signale alors à l’UCT à l’aide d’une interruption.

Chapitre 1: Les bus de communication 1.5 La communication sur une architecture Pentium d’Intel On s’intéresse ici à la section de la figure précédente comprise entre les processeurs Pentium et le « host bridge ». L’horloge système, l’horloge du bus et les vitesses du bus. La vitesse de l’horloge système est un multiple de l’horloge du bus. La valeur du multiple est fixée par le processeur lorsqu’il est réinitialisé, selon la valeur de plusieurs broches (« pin »). Cette valeur varie en fonction des membres de la famille du processeur. Par exemple le Pentium Pro, un membre de la famille Pentium adapté pour l’utilisation de multiples UCT, peut avoir des multiples allant de 2 à 3,5. Encore une fois, la baisse de vitesse du bus système vient du fait que les opérations de l’UCT sont plus rapides que les opérations d’accès mémoires. La fréquence moyenne du bus sur un Pentium est 66 Mhz.

Chapitre 1: Les bus de communication Adresses, données, mémoire et possibilités d’E/S. Le bus système effectif possède 32 lignes d’adresses et peut donc adresser jusqu’à 4 GB de mémoire principale. On dit effectif car en fait, le processeur Pentium décode les trois lignes d’adresse les moins significatives, A2-A1-A0, en huit lignes de ‘byte enable’, BE0#-BE7#, avant de les placer sur le bus système. Les valeurs de ces huit lignes spécifient l’octet, le mot et le mot double (« double word ») ou le mot quadruple (« quad word ») qui doit être transféré à partir de l’adresse de base (A31-A3). Le bus de données possède une largeur de 64 bits, permettant à l’UCT de transférer un « quad word » en un cycle de bus.

Chapitre 1: Les bus de communication Tous les processeurs Intel ont un espace d’adresse séparée pour la mémoire et les accès d’E/S. L’espace adresse qui doit être sélectionnée est spécifiée par la ligne de bus M/IO#. Une valeur haute sur cette ligne sélectionne l’espace mémoire 4GB alors qu’une valeur basse spécifie l’espace d’adresse des E/S. Les cycles de bus dans la famille Pentium Le processeur Pentium possède un total de 18 cycles de bus différents pour répondre aux différents besoins. On retrouve entre autres les cycles de lecture/écriture en mémoire, un cycle de maintien (« hold ») qui permet aux autres composants de devenir maîtres du bus, quelques cycles d’accès de cache en rafale (« burst ») ainsi que quelques cycles à usage spécifiques.

Chapitre 1: Les bus de communication Les cycles de bus de lecture et écriture en mémoire. Le cycle de lecture, comme celui de l’écriture, requiert un minimum de deux cycles de bus. L’UCT signale le départ de tous les nouveaux cycles de bus en prenant possession du signal de statut d’adresse (« address status signal » ou ADS). Celui-ci définit le début d’un nouveau cycle de bus et signale à la mémoire qu’une adresse valide est disponible sur le bus d’adresse. La remise à 1 du signal CACHE indique que le cycle sera composé d’un signal de lecture ou d’écriture, contrairement à une lecture ou écriture en rafale. Lors d’un cycle de lecture, l’UCT abaisse le signal W/R en même temps que le signal ADS. Ceci permet d’avertir la mémoire qu’elle doit verrouiller l’adresse et lire la valeur contenue dans celle-ci. Sur une lecture, la mémoire abaisse le signal de rafale en lecture BRDY en même temps que de déposer la donnée DATA sur le bus. L’UCT utilise BRDY comme signale pour verrouiller la valeur des données.

Chapitre 1: Les bus de communication Puisque le signal CACHE est remonté, l’abaissement de BRDY signifie la fin du cycle de bus. Dans le cycle d’écriture, la mémoire abaisse BRDY lorsqu’elle est prête à recevoir les données placée sur le bus par l’UCT. BRDY agit ainsi comme une poignée de main (« handshake ») entre la mémoire et l’UCT. Si la mémoire est trop lente pour accepter ou diriger les données dans les limites de deux coups d’horloge, il est possible d’insérer un état d’arrêt en n’abaissement pas BRDY jusqu’à ce que la mémoire soit prête à répondre.

Chapitre 1: Les bus de communication

Chapitre 1: Les bus de communication Le cycle de bus et la lecture en rafale. En raison du besoin critique d’alimenter le processeur en données le plus rapidement possible, Intel a conçu les cycles de lecture et écriture en rafale. Ces cycles lisent et écrivent quatre quadruples mots (8 octets) en rafale, en provenance d’adresses consécutives. Le cycle de lecture en rafale est initié par le processeur en plaçant une adresse sur la ligne du même nom et en abaissant le signal ADS comme avant, mais cette fois-ci, en abaissant le signal CACHE, le processeur signale le début de la rafale en lecture. En réponse, la mémoire abaisse BRDY et place une séquence de quatre mots quadruples (8 octets) sur le bus de données à raison d’un mot quadruple par cycle, en gardant BRDY jusqu’à la fin du transfert. L’écriture en rafale suit le même principe.

Chapitre 1: Les bus de communication

Chapitre 1: Les bus de communication Le bus de maintient pour les requêtes du maître du bus Il existe deux signaux pouvant être utilisés par les composants voulant devenir maîtres du bus: le maintient (HOLD) et l’accord de maintient (HLDA). 1.6 Le bus PCI (Peripheral Component Interconnect) Créé en 1993 par Intel pour remplacer le bus ISA. La version 1.0 avait une largeur de 32 bits et tournait à 33 Mhz. La version 2.0 possède une largeur de 64 bits, permettant un taux de transfert de 133 mb/s. L’avantage de ce bus est qu’il est indépendant du processeur car il possède sa propre mémoire tampon (« buffer »), lui permettant de faire le lien entre le processeur et les périphériques. Il permet l’autodétection des composants sans la modification de cavaliers (« jumpers »).

Chapitre 1: Les bus de communication PCI a vraiment pris de l’avance lorsque les récents systèmes d’exploitation ont pris en compte le « plug’n play », un des atouts de ce type de bus. Cette technologie du prêt à utiliser nécessite trois choses: Un BIOS PnP qui permet au système d’utiliser cet outils et détecte les périphériques PnP branchés. « Extended System Configuration Data » (ECSD), un fichier qui contient de l’information sur les périphériques PnP branchés. Un système d’exploitation qui supporte la technologie du « plug’n play ». La technologie du PnP automatise plusieurs tâches de communication qui étaient autrefois gérées par une application livrée avec le produit: Demande d’interruption. Accès direct en mémoire (DMA). Configuration d’E/S. Réservation d’un espace mémoire pour le composant.

Chapitre 1: Les bus de communication Voici les étapes de détection et de gestion d’un composant PnP lors de sa première installation: Le BIOS démarre le BIOS PnP. Le BIOS PnP balaye les composants du bus PCI en envoyant une requête d’identité à chacun. Le composant répond en s’identifiant. L’identité est alors envoyée au BIOS à travers le bus. Le BIOS PnP vérifie le ESCD pour vérifier si les données de configuration du composant sont présentes. Puisque le composant est nouveau, il n’y en a aucune. Le BIOS PnP assigne un IRQ (« interrupt request »), un DMA, une plage mémoire et une configuration E/S et sauvegarde le tout dans une nouvelle entrée ESCD. Lorsque le système d’exploitation démarre, il vérifie le bus PCI et l’ESCD. La nouvelle entrée entraîne divers réactions pour avertir l’usager qu’un nouveau composant à été détecté. Un pilote (« driver ») est ensuite installé soit par l’OS, soit après interrogation de l’usager. Le composant est alors prêt à l’usage.

Chapitre 1: Les bus de communication La prise PCI (« slot ») comporte 124 broches (62 de chaque côté), soit 26 de plus que la prise ISA, même si elle est beaucoup plus petite que cette dernière. Elle permet un accès direct à la mémoire mais doit passer par un pont (« bridge ») lorsqu’il est nécessaire de communiquer avec le processeur. Un nouveau processeur requiert un nouveau pont hôte (« host bridge »). Les cartes PCI utilisent 47 broches pour communiquer (ou 49 si le composant a la possibilité de contrôler le bus sans l’intervention de l’UCT). Le faible nombre de broches est dû au multiplexage matériel, permettant au composant d’envoyer plus d’un signal par broches. PCI supporte les composants 5V et 3.3V

Chapitre 1: Les bus de communication Tous les transferts de données sont des transferts en rafale sans limite de longueur. L’arbitrage sur un bus PCI Pour réduire la latence, PCI utilise un arbitrage caché. Un arbitrage peut avoir lieu alors qu’un transfert est en cours de sorte qu’un autre composant peut commencer à transférer des données dès que le bus se libère. Lorsque l’arbitre permet à un composant d’être le maître du bus, le signal GRNT du composant est abaissé. Le composant débute la surveillance des autres signaux du bus (FRAME et RDY) pour savoir lorsque celui-ci sera libre. Une fois libre, si le signal GRNT est encore abaissé, le composant débute le transfert. L’arbitre utilise le registre de latence maximum (« maximum latency register ») pour déterminer le niveau de priorité.

Chapitre 1: Les bus de communication Si un maître du bus demande le bus après qu’il ait été accordé à un composant ayant une plus grande latence maximale alors, tant que le bus est occupé et que la transaction du premier composant n’a pas débutée, l’arbitre peut prendre prioriter (préempter) sur le premier composant et permettre l’abaissement du signal GRNT à celui qui en a le plus besoin. Lorsqu’une transaction est présente sur le bus, un mécanisme s’assure que le maître du bus ne s’accapare pas celui-ci trop longtemps, empêchant les autres composants d’effectuer des transactions. Chaque maître de bus possède un registre de configuration nommé compteur de latence (« latency timer ») qui donne le nombre de cycles d’accès au bus garantis. Celui-ci est décrémenté à chaque cycle. Lorsque l’arbitre décide de donner l’accès du bus à un autre maître de bus, il enlève le signal GRNT du maître actuel. À cet instant, si le compteur de latence du maître de bus en transaction est à 0, il doit cesser la communication. Sinon, il peut continuer sa transaction jusqu’à ce que le décompte atteigne 0.

Chapitre 1: Les bus de communication Les types de commande Il existe plusieurs types d’informations pouvant transiger sur le bus. Pour cela, il existe 4 lignes de signaux distincts appelés « Command Byte Enable » décrivant le type d’information. Lors de l’envoi de données, ces signaux permettent de déterminer, parmi les 32 bits du bus, lesquels sont valides. Sur 16 signaux possibles (2^nb de lignes, ici 4), 12 sont effectivement utilisés. Signaux de base: Lecture E/S Écriture E/S Lecture en mémoire Écriture en mémoire Signaux de mémoire spécialisés qui permettent de connaître comment les données envoyées sont affiliées avec celles en cache. Ligne de lecture mémoire (« Memory read line ») Lecture mémoire multiple (« Memory read multiple ») Écriture mémoire et annulation (« Memory write and invalidate »)

Chapitre 1: Les bus de communication Le bus PCI a la possibilité d’accéder une zone de mémoire au-delà de 4 Go, tout en utilisant une prise PCI à 32 bits. Le signal de cycle d’adresse double (« Dual acces cycle ») indique q’une adresse de 64 bits est placée sur le bus en 2 moitiés de 32 bits. Il existe également un signal spécial de cycle (« Special Cycle ») servant à diffuser de l’information aux composants sur le bus; l’adresse n’a alors aucune importance mais les 16 premiers bits de données contiennent un type de message et les 16 derniers bits une donnée liée au message. Le signal « Interrupt acknowledge » est utilisé par le pont hôte PCI pour avoir d’avantage d’information sur un interruption provenant d’un composant PCI.

Chapitre 1: Les bus de communication Les interruptions sur le bus PCI. Comme expliqué précédemment, pour envoyer une interruption, un composant doit lever une ligne de signal d’interruption (IRQ) (comprise entre IRQ0 et IRQ15). L’IRQ est ensuite convertit par le contrôleur d’interruption (PIC) en un signal pour le processeur, INTR. Le processeur répond à ce signal en demandant une d’adresse de vecteur d’interruption (« interrupt vector address »), soit l’adresse de l’ISR. Cette adresse est envoyée au pont hôte qui prendre le contrôle du bus et débute une transaction d’interruption (« interrupt acknowledge transaction »). Le composant ayant fait la demande d’interruption entre dans la conversation et envoie un signal d’émulation de la demande du vecteur d’interruption (« interrupt vector request ») à la puce du contrôleur d’interruption.

Chapitre 1: Les bus de communication L’adresse du vecteur d’interruption est ensuite placée sur le bus par le contrôleur. Celle-ci est alors lue par le pont hôte PCI qui termine la transaction et passe le vecteur au processeur. La manipulation des interruptions. Le concept de 16 lignes d’interruption a été utilisé depuis les débuts du bus ISA par IBM pour dire au contrôleur d’interruption quelle adresse il devait fournir. Le processeur ne voit qu’un seul signal d’interruption qui consiste en une adresse. Il permet à l’ISR de s’exécuter à cette adresse. Chaque prise PCI possède 4 lignes d’interruptions INTA # à INTD# (où # signifie que le signal associé est actif bas). La première (ou la seule) fonction générant les interruptions doit être connectées à INTA#.

Chapitre 1: Les bus de communication Les lignes d’interruption PCI et les sorties du contrôleur d’interruptions ISA sont combinées en un routeur programmable d’interruptions (« Programmable Interrupt Router »), qui génère le signal unique d’interruption pour le processeur. L’architecture IBM PC s’attend à ce que certains composants prennent certains IRQ et puisque les interruptions ISA ne peuvent pas être partagées, les routines d’interruptions PC s’attendent donc qu’elles servent leur composant spécifiques et aucun autre lorsqu’elles sont appelées. Autrement dit, les lignes d’interruptions sur les prises PCI doivent être associées à un IRQ différent pour chacune d’elles. Cette tâche est réalisée par le BIOS.

Chapitre 1: Les bus de communication 1.7 Le bus ISA (Industry Standard Architecture) Entre 1984 et la montée en flèche du bus PCI, le bus standard pour les fonctions d’E/S a été le bus ISA . Il est encore utilisé de nos jours à fin de maintenir une compatibilité avec les anciens composants. ISA est un amélioration de bus XT d’IBM qui avait uniquement 8 bits de large, qu’on nommait bus AT. Le bus ISA possède une largeur de 16 bits et tourne à une fréquence maximale de 8Mhz. Cependant, il requiert 2 à 3 cycles d’horloge pour envoyer 16 bits de données.

Chapitre 1: Les bus de communication Contrairement au bus PCI, le bus ISA est synchrone avec le processeur. Si le bus système dépasse 10 Mhz, plusieurs composants deviennent instables et la fréquence d’horloge du bus ISA est réduite à une fraction du bus système. Le bus ISA possède un débit de transmission théorique de 8 Mo/s. Cependant, la vitesse pratique n’atteint souvent que 1 à 2 Mo/s. Le bus ISA dans les PC modernes possède 2 faces: Une face interne qui est utilisée par les ports simples comme le clavier, le lecteur de disquette, les ports séries et les ports parallèles. Une face externe qui est en fait un bus d’expansion externe qui peut être connecté à 16 composants ISA.

Chapitre 1: Les bus de communication Le bus comporte malheureusement de gros inconvénient de performance face au bus PCI: Il est étroit et lent (16 bits et 8 MHz contre 32 bits (voir 64 bits) et 33 Mhz pour PCI) Il n’est pas indépendant (Le CPU doit s’occuper du transfert des données sur le bus, ce qui l’empêche d’effectuer d’autres tâches) Il possède un débit faible ( 8 Mo/s (théorique) contre 132 Mo/s (minimum) pour PCI)

Chapitre 1: Les bus de communication Un autre gros désavantage est que l’assignation d’un IRQ et d’un canal DMA pour les nouveaux composants ISA doivent être faits à la main, en changeants des cavaliers sur le composant. Selon Intel, ce bus ne devrait plus être utilisé dans les architectures modernes. Les derniers contrôleurs d’Intel (la série 810) ne supportent d’ailleurs plus ce bus. Plusieurs autres bus dérivés de ISA ont été créés pour améliorer ce dernier, mais aucun n’a pris une part du marché. Lorsque PCI a vu le jour, ces anciens bus ont vite été mis de côté. Parmi ceux-ci, on retrouve: MCA EISA Vesa Local Bus (VLB)

Chapitre 1: Les bus de communication 1.8 Le bus SCSI (Small Computer System Interface ) Dans les architectures modernes, il existe des bus spécialisés pour communiquer avec des interfaces dédiées au stockage d’information (disques durs, CD ROM, DVD …). Les deux bus les plus connus pour effectuer cette tâche sont les bus IDE et SCSI. SCSI est basé sur un vieux bus privé appelé « Shugart Associates System », SASI, développé en 1981. En 1986, une version modifiée de SASI ratifiée par le « American National Standard Institute » ANSI devient alors SCSI. SCSI possède plusieurs avantages: Il est rapide: jusqu’à 160 Mo/s Il est fiable Il permet plusieurs composants sur le bus

Chapitre 1: Les bus de communication Il fonctionne sur la plus part des ordinateurs. Mais aussi quelques inconvénients: Il doit être configuré pour une machine spécifique. Il possède un support du BIOS limité. Il possède une multitude de versions, ce qui le rend difficile d’approche. Il n’existe pas de logiciel d’interface commun.

Chapitre 1: Les bus de communication Les différents types de SCSI SCSI-1: première moulure développée en 1986. SCSI-2: une mise à jour qui est devenue un standard en 1994. Un atout de cette nouvelle version à été le « Common Command Set » (CCS), un ensemble de 18 commandes permettant le support des composants SCSI. Il était également possible de doubler la vitesse d’horloge, le faisant passer de 5Mhz à 10Mhz (« Fast SCSI ») ainsi que doubler la largeur du bus, la faisant passer de 8 à 16 bits et faire passer le nombre de composants à 15 (« Wide SCSI »). Il est également possible de combiner les deux (« Fast/Wide SCSI »). Finalement, cette version possédait un système de file de commande (« command queuing »), permettant aux composants d’enregistrer une série de commandes provenant de la machine hôte et de déterminer les priorités de ces dernières.

Chapitre 1: Les bus de communication SCSI-3: Peu après l’apparition de SCSI-2, arrivait SCSI-3 en 1995. Ce qui est innovateur dans cette version, c’est qu’un ensemble de petits standards ont été construits dans son architecture globale. Pour cette raison d’ailleurs, SCSI-3 n’est pas encore admis comme un standard en soit. En fait, seules certaines de ses spécifications internes ont été officiellement adoptées. Ces standards sont basés sur une variation de l’interface parallèle SCSI (« SCSI Parallel Interface ») (SPI), ce qui permet aux composants SCSI de communiquer entre eux. La plus part des spécifications de ce modèle débutaient avec le terme ‘Ultra’: ‘Ultra’ pour les spécifications SPI, ‘Ultra2’ pour les spécifications SPI2 et ‘Ultra3’ pour les spécifications SPI3. Les termes ‘Wide’ et ‘Fast’ dans ce modèle sont identiques à ceux de la version SCSI-2.

Chapitre 1: Les bus de communication Nom Specification # de composants Largeur du bus Vitesse du bus Mo/s Asynchrone SCSI-1 8 8 bits 5 MHz 4 Mo/s SCSI Synchrone 5 Mo/s Wide SCSI-2 16 16 bits 10 Mo/s Fast 10 MHz Fast/Wide 20 Mo/s Ultra SCSI-3 20 MHz SPI Ultra/Wide 40 Mo/s Ultra2 40 MHz SPI-2 Ultra2/Wide 80 Mo/s Ultra3 160 Mo/s SPI-3

Chapitre 1: Les bus de communication Il y a trois sections dans un système SCSI Contrôleur Composant Câble Le contrôleur est le cœur du principe SCSI, il sert d’interface entre tous les composants sur le bus SCSI et l’ordinateur. Également nommé l’adaptateur hôte (« host adapter »). Le contrôleur se branche dans une prise ou est incorporée sur la carte mère. Sur ce contrôleur, se trouve le BIOS SCSI. Celui-ci consiste en une petite ROM ou mémoire Flash qui contient le logiciel nécessaire pour accéder et contrôler les composants sur le bus.

Chapitre 1: Les bus de communication En général, tous les composants sur le bus possèdent un adaptateur SCSI intégré leur permettant de communiquer avec le bus SCSI. Par exemple, un disque dur possède un circuit électrique qui comprend à la fois un contrôleur pour le mécanisme du lecteur et un adaptateur pour le bus SCSI. Les composants avec un contrôleur intégré se nomment « embedded SCSI devices ». Chaque composant SCSI doit avoir un numéro d’identification unique (ID). La plupart des composants nécessitent un ajustement matériel pour configurer le ID. Certains composants sont également « Plug’nPlay » et s’attribuent eux-même un numéro d’identification. Ceux-ci sont appelés « SCSI Configured Automatically » (SCAM). En ce qui concerne les connecteurs, il y en a environ 7 versions différentes, ce qui cause parfois des problèmes de compatibilité.

Chapitre 1: Les bus de communication Peut importe quels câbles sont utilisés, chaque extrémité du bus SCSI doit être fermée par l’utilisation d’un circuit de résistances. Si le bus est gardé ouvert, les signaux envoyés pourraient être réfléchis et ainsi interférer avec les communications entre les composants et le contrôleur. Il existe deux types de terminaisons: Passives: systèmes roulant à une vitesse normale (non doublée) et dont le bus est relativement court (moins d’un mètre). Active: Utilisé pour les systèmes rapides ou dont le bus est long (plus d’un mètre). Il existe trois types de signalement de bus (façon avec laquelle les impulsions électriques sont envoyées à travers les fils.) « Single ended » (SE): le contrôleur génère le signal et envoie le tout à tous les composants sur le bus sur une seule ligne de données. Chaque composant agit comme masse (« ground ») et le signal se détériore donc au fur et à mesure qu’il parcourt la ligne.

Chapitre 1: Les bus de communication « High voltage differential » (HVD): c’est la méthode préférée pour les serveurs. Cette méthode utilise une ligne de données haute et une ligne de données basse. Chaque composant possède un émetteur de signal. Le composant qui reçoit le signal le fait suivre s’il ne lui ait pas destiné. Cela permet de faire fonctionner plus de composants et donc posséder un bus plus long (jusqu’à 25m) « Low voltage differential » (LVD): C’est une variation de HVD. Les émetteurs sont plus petits et sont inclus dans le contrôleur de chaque composant. Cela requiert moins d’électricité pour la communication. Par contre, le bus ne peut pas être aussi long (maximum de 12m).

Chapitre 1: Les bus de communication 1.7 Un survol des autres bus de communication sur le marché Dans cette section, nous présentons une vue d’ensemble (les principales caractéristiques) de certains autres bus que l’on retrouve sur le marché USB (Universal Serial Bus) Permet la communication entre la machine et les périphériques externes (souris, clavier, lecteur ZIP, imprimantes, manettes de jeux, caméras digitales….). Remplace entre autres les ports séries et parallèles. Technologie « Plug’n Play » Permet de connecter jusqu’à 127 périphériques en même temps (avec l’utilisation de concentrateur (« hubs ») Permet à chaque petit périphérique de prendre sa source de courant (500 mA à 5 V) directement du câble. Les câbles peuvent atteindre 5 mètres, ou 30 mètres avec un concentrateur.

Chapitre 1: Les bus de communication Avec la norme USB 2, le bus peut atteindre un débit maximal de 480 Mb/s (60 Mo/s). Le câble est constitué de deux fils pour la tension (5V et la terre) et une paire de fils torsadés pour les données. Les composants USB peuvent être débranchés et rebranchés sur le bus sans problème. AGP (« Accelerated Graphic Port ») Développé par Intel en 1996 pour améliorer les performances et la vitesse des cartes graphiques connectées au PC. Consiste en fait en un raccourci entre la carte graphique, le processeur et la mémoire

Chapitre 1: Les bus de communication Image provenant de Intel

Chapitre 1: Les bus de communication Le bus AGP possède une largeur de bus de 32 bits et tourne à 66 Mhz. Il n’y a qu’un seul composant sur le bus à la fois (une carte graphique). Cela permet au composant de communiquer à son gré, sans limite de performance. Le principe de « pipelining » est utilisé pour envoyer de gros paquets d’informations à la carte. AGP utilise le « sideband addressing » ce qui permet à la carte d’émettre et de recevoir une adresse sur les lignes d’adresses supplémentaires aux 32 lignes de base pour les données. De cette façon, il est possible d’adresser des données séparément, nécessaires plus tard sans gêner le transfert d’informations en cours. L’accès en mémoire direct permet d’améliorer radicalement les performances: Sur PCI, une texture graphique en provenance du disque dur et acheminée en mémoire, envoyée à l’UCT et ensuite envoyée dans le « frame buffer » de la carte graphique.

Chapitre 1: Les bus de communication La texture est donc rangée deux fois, une fois par le système (en mémoire) et une fois par la carte graphique. Image provenant de Intel

Chapitre 1: Les bus de communication Avec AGP, le rangement se fait une fois seulement, grâce à une section de la puce AGP, nommée GART (« Graphics Address Remapping Table »). Le GART alloue une portion de la mémoire système pour la texture et fait croire à l’UCT et à la carte graphique que la texture se trouve dans le « frame buffer » de la carte vidéo. Bien que le GART ne range pas nécessairement les textures d’une façon contiguë en mémoire, la carte voit le tout comme une suite de données. Image provenant de Intel

Chapitre 1: Les bus de communication Il existe actuellement 3 spécifications AGP: AGP 1.0 AGP 2.0 : inclus la version originale 1.0. Il inclut trois modes d’opération qui fonctionnent tous sur le bus à 66 Mhz. La version 2.0 permet d’envoyer des données à raison de deux fois par cycle d’horloge. La version 4.0 permet quant à elle d’envoyer quatre fois plus de données par cycle d’horloge. AGP pro : basé sur la version 2.0. La prise est plus longue avec davantage de courant pour les cartes graphiques professionnelles. Mode Fréquence d’horloge Taux de transfert 1x 66 Mhz 266 Mo/s 2x 133 Mhz 533 Mo/s 3x 266 Mhz 1066 Mo/s

Chapitre 1: Les bus de communication Intel développe actuellement une nouvelle spécification AGP 8.x basée sur le bus original de 66 Mhz, certains composants ont été enlevés, allégeant la charge et augmentant les performances. Port série Un des ports de communication externe les plus anciens (plus de 20 ans). Permet la communication avec les composants externes (modems, « webcams », caméras digitales…). Les données sont sérialisées, d’où le nom ‘série’. Il est donc possible d’envoyer des données à l’aide d’un fil unique. Cela prend cependant évidement plus de temps. Mode Fréquence d’horloge Taux de transfert 8x 533 Mhz 2133 MO/s

Chapitre 1: Les bus de communication Les messages débutent avec un bit de départ (« start bit ») de 0. Après chaque octet, un bit d’arrêt est envoyé (« stop bit »). Les ports séries (deux par ordinateurs en général) sont aussi nommées « COM ports ». Les ports séries sont bidirectionnels, permettant à la fois à un composant d’envoyer et de recevoir des données (« full duplex ») car l’envoie et la réception des données sont faites sur des broches différentes. Le fonctionnement du port série dépend, comme tous les bus, de son contrôleur : le récepteur/transmetteur universel asynchrone (UART) ou (« Universal Asynchronous Receiver/Transmitter »). Le UART prend la sortie parallèle de l’ordinateur et la sérialise pour la sortir sur le port série. La plupart des UART on aussi un tampon (« buffer ») de 16 à 64 Ko, pour mettre en cache les données provenant du bus système alors que des données quittent le port série.

Chapitre 1: Les bus de communication Les ports séries standards ont une vitesse de transfert de 115 Kb/s. Les ports série haute vitesse comme le ESP (« Enhanced Serial Port ») et Super ESP peuvent atteindre 460 Kb/s. Il existe deux configurations de ports série: 9 broches et 25 broches :

Chapitre 1: Les bus de communication Le port série permet le contrôle de l’information (« flow control ») qui donne la possibilité aux composants de suspendre, à l’aide de signaux, la réception de données provenant de l’ordinateur afin d’éviter une surcharge du tampon (« buffer overload »). Port parallèle Développé originalement par IBM pour permettre la communication entre l’ordinateur et les imprimantes (25 broches), il a été couplé avec un port appartenant à Centronics (36 broches). Le résultat à donc été une extrémité mâle de 36 broches et une extrémité femelle de 25 broches. Son utilité est similaire à celle du port série et permet la communication entre l’ordinateur et différents périphériques externes (notamment les imprimantes). Le port possède 25 broches . Le port originel permet une vitesse de variant de 50 Ko/s à 100Ko/s.

Chapitre 1: Les bus de communication Depuis 1987 et l’apparition du port PS/2, la communication parallèle est bidirectionnelle, également appelé SPP (« Standard Parallel Port »). Le EPP (« Enhanced Parallel Port ») développé en 1991 par Intel, Xircom et Zenith et permet une vitesse de transfert allant de 500 Ko/s à 2Mo/s. Bien que cette vitesse ne soit pas nécessaire pour l’envoie de données à une imprimante, elle permettait entre autres la communication avec certaines unités de rangement qui demandaient une vitesse de transfert maximale. En 1992, Microsoft et Hewlett Packard ont mis au point un autre standard, le ECP (« Extended Capabilities Port ») pour les imprimantes. En 1994 le IEEE 1284 standard englobait les deux standards pour le port parallèle (ECP et EPP), forçant les systèmes d’exploitation à supporter les 2 ainsi que l’ancien SPP.

Chapitre 1: Les bus de communication Dans le cadre du projet Modula et FLEXTROX La carte Modula est interfacée avec l’ordinateur par le biais d’une communication PCI. Ce choix à été fait en raison des points suivants: Tous les périphériques internes, à part les unités de sauvegarde qui utilisent soit IDE, soit SCSI, se retrouvent sur un bus PCI ou ISA. ISA est cependant une technologie désuète, beaucoup moins flexible, mais plus simple d’utilisation que PCI. D’un point de vue technique, les spécification techniques PCI convenaient aux besoins des requis de MODULA en ce qui concerne le débit de l’information et la fréquence d’horloge.

Partie 2: La partie matérielle Chapitre 2: Electronique programmable

Chapitre 2: Electronique programmable L’objectif de l’électronique programmable est de diminuer le coût de production et d’augmenter l’intégration tout en protégeant le desing. Le premier circuit logique programmable a été mis au point par Harris Semiconductors et consistait en un matrice de diodes très simple. Nous traiterons donc des différentes technologies suivantes en tentant de les différencier au niveau de leur performance et de leur utilité. PAL GAL CPLD FPGA Nous analyserons ensuite les différentes possibilités de programmation.

Chapitre 2: Electronique programmable

Chapitre 2: Electronique programmable PAL (Programmable Array Logic) Logique restreinte (par rapport aux CPLDs et FPGAs). C’est le plus populaire des SPLDs. Programmable une seule fois par survoltage. Plan ET programmable. Plan OU fixe.

Chapitre 2: Electronique programmable Selon le type des équations logiques en jeu, on choisit donc entre le PAL ou le PLA (champ ET programmable et OU programmable). GAL (Generic Array Logic) C’est un PAL reprogrammable Il est constitué de plusieurs macro-cellules que l’utilisateur peut configurer en un bloc combinatoire simple, complexe ou bien en sortie avec registres.

Chapitre 2: Electronique programmable CPLD (Complex Programmable Logic Devices) D’un point de vue conceptuel, un CPLD consiste en plusieurs macro-cellules de PAL interconnectées par l’entremise d’une matrice de sélection. Contient de quelques dizaines à quelques centaines de macro-cellules. En général, les groupes de 8 à16 macro-cellules se regroupés dans un bloc de fonction. Selon le distributeur et la famille du CPLD, les blocs de fonction sont également interconnectés.

Chapitre 2: Electronique programmable Les CPLDs sont surtout utilisés un ‘desing’ orienté vers le contrôle en raison de leur rapidité broche à broche. La grande entrance (‘fan-in’) des macro-cellules les rendent très performantes pour les machines à états. En revanche, il est difficile de faire de modification du ‘desing’ au niveau des broches (changer les la logique associée aux broches). Les CPLDs sont construites en utilisant l’un des trois procédés suivants: EPROM (généralement programmable une seule fois, à moins qu’ils soient effaçables par UV) EEPROM Flash Les CPLDs modernes, ont la possibilité d’être programmés par le circuit lui-même (‘In System Prorammable’) ou ISP.

Chapitre 2: Electronique programmable FPGA (Field Programmable Gate Array) Offre la plus grande capacité logique. Un FPGA est une matrice de blocs logiques, entourés de blocs d’E/S, reliés par des connections programmables. Un FPGA peut contenir entre 64 et plusieurs dizaines de milliers de blocs logiques et un nombre de bascules encore plus grand. Il existe deux types de FPGA: À gros grains (‘coarse-grained’): contient des blocs logiques relativement gros, contenant deux tables de conversion ou plus ainsi que deux bascules ou plus. À grains fins (‘fine-grained’): contient d’avantage de blocs logiques simples. Ces blocs contiennent soit une fonction d’entrée double ou un multiplexeru 4-1 et des bascules. Les FPGAs les plus denses sont construits à l’aide de la technologie des SRAMs Le procédé d’anti-fusibles est également utilisé parfois.

Chapitre 2: Electronique programmable

Chapitre 2: Electronique programmable Architecture Mémoire statique Antifusible Flash Gros grains Altera: (FLEX, APEX) QuickLogic: (pASIC) . Atmel: (AT40K) DynaChip Lucent: (ORCA) Vantis: (VF1) Grains fins Actel: (SPGA) Actel: (ACT) Gatefield Atmel: (AT6000)

Chapitre 2: Electronique programmable Les FPGAs basés sur SRAM sont reprogrammables, aussi bien par progmmation externe que ISP. Cependant, il faut un source de programmation externe qui devra, lors du démarrage initialisé le FPGA en lui indiquant comment les blocs logiques doivent réagir, quels blocs d’E/S sont des entrées et lesquels sont des sorties et finalement, comment les blocs sont connectés entre eux. Le FPGA charge cette mémoire au démarrage par lui-même ou elle peut être téléchargée par un processeur externe. Lors du chargement automatique par le FPGA, adresse un PROM à l’aide d’un octet qui en échange lui retourne la configuration à adopter. Lors d’un téléchargement, le FPGA agit comme un périphérique externe d’un processeur et reçoit sa configuration par celui-ci. En revanche les FPGA à base d’anti-fusibles sont programmables une seule et unique fois mais peuvent cependant conserver la configuration même après la mise sous tension.

Chapitre 2: Electronique programmable Compagnie Nombre maximal de portes (4 transistors) Architecture générale Technologie de programmation Xilinx plus de 8 000 000 Matrice symmétrique SRAM Actel plus de 2 000 000 En rangée Anti-fusibles, FLASH Altera plus de 3 000 000 PLD hierarchique EPROM QuickLogic 583 000 Anti-fusibles

Chapitre 2: Electronique programmable Il existe deux modes de programmation pour le circuits intégrés programmables: Programmation logicielle: à l’aide de langages de description matérielle comme VHDL ou Verilog. Programmation matérielle : à l’aide d’outils de paquetages schématiques des composants comme ViewLogic ou Cadence. Bien que les deux avenues soient envisageables, la programmation matériel permet aux architectes plus expérimentés d’avoir un meilleur contrôle sur l’emplacement et le partitionnement de la logique sur le périphérique. En général cependant, les deux méthodes sont utilisés conjointement en raison de leurs avantages respectifs.

Chapitre 2: Electronique programmable Dans le cadre du projet Modula et FLEXTROX La carte Modula est construite autour d’un FPGA de Xilinx, utilisant une technologie de programmation sur SRAMs. Ce choix à été fait en raison des points suivants: Il est reprogrammable à volonté à l’aide d’un EPROM effaçable par UV.

Partie 2: La partie matérielle Chapitre 3: Les filtres actifs

Chapitre 3: Les filtres actifs Il existe 4 principaux types de filtres: Passe bas Passe haut

Chapitre 3: Les filtres actifs Passe bande Coupe bande

Chapitre 3: Les filtres actifs Un filtre passe bas classique avec sa fonction de transfert et son plan S associé est représenté ci-dessous:

Chapitre 3: Les filtres actifs En corrélant la position des pôles dans le plan complexe avec l’amplitude et la phase, il est possible de regrouper certains filtres en grandes familles. On retrouve entre autre: Filtres de Butterworh:

Chapitre 3: Les filtres actifs Filtres de Tschebychev: Filtres de Cauer:

Chapitre 3: Les filtres actifs Filtres de Bessel: Afin d’éviter le repliement spectrale (‘aliasing’) lors de l’échantillonnage avec des convertisseurs A/N, il est important de s’assurer que toutes les fréquences se trouvant à l’extérieur de la bande soient suffisamment atténuées à l’aide d’un filtre d’anti-repliement spectrale (‘Anti-aliasing’). Pour ce faire, les filtres de Cauer sont souvent utilisés en raison de leur importante atténuation au dessus de la fréquence de coupure.

Chapitre 3: Les filtres actifs Les filtres de Tchebychev sont optimisés pour que l'atténuation dans la bande passante oscille le plus grand nombre de fois possible entre zéro et une valeur maximale A. De cette manière, l'atténuation résiduelle dans la bande passante est répartie sur toute la largeur de cette bande. Par rapport aux filtres de Butterworth, l'atténuation après la bande passante est aussi beaucoup plus raide.

Partie 2: La partie matérielle Chapitre 4: Circuits mixtes

Chapitre 4: Circuits mixtes Dans ce chapitre, il sera question d’illustrer les modalités d’interaction entre les deux domaines numériques et analogiques. Nous exposeront également les principales classes de convertisseurs numériques à analogiques et analogiques à numériques. Le domaine numérique est maintenant prédominant. Il s'est beaucoup développé grâce aux progrès faits par les microprocesseurs. Beaucoup de signaux naguère traités de façon analogiques le sont aujourd'hui par programmation de microprocesseurs. Texte et images provenant de: http://courelectr.free.fr/CONV/COURS.HTM

Chapitre 4: Circuits mixtes A la base, les signaux ont toujours une nature analogique  Il faut donc les amplifier et éventuellement les extraires de signaux parasites (tension de mode commun par exemple). Le domaine analogique va donc toujours exister au moins en amont de toute chaîne de traitement. Parfois, on a aussi besoin d'un signal analogique en sortie de cette chaîne de traitement : il faudra alors reconvertir les données numériques en signal analogique. Le passage d'un type de donnée à l'autre se fera par des convertisseurs, composants " mixtes " qui vont manipuler des tensions analogiques en entrée et des signaux logiques en sortie ou vice versa. Il existe deux catégories de convertisseurs : les Convertisseurs Analogique Numérique (CAN, ADC en anglais, pour analog to digital converter), qui vont transformer les tensions analogiques en signaux logiques aptes à être traités par microprocesseur (numérisation des signaux).

Chapitre 4: Circuits mixtes les Convertisseurs Numérique Analogique (CNA, DAC en anglais, pour digital to analog converter) qui vont convertir les signaux logiques en tension analogique. Plusieurs types de convertisseurs sont disponibles dans chaque catégorie, qui se différencient par leur précision, leur vitesse de traitement de l'information, leur prix... Il n'y a pas " le " convertisseur à tout faire qui soit bon partout : on devra faire un choix en fonction de ses besoins.

Chapitre 4: Circuits mixtes Circuit analogique contrôlant un circuit numérique Les amplificateurs opérationnels sont à la base des circuits analogiques contrôlant des circuits numériques. Son rôle est de convertir un signal analogique (continu) en un signal numérique ayant deux niveaux distincts. Circuit numérique contrôlant un circuit analogique Ils sont constitués essentiellement de multiplexeurs analogiques. Le circuit numérique commande à l’aide de commutateurs, l’entrée qui doit être connectées à la sortie.

Chapitre 4: Circuits mixtes Convertion analogique à numérique Principe Quand on veut numériser un signal analogique (donc continu), il faut le discrétiser sur deux dimensions : le temps et l'amplitude. on va le mesurer à des instants bien déterminés : c'est ce qu'on appelle l'échantillonnage . Pour ce qui est de l'amplitude, à un intervalle de tension du signal d'entrée on fera correspondre une valeur unique : c'est la quantification. Cette valeur sera ensuite codée (binaire, binaire signé...) et restituée sous forme binaire en sortie du convertisseur pour être traitée par de l'électronique numérique. L'étape de quantification de la conversion analogique numérique entraîne une perte d'information.

Chapitre 4: Circuits mixtes Définitions: Plage de conversion: Le convertisseur délivrera en sortie un nombre fini de codes numériques, correspondant à une gamme de tension analogique d'entrée bornée : c'est la plage de conversion (ou tension de pleine échelle) du convertisseur. Cette plage de conversion sera couramment de 0-5V, 0-10V, ou encore ±5V ou ±10V. Il existe aussi d'autres plages de conversion moins usitées.

Chapitre 4: Circuits mixtes Résolution :La résolution du CAN sera l'intervalle de tension d'entrée à laquelle correspondra un même nombre binaire. Dynamique :La dynamique d'un signal est le rapport entre la tension maxi et la tension mini que pourra prendre ce signal. Mise en relation : Il est possible de relier la dynamique, la résolution et la plage de conversion d'un convertisseur. La résolution correspond à la variation d'une unité du code binaire ; cette unité est égale à la variation du bit de poids le plus faible (LSB). Si on désigne par VMAX la plage de conversion et N le nombre de bits du convertisseur, on a la relation :

Chapitre 4: Circuits mixtes Convertisseurs analogiques à numériques Parmi les principes de conversion analogique / numérique disponibles, nous en décrivons trois particulièrement représentatifs, et qui se différencient très nettement en terme de compromis vitesse / précision : les convertisseurs parallèles (‘flash’)à, très rapides, mais limités en précision. Leur rapidité les destine en particulier aux oscilloscopes numériques, qui se contentent de convertisseurs à 6 ou 8 bits. les convertisseurs à comptage d'impulsion sont très précis, et par construction, sont aptes à filtrer des bruits importants. En contrepartie, ils sont très lents, donc destinés à faire des mesures de signaux stabilisés.

Chapitre 4: Circuits mixtes les convertisseurs à approximations successives , moins rapides que les précédents, mais avec des possibilités en résolution bien supérieures (8 à 16 bits). Ils couvrent un vaste champ d'applications en mesure, de la carte d'acquisition de données pour micro ordinateur aux CAN intégrés dans des micro contrôleurs qui servent à piloter les applications les plus variées. CAN parallèle: Principe: La tension à mesurer est comparée simultanément à 2N-1 tensions de référence, N étant le nombre de bits du convertisseur . Ce convertisseur est composé des éléments suivants : une tension de référence Eref. un réseau de 2N résistances montées en série. Elles ont la même valeur R à l'exception notable de la première et de la dernière qui ont la valeur 3R/2 et R/2 : c'est ce qui permet de faire basculer le premier comparateur non pas lorsque la tension d'entrée est égale à 1 LSB, mais 1/2 LSB.

Chapitre 4: Circuits mixtes 2N-1 comparateurs comparent en permanence la tension à mesurer à une des tensions de référence délivrée par le pont de résistances. un décodeur logique permet de traduire l'état des comparateurs en code binaire de sortie.

Chapitre 4: Circuits mixtes Précision: Dans le principe, ce CAN pourrait être relativement précis. Cependant il existe un inconvénient de taille : il faut 2N-1 comparateurs pour un convertisseur à N bits, soit 63 comparateurs pour un 6 bits et 255 pour un 8 bits. Le procédé devient donc vite limitatif. La principale source d'erreur provient de l'offset des comparateurs qui va introduire de la non linéarité différentielle. La rapidité va être conditionnée par la vitesse des comparateurs et du décodeur logique. La cadence de conversion est nettement supérieure au MHz, et peut atteindre des centaines de MHz pour les oscilloscopes numériques. Utilisation: De par leur principe, ces CAN sont limités à 6 ou 8 bits, ce qui est insuffisant pour de l'instrumentation. Pour les applications requérant des vitesses élevées mais non extrêmes, on utilise des convertisseurs semi-parallèles, qui utilisent beaucoup moins de comparateurs et conservent une vitesse de conversion intéressante, ceci avec une résolution pouvant atteindre 12 bits.

Chapitre 4: Circuits mixtes CAN à approximations successives: Ces convertisseurs sont très répandus car performants et bon marché. Principe: Le séquenceur logique délivre un code binaire à l'entrée du CNA. La tension de sortie de ce CNA est comparée à la tension à mesurer, et en fonction du résultat, le code binaire est modifié de manière à approcher la valeur à trouver. L'exemple le plus simple de séquenceur logique est un compteur binaire qui s'incrémente d'une unité à chaque coup d'horloge . Tous les codes binaires sont successivement comparés à la tension d'entrée. Quand le signal de sortie du comparateur s'inverse, la tension de référence vient juste de dépasser la valeur à mesurer : la conversion est terminée, il ne reste qu'à lire la valeur binaire (donnée ici par excès).

Chapitre 4: Circuits mixtes Précision: Ces convertisseurs sont précis : il suffit d'un bon comparateur associé à un CNA de la résolution voulue pour obtenir la précision désirée. La rapidité sera limitée par le temps d'établissement du CNA, la vitesse de réaction du comparateur, et la complexité de la logique.

Chapitre 4: Circuits mixtes Les convertisseurs 12 bits courants (qui sont beaucoup utilisés en instrumentation) ont un temps de conversion de l'ordre de 10 à 200µs, ce qui fait des cadences d'échantillonnage comprises entre 5 et 100kHz environ. la conversion prend un certain temps ; de plus, vu le principe utilisé, la comparaison ne se fait pas avec des codes binaires successifs. Il est impératif dans ce cas de figer la tension d'entrée pendant la conversion . Cette fonction va être réalisée par un échantillonneur / bloqueur (E/B)  : lorsque l'ordre de conversion est donné par le séquenceur logique, la sortie de l'E/B prend la valeur courante du signal et se fige à cette valeur (effet mémoire). L'E/B est nécessaire pour éviter des codes manquants et/ou des erreurs de conversion. Il est parfois intégré dans le CAN. Si ce n'est pas le cas, on le placera entre le signal à mesurer et le CAN. Utilisation: On retrouve ces composants un peu partout, de l'audio numérique aux cartes d'acquisition de données en passant par l'intégration dans des micro contrôleurs.

Chapitre 4: Circuits mixtes Comme les convertisseurs parallèles, ils mesurent des valeurs instantanées d'un signal ; il faudra donc s'assurer que celui-ci est exempt de bruit (du moins dans la limite de la résolution du CAN). CAN à comptage d’impulsions: Cette catégorie de convertisseur est très répandue : tous les multimètres " de poche " fonctionnent sur ce principe. Ils offrent une grande précision pour un faible coût, mais de par leur principe, ils ne peuvent mesurer que des tensions statiques ou faire des moyennes, contrairement aux convertisseurs précédents qui échantillonnent le signal instantané. On trouve 4 types de convertisseurs à rampe (de simple à quadruple rampe : le principe reste globalement le même, les rampes supplémentaires venant compenser diverses erreurs), ainsi que des convertisseurs tension-fréquence.

Chapitre 4: Circuits mixtes Tous ces convertisseurs sont basés sur une opération de chronométrage (comptage d'impulsions) pendant un temps proportionnel à la tension d'entrée. Convertisseur à simple rampe

Chapitre 4: Circuits mixtes Constitué de: un générateur de rampe (intégration d'une tension de référence). deux comparateurs comparant la rampe l'un au zéro, l'autre à la tension à mesurer. divers éléments de logique, dont un générateur de porte, une horloge, un compteur et un système d'affichage. Lorsque la logique commande le démarrage d'une mesure, il y a remise à zéro de l'intégrateur (rampe) et des compteurs ; ensuite, la tension de rampe croît linéairement avec le temps:

Chapitre 4: Circuits mixtes Quand le premier comparateur bascule à t0, la porte autorise le comptage des impulsions délivrées par l'horloge. Quand le deuxième comparateur bascule, il ferme cette porte, et la valeur contenue dans les compteurs est verrouillée et transmise aux afficheurs. On a donc fait un chronométrage des impulsions de l'horloge pendant un temps proportionnel à la tension à mesurer. Un des défauts majeurs est la grande sensibilité au bruit : si la tension d'entrée varie sous l'effet d'une perturbation quelconque, le deuxième comparateur peut fermer la porte et arrêter le processus de comptage : la valeur lue sera fausse.

Chapitre 4: Circuits mixtes Convertisseur à double rampe Ce type de convertisseur va pallier les défauts du simple rampe. Le schéma de principe est le suivant :

Chapitre 4: Circuits mixtes La mesure se fait en deux temps  : l'intégrateur ayant été remis à zéro, on commute son entrée sur la tension à mesurer. Le comptage démarre. quand il atteint un nombre N1 déterminé, on commute l'entrée de l'intégrateur sur une tension de référence Eref de polarité opposée à Ex. On compte les impulsions d'horloge jusqu'à ce que la tension de sortie de l'intégrateur s'annule, soit N2 La valeur affichée est directement proportionnelle au comptage, et elle est indépendante des composants R et C, et aussi de la fréquence de l'horloge. On pourrait comparer cette méthode à la double pesée avec une balance. L'autre gros avantage du montage double rampe est son immunité au bruit : le signal étant intégré, seule la valeur moyenne du bruit sera prise en compte, soit une valeur nulle dans la plupart des cas. Si un parasite perturbe le signal lors de la mesure, seule son intégrale sera prise en compte ; s'il est bref, elle sera négligeable, et le résultat très peu modifié.

Chapitre 4: Circuits mixtes Résolution, précision: Pour ce type de convertisseurs, la dynamique n'est plus exprimée en bits, mais en points, qui correspondent à la capacité maximum du compteur. . Les multimètres de poche font 2000 ou 3000 points, les plus évolués en font 20 000 ou 30 000, et les multimètres de laboratoire dépassent allégrement les 100 000 points. Convertisseurs numériques à analogiques Il existe principalement deux types de convertisseurs numérique / analogique sur le marché : les convertisseurs à résistances pondérées, et les convertisseurs à réseau R/2R. Ces derniers sont prédominants.

Chapitre 4: Circuits mixtes CNA à résistances pondérées: Principe: Le principe de fonctionnement de ce montage est extrêmement simple : il est basé sur un amplificateur opérationnel monté en sommateur inverseur.

Chapitre 4: Circuits mixtes Les principaux constituants sont : un amplificateur opérationnel. une référence de tension qui va définir la pleine échelle du convertisseur. une série de résistances dans un rapport des puissances successives de 2 (1, 2, 4, 8, 16...). une série de registres numériques contenant le code binaire d'entrée. des commutateurs analogiques (interrupteurs commandés électriquement par les signaux logiques) reliant les résistances à la référence de tension. Précision: L'erreur de gain sera directement proportionnelle à l'imprécision de la référence de tension et de la résistance de contre-réaction. L'erreur d'offset sera due à l'offset de l'amplificateur. L'erreur de linéarité et la monotonicité seront dues au mauvais appairage des résistances dans le rapport des puissances de 2. Le temps d'établissement sera donné par la réponse de l'amplificateur à un échelon de tension.

Chapitre 4: Circuits mixtes Pour ce qui est des erreurs de linéarité, il faut noter que la précision relative sur chaque résistance aura un impact sur le résultat global qui va doubler tous les bits en allant du LSB vers le MSB. En effet, une erreur de 10% de la résistance du LSB ne va fausser le résultat que de 1,1 fois le LSB. Par contre, 10% d'erreur sur la résistance du MSB va induire une erreur égale à 1,1 fois le MSB, soit 2(N-1) fois plus que celle faite sur le LSB dans les mêmes conditions. Cette erreur peut facilement être supérieure au LSB et entraîner des non monotonicités dans la réponse. Avantage et inconvénients: L'avantage d'un tel montage est la simplicité. Malheureusement, la réalisation pratique est difficile du fait de la dynamique des résistances utilisées (2N pour un convertisseur à N bits), et, on l'a vu, une tolérance nécessaire sur les résistance divisée par 2 à chaque bit supplémentaire.

Chapitre 4: Circuits mixtes Ces défauts font que ce convertisseur n'est pas viable économiquement, surtout si on le compare au CNA à réseau R/2R, plus facile à intégrer. CNA à réseau R/2R: Principe: Ce type de convertisseur prend en compte les défauts du précédent : il est bâti autour d'un réseau de résistances composé de seulement deux valeurs, R et 2R. Il n'y a donc plus le défaut inhérent à la grande dynamique de valeurs des résistances.

Chapitre 4: Circuits mixtes Les composants sont sensiblement les mêmes que pour le CNA à résistances pondérées : un amplificateur opérationnel. une référence de tension qui va définir la pleine échelle du convertisseur. un réseau de résistances R/2R. une série de registres numériques contenant le code binaire d'entrée. des commutateurs analogiques (interrupteurs commandés électriquement par les signaux logiques) reliant les résistances soit à la masse, soit à l'entrée - de l'ampli. L'amplificateur va fonctionner ici en convertisseur courant/tension : en fonction du positionnement des commutateurs, le courant total IT sera plus ou moins élevé, et sera transformé en tension par l'ampli et la résistance de contre-réaction. Certains CNA offrent d'ailleurs simplement une sortie en courant, et c'est à l'utilisateur de l'utiliser tel quel, ou de le convertir en tension.

Chapitre 4: Circuits mixtes Précision: Pour ce qui est de la précision requise sur les résistances, on retrouve les mêmes défauts que pour le CNA précédent : la référence de tension et la résistance de contre-réaction vont engendrer la même erreur de pleine échelle. une erreur sur la résistance du MSB aura 2(N-1) fois plus d'influence que la même erreur sur le LSB. Par contre, l'intégration sera plus aisée, et on sera capables de faire des convertisseurs précis et à plus grand nombre de bits que le CNA à résistances pondérées. En instrumentation, on rencontrera fréquemment des CNA à 12bits de ce type, notamment sur des cartes d'acquisition de données pour ordinateurs.

Chapitre 4: Circuits mixtes Utilisation des CNA: Utilisation Classique Les CNA sont bien entendu utilisables tels quels pour faire de la conversion numérique/analogique. On les retrouvera en sortie de chaîne de traitement numérique lorsqu'un signal analogique est requis (commande d'un transducteur, contrôle de processus... Ils seront suivis d'un filtre plus ou moins sophistiqué destiné à supprimer les " marches d'escalier " inhérentes à la numérisation. Dans le cas de l'audio numérique, le filtrage est d'une importance fondamentale, et c'est lui qui conditionne grandement la qualité du son. Cet aspect n'est donc pas à sous estimer. Il faudra faire attention au filtrage dans le cas où ces convertisseurs sont inclus dans une boucle d'asservissement : les escaliers peuvent être néfaste à la stabilité du système.

Chapitre 4: Circuits mixtes Amplificateur à gain programmable Les montages étudiés peuvent se résumer tous les deux à une chose : ce sont des amplificateurs d'une tension continue (Eref) dont le gain est ajustable par une entrée numérique (les codes binaires). On peut donc penser à une autre utilisation des CNA : si on remplace Eref par une tension alternative quelconque, on peut utiliser l'entrée numérique pour faire varier le gain de l'ampli, et donc le signal en sortie. Cette application ouvre la porte aux VCA (voltage controlled amplifier), atténuateurs à commande numérique (donc télécommandables à distance).

Chapitre 4: Circuits mixtes Filtres programmables De la même manière, on peut intégrer ces réseaux dans certains schémas de filtres, et obtenir ainsi des filtres à fréquence de coupure variable et commandée par un signal numérique. Multiplieur Une autre application importante est la multiplication de signaux : l'un sera analogique (en remplacement de Eref), et l'autre numérique. Ce signal numérique pourra être un signal préalablement numérisé. La sortie va donner le produit des deux signaux.

Chapitre 4: Circuits mixtes Convertisseurs sygma-delta (∑∆) Présentation Il est très difficile d'obtenir une conversion analogique digitale qui soit à la fois précise et rapide. Les convertisseurs à double rampe et les convertisseurs à approximations successives sont précis, mais peu rapides. Les convertisseurs flash (à comparaisons multiples directes) sont rapides, mais il est difficile d'ajuster les comparateurs internes de poids fort avec une précision de l'ordre de celle du bit de poids faible. Les nouveaux moyens de communication requièrent pourtant des performances élevées, peu dispersées d'un composant à l'autre, dérivant peu dans le temps, et qui soient compatibles avec un coût raisonnable. Ce coût dépend entre autres de la quantité de réglage en ligne de production. Il est aussi moindre lorsque le circuit intégré implémentant la fonction est seulement logique. Aussi a-t-on développé des convertisseurs intégrant surtout des fonctions logiques, le traitement binaire du signal satisfaisant pratiquement à toutes les contraintes énoncées.

Chapitre 4: Circuits mixtes Principedu convertisseur " 1 bit " à haute fréquence ; modulateur sigma-delta La méthode de conversion repose sur le principe de modulation dit " modulation delta". Il s'agit de coder, non pas le signal directement, mais l'écart entre deux échantillons successifs. Cet écart x(t) - xi(t) est codé sur un bit par un convertisseur très simple, composé d'un échantillonneur-bloqueur et d'un comparateur. Le signal y(t) à la sortie de ce dernier, bipolaire, représente l'augmentation ou la diminution du signal d'entrée sur un bit. Le signal d'entrée peut être reconstitué par simple intégration, et c'est ainsi que l'on obtient une image de l'échantillon précédent, xi(t).

Chapitre 4: Circuits mixtes La fréquence d'échantillonnage fech 1 peut être très élevée, et même doit être très élevée pour obtenir un rapport signal/bruit acceptable. Ceci n'est pas en soi un handicap pour le domaine des communications audio, car on peut sans peine fabriquer des circuits fonctionnant à fech 1 = quelques Mhz. L'intégrateur peut être de très bonne qualité, par exemple à capacités commutées.

Chapitre 4: Circuits mixtes Le même modulateur peut être réalisé avec une intégrateur échantillonné synchrone de l'horloge de la chaine directe.

Chapitre 4: Circuits mixtes Le modulateur delta (codage de la variation) associé à la boucle de réaction (comparateur de retour = additionneur = sigma) porte le nom de modulateur "sigma-delta". La démodulation consiste simplement à intégrer le signal y(t), avec éventuellement un filtrage passe-bas en sortie. Ce filtre est aisément implanté à l'aide d'un réseau à capacités commutées.

Chapitre 4: Circuits mixtes Obtention d'un code sur n bits La sortie y(t) peut être convertie en une sortie z(t) codée sur n bits à une fréquence plus faible fech 2. Cette opération, dite de décimation-filtrage, consiste à ne conserver qu'un nombre restreint d'échantillons, après filtrage numérique. Une méthode très simple consiste à effectuer la moyenne de n valeurs de y(t), prises à la fréquence fech 1 , pour créer un échantillon de z(t). On aura donc fech 2 = fech 1 / n . Cette moyenne peut prendre 2n valeurs, et le filtre numérique qui la calcule fournira donc une sortie sur n bits. On a donc réalisé de la sorte un convertisseur AD comportant essentiellement des éléments binaires. On peut rencontrer d'autres structures reposant sur le même principe, différant essentiellement par la place de l'intégrateur dans la boucle.

Chapitre 4: Circuits mixtes Limitations Saturation de la pente : si on appelle d l'amplitude de la sortie du comparateur et T la période d'échantillonnage, alors la pente maximale du signal de poursuite est d / T ; un signal de pente supérieure ne peut être poursuivi et une distorsion apparaît :

Chapitre 4: Circuits mixtes Sous échantillonnage : si la condition de fréquence de Nyquist n'est pas respectée, la conversion est affectée d'aliasing : Granularité : si d est trop fort, le signal démodulé est très découpé, et le rapport signal/bruit se détériore (cet effet est analogue à celui qu'on obtient avec un ADC utilisé sur une trop petite gamme d'entrée) :

Chapitre 4: Circuits mixtes

Chapitre 4: Circuits mixtes Dans le cadre du projet Modula et FLEXTROX: Bien que la carte MODULA ne possède actuellement aucun CAN ou CNA afin d’effectuer un travail précis, il n’en demeure pas moins qu’elle possède des prises pour modules externes adaptées pour recevoir ultérieurement une interface comportant des CAN ou CNA dédiés.

Partie 3: La partie logicielle Chapitre 5:Les bases de données

Chapitre 5: Les bases de données Une base de données (BD), (database ou DB) est une entité dans laquelle il est possible de stocker des données de façon structurée et avec le moins de redondance possible. Ces données doivent pouvoir être utilisées par des programmes et par des utilisateurs différents à travers un réseau local ou décentralisé (internet) La notion de base de données est donc généralement couplée à celle de réseau, afin de pouvoir mettre en commun ces informations, d'où le nom de base. On parle généralement de système d'information pour désigner toute la structure regroupant les moyens mis en place pour pouvoir partager des données. © Copyright 2003 Jean-François Pillou

Chapitre 5: Les bases de données Une base de données permet de mettre des données à la disposition d'utilisateurs pour une consultation, une saisie ou bien une mise à jour, tout en s'assurant des droits accordés à ces derniers. Cela est d'autant plus utile que les données informatiques sont de plus en plus nombreuses. Une base de données peut être locale, c'est-à-dire utilisable sur une machine par un utilisateur, ou bien répartie, c'est-à-dire que les informations sont stockées sur des machines distantes et accessibles par réseau. L'avantage majeur de l'utilisation de bases de données est la possibilité de pouvoir être accédées par plusieurs utilisateurs simultanément.

Chapitre 5: Les bases de données Afin de pouvoir contrôler les données ainsi que les utilisateurs, le besoin d'un système de gestion s'est vite fait ressentir. La gestion de la base de données se fait grâce à un système appelé SGBD (système de gestion de bases de données) ou en anglais DBMS (Database management system). Le SGBD est un ensemble de services (applications logicielles) permettant de gérer les bases de données, c'est-à-dire: permettre l'accès aux données de façon simple. autoriser un accès aux informations à de multiples utilisateurs . manipuler les données présentes dans la base de données (insertion, suppression, modification).

Chapitre 5: Les bases de données Le SGBD peut se décomposer en trois sous-systèmes: le système de gestion de fichiers: il permet le stockage des informations sur un support physique. le SGBD interne: il gère l'ordonnancement des informations. le SGBD externe: il représente l'interface avec l'utilisateur. Les principales bases de données sont: Borland Paradox Filemaker IBM DB2 Ingres Interbase Microsoft SQL server Microsoft Acces

Chapitre 5: Les bases de données Microsoft FoxPro Oracle Sybase MySQL PostgreSQL mSQL SQL server L'architecture ANSI/SPARC, datant de 1975, définit des niveaux d'abstraction pour un système de gestion de bases de données: Niveau interne (ou physique): Il définit la façon selon laquelle sont stockées les données et les méthodes pour y accéder. Niveau conceptuel: appelé aussi MCD (modèle conceptuel des données) ou MLD (modèle logique des données). Il définit l'arrangement des informations au sein de la base de données .

Chapitre 5: Les bases de données Niveau externe: Il définit les vues des utilisateurs L'architecture à trois niveaux définie par le standard ANSI/SPARC permet d'avoir une indépendance entre les données et les traitements. D'une manière générale un SGBD doit avoir les caractéristiques suivantes: Indépendance physique: Le niveau physique peut être modifié indépendamment du niveau conceptuel. Cela signifie que tous les aspects matériels de la base de données n'apparaissent pas pour l'utilisateur, il s'agit simplement d'une structure transparente de représentation des informations.

Chapitre 5: Les bases de données Indépendance logique: le niveau conceptuel doit pouvoir être modifié sans remettre en cause le niveau physique, c'est-à-dire que l'administrateur de la base doit pouvoir la faire évoluer sans que cela gêne les utilisateurs . Manipulabilité: des personnes ne connaissant pas la base de données doivent être capables de décrire leur requêtes sans faire référence à des éléments techniques de la base de données . Rapidité des accès: le système doit pouvoir fournir les réponses aux requêtes le plus rapidement possible, cela implique des algorithmes de recherche rapides. Administration centralisée: le SGBD doit permettre à l'administrateur de pouvoir manipuler les données, insérer des éléments, vérifier son intègrité de façon centralisée . Limitation de la redondance: le SGBD doit pouvoir éviter dans la mesure du possible des informations redondantes, afin d'éviter d'une part un gaspillage d'espace mémoire mais aussi des erreurs.

Chapitre 5: Les bases de données Vérification de l'intégrité: les données doivent être cohérentes entre elles, de plus lorsque des éléments font références à d'autres, ces derniers doivent être présents . Partageabilité des données: le SGBD doit permettre l'accès simultané à la base de données par plusieurs utilisateurs . Sécurité des données: Le SGBD doit présenter des mécanismes permettant de gérer les droits d'accès aux données selon les utilisateurs. Les bases de données sont apparues à la fin des années 60, à une époque où la nécessité d'un système de gestion de l'information souple se faisait ressentir. Il existe cinq modèles de SGBD, différenciés selon la représentation des données qu'elle contient : le modèle hiérarchique: les données sont classées hiérarchiquement, selon une arborescence descendante. Ce modèle utilise des pointeurs entre les différents enregistrements. Il s'agit du premier modèle de SGBD.

Chapitre 5: Les bases de données le modèle réseau: Comme le modèle hiérarchique ce modèle utilise des pointeurs vers des enregistrements. Toutefois la structure n'est plus forcément arborescente dans le sens descendant . le modèle relationnel (SGBDR, Système de gestion de bases de données relationnelles): les données sont enregistrées dans des tableaux à deux dimensions (lignes et colonnes). La manipulation de ces données se fait selon la théorie mathématique des relations .

Chapitre 5: Les bases de données le modèle déductif: les données sont représentées sous forme de table, mais leur manipulation se fait par calcul de prédicats. le modèle objet (SGBDO, Système de gestion de bases de données objet): les données sont stockées sous forme d'objets, c'est-à-dire de structures appelées classes présentant des données membres. Les champs sont des instances de ces classes .

Chapitre 5: Les bases de données A la fin des années 90 les bases relationnelles sont les bases de données les plus répandues (environ trois quarts des bases de données). Afin d'exploiter les bases de données, il faut fournir une interface à l'utilisateur lui permettant de visualiser des données en fonction de certains critères. Pour cela il existe un outil: les formulaires. Un formulaire est une interface présentant des composants permettant d'afficher, de saisir ou sélectionner des données De nombreux outils permettent la création de formulaires, c'est notamment le cas du HTML. De nombreux environnements pour créer des formulaires existent aussi pour chaque SGBD (Access, Windev, ...).

Chapitre 5: Les bases de données Dans le cadre du projet Modula et FLEXTROX: Dans le cas de la carte Modula, une base de donnée MySQL permet de garder une référence des usagers du site web, leur permettant, après authentification, de télécharger des modules pour la carte modula. Le choix de MySQL en tant que base de donnée dans le cadre du développement de la carte Modula et de l’environnement Flextrox inc, se justifie par plusieurs facteurs: MySQL est une base de donnée gratuite, fonctionnant sous la plus part des systèmes Unix . MySQL est très performant et est utilisé par beaucoup d’entreprises renommées à travers le monde, témoignant de sa robustesse, de sa sécurité et de son efficacité.

Partie 3: La partie logicielle Chapitre 6:Les pilotes

Chapitre 6: Les pilotes Un pilote (‘driver’) est une routine ou un ensemble de routines qui établissent les aspects fondamentaux d’E/S pour un périphérique. Bien que tous les périphériques nécessitent un pilote pour interagir avec le système, certains, comme le clavier ou certaines souris sont automatiquement pris en charge par le système d’exploitation. La programmation des pilotes dépend fortement de l’architecture et du système d’exploitation présent sur la machine (les appels systèmes sont spécifiques à l’environnement). Un exemple simple d’utilisation de pilotes serait le cas d’une application qui fait un appel système demandant au système d’exploitation d’écrire le contenu d’un tampon (‘buffer’) dans la mémoire d’un périphérique.

Chapitre 6: Les pilotes Le système d’exploitation prend en charge les aspects qui sont indépendants au périphérique mais appelle des routines du pilote pour effectuer des tâches uniques et spécifiques au périphérique. Dans les anciens systèmes d’exploitation (ex: DOS), les pilotes étaient spécifiquement conçus pour une application. Par exemple, les pilotes pour une imprimante d’un logiciel comme WorPerfect, ne pouvaient pas être utilisés par Autocad. Chaque application se devait d’avoir une version du pilote pour un périphérique. Lors de l’arrivée de Windows sur le marché, les pilotes des imprimantes et de l’affichage étaient gérés par le système d’exploitation lui-même, ce qui permettait à toutes les applications d’en faire usage.

Chapitre 6: Les pilotes Les périphériques qui ne sont pas supportés par le système d’exploitation, peuvent (et doivent) fournir des pilotes indépendants qui, une fois chargés, peuvent être utilisés par d’autres applications. Beaucoup de pilotes de périphériques étaient encore exploitable que par une seule application. Lorsque Windows NT a vu le jour, les pilotes du noyau prenaient en charge tous les périphériques d’E/S. Il était même interdit pour un usager d’accéder aux appels d’E/S des périphériques sans l’utilisation des pilotes du noyau. De son côté, Linux et la plus part des systèmes Unix utilisaient depuis longtemps déjà cette démarcation noyau/utilisateur.

Chapitre 6: Les pilotes Il existe trois type de pilotes de périphérique sous NT: Les pilotes de périphériques virtuels (‘Virtual Device Drivers’) (VDD). Les VDD sont des librairies dynamiques (DLL) Win32 avec des points d’entrée spécifiques. Ils permettent à certaines applications DOS et Windows 16 bit d’accéder aux ports d’E/S, de connaître l’état de certaines interruptions de périphériques, tout en tournant sous Windows NT. Cela dit, les VDD n’accèdent pas aux E/S du côté usager. Ils possèdent simplement quelques routines que le NTVDM (‘NT virtual device manager’) appelle après avoir intercepté une requête d’une application 16 bits pour accéder à un port d’E/S. L’accès d’E/S en tant que tel est fait par un pilote du noyau. Les pilotes d’interface graphique (‘Graphic Devices Interfaces’) (GDI). Les pilotes GDI, également appelés pilotes graphiques Win32 ou pilotes graphiques du mode noyau, fonctionnent du côté noyau mais sont cependant différents des pilotes noyau nommés précédemment. Les pilotes GDI prennent en charge les aspects d’affichage et d’impression spécifiques aux fonctions GDI. Ils se retrouvent sous la forme de librairies dynamiques (DLL) et sont chargés dans l’espace d’adresse du système où des routines sont appelées par le GDI.

Chapitre 6: Les pilotes L’environnement d’exécution des GDI est différent des pilotes noyau traditionnels. En effet, les pilotes GDI s’exécutent dans le contexte du processus qui fait la demande d’accès au système. De plus, les fonctions qu’ils implémentent sont considérées comme limitées et synchrones. C’est-à-dire que le pilote GDI est appelé pour effectuer une fonction et ne retourne pas à l’appelant tant que cette fonction n’est pas terminée. Les pilotes du mode noyau (‘Kernel Mode Driver’) (KMD). Il prennent en charge tous les aspects des demandes d’E/S comme ‘CreateFile’, ‘CloseHandle’, ‘ReadFile’, ‘WriteFile’ et ‘DeviceIOControl’. Mis à part les pilotes GDI qui peuvent prendre en charge les E/S au niveau des cartes graphiques, seuls les KMDs sont en mesure d’interagir avec les ports d’E/S des périphériques. Contrairement aux pilotes GDI, les KMDs implémentent des fonctions qui requièrent une attente pour des interruptions ou pour un périphérique sur le point d’être accessible. Durant cette attente, le KDM retourne le contrôle à l’appeleur, permettant à celui-ci de continuer son exécution ou tout simplement se bloquer en attendant la fin de l’accès E/S.

Chapitre 6: Les pilotes Le mode noyau et le mode usager: Le mode noyau réfère à une section mémoire privilégiée pour commander le processeur. Le mode usager quant à lui réfère à une section moins privilégiée. Ceci fait parti des états matériels du processeur. Sur les processeurs x86, ce mode d’accès mémoire est connu sous le nom de niveau d’E/S privilégié (‘I/O privilege level’) (IOPL). Le mode noyau sous NT est IOPL 0 alors que le mode usager est IOPL 3, aussi appelés ‘ring 0’ et ‘ring 3’. NT n’utilise pas IOPL 1 et IOPL 2. Le mot noyau possède plusieurs sens selon où il est employé. Le code du système d’exploitation est divisé en plusieurs sections nommées ‘executive’, ‘kernel’ et ‘HAL’. Les KDM et GDI permettent la gestion des périphériques pour le système d’exploitation et tournent tout deux dans le mode noyau.

Chapitre 6: Les pilotes Un dernière utilisation du mot ‘noyau’ se rencontre dans les termes ‘APIs noyau’ et ‘objets noyau’ dans les APIs Win32. Le modèle de pilote Windows (‘Windows Driver Model’)(WDM) Également nommé ‘Win32 Driver Model’, c’est un pilote type d’une architecture NT permettant l’appel de nombreuses routines fournies par le système d’exploitation. Il est possible pour les designers de périphériques de partir avec la base d’un pilote fonctionnel aussi bien sous Windows XP, Windows 2000 que sous Windows 98. Les librairies dynamiques (DLL sous Windows ou .so sous Linux) La librairie est liée au programme qui l’utilise lors de l’exécution, ce qui rend l’exécutable plus léger. La librairie n’est chargée qu’une fois en mémoire, même s’il elle est utilisée par plusieurs exécutables. Si des modifications sont apportées à la librairie, il n’est pas nécessaire de recompiler l’exécutable.

Chapitre 6: Les pilotes Pour démarrer une application nécessitant une librairie dynamique, celle-ci doit être présente sur le système et doit se trouver à un endroit précis, sans quoi il sera impossible à l’application d’exécuter certaines tâches.