La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "INF 6500 Structures dordinateurs. Partie 1: Introduction et principes."— Transcription de la présentation:

1 INF 6500 Structures dordinateurs

2 Partie 1: Introduction et principes

3 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 (lenvironnement Flextrox) sont étudiés, conçus et améliorés pour permettre à lenvironnement datteindre de nouvelles fonctionnalités.

4 Partie 1: Introduction et principes La carte Modula: Carte dextension 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) dextension 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.

5 Partie 1: Introduction et principe

6 Partie 1: Introduction et principes Lenvironnement FLEXTROX inc.: Compagnie fictive qui se charge du développement de linterface, 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 dun site web et dune base de donnée, lensemble des usagers inscrits peuvent se procurer les modules quils désirent et les installer sur leur carte par un simple glisser-déplacer (drag and drop). La conception physique et logicielle de lenvironnement MODULA et FLEXTROX nécessite des choix bien adaptés aux possibilités de la carte. Ces multiples choix de conception feront lobjet dune étude approfondie à travers le cours.

7 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 lenvironnement FLEXTROX et tenter de justifier par lexemple, 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

8 Partie 1: Introduction et principes Mémoire Différents types de mémoire (mémoire physique, mémoire virtuelle, mémoire cache) Modes dadressage 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

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

10 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 dinterconnexion, 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. Linconvénient principal, cest le goulot détranglement quil crée, limitant le débit maximal dE/S.

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

12 Chapitre 1: Les bus de communication 1.2 Un exemple de bus au niveau de la carte mère dun 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 quun protocole de bus.

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

14 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, lobligation de créer un protocole de communication et un manque dextensibilité 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, lhorloge 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.

15 Chapitre 1: Les bus de communication Dans un bus synchrone, le signal de lhorloge est utilisé pour les opérations du bus. Lhorloge du bus est généralement dérivée de lhorloge 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 lhorloge interne (une mémoire typique à un temps daccès de 20 ns contrairement à un temps dhorloge interne de 3 ns dans le précédent exemple).

16 Chapitre 1: Les bus de communication Voici un exemple de lecture dun mot en mémoire par lUCT sur un bus synchrone. Durant T1, lorsque lhorloge est haute, ladresse est mise sur le bus par LUCT.

17 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 lUCT. La lecture seffectue durant T2 et le début de T3. LUCT 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 dun bus synchrone avec une mémoire plus rapide, le temps daccès ne sera pas amélioré étant donné que lhorloge du bus est inchangée. Dun autre côté, si on augmente la vitesse dhorloge du bus pour atteindre celle de la mémoire, les composants lents qui utilisent lhorloge du bus pourraient ne plus fonctionner correctement. Le bus asynchrone résout ce problème, mais est plus complexe car il ny a pas dhorloge.

18 Chapitre 1: Les bus de communication Le maître du bus dans un tel schéma dépose tout ce quil veut sur le bus et change la valeur du signal MSYN (« master synchronisation ») à 0. Lesclave 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 lesclave de faire de même avec SSYN. De cette façon, une combinaison rapide maître/esclave répond plus rapidement quune combinaison lente maître/esclave. Cette suite de signaux précis est une poignée de main complète (« full handshake »).

19 Chapitre 1: Les bus de communication Le problème darbitrage 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 larbitre reçoit la demande, il détermine si une concession du bus peut être faite (« bus grant »). Si cest le cas, larbitre 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 »).

20 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 larbitre sont les plus prioritaires. Centralisé avec niveaux de priorité: Parfois, il nest pas souhaitable davoir 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é dun 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 dune même ligne de demande de bus selon la règle de proximité électrique par rapport à larbitre.

21 Chapitre 1: Les bus de communication Totalement centralisé: Chaque composant possède sa ligne de demande de bus. Cette distribution est la plus puissante dun point de vue logique. Dun point de vue pratique cependant, cest la moins extensible. Cette méthode engendre des coûts importants pour les lignes supplémentaires sur le bus. Le bus décentralisé: Il ny a pas darbitre. 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 ») nest 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.

