Les systèmes microprogrammés
Transcription
Les systèmes microprogrammés
Les systèmes microprogrammés A). Généralités : Un système microprogrammé est un ensemble de cartes électroniques (ou un circuit intégré) qui va pouvoir être programmé pour réaliser des tâches particulières. Le but étant de pouvoir en changer les tâches sans toucher à l’électronique. Sa structure va être la suivante : Le processeur est l’organe principal de la carte, c’est lui « qui fait le travail » en exécutant le programme qu’on lui a demandé. La mémoire (RAM et ROM) permet de stocker le programme et les données (initiales et résultats). Les Ports d’entrées-sorties permettent une interface avec l’extérieur, elle gère les entrées (clavier, capteurs, …) et les sorties (écran, relais, …) du montage. Le Bus de données est le bus sur lequel circulent les données. Le Bus d’adresses est le bus sur lequel circulent les adresses des données. Le Bus de contrôle est le bus sur lequel circulent les commandes (horloge, ordres de lecture, ordres d’ écriture. B). Les Entrées – Sorties : Dans un système à base de microprocesseur, on appelle Entrées-Sorties les échanges d'informations entre le processeur et les périphériques extérieurs qui lui sont associés. Le système peut alors réagir à des modifications de son environnement, voire même le contrôler. Elles sont parfois désignées par l'acronyme I/O, issu de l'anglais Input/Output. On prend toujours comme référence le microprocesseur. Dans un système : Les entrées sont les données envoyées par un périphérique (disque, réseau, clavier, interrupteur, ...) à destination de l'unité centrale; Les sorties sont les données émises par l'unité centrale à destination d'un périphérique (disque, réseau, écran, relais, ...). Exemple : taper sur les touches du clavier envoie une série de codes vers le processeur ; ces codes sont considérés comme des données d'entrée ; Micro-Processeur 1 JFA07 le processeur affiche les résultats du traitement des données sur un écran ; ce sont des données de sortie. C). La mémoire : I ). Principe : 1°). Définitions : Il faut voir la mémoire comme un tableau, où les lignes contiennent les données, et le numéro de la ligne du tableau est l’adresse. Les données sont groupées : Un groupe de 4 bits s’appelle un quartet, Un groupe de 8 bits s’appelle un octet, Un groupe de 16 bits s’appelle un mot, … Un groupe de 32 bits s’appelle un double mot, … 2°). Capacité d’une mémoire : La capacité d’une mémoire représente le nombre total de bits et le format correspond à la longueur des mots. Le nombre de bits d'adresse k définit le nombre total de mots de la mémoire, si n est le nombre de bits par mot, la capacité de la mémoire est donnée par : Capacité = 2k mots = 2k x n bits Cette capacité est exprimée en multiple de 1024 ou kilo. La table suivante résume la valeur des autres préfixes utilisés pour exprimer les capacités des mémoires : Symbole Préfixe Capacité 1k (kilo) 210 = 1024 1M (méga) 220 = 1048576 1G (giga) 230 = 1073741824 1T (tera) 240 = 1099511627776 Application : On a une mémoire qui possède 9 fils sur le bus d’adresses et 4 bits sur le bus de données. Donnez sa capacité en Bits, octets, kb, kO ? Réponse : Micro-Processeur 29 x4 512 x4 2048 bits 2 kbits 256 o 1 / 4 ko 2 JFA07 II ). Mémoire vive : 1°). Définitions : La mémoire vive, aussi appelée RAM (Random Access Memory, soit mémoire à accès aléatoire), est un type de mémoire informatique à accès aléatoire (par opposition à séquentiel) et en lecture-écriture. On l'appelle aussi mémoire volatile pour signifier que toutes les données sont perdues à l'extinction de l'alimentation électrique. Il s'agit typiquement de la mémoire électronique qui contient les données en cours de traitement dans un système programmé. 2°). Désignation : La mémoire vive (RAM) est généralement opposée à la mémoire morte (ROM) : il est possible de lire et écrire de la mémoire vive alors qu'il est uniquement possible de lire de la mémoire morte. En revanche, la mémoire morte conserve les données lorsque l'alimentation électrique est coupée. La mémoire morte n'est donc pas volatile. Il existe aussi un type intermédiaire de mémoire électronique à accès aléatoire, accessible en lecture et écriture comme la RAM, mais non volatile comme la ROM : la NVRAM. 3°). Technologie : Une carte mémoire RAM de 4 Mo pour ordinateur VAX 8600 (circa 1986). DIP SIPP SIMM 30 Broches SIMM 72 Broches DIMM RIMM Micro-Processeur 3 JFA07 La mémoire informatique est un composant qui fut d'abord magnétique (tores de ferrite), puis devint électronique dans les années 1970, et qui permet de stocker et relire des informations binaires. Son rôle est notamment de stocker les données qui vont être traitées par l'unité centrale (ou le microprocesseur) ; elle n'a rien de commun en temps d'accès (quelques dizaines ou centaines de nanosecondes) avec le disque dur (quelques millisecondes, soit dix mille à cent mille fois plus). La RAM présente la particularité qu'on peut y accéder à la fois en lecture et en écriture. Une activation électronique appropriée permet si besoin de verrouiller temporairement en écriture des blocs physiques donnés. L'adressage d'une mémoire (traduction de tensions électriques sur des fils en adresse mémoire) se fait par un mécanisme nommé le Décodage d’adresses (chip select). Il est très facile de munir un microprocesseur d'une mémoire non contiguë (par exemple de 0 à 4095, puis un trou, puis de la mémoire entre 16384 et 32767), ce qui facilite beaucoup la détection d'erreurs d'adressage éventuelles. Les informations peuvent être organisées en mots de 8, 16 ou 32 bits voir plus. Certaines machines anciennes avaient des mots de taille plus exotique, comme par exemple 60 bits pour le Control Data 6600, 36 bits pour l'IBM 7030 « Stretch » ou le DEC PDP-10 et 12 bits pour la plupart des premiers miniordinateurs de DEC, les appareils d'instrumentation travaillant au mieux sur 12 bits à l'époque. Mais : dans les mémoires à parité, un neuvième bit (dit de contrôle de parité) existe de façon invisible, dans les mémoires à correction automatique d'erreur sur 1 bit et détection sur plus d'un bit (ECC), ces bits invisibles sont parfois au nombre de six ou plus, chaque mot des mémoires des serveurs modernes dits non-stop ou 24x365 dispose en plus des bits de correction de bits de remplacement qui prennent la relève du ou des bits défaillants à mesure du vieillissement de la mémoire : une défaillance de 10-11 chaque année se traduit en effet par plus d'un bit défaillant par an sur une mémoire de 128 Go. Les fabricants recommandent souvent d'utiliser de l'ECC à partir d'1 Go de RAM. 4°). Divers types de mémoire vive : a) La Ram Statique : C’est une mémoire peu gourmande en énergie, mais chaque bit mémoire nécessite 4 transistors Mos. Ainsi une mémoire de 8ko nécessite 8192*8*4 = 262 144 transistors MOS ! Micro-Processeur 4 JFA07 b) La Ram Dynamique : Une mémoire dynamique (DRAM) ne conserve ses informations que si elle est « rafraîchie » régulièrement, c'est-à-dire si un signal lui est transmis de manière régulière (toutes les x millisecondes) afin de remettre au bon niveau les charges électriques représentant l'information, et qui sinon s'affaibliraient progressivement jusqu'à disparaître. Pourquoi compte-tenu de ces contraintes de rafraîchissement et de consommation utiliser quand même de la DRAM ? Parce qu'elle est à la fois bon marché et rapide. Pourquoi est-elle bon marché et rapide? Parce que la cellule mémoire élémentaire de la DRAM est très simple et ne nécessite que peu de silicium. En 2007, on trouve des barrettes de 512, 1024, 2048 et plus rarement 4096 Mo au catalogue des constructeurs. On distingue sur les machines actuelles les types de mémoire RAM : SDRAM (Synchronous Dynamic RAM) pour les machines de la génération Pentium II, Pentium III. On distingue la SDRAM 66, 100 et 133 (fréquence d'accès en MHz). RDRAM (Rambus Dynamic RAM). Pour les machines de génération Pentium III et 4. Développées par la société RAMBUS, elles souffrent notamment d'un prix beaucoup plus élevé que les autres types de mémoires et de brevets trop restrictifs de la part de cette société. DDR-SDRAM (Double Data Rate-SDRAM). Pour les machines de génération Pentium III et 4. On distingue les DDR PC1600, PC2100, PC2700, PC3200 etc. Le numéro représente la quantité théorique maximale de transfert d'information en Mégabits (il faut diviser par 8 pour avoir leur fréquence réelle de fonctionnement). DDR2-SDRAM (Double Data Rate 2-SDRAM). Pour les machines de génération Pentium 4 et plus. On distingue les DDR2 533 et DDR2 667. Le numéro représente la vitesse maximum d'accès. Certains constructeurs privilégient encore la technique d'appellation basée sur la quantité de données théoriquement transportables (PC4300, PC4500, etc), mais la plupart semblent retourner à la vitesse réelle de fonctionnement afin de distinguer plus clairement la DDR2 de la génération précédente. XDRRAM (XDimm Rambus RAM). Technologie basée sur la technologie Flexio développée par Rambus. Micro-Processeur 5 JFA07 Elle permet d'envisager des débits théoriques de 6,4Go/s à 12,8Go/s en rafale. Il existe aussi des mémoires Flash. Ce sont des mémoires NVRAM effaçables électriquement (EEPROM), qui par conséquent gardent la mémoire sans être alimentée. On les utilise dans les appareils mobiles (appareils photo, téléphones portables etc.). Les utilisateurs de PDA auront déjà remarqué que leur temps d'accès, même en lecture seule, est pour le moment bien plus lente que celui de la mémoire dynamique. III ). Mémoire morte : 1°). Désignation : La mémoire morte, aussi appelée ROM (Read Only Memory, soit mémoire à lecture seule) est une mémoire informatique impossible à modifier. La mémoire morte n'est pas volatile, elle ne perd pas ses données, en l'absence de courant électrique, contrairement à la mémoire vive. 2°). Utilisation : Les mémoires mortes sont utilisées, entre autres, pour stocker : les informations vitales d'un ordinateur (BIOS, instructions de démarrage, microcode) Puisqu'elles ne peuvent pas être modifiées, il n'y a pas de risque d'effacement accidentel par l'utilisateur. Dans le cas d'un BIOS qu'il est possible de mettre à jour (avec une durée d'écriture bien plus longue que la durée de lecture), c'est abusivement que certaines sources les désignent sous le nom de ROM. Il existe pour elles un sigle approprié, et utilisé par des constructeurs comme IBM ou Intel, qui est NVRAM : non-volatile RAM. des tables de constantes ou bien des tables de translation d'une valeur par une autre. des jeux vidéo de consoles d'ancienne génération. La faible capacité de stockage de la ROM a fait finalement perdre ce marché au profit du CDROM, puis du DVD- ROM. Les temps d'accès à ce type de mémoire étant relativement lent (pour information les RAM ont un temps d'accès moyens de 45 nanosecondes), les données stockées sont généralement copiées au démarrage, dans une mémoire vive plus rapide. On appelle cette opération le shadowing. Micro-Processeur 6 JFA07 La première EPROM fabriquée par INTEL, 256 x 8, ~1969. 3°). Types de ROM : Il existe différents types de ROM en fonction de la possibilité de les programmer ou de les effacer : Les ROM (Read Only Memory) dont le contenu est défini lors de la fabrication. Les PROM (Programmable Read Only Memory) sont programmables par l'utilisateur, mais une seule fois. Les EPROM (Erasable Programmable Read Only Memory) sont programmables par l'utilisateur. Effaçables par une machine spéciale, la mémoire doit donc être facilement démontable de son support. Les EEPROM (Electrically Erasable Programmable Read Only Memory) sont programmables par l'utilisateur. Elles sont effaçables électriquement. Les UVPROM (Ultra Violet Programmable Read Only Memory) sont programmables par l'utilisateur. Elles sont effaçables par bombardement d'ultra violet. Micro-Processeur 7 JFA07 D). Synthèse : E). Mémoire de masse : 1°). Définitions : En informatique, le terme de mémoire de masse regroupe tous les systèmes de stockage d'informations (données et programmes) auxquels a accès un microprocesseur (ordinateur). Disque dur Disquette Bande magnétique Disque Zip CD DVD Clé USB Micro-Processeur 8 JFA07 Dans une optique moins "locale" mais plutôt orientée réseau : utilisation de système de fichiers distribués tels que Nfs ou Coda, connexion à un serveur Ftp ou à une base de données externe. La disquette 3"1/2 à longtemps été le moyen de stockage et d'échange traditionnel entre PCs, l'arrivée successive du disque Zip de Iomega et des graveurs de CD ne remis pas, ou très peu, en question cette suprématie, notamment à cause du coût excessifs de ces derniers à l'époque. La Clé USB semble être la candidate idéale, en raison de son faible cout ( le modèle de base pouvant s'acheter autour de 30 €), de sa capacité bien plus importante ( de 256 Mo à 8 Go contre 1,44 Mo pour la disquette) et de son encombrement ridicule, sa taille approchant le plus souvent celle d'un briquet. F). Le processeur : 1°). Généralités : Le processeur, (ou CPU, Central Processing Unit, « Unité centrale [de traitement] » en anglais) est le composant essentiel d'un Système (Micro) Programmé. Il exécute les programmes qui permettent d’effectuer les principaux calculs. C’est en grande partie de lui que dépendent les performances du système. Il permet d'effectuer des opérations arithmétiques (additions, soustraction, multiplications, …) et logiques (Non, Ou, Et, OU Exclusif, …) et d'organiser des transferts de données entre les différents éléments du système ; Sa cadence (le nombre de microinstructions qu'il effectue en une seconde) est exprimée en Hertz (Hz)et dépend donc de la fréquence de son horloge. Il faut faire la distinction entre CPU, processeur, microprocesseur et microcontrôleur. le processeur, c'est le nom générique. C’est un composant (ou une carte électronique) puissant (par opposition au microprocesseur). le microprocesseur, c'est un composant généraliste (il peut tout faire, et n'est optimisé pour rien), employé préférentiellement dans les systèmes informatiques, qui nécessite quelques circuits complémentaires pour pouvoir dialoguer avec son environnement. Selon les types il peut traiter directement des données de 8, 16, 32, 64 et même quelquefois 128 bits. C'est le composant de base de l'informatique, mais en instrumentation on lui préférera généralement des composants plus spécialisés, donc plus optimisés pour les tâches qu'on leur confiera, et donc plus performants. le microcontrôleur est plus adapté aux applications embarquées car il comporte sur sa puce un certain nombre d'interfaces en plus du microprocesseur (Ram, ROM, I/O,…), par contre il est généralement moins puissant en terme de rapidité ou de taille de mémoire adressable et le plus souvent cantonné aux données de 8 ou 16 bits. le processeur de signal (DSP : Digital Signal Processeur) est beaucoup plus spécialisé calcul. Il est optimisé pour le traitement du signal, mais n'est pas prévu pour accomplir des tâches généralistes de bas niveau qu'exécutent les deux précédents. le composant ASIC ou FPGA. Ces composants sont souvent exploités complémentairement : un ASIC est très spécifique d'une application et a été spécialement développé pour celle-ci, à l'inverse le circuit FPGA est par construction destiné à faire, a priori, n'importe quoi puisque c'est l'utilisateur qui devra le configurer pour réaliser une application spécifique. Très souvent le FPGA sert à la mise au point, et un fondeur de silicium saura ensuite transcrire ses fonctionnalités en un circuit ASIC figé et a priori de moindre coût. L'un comme l'autre seront, selon les cas, employés soit en complément, soit en remplacement d'un processeur. Des bibliothèques de plus en plus étendues de fonctions prédéfinies, la reconfiguration dynamique et bientôt la Micro-Processeur 9 JFA07 généralisation des outils permettant l'implantation hardware quasi immédiate (c'est à dire sans passer des centaines d'heures de transcription et de débogage) de logiciels écrits directement en langage C rendent ces composants FPGA de plus en plus attractifs non seulement pour des productions de petite et moyenne série, mais aussi de série importante eu égard à leur diminution de coût (production + développement), leur accroissement de taille et de performances qui dorénavant rendent la solution FPGA de plus en plus souvent plus économique que la solution ASIC. En ce qui concerne les ordinateurs de type compatibles PC actuels, les deux principales sociétés qui conçoivent les processeurs sont Intel et AMD (processeurs compatibles Intel). Cyrix arrêta de produire des processeurs en 1998. Un nouveau venu, VIA, propose des processeurs basse consommation. Après avoir été de farouches adversaires dans les années 1980, Apple et IBM se sont associés au début des années 1990 à Motorola afin de produire les processeurs PowerPC, basés sur l'architecture Power d'IBM. Apple a utilisé alternativement des processeurs Motorola ou IBM dans ses machines jusqu'à la dernière évolution à l'heure actuelle : le PowerPC 970. En 2004, Motorola s'est séparé de sa division semi-conducteur et en a fait une entreprise indépendante : Freescale. Depuis début 2006, Apple utilise des processeurs Intel, sans que l'on sache si les futurs ordinateurs d'Apple partageront une architecture matérielle commune avec les compatibles IBM PC. Beaucoup de calculatrices graphiques (TI-89...) et de téléphones portables (toutes marques confondues) sont basés sur des processeurs de la famille m68k. 2°). Histoire : Le microprocesseur a été inventé par Marcian Ted Hoff en 1971, alors que celui-ci était ingénieur chez Intel. À l'époque, ni la direction d'Intel ni le client japonais à qui était destiné le microprocesseur, n'ont été intéressés par l'invention. En 1990, on apprenait toutefois que la paternité du concept de Micro-processeur jusque là revendiquée depuis 1971, et 1973 pour le brevet, par Intel et Marcian Ted Hoff, était mal-fondée. En effet Gilbert Hyatt (1938-) avait dès 1970 déposé un brevet plus étendu sur ce concept et avait poursuivi, en toute discrétion pour éviter les pressions, la validation de ce brevet pendant les 20 années qui suivirent. Ce brevet s'il le souhaitait l'autoriserait à percevoir des royalties (droits d'auteur) sur tous les micro-processeurs fabriqués de par le monde pendant les vingt ans qui ont suivi. Le premier microprocesseur commercialisé est le 4004 4-bits le 15 novembre 1971, qui servit au départ à fabriquer des contrôleurs graphiques en mode texte. Il fut suivi par le 8008. Ces processeurs sont les précurseurs des Intel 8080 et Zilog Z80 et de la future famille des Intel x86. Un autre microprocesseur, le SC/MP (Scamp) de National Semiconductor effectuait ses calculs en virgule fixe décimale. Il fut pour cette raison largement utilisé dans les distributeurs automatiques à restitution de monnaie qui commencèrent à apparaître dès cette époque. 3°). Familles de microprocesseurs : Il existe plusieurs familles de microprocesseurs : La plus connue par le grand public est celle de la famille x86, développée principalement par Intel (Pentium), AMD (Athlon), VIA, Transmeta... Les deux premiers constructeurs sont désormais les seuls encore réellement dans la course et fabriquent la plus grande partie des processeurs pour PC (2005). Micro-Processeur 10 JFA07 Les PowerPC d'IBM et Motorola équipent actuellement les Macintosh (Apple Computer) ainsi que divers systèmes embarqués. Une puce différente équipée de 10 processeurs périphérique intégrés a été choisie pour les consoles de jeu : Playstation 3, la Xbox 360 et probablement la future Nintendo Wii... Le 6502 a servi à fabriquer le célèbre Apple II. La famille 68000 de Motorola animait les anciens Macintosh, les Megadrive, les Atari ST et les Commodore Amiga. Leurs dérivés (Dragonball, ColdFire) sont toujours utilisés dans des systèmes embarqués. Parmi les familles moins connues du grand public: La famille Sparc anime la plus grande partie des stations de travail de Sun Microsystems. La famille MIPS anime les stations de travail de Silicon Graphics, des consoles de jeux, comme les PSOne et des systèmes embarqués, ou des routeurs Cisco. La famille StrongARM est de nos jours utilisée uniquement dans les systèmes embarqués, elle a précédemment été utilisée par Acorn pour ses Archimedes et RiscPC. 4°). Fonctionnement : Les microprocesseurs sont cadencés par une horloge (signal régulier rapide, imposant un rythme au circuit et, assurant éventuellement une synchronisation avec les autres composants, tel que la mémoire). Au milieu des années 1980, les microprocesseurs fonctionnaient de 4 à 8 MHz. Courant 2004, cette vitesse d'horloge atteint 4 GHz sur des modèles commerciaux. Plus la vitesse de l'horloge est élevée, plus le microprocesseur sera capable d'exécuter à un rythme élevé les instructions de base des programmes. Mais l'augmentation de la vitesse d'horloge présente des inconvénients : plus le microprocesseur tourne vite, plus il consomme d'électricité, et plus il chauffe. Les microprocesseurs actuels sont optimisés pour exécuter plus d'une instruction par cycle d'horloge, ce sont des microprocesseurs avec des unités d'exécution parallélisées. De plus ils sont dotés de procédures qui « anticipent » les instructions suivantes avec l'aide de la statistique. Dans la course à la puissance des microprocesseurs, deux méthodes d'optimisation sont en concurrence : 1. La technologie du jeu d'instructions simplifié (RISC, Reduced Instruction Set Computer), rapide avec des instructions simples, facile à fabriquer et dont on peut monter la vitesse de l'horloge sans trop de difficultés techniques. 2. La technologie appelée CISC (Complex Instruction Set Computer), dont chaque instruction complexe nécessite plus de cycles d'horloge, mais qui a en son cœur beaucoup d'instructions pré-câblées. Néanmoins, avec la considérable augmentation de la taille des puces électroniques et la gigantesque accélération des fréquences d'horloge, la distinction entre RISC et CISC a quasi complètement disparu. Là où des familles tranchées existaient, on observe aujourd'hui des microprocesseurs où une structure interne RISC apporte de la puissance tout en restant compatible avec une utilisation de type CISC (la famille Intel x86 a ainsi subi discrètement une transition entre une organisation initialement très typique d'une structure CISC. Actuellement elle Micro-Processeur 11 JFA07 utilise un cœur RISC très rapide, s'appuyant sur un système de réarrangement du code à la volée) mis en œuvre, en partie, grâce à des mémoires cache de plus en plus étendue, comportant jusqu'à trois niveaux. 5°). Structure d'un microprocesseur : L'unité centrale d'un microprocesseur comprend essentiellement : une unité arithmétique et logique (UAL) qui effectue les opérations, des registres qui permettent au microprocesseur de stocker temporairement des données, une unité de contrôle qui commande l'ensemble du microprocesseur en fonction des instructions du programme. Certains registres ont un rôle très particulier : le registre indicateur d'état (flags), ce registre donne l'état du microprocesseur à tout moment, il peut seulement être lu, le compteur de programme (PC, Program Counter), il contient l'adresse de la prochaine instruction à exécuter, le pointeur de pile (SP, Stack Pointer), c'est le pointeur d'une zone spéciale de la mémoire appelé pile où sont rangées les arguments des sous-programmes et les adresses de retour. Micro-Processeur 12 JFA07 L'unité de contrôle peut aussi se décomposer : le registre d'instruction, mémorise le code de l'instruction à exécuter, le décodeur décode cette instruction, le séquenceur exécute l'instruction, c'est lui qui commande l'ensemble des organes du microprocesseur. 6°). Fabrication des microprocesseurs : La fabrication d'un microprocesseur est essentiellement identique à celle de n'importe quel circuit intégré. Elle suit donc un procédé complexe. Mais l'énorme taille de la plupart des microprocesseurs a tendance à augmenter encore le coût de l'opération. La loi de Moore, qui indique que le degré d'intégration des microprocesseurs double tous les 18 mois, indique également que les coûts de production doublent en même temps que le degré d'intégration. La fabrication des microprocesseurs est aujourd'hui considérée comme l'un des deux facteurs d'augmentation de la capacité des unités de fabrication (avec les contraintes liées à la fabrication des mémoires à grande capacité). La finesse de la gravure industrielle a atteint désormais 45 nm. G). Adressage mémoire : 1°). Définitions : L'adressage mémoire est une technique informatique permettant au processeur d'accéder à la mémoire informatique. L'interface utilisée est dans la plupart des cas un bus, c'est-à-dire un ensemble de fils dédiés à une utilisation particulière (ici l'accès à la mémoire). Sur N fils, on peut coder 2N valeurs. Ainsi, en précisant la largeur du bus d'adresse, en nombre de bits (ou fils) on indique la capacité mémoire maximum accessible par le processeur (la taille de son espace d'adressage). En plus des fils codant l'adresse, il en faut au minimum un fil supplémentaire indiquant l'opération qui sera faite sur la mémoire : lecture ou écriture. Il est possible de multiplexer le bus d'adresse avec le bus de données, en mettant en commun un certain nombre de fils, sachant qu'un signal supplémentaire devra être généré pour savoir comment interpréter les valeurs binaires circulant sur ces fils (adresse ou données). Un exemple de processeurs avec bus multiplexé : les 8086 ou 8088 d'Intel. Un bus d'adresse trop petit, donc un adressage mémoire restreint, a été l'un des facteurs déterminants dans la disparition de certaines lignées d'ordinateurs. Par exemple le PDP-10, une machine 36 bits dont l'espace d'adressage n'était que de 18 bits (256 kilo octets), n'a jamais eu de successeur. La gamme de miniordinateurs PDP-11 de DEC à été remplacée par les VAX, ce qui est d'ailleurs l'abréviation de Virtual Address Extension. La méthode d'accès décrite ici est la plus simple : les fils d'adresses relient directement le processeur à la mémoire. Des mécanismes plus complexes, tels que ceux utilisés pour la mise en place d'un système à mémoire virtuelle nécessitent un décodage des adresses plus élaboré. Micro-Processeur 13 JFA07 H). Décodage d’adresses ou Chip select : On nomme chip select une entrée de contrôle de nombreux circuits intégrés, tel que les puces mémoires, permettant d'activer ou désactiver le circuit. Quand elle est active, le composant peut être adressé, quand elle ne l'est pas le composant est dans un mode dit standby (au repos). L'économie d'énergie qui en découle est appréciable, surtout quand le nombre de circuits désactivés est important (ce qui est le cas pour les puces formant la mémoire centrale d'un ordinateur par exemple). I ). Exemple pratique immédiat : Lorsque vous assemblez un système à microprocesseur et que vous devez monter une ROM ou une RAM (puces) à l'adresse hexadécimale 4000, vous êtes typiquement confronté à un problème de chip select. II ). Autre exemple : Voici le diagramme de connexion de l'EPROM Intel C1702A. La broche numéro 14 est le Chip Select, dénoté CS. La consommation est de 35 mA et de 5 mA quand la puce est inactivée par le biais du Chip Select. Le brochage de la puce Intel C1702A. La patte 14 est le Chip Select, actif quand il est à 0 V. La puce Intel C1702A. Micro-Processeur 14 JFA07 III ). Mise en application : C'est une extraction des fils d'adresses, dirigées vers une unité de décodage qui contrôle les broches Chip Select des unités raccordées sur les bus d'adresses et données. Le CPU est le processeur, le PIO le contrôleur d'entrées/sorties parallèle et SIO le contrôleur d'entrées/sorties série. Sur un ordinateur plus «étoffé» on trouvera plutôt des contrôleurs de bus (PCI etc.). Suivant le nombre de fils que possède le bus d'adresse d'un microprocesseur, on peut déterminer la taille mémoire maximum qu'il peut adresser. Par exemple s'il possède 16 fils d'adresse, il pourra accéder à 64 Ko (216Octets) de mémoire. Le bus d'adresse est donc décodé pour contrôler la ligne chip select des puces qui y sont relié. Il y a plusieurs façons de décoder les adresses : 1°). Décodage direct : Il suffit de prendre directement les fils d'adresses pour activer les composants. Cela n'est possible que dans les cas ou l'adressage est très simple comme par exemple un microprocesseur qui adresse 4 Ko de ROM et 1 Ko de RAM, sans aucune autre contrainte. Si l'on raccorde directement le fil A14 du bus d'adresse à la broche Chip Select de la ROM et le fil A12 du bus d'adresse à la broche chip select de la RAM, ces deux espaces mémoire seront accessibles comme suit : Mémoire Fil d'adresse Plage d'adresses ROM A14 16 K - 20 K RAM A12 4K-5K Un autre argument en la faveur de cette technique est l'économie réalisée, le nombre de circuits extérieurs étant nul. Micro-Processeur 15 JFA07 2°). Décodage par logique combinatoire : Reprenons le cas où le montage précédent, mais on à maintenant la contrainte que les 4 Ko de ROM doivent être accessible à partir de l'adresse 0, et les 1 K de RAM contigüe, toute la mémoire étant ainsi accessible entre 0 et 5 Ko. Découpons la mémoire en tranches de 1 K, et assignons les 4 premières à la ROM et la dernière à la RAM. Les adresses sont alors : A15 0 0 0 0 0 x A14 0 0 0 0 0 x A13 0 0 0 0 0 x A12 0 0 0 0 1 x A11 0 0 1 1 0 x A10 0 1 0 1 0 x A9 x x x x x x A8 x x x x x x A7 x x x x x x A6 x x x x x x A5 x x x x x x A4 x x x x x x A3 x x x x x x A2 x x x x x x A1 x x x x x x A0 x x x x x x Plage 0K-1K 1K-2K 2K-3K 3K-4K 4K-5K 5 K - 64 K Adresses Assignation 0x0000 - 0x3FF ROM 0x0400 - 0x07FF ROM 0x0800 - 0x0CFF ROM 0x0D00 - 0x0FFF ROM 0x1000 - 0x13FF RAM 0x1400 - 0xFFFF Il faut donc construire un circuit à 6 entrées (de A10 à A15) et 2 sorties CSROM et CSRAM qui contrôleront chacune la broche Chip Select de la ROM et de la RAM. U6A 1 A15 1 1 1 1 1 2 U7A 7404 1 A14 U10A 2 1 2 13 7404 U8A 1 A13 2 U12A & 12 1 2 7411 & 3 CSROM 7408 U9A 7404 1 A12 2 U13A 7404 1 A11 U16A 2 1 2 7404 & U14A 1 2 3 7408 A10 & 3 CSRAM 7408 Décodage complet des adresses. La circuiterie est complexe et relativement lente et coûteuse. On constate qu'il faut une 3 circuits intégrés pour décoder l'adresse. Cette technique revient à décomposer l'adresse en deux parties : les N bits de poids fort permettront la sélection du circuit via son Chip Select, et les bits de poids faible à adresser les données à l'intérieur du circuit sélectionné. Cette méthode est à rapprocher de la technique de la pagination de la mémoire virtuelle. Bits de Sélection Adressage à l'intérieur de l'objet sélectionné A1 A1 A1 A1 A1 A1 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Micro-Processeur 5 4 3 2 1 0 0 0 0 0 0 0 0 x 1 0 0 0 0 0 0 0 x 1 0 0 0 0 0 0 0 x 1 0 0 0 0 1 1 1 x 1 0 0 1 1 0 0 1 x 1 0 1 0 1 0 1 0 x 1 x x x x x x x x x x x x x x x x x x 16 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x JFA07 3°). Décodage partiel : Il est possible de partiellement décoder l'adresse, dans cet exemple seul un inverseur est utilisé Dans l'exemple précédent, on remarque que le bit A12 est discrimant. On peut donc tout simplement l'utiliser pour partiellement décoder l'adresse : on économisera des circuits. On notera que l'adresse 0xFxxx sélectionnera la RAM, alors qu'il n'y a pas de RAM à cette adresse. 4°). Utilisation d'un décodeur : Des circuits intégrés spéciaux ont été conçu pour prendre en charge le décodage d'adresse, on les appelle donc simplement décodeurs ou bien parfois démultiplexeurs. Ils possèdent N entrées et 2N sorties. Voici la table de vérité pour un décodeur «3 vers 8» : ABC 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 S S S S S S S S 1 2 3 4 5 6 7 8 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 Celui-ci vient donc tout naturellement s'interfacer sur le bus d'adresse, d'où les N fils de poids fort iront vers l'entrée du décodeur, tandis que les 2N fils de sorties contrôleront les broches Chip Select des circuits. L'usage d'un décodeur implique que les blocs mémoires accédés sont de même taille. 5°). Autres méthodes : On peut utiliser une mémoire morte pour faire la sélection. Dans notre exemple ci-dessus, pour complètement décoder l'adresse, il suffit d'une mémoire de 64 x 2 bits dont le premier fil de sortie sera relié sur le Chip Select de la ROM et le second sur celui de la RAM. La mémoire contiendra la valeur 10 pour les adresses entre 0 et 4 K et 01 aux adresses entre 4 et 5 K et 00 au delà. L'inconvénient de l'utilisation de table de translation implanté sous forme de mémoire morte est qu'elle peut être d'assez grande capacité si beaucoup de bits sont utilisés pour décoder. Une PAL plus ou moins complexe est aussi parfois utilisée. Micro-Processeur 17 JFA07