160
INF 6500 Structures d’ordinateurs

INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Embed Size (px)

Citation preview

Page 1: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

INF 6500Structures d’ordinateurs

Page 2: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Partie 1: Introduction et principes

Page 3: INF 6500 Structures dordinateurs. 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.

Page 4: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 5: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Partie 1: Introduction et principe

Page 6: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 7: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

Page 8: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

• Principe

• Choix et différences

Page 9: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Partie 2: La partie matérielle

Chapitre 1: Les bus de communication

Page 10: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 11: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Bus Type

Bus Width

Bus Speed MB/sec

ISA 16 bits 8 MHz 16 MBps

EISA 32 bits 8 MHz 32 MBps

VL-bus 32 bits 25 MHz 100 MBps

VL-bus 32 bits 33 MHz 132 MBps

PCI 32 bits 33 MHz 132 MBps

PCI 64 bits 33 MHz 264 MBps

PCI 64 bits 66 MHz 512 MBps

PCI 64 bits 133 MHz 1 GBps

Page 12: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 13: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 »).

Page 14: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 15: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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).

Page 16: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 17: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 18: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 »).

Page 19: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 »).

Page 20: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 21: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 22: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Chapitre 1: Les bus de communication

Page 23: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 24: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 »).

Page 25: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Chapitre 1: Les bus de communicationUn 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

Page 26: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 »).

Page 27: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 28: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 29: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 30: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 31: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 32: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 33: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 34: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 35: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 36: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Chapitre 1: Les bus de communication

Page 37: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 38: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Chapitre 1: Les bus de communication

Page 39: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 »).

Page 40: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 41: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 42: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

Page 43: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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é.

Page 44: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 45: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 »)

Page 46: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 47: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 48: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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#.

Page 49: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 50: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 51: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 52: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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)

Page 53: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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)

Page 54: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

Page 55: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 56: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 57: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 58: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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/sSCSI

Synchrone

SCSI-1 8 8 bits 5 MHz 5 Mo/sSCSI

Wide

SCSI-2 16 16 bits 5 MHz 10 Mo/sSCSI

Fast

SCSI-2 8 8 bits 10 MHz 10 Mo/sSCSI

Fast/Wide

SCSI-2 16 16 bits 10 MHz 20 Mo/sSCSI

Ultra SCSI-3

8 8 bits 20 MHz 20 Mo/sSCSI SPI

Ultra/Wide SCSI-3

8 16 bits 20 MHz 40 Mo/sSCSI SPI

Ultra2 SCSI-3

8 8 bits 40 MHz 40 Mo/sSCSI SPI-2

Ultra2/Wide SCSI-3

16 16 bits 40 MHz 80 Mo/sSCSI SPI-2

Ultra3 SCSI-3

16 16 bits 40 MHz 160 Mo/sSCSI SPI-3

Page 59: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 60: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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é.

Page 61: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 62: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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).

Page 63: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Chapitre 1: Les bus de communication1.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.

Page 64: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

Page 65: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Chapitre 1: Les bus de communication

Image provenant de Intel

Page 66: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 67: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

Page 68: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

Page 69: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

Page 70: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

Page 71: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 72: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 :

Page 73: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 74: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 75: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 76: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Partie 2: La partie matérielle

Chapitre 2: Electronique programmable

Page 77: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 78: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Chapitre 2: Electronique programmable

Page 79: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 80: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 81: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 82: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 83: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 84: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Chapitre 2: Electronique programmable

Page 85: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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) GatefieldAtmel: (AT6000)

Page 86: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 87: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Chapitre 2: Electronique programmable

Compagnie Nombre maximal de portes (4 transistors) Architecture généraleTechnologie 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 Matrice symmétrique Anti-fusibles

Page 88: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 89: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 90: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Partie 2: La partie matérielle

Chapitre 3: Les filtres actifs

Page 91: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

filtres:

• Passe bas

• Passe haut

Page 92: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Chapitre 3: Les filtres actifs• Passe bande

• Coupe bande

Page 93: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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:

Page 94: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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:

Page 95: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Chapitre 3: Les filtres actifs• Filtres de Tschebychev:

• Filtres de Cauer:

Page 96: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 97: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 98: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Partie 2: La partie matérielle

Chapitre 4: Circuits mixtes

Page 99: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

Page 100: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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).

Page 101: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 102: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 103: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 104: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 105: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 :

Page 106: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 107: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 108: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 109: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 110: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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).

Page 111: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 112: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 113: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 114: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

Page 115: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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:

Page 116: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 117: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 :

Page 118: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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é.

Page 119: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

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.

Page 120: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 121: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 122: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 123: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 124: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 125: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 126: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 127: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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).

Page 128: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 129: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 130: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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).

Page 131: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 132: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 133: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 134: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 135: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 :

Page 136: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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) :

Page 137: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Chapitre 4: Circuits mixtes

Page 138: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 139: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Partie 3: La partie logicielle

Chapitre 5:Les bases de données

Page 140: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

Page 141: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 142: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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).

Page 143: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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

Page 144: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 .

Page 145: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 146: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 147: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 148: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 .

Page 149: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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 .

Page 150: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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, ...).

Page 151: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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é.

Page 152: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

Partie 3: La partie logicielle

Chapitre 6:Les pilotes

Page 153: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 154: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 155: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 156: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 157: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 158: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 159: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.

Page 160: INF 6500 Structures dordinateurs. Partie 1: Introduction et principes

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.