22 Chapitre 1: Les bus de communication

23 Larbitrage 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

24 Chapitre 1: Les bus de communication 1.3 Les architectures de bus basés sur ponts (« bridge based bus ») Dun point de vue logique, tous les composants dun système sont connectés directement au bus du système, comme lillustre la section précédente. Dun point de vue opérationnel, cette approche nest 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 quune ligne de cache serait récupérée de la mémoire principale, le tout pendant quune opération dE/S prend place sur le réseau. Dans les architectures modernes, ces différents transferts sont divisés sur plusieurs bus à travers lutilisation de ponts (« bridges »).

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

26 Chapitre 1: Les bus de communication 1.4 Méthodologies des communications Les ordinateurs ont une grande panoplie de taches de communication. LUCT doit communiquer avec la mémoire et avec de nombreux composants dE/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: Linterrogation (« polling ») ou encore E/S programmée (« programmed I/O »). Dans le cas dune lecture dun bloc de données provenant dun disque, lUCT va interroger chaque composant pour vérifier sil requiert un service. LUCT vérifie dabord létat du disque en lisant un registre spécial qui peut être accéder dans lespace mémoire ou en émettant une instruction dE/S. Si le disque nest pas prêt à être lue ou écrit, lopération se répète et vérifie létat du disque de façon continue jusquà ce quil le soit. Ceci est connu sous le nom dattente occupée (« busy-wait »).

27 Chapitre 1: Les bus de communication Une fois que le transfert est complété, lUCT vérifie sil ny aurait pas une autre demande de communication pour le disque. Si cest le cas, le processus dinterrogation recommence. Sinon, lUCT poursuit avec dautres tâches. Dans ce modèle, lUCT 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 lUCT na pas fini linterrogation, qui peut être une tâche de moins haute priorité. Un avantage de ce modèle est quil est simple à implémenter. E/S gérées par interruptions. Avec ce type de communication, lUCT na pas besoin daccéder au composant tant que celui-ci na pas besoin dun service, il ny a donc pas dattente. Le composant fait la demande dun service par le biais dun ligne dinterruption spéciale qui va directement à lUCT. LUCT 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 à lUCT. Celui-ci envoie alors une ISR (« interrupt service routine ») pour le disque et retourne à ses tâches une nouvelle fois lorsque lISR a terminé son exécution.

