riques) sont généralement exécutées caractère par caractère à partir d’opé-
randes en mémoire. Ainsi, pour l’addition décimale, l’instruction définit les adresses des derniers caractères des chaînes opérandes ; ceux-ci sont acheminés vers l’opérateur décimal, qui les additionne en conservant l’éventuelle retenue ; le résultat est rangé en mé-
moire ; le même processus se reproduit pour les autres caractères, mais en tenant compte de la retenue due à l’addition précédente ; l’opération s’arrête lorsqu’on atteint le bout de chaîne ; la machine en est prévenue, soit que l’instruction comporte des indications de longueur de chaîne, soit que les chaînes débutent par un caractère portant une marque de bout de chaîne.
Aux opérateurs arithmétiques sont associés des indicateurs permettant de conserver des informations concernant le résultat de la dernière opération réalisée. Ce sont ces indicateurs qui sont testés lors des instructions de branchement conditionnel.
L’unité de commande
L’unité de commande (ou séquenceur) orchestre le fonctionnement de l’ordinateur. Elle génère et distribue les signaux qui commandent et positionnent les différents organes du chemin des données. Ces signaux, appelés microcommandes, doivent être produits
selon un diagramme des temps précis correspondant à la durée des micro-opérations composant l’instruction.
Le séquenceur
Le séquenceur peut être conçu comme
un automate fini dont l’état interne dépend du code-opération et des conditions d’adressage de l’instruction en cours, d’indicateurs définissant l’état des différents organes de la machine, enfin de la phase dans laquelle se trouve l’instruction. Généralement, il est cadencé par une horloge qui fournit des tops régulièrement espacés, sur lesquels sont synchronisés les microcommandes ainsi que les changements de phase. Les relations booléennes liant chaque microcommande aux composantes des états internes du séquenceur sont appelées équations logiques de l’ordinateur.
La microprogrammation
L’introduction du logiciel dans la réalisation de l’unité de commande conduit aux techniques de microprogrammation. Chaque instruction est alors interprétée par le déroulement d’un microprogramme qui lui est propre.
Les microprogrammes sont stockés
dans une mémoire rapide spécialisée (généralement de 2 à 4 fois plus rapide que la mémoire centrale) et exécutés micro-instruction après micro-instruction, chaque micro-instruction géné-
rant directement les microcommandes associées à une phase de l’instruction.
Bon compromis entre les performances du matériel et la souplesse du logiciel, la microprogrammation ouvre en effet de multiples horizons : remplacement de sous-programmes usuels par des su-downloadModeText.vue.download 541 sur 625
La Grande Encyclopédie Larousse - Vol. 14
7984
per-instructions beaucoup plus perfor-mantes, jeu d’instructions variable en fonction de l’application, instructions très évoluées sur des petites machines économiques permettant la réalisation de gammes de machines compatibles (c’est-à-dire admettant strictement le même langage de la plus économique à la plus puissante), interprétation efficace du code d’une machine donnée sur une machine de conception diffé-
rente, etc.
Les interruptions
prioritaires
Enchaînant systématiquement les instructions, l’unité centrale resterait parfaitement aveugle au monde extérieur s’il n’y avait les interruptions prioritaires. L’effet d’un signal d’interruption est d’arrêter provisoirement le déroulement du programme en cours pour faire exécuter en priorité un programme associé à ce signal d’interruption. En pratique, l’unité de commande analyse les demandes d’interruption en fin d’instruction. Si l’une de ces demandes est positionnée, elle sauvegarde en mémoire le contexte du programme en cours (contenu du comp-
teur d’instructions, des indicateurs, de certains registres) et instaure à partir d’informations en mémoire le contexte associé à l’interruption, ce qui donne automatiquement le contrôle au programme d’interruption. La dernière instruction de ce programme restaure dans les registres le contexte précé-
demment sauvegardé, ce qui implique automatiquement la reprise du programme interrompu. Le système d’interruption d’un ordinateur comprend généralement plusieurs niveaux hié-
rarchisés de priorité, de sorte qu’un programme d’interruption puisse lui-même être interrompu par une interruption survenant sur un niveau de priorité plus élevé.
Les systèmes d’interruption ont
d’abord été développes en vue des applications en temps réel de type
« contrôle de processus industriel » où l’ordinateur doit réagir rapidement à des événements extérieurs. L’utilisation d’un système d’interruption évo-lué évite ainsi la scrutation cyclique par programme de tous les événements possibles, qui entraînerait un gâchis du temps d’unité centrale et surtout un temps moyen de réaction plus élevé.
Dans les ordinateurs orientés vers le calcul scientifique ou la gestion, les interruptions renvoient systématiquement au système d’exploitation ; celui-ci est ainsi prévenu des anomalies de fonctionnement de l’ordinateur, des erreurs détectées dans les programmes (instruction illicite, tentative de division par zéro), ce qui lui permet des débranchements vers les programmes
d’édition d’erreur ; d’autre part, toutes les requêtes provenant des organes d’entrée-sortie viennent interrompre un module du système d’exploitation, qui est ainsi tenu au courant de l’utilisation des différents périphériques et met en oeuvre les programmes chargés de les gérer.
Les unités d’échange
Les opérations d’entrée-sortie permettent la communication en entrée de la périphérie vers la mémoire centrale et la communication en sortie de la mémoire centrale vers la périphérie, cette dernière comportant à la fois les organes de communication avec le
monde extérieur et les mémoires auxiliaires. Le problème fondamental des entrées-sorties réside dans la diffé-
rence de vitesse entre l’unité centrale, purement électronique, qui travaille au millionième de seconde, et la plupart des périphériques, dont les organes mécaniques imposent un rythme beaucoup plus lent, mais parfaitement im-pératif. On a pu admettre, à l’origine, que l’unité centrale reste bloquée pendant le transfert de tout un ensemble d’informations ; par la suite, qu’elle déroule un petit programme d’interruption chaque fois que l’unité péri-phérique était prête pour le transfert d’une information élémentaire (mot ou caractère). Ces solutions se révèlent inacceptables dès lors que la périphérie d’un système informatique devient importante : les opérations d’entrée-sortie se déroulent aujourd’hui en simultanéité avec le traitement. Cela implique qu’elles soient prises en charge par un nouveau type d’unité, appelé unité d’échange ou canal, qui soit capable de gérer indépendamment de l’unité centrale un transfert entre une zone de mémoire centrale et la périphérie.
Des instructions spéciales de début d’entrée-sortie commandent à l’unité centrale de fournir à l’unité d’échange les informations qui lui seront nécessaires pour l’exécution de l’opération d’entrée-sortie. À partir de cet instant, l’unité d’échange exécute l’opération demandée de façon absolument indé-
pendante de l’unité centrale en se syn-chronisant sur l’organe périphérique, qui travaille à son rythme propre, et en demandant directement à la mémoire
les accès nécessaires. Quand l’opération est terminée, l’unité d’échange adresse une interruption à l’unité centrale pour l’en prévenir. Les unités d’échange sont de plus en plus assimilables à des petits ordinateurs qui exé-