28 Chapitre 1: Les bus de communication Il arrive parfois quen raison de limportance de la tache exécutée, un processus ne doive pas être interrompu. Il existe donc un ensemble dinstructions 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 dinterruption (« interrupt flag » ou IF), qui fait parti des registres détat de lUCT. 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 dinstructions (« 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 lindique, 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 dautres plus ordinaires, mais ne pouvant être interrompues comme la mise à jour du système de fichier.

29 Chapitre 1: Les bus de communication Lorsquune 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 ladresse de lISR à être utilisée. Le registre détat est mis sur la pile car il contient le drapeau dinterruption (IF) et le processeur doit désactiver les interruptions de la première instruction de lISR. La routine est alors exécutée. Lorsquelle se termine, lexécution du programme interrompu se poursuit à partir des informations récupérées de la pile. Laccès mémoire direct (DMA) Bien que le modèle dinterruption précédent libère lUCT jusquà ce que le composant ait besoin dun service, celui-ci est tout de même responsable du transfert de données. Si lon veut transférer un bloc de données entre la mémoire et le disque en utilisant soit linterrogation soit les interruptions, chaque mot voyage à travers le bus (ou le pont hôte) deux fois: une fois vers lUCT 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 lUCT et peut donc éviter la congestion sur le bus système.

30 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 dE/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 lUCT lors des transferts. LUCT prépare le composant DMA et signale au composant de démarrer le transfert. Pendant celui-ci, lUCT continue lexécution des autres processus. Lorsque le transfert DMA est complété, le composant le signale alors à lUCT à laide dune interruption.

31 Chapitre 1: Les bus de communication 1.5 La communication sur une architecture Pentium dIntel On sintéresse ici à la section de la figure précédente comprise entre les processeurs Pentium et le « host bridge ». Lhorloge système, lhorloge du bus et les vitesses du bus. La vitesse de lhorloge système est un multiple de lhorloge du bus. La valeur du multiple est fixée par le processeur lorsquil 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 lutilisation 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 lUCT sont plus rapides que les opérations daccès mémoires. La fréquence moyenne du bus sur un Pentium est 66 Mhz.

32 Chapitre 1: Les bus de communication Adresses, données, mémoire et possibilités dE/S. Le bus système effectif possède 32 lignes dadresses 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 dadresse 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 loctet, le mot et le mot double (« double word ») ou le mot quadruple (« quad word ») qui doit être transféré à partir de ladresse de base (A31- A3). Le bus de données possède une largeur de 64 bits, permettant à lUCT de transférer un « quad word » en un cycle de bus.

33 Chapitre 1: Les bus de communication Tous les processeurs Intel ont un espace dadresse séparée pour la mémoire et les accès dE/S. Lespace 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 lespace mémoire 4GB alors quune valeur basse spécifie lespace dadresse 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 daccès de cache en rafale (« burst ») ainsi que quelques cycles à usage spécifiques.

34 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. LUCT signale le départ de tous les nouveaux cycles de bus en prenant possession du signal de statut dadresse (« address status signal » ou ADS). Celui-ci définit le début dun nouveau cycle de bus et signale à la mémoire quune adresse valide est disponible sur le bus dadresse. La remise à 1 du signal CACHE indique que le cycle sera composé dun signal de lecture ou décriture, contrairement à une lecture ou écriture en rafale. Lors dun cycle de lecture, lUCT abaisse le signal W/R en même temps que le signal ADS. Ceci permet davertir la mémoire quelle doit verrouiller ladresse 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. LUCT utilise BRDY comme signale pour verrouiller la valeur des données.

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

36 Chapitre 1: Les bus de communication

37 Le cycle de bus et la lecture en rafale. En raison du besoin critique dalimenter 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 dadresses 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 dun mot quadruple par cycle, en gardant BRDY jusquà la fin du transfert. Lécriture en rafale suit le même principe.

38 Chapitre 1: Les bus de communication

39 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 laccord 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. Lavantage de ce bus est quil 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 lautodétection des composants sans la modification de cavaliers (« jumpers »).

40 Chapitre 1: Les bus de communication PCI a vraiment pris de lavance lorsque les récents systèmes dexploitation ont pris en compte le « plugn 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 dutiliser cet outils et détecte les périphériques PnP branchés. « Extended System Configuration Data » (ECSD), un fichier qui contient de linformation sur les périphériques PnP branchés. Un système dexploitation qui supporte la technologie du « plugn 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 dinterruption. Accès direct en mémoire (DMA). Configuration dE/S. Réservation dun espace mémoire pour le composant.

41 Chapitre 1: Les bus de communication Voici les étapes de détection et de gestion dun 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 didentité à chacun. Le composant répond en sidentifiant. Lidentité 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 ny 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 dexploitation démarre, il vérifie le bus PCI et lESCD. La nouvelle entrée entraîne divers réactions pour avertir lusager quun nouveau composant à été détecté. Un pilote (« driver ») est ensuite installé soit par lOS, soit après interrogation de lusager. Le composant est alors prêt à lusage.

42 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 ») lorsquil 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 lintervention de lUCT). Le faible nombre de broches est dû au multiplexage matériel, permettant au composant denvoyer plus dun signal par broches. PCI supporte les composants 5V et 3.3V

43 Chapitre 1: Les bus de communication Tous les transferts de données sont des transferts en rafale sans limite de longueur. Larbitrage sur un bus PCI Pour réduire la latence, PCI utilise un arbitrage caché. Un arbitrage peut avoir lieu alors quun transfert est en cours de sorte quun autre composant peut commencer à transférer des données dès que le bus se libère. Lorsque larbitre 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. Larbitre utilise le registre de latence maximum (« maximum latency register ») pour déterminer le niveau de priorité.

44 Chapitre 1: Les bus de communication Si un maître du bus demande le bus après quil 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 na pas débutée, larbitre peut prendre prioriter (préempter) sur le premier composant et permettre labaissement du signal GRNT à celui qui en a le plus besoin. Lorsquune transaction est présente sur le bus, un mécanisme sassure que le maître du bus ne saccapare pas celui-ci trop longtemps, empêchant les autres composants deffectuer 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 daccès au bus garantis. Celui-ci est décrémenté à chaque cycle. Lorsque larbitre décide de donner laccè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.

45 Chapitre 1: Les bus de communication Les types de commande Il existe plusieurs types dinformations pouvant transiger sur le bus. Pour cela, il existe 4 lignes de signaux distincts appelés « Command Byte Enable » décrivant le type dinformation. Lors de lenvoi 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 »)

46 Chapitre 1: Les bus de communication Le bus PCI a la possibilité daccéder une zone de mémoire au-delà de 4 Go, tout en utilisant une prise PCI à 32 bits. Le signal de cycle dadresse double (« Dual acces cycle ») indique qune 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 linformation aux composants sur le bus; ladresse na 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 davantage dinformation sur un interruption provenant dun composant PCI.

47 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 dinterruption (IRQ) (comprise entre IRQ0 et IRQ15). LIRQ est ensuite convertit par le contrôleur dinterruption (PIC) en un signal pour le processeur, INTR. Le processeur répond à ce signal en demandant une dadresse de vecteur dinterruption (« interrupt vector address »), soit ladresse de lISR. Cette adresse est envoyée au pont hôte qui prendre le contrôle du bus et débute une transaction dinterruption (« interrupt acknowledge transaction »). Le composant ayant fait la demande dinterruption entre dans la conversation et envoie un signal démulation de la demande du vecteur dinterruption (« interrupt vector request ») à la puce du contrôleur dinterruption.

48 Chapitre 1: Les bus de communication Ladresse du vecteur dinterruption 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 dinterruption a été utilisé depuis les débuts du bus ISA par IBM pour dire au contrôleur dinterruption quelle adresse il devait fournir. Le processeur ne voit quun seul signal dinterruption qui consiste en une adresse. Il permet à lISR de sexécuter à cette adresse. Chaque prise PCI possède 4 lignes dinterruptions 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#.

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

50 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 dE/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 dIBM qui avait uniquement 8 bits de large, quon 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 dhorloge pour envoyer 16 bits de données.

51 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 dhorloge 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 natteint 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 dexpansion externe qui peut être connecté à 16 composants ISA.

52 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 nest pas indépendant (Le CPU doit soccuper du transfert des données sur le bus, ce qui lempêche deffectuer dautres tâches) Il possède un débit faible ( 8 Mo/s (théorique) contre 132 Mo/s (minimum) pour PCI)

53 Chapitre 1: Les bus de communication Un autre gros désavantage est que lassignation dun IRQ et dun 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 dIntel (la série 810) ne supportent dailleurs plus ce bus. Plusieurs autres bus dérivés de ISA ont été créés pour améliorer ce dernier, mais aucun na 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)

54 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 dinformation (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 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

55 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 dapproche. Il nexiste pas de logiciel dinterface commun.

56 Chapitre 1: Les bus de communication Les différents types de SCSI SCSI-1: première moulure développée en SCSI-2: une mise à jour qui est devenue un standard en 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 dhorloge, 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 denregistrer une série de commandes provenant de la machine hôte et de déterminer les priorités de ces dernières.

57 Chapitre 1: Les bus de communication SCSI-3: Peu après lapparition de SCSI-2, arrivait SCSI-3 en Ce qui est innovateur dans cette version, cest quun ensemble de petits standards ont été construits dans son architecture globale. Pour cette raison dailleurs, SCSI-3 nest 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 linterface 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.

58 Chapitre 1: Les bus de communication NomSpecification# de composantsLargeur du busVitesse du busMo/s Asynchrone SCSI-188 bits5 MHz4 Mo/s SCSI Synchrone SCSI-188 bits5 MHz5 Mo/s SCSI Wide SCSI bits5 MHz10 Mo/s SCSI Fast SCSI-288 bits10 MHz10 Mo/s SCSI Fast/Wide SCSI bits10 MHz20 Mo/s SCSI UltraSCSI-3 88 bits20 MHz20 Mo/s SCSISPI Ultra/WideSCSI bits20 MHz40 Mo/s SCSISPI Ultra2SCSI-3 88 bits40 MHz40 Mo/s SCSISPI-2 Ultra2/WideSCSI bits40 MHz80 Mo/s SCSISPI-2 Ultra3SCSI bits40 MHz160 Mo/s SCSISPI-3

59 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 dinterface entre tous les composants sur le bus SCSI et lordinateur. Également nommé ladaptateur 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.

60 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 didentification unique (ID). La plupart des composants nécessitent un ajustement matériel pour configurer le ID. Certains composants sont également « PlugnPlay » et sattribuent eux-même un numéro didentification. 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é.

61 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 lutilisation dun 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 dun mètre). Active: Utilisé pour les systèmes rapides ou dont le bus est long (plus dun 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 quil parcourt la ligne.

62 Chapitre 1: Les bus de communication « High voltage differential » (HVD): cest 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 sil 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): Cest 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).

63 Chapitre 1: Les bus de communication 1.7 Un survol des autres bus de communication sur le marché Dans cette section, nous présentons une vue densemble (les principales caractéristiques) de certains autres bus que lon 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 « Plugn Play » Permet de connecter jusquà 127 périphériques en même temps (avec lutilisation 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.

64 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

65 Chapitre 1: Les bus de communication Image provenant de Intel

66 Chapitre 1: Les bus de communication Le bus AGP possède une largeur de bus de 32 bits et tourne à 66 Mhz. Il ny a quun 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 dinformations à la carte. AGP utilise le « sideband addressing » ce qui permet à la carte démettre et de recevoir une adresse sur les lignes dadresses supplémentaires aux 32 lignes de base pour les données. De cette façon, il est possible dadresser des données séparément, nécessaires plus tard sans gêner le transfert dinformations en cours. Laccès en mémoire direct permet daméliorer radicalement les performances: Sur PCI, une texture graphique en provenance du disque dur et acheminée en mémoire, envoyée à lUCT et ensuite envoyée dans le « frame buffer » de la carte graphique.

67 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

68 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 à lUCT 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 dune façon contiguë en mémoire, la carte voit le tout comme une suite de données. Image provenant de Intel

69 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 dopération qui fonctionnent tous sur le bus à 66 Mhz. La version 2.0 permet denvoyer des données à raison de deux fois par cycle dhorloge. La version 4.0 permet quant à elle denvoyer quatre fois plus de données par cycle dhorloge. AGP pro : basé sur la version 2.0. La prise est plus longue avec davantage de courant pour les cartes graphiques professionnelles. ModeFréquence dhorlogeTaux de transfert 1x66 Mhz266 Mo/s 2x133 Mhz533 Mo/s 3x266 Mhz1066 Mo/s

70 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, doù le nom série. Il est donc possible denvoyer des données à laide dun fil unique. Cela prend cependant évidement plus de temps. ModeFréquence dhorloge Taux de transfert 8x533 Mhz2133 MO/s

71 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 darrê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 denvoyer et de recevoir des données (« full duplex ») car lenvoie 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 lordinateur 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.

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

73 Chapitre 1: Les bus de communication Le port série permet le contrôle de linformation (« flow control ») qui donne la possibilité aux composants de suspendre, à laide de signaux, la réception de données provenant de lordinateur afin déviter une surcharge du tampon (« buffer overload »). Port parallèle Développé originalement par IBM pour permettre la communication entre lordinateur 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 lordinateur 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.

74 Chapitre 1: Les bus de communication Depuis 1987 et lapparition 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 lenvoie 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 dexploitation à supporter les 2 ainsi que lancien SPP.

75 Chapitre 1: Les bus de communication Dans le cadre du projet Modula et FLEXTROX La carte Modula est interfacée avec lordinateur par le biais dune 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 dutilisation que PCI. Dun point de vue technique, les spécification techniques PCI convenaient aux besoins des requis de MODULA en ce qui concerne le débit de linformation et la fréquence dhorloge.

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

77 Lobjectif de lélectronique programmable est de diminuer le coût de production et daugmenter linté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.

78 Chapitre 2: Electronique programmable

79 PAL (Programmable Array Logic) Logique restreinte (par rapport aux CPLDs et FPGAs). Cest le plus populaire des SPLDs. Programmable une seule fois par survoltage. Plan ET programmable. Plan OU fixe.

80 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) Cest un PAL reprogrammable Il est constitué de plusieurs macro-cellules que lutilisateur peut configurer en un bloc combinatoire simple, complexe ou bien en sortie avec registres.

81 Chapitre 2: Electronique programmable CPLD (Complex Programmable Logic Devices) Dun point de vue conceptuel, un CPLD consiste en plusieurs macro-cellules de PAL interconnectées par lentremise dune 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.

82 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 lun des trois procédés suivants: EPROM (généralement programmable une seule fois, à moins quils 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.

83 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 dE/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 davantage de blocs logiques simples. Ces blocs contiennent soit une fonction dentrée double ou un multiplexeru 4-1 et des bascules. Les FPGAs les plus denses sont construits à laide de la technologie des SRAMs Le procédé danti-fusibles est également utilisé parfois.

84 Chapitre 2: Electronique programmable

85 ArchitectureMémoire statiqueAntifusibleFlash Gros grains Altera: (FLEX, APEX) QuickLogic: (pASIC). Atmel: (AT40K) DynaChip Lucent: (ORCA) Vantis: (VF1) Grains fins Actel: (SPGA) Actel: (ACT) Gatefield Atmel: (AT6000)

86 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 dE/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 à laide dun octet qui en échange lui retourne la configuration à adopter. Lors dun téléchargement, le FPGA agit comme un périphérique externe dun processeur et reçoit sa configuration par celui-ci. En revanche les FPGA à base danti-fusibles sont programmables une seule et unique fois mais peuvent cependant conserver la configuration même après la mise sous tension.

87 Chapitre 2: Electronique programmable CompagnieNombre maximal de portes (4 transistors)Architecture générale Technologie de programmation Xilinxplus de Matrice symmétriqueSRAM Actelplus de En rangéeAnti-fusibles, FLASH Alteraplus de PLD hierarchiqueEPROM QuickLogic Matrice symmétriqueAnti-fusibles

88 Chapitre 2: Electronique programmable Il existe deux modes de programmation pour le circuits intégrés programmables: Programmation logicielle: à laide de langages de description matérielle comme VHDL ou Verilog. Programmation matérielle : à laide doutils 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 davoir un meilleur contrôle sur lemplacement 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.

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

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

91 Il existe 4 principaux types de filtres: Passe bas Passe haut

92 Chapitre 3: Les filtres actifs Passe bande Coupe bande

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

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

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

96 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 sassurer que toutes les fréquences se trouvant à lextérieur de la bande soient suffisamment atténuées à laide dun filtre danti- 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.

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

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

99 Dans ce chapitre, il sera question dillustrer les modalités dinteraction 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:

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

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

102 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 à laide de commutateurs, lentrée qui doit être connectées à la sortie.

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

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

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

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

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

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

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

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

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

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

113 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 dimpulsions: 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.

114 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

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

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

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

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

119 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 ou , et les multimètres de laboratoire dépassent allégrement les 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

137 Chapitre 4: Circuits mixtes

138 Dans le cadre du projet Modula et FLEXTROX: Bien que la carte MODULA ne possède actuellement aucun CAN ou CNA afin deffectuer un travail précis, il nen demeure pas moins quelle possède des prises pour modules externes adaptées pour recevoir ultérieurement une interface comportant des CAN ou CNA dédiés.

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

140 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

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

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

143 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

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

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

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

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

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

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

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

151 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 lenvironnement 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 dentreprises renommées à travers le monde, témoignant de sa robustesse, de sa sécurité et de son efficacité.

152 Partie 3: La partie logicielle Chapitre 6:Les pilotes

153 Un pilote (driver) est une routine ou un ensemble de routines qui établissent les aspects fondamentaux dE/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 dexploitation. La programmation des pilotes dépend fortement de larchitecture et du système dexploitation présent sur la machine (les appels systèmes sont spécifiques à lenvironnement). Un exemple simple dutilisation de pilotes serait le cas dune application qui fait un appel système demandant au système dexploitation décrire le contenu dun tampon (buffer) dans la mémoire dun périphérique.

154 Chapitre 6: Les pilotes Le système dexploitation 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 dexploitation (ex: DOS), les pilotes étaient spécifiquement conçus pour une application. Par exemple, les pilotes pour une imprimante dun logiciel comme WorPerfect, ne pouvaient pas être utilisés par Autocad. Chaque application se devait davoir une version du pilote pour un périphérique. Lors de larrivée de Windows sur le marché, les pilotes des imprimantes et de laffichage étaient gérés par le système dexploitation lui-même, ce qui permettait à toutes les applications den faire usage.

155 Chapitre 6: Les pilotes Les périphériques qui ne sont pas supportés par le système dexploitation, peuvent (et doivent) fournir des pilotes indépendants qui, une fois chargés, peuvent être utilisés par dautres 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 dE/S. Il était même interdit pour un usager daccéder aux appels dE/S des périphériques sans lutilisation 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.

156 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 dentrée spécifiques. Ils permettent à certaines applications DOS et Windows 16 bit daccéder aux ports dE/S, de connaître létat de certaines interruptions de périphériques, tout en tournant sous Windows NT. Cela dit, les VDD naccè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 dune application 16 bits pour accéder à un port dE/S. Laccès dE/S en tant que tel est fait par un pilote du noyau. Les pilotes dinterface 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 daffichage et dimpression spécifiques aux fonctions GDI. Ils se retrouvent sous la forme de librairies dynamiques (DLL) et sont chargés dans lespace dadresse du système où des routines sont appelées par le GDI.

157 Chapitre 6: Les pilotes Lenvironnement dexécution des GDI est différent des pilotes noyau traditionnels. En effet, les pilotes GDI sexécutent dans le contexte du processus qui fait la demande daccès au système. De plus, les fonctions quils implémentent sont considérées comme limitées et synchrones. Cest-à-dire que le pilote GDI est appelé pour effectuer une fonction et ne retourne pas à lappelant tant que cette fonction nest pas terminée. Les pilotes du mode noyau (Kernel Mode Driver) (KMD). Il prennent en charge tous les aspects des demandes dE/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 dinteragir avec les ports dE/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 à lappeleur, permettant à celui-ci de continuer son exécution ou tout simplement se bloquer en attendant la fin de laccès E/S.

158 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 daccès mémoire est connu sous le nom de niveau dE/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 nutilise pas IOPL 1 et IOPL 2. Le mot noyau possède plusieurs sens selon où il est employé. Le code du système dexploitation 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 dexploitation et tournent tout deux dans le mode noyau.

159 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, cest un pilote type dune architecture NT permettant lappel de nombreuses routines fournies par le système dexploitation. Il est possible pour les designers de périphériques de partir avec la base dun 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 lutilise lors de lexécution, ce qui rend lexécutable plus léger. La librairie nest chargée quune fois en mémoire, même sil elle est utilisée par plusieurs exécutables. Si des modifications sont apportées à la librairie, il nest pas nécessaire de recompiler lexécutable.

160 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 à lapplication dexécuter certaines tâches.


Télécharger ppt "INF 6500 Structures dordinateurs. Partie 1: Introduction et principes."

Présentations similaires


Annonces Google