INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
Dans le OHM selon l'invention, on ne considère plus les variables du combinateur (évoluant sur les axes de l'espace "n dimentionnel") comme des objets (trains par exemple) qui défilent sur des moyens (voies) . Les variables représentent au contraire les moyens (voies) qui défilent sous les objets (trains) qui sont alors considérés comme immobiles. Ceci conduit à affecter une variable à chaque moyen et non pas à chaque objet. Il faudra donc considérer autant de variables que de moyens (voie) candidats au traitement d'un objet (train). Le choix optimal d'un moyen s'opère grâce à la définition d'une contrainte spéciale dite : "contrainte de choix" qui est indépendante des contraintes disjonctives ou de subordination propresau problème à résoudre.
On remarquera que cette fonction de choix de moyen ou choix voie (dans le cas de circulations de train) est absolument indispensable pour prendre en compte les problèmes d'ordonnancement ferroviaire du type - doubles voies pour un meme sens de circulation avec dia gonaux de liaison (cas général de beaucoup de lignes de banlieue et des "doubles voies" banalisées) - gares terminales lorsque pour un ou plusieurs quais, l'entrée et la sortie peuvent se faire par plusieurs itinéraires (cas général des grandes gares SEC) .
A titre d'exemple, on considère (FIG 43) deux moyens (itinéraires de chemins de fer par exemple) I et I'. Les segments 1, 2, 3 et 8 de I sont confondus avec les segments 1', 2', 3' et 7' de I'. Les moyens I et I' sont différents pour les segments 4, 5, 6, 7 de I et 41, 5' et 6' de I'. Cette configuration correspond par exemple à une zone de gare où I' serait l'itinéraire direct (dit en vitesse) et I l'itinéraire dévié (avec ralentissement pour aiguillage). Le problème consiste à choisir pour un train qui se trouve en segment 3-3' l'itinéraire le plus intéressant compte tenu des autres trains qui occupent ou occuperont l'un ou l'autre itinéraire. Dans le choix de moyen on considère que le train T2 (FIG 43) est immobile et que ce sont les itinéraires I et I' qui défilent sous le train.Chaque itinéraire es'- représenté par une variable (x pour I et y pour 11) et le combinateur doit résoudre un problème d'ordonnancement d'itinéraires sous le train considéré comme immobile. Cet ordonnancement est provoqué par la défi- nition d'une contrainte de choix (surface hachurée, FIG 44) dans le plan d'analyse I I'.Cette contrainte de choix représente le fait qu'à partir du point de divergence (segment 3) les deux itinéraires ne peuvent traiter simultanément l'objet (train T2). :La contrainte de choix est construite en isse-di- sant les segments 4', 5', 6' de l'itinéraire I' avec les se- ments 4, 5, 6 et 7 de l'itinéraire I, On remarquera que les contraintes disjonctives et de subordLnatlon qui pourraient exister entre deux objets sont identiques (par réciprocité) aux contraintes existant entre les deux moyens qui traitent ces deux objets.Cependant, lorsqu'un choIx vient d'être réalisé, cela signifie qu'un moyen traite l'objet et que l'autre moyen n'est pas utilisé. Comme on a pris une variable par moyen pour représenter un objet, il en résulte que la variable du moyen non utilisé ne progresse plus (lorsque le choIx w est fait), alors qu'il peut exister une contrainte de subordination entre ce moyen non utilisé pour l'objet i et, ce même moyen éventuei lement utilisable pour l'objet-j. Le fait que cette variable du moyen non utilisé par l'objet i ne progresse pas risque d'entraîner une attente pour l'objet j qui devrait utiliser ce moyen libre.Il en résulte qu'après un choix la variable qui représente le moyen non utilisé doit disparaître afin de ne pas créer une attente (qui physiquement ne doit pas exister) avec les objets suiwlants qui utiliseraient ledit moyen.
Il convient donc dé mettre en oeuvre un procédé qui éli- mine systématiquement les variables représentant, U21 moyen non utilisé après un choix (FIG 45). Ce procédé consiste à surveiller les actions des variables telles que ils v...x, y oui représentent les différents moyens susceptibles de traiter un objet.
Tant que les contraintes de choix ne sont pas atteintes, les variables u,v, xy, progressent de la même façon puisqu'elles représentent des moyens confondus Mais au voisinage des contraintes de choix, la variable représentant le moyen optimal continue à progresser tandis que les autres font des actions 0.
Il suffit donc de tester (par un circuit logique 50) si les actions de toutes les variables de choix u, v, z, y .. sont identiques. Si oui, cela signifie que l'on n'a pas atteint les zones de contrainte et l'on passe à la suite du problème, Si c'est non, un circuit logique 51 élimine les variables qui font a:e action O afin qu'elles libèrent les moyens non utilises pour les objets suivants, et l'on passe à la suite du problème.
Il faut distinguer trois niveaux dans le choix de moyens, ces niveaux représentant des difficultés croissantes de l'opti mission.
1) - ler niveau : Choix par suite de l'occupation d'un moyen Exemple: FIG 43 et 46. Supposons qu'un train Tl soit immobilisé sur le segment 6 de l'itinéraire I et qu'un train T2 circule a partir d'un point départ en direction d'un point arrivée avec la possibilité de passer par l'itinéraire I ou I. Dans ce cas, le choix est simple, car l'itinéraire T étant occupé par Tl, il ne reste pour T2 que la possibilité de circuler par I'. C'est ce qu'on appelle le choix par occupation de moyen.La méthode précédemment définie permet de résoudre le problème de la façon suivante Il s'at d'un problème à 3 variables xg (représentant le train T2)et z représentant le train Tl. Il en résulte 3 plans d' anal, se xy, xz etyz (FIG 46): a) le n, Tan x y contient la contrainte de choix ." le plan x z contient la contrainte de subordination tra duisant le fait que le train T2 ne-peut s'engager sur la voie déviée (itinéraire I) tant que le train précédent 1 n' a pas libéré cette branche.
c) Le plan yz ne contient pas de contrainte à partir du seg ment 4 puisque les itinéraires I et I' sont indépendants.
L'exception interdite couvre toutes les autres exceptions correspondant à une mauvaise utilisation manifeste des éléments du système de traitement des données. Il se peut ainsi qu'une erreur commise ne puisse être corrigée. Il y a lieu de noter que toutes les exceptions interdites intéressant 8i- rectement le processus en cours d'exécution provoqueront l'arrêt de la procédure en cours. Ceci pourra également être l'état correspondant à certaines exceptions" fonctionnelles.
Etant donné qu'il existe environ 80 exceptions détectables par le système de traitement des données, un numéro de 8 bits est généré initialement dans un registre AJ. Le registre AJ est un registre de travail typique implanté dans l'unité arithmétique et logique 1317. Ce numéro indexe alors la table des exceptions en mémoire principale ce qui fournit un numéro de 16 bits. Ces 16 bits comprennent 8 bits pour le numéro de classe et 8 bits pour le numéro de type qui identifient totalement l'exception. Ce numéro identifiera le software, qu'il s'agisse d'une exception fonctionnelle ou d#une exception interdite.
Dans l'opération 1608, la bascule de traitement d'exception, qui se trouve dans la mémoire auxiliaire 1317a est testé pour détecter si elle est positionnée. Si elle est positionnée, cela indique qu'une exception s'est produite pendant le traitement d'une exception précédente. Par suite, si elle n'est pas positionnée, autrement dit s'il n'y avait pas d'exception pré cédente, c'est l'opération 1610 qui est exécutée, et la bascule de traitement d'exception est alors positionnée. Un certain nombre d'autres bascules seront mentionnées dans le présent document. Pour simplifier, il ne sera fait mention ni de leur implantation, ni de leur interrogation. Chacune de ces bascules est implanté dans la mémoire auxiliaire 1317, et leur interrogation s'effectue de façon classique.
Dans l'opération 1612, le mécanisme d'exception central teste si un processus ou une exception système e#iste.#Si ia#bascule mode système est positionnée, cela indique que le processeur central était en train d 'exécu- ter une opération de contrôle système. Si cette bascule n'est pas positionnée, cela signifie que le processeur central était en train d'exécuter une instruction pour le compte du processus en cours d'exécution, instruction dont l'exécution n'était pas encore achevée au moment de la détection de l'exception. Dans ce dernier cas, autrement dit dans le cas d'une exception en mode processus, un branchement est effectué opération 1614, Figure 16b.
Lorsqu'une exception en mode processus a été détectée, le mécanisme d'exception central peut : (1) l'ignorer si elle est masquée (2) la signaler au moyen d'un mécanisme d'exception du type déroutement ou (3) la signaler au doyen d'un mécanisme d'exception du type interruption. La première possibilité est examinée à l'opération 1614. Elle consite à contrôler le registre d'état 207 qui enregistre les événements relatifs à la procédure en cours d'exécution, a savoir que dans le registre d'état, le bit 4 est. un masque décimal, le bit 5 un masque binaire et le bit 6 un masque de dépassement de capacité négatif.Si l'un quelconque de ces bits est à zéro, l'exception correspondante est ignore Le masque décimal indique le dépassement positif de données decisales nu une division décimale ; le masque binaire indique un dépassement en virgule fixe et le masque de dépassement négatif indique un dépassement négatif d'exposant en virgule flottante.
A la détection d'une exception masquée, le mécanisme d'exception central repasse la main à l'instruction suivante du processus en cours comme si l'instruction avait été exécutée normalement. Ceci est représente par l'opération 1616 dans laquelle la bascule de traitement d'exception est restauree pour indiquer qu'il n'existe aucune condition d'exception et par l'o- peration 1618 qui exécute un branchement sur l'instruction suivante du processus se trouvant actif. Ainsi, le masque d'exception offre la possibilite d'ignorer certains cas d'exception.
Si aucun des trois. cas spéciaux mentionnés ci-dessus ne se présente l'opération 1620 est exécutée, cette opération consistant à extraire un mot PECT (table de classes d'exceptions de processus) du bloc PCB du processus courant. Un mot de bloc du PCB est réservé à la signalisation d'une exception en mode processus pour le processus courant. Ce aut représenté Figure 4 avec l'indication EXW est à l'adresse PCB +24. Ce mot d'exception contient un pointeur (SEG, SRA) (Voir Figure 10) désignant une table des classes d'exception, à savoir la table PECT. Cette table de classes d'exceptions définit l'intervention à effectuer à la suite d'une exception, en mode processus, en fonction de la classe de l'exception.Ainsi, à la suite de la détection'd'une exception en mode processus le mécanisme d'exception central extrait le mot EXW et exécute une indexa tion sur la table PECT avec le numéro de classe d'exception afin de selectionner la solution correspondant a l'exception.
L'adresse suivante de la table PECT s'obtient de la façon suivante. Le mot EXW du bloc PCB est transféré dans l'unité arithmétique et logique 1317 à partir de l'adresse de la mémoire auxiliaire EXW, le mot EXW contenant le numéro de segment et l'adresse relative de segment. A 1 'adres- se relative de segment est ajouté le numéro de classe extrait précédem ment de la mémoire principale (opération 1606), l'addition étant réalisée par l'unité arithmétique et logique 1317. A partir de cette adresse relative de segment créée au moyen du mot EXW et du numéro de classe, on connaît l'adresse particulière dans la table PECT. La table PECT qui se trouve dans la mémoire principale est alors indexée avec cette adresse et fournit le mot représenté Figure 10J.
Ce mot est un pointeur qui valide un programme distinct pour chaque classe d'exception. Toutes les exceptions d'une même classe sont traitees de la même manière. La partie étiquette du mot est alors testée à l'opération 1622 pour déterminer si elle a la valeur 00 ou 01. La zone étiquette sert à sélectionner le mécanisme de signalisation à utiliser pour la classe d'exception correspondante ; il en résulte qu'elle détermine le mode d'interprétation de la tartie SEG, SRA de l'élément de la table PECT.
Si les bits étiquette ont la valeur 00, le mécanisme d'exception central appelle un mécanisme d'exception de processus du type déroutement pour prendre en charge l'exception. Si ces bits ont la valeur 01, le mécanisme d'exception central appelle alors un mécanisme d'exception de processus du type interruption pour prendre en charge cette exception. On voit donc que le bit étiquette détermine la façon dont l'exception est prise en charge.
Si l'étiquette a la valeur 00, un déroutement de processus est exécuté à l'opération 1624. Le mécanisme de déroutement ne peut être utilisé que conjointement avec la signalisation en mode processus, autrement dit lorsque le processeur central est en mode processus. Auparavant, le mécanisme d'exception central avait interrompu l'instruction en cours d 'exécu- tion en raison de l'existence d'une exception. Le mécanisme de déroutement impose alors l'interruption de la procédure à l'instruction à laquelle ltex- ception a été détectée. En outre, le mécanisme de déroutement valide une procédure de prise en charge d'exception qui utilise l'espace adresse du processus en cours. Ceci s'obtient en faisant passer le contenu du compteur d'instruction 1312 à une nouvelle procédure au lieu de la faire passer à l'instruction suivante.Cette nouvelle procédure commence à une adresse développée à partir de l'adresse de la table PECT. Ainsi, la table PECT a donne un pointeur c'est-à-dire un descripteur de données qui fournit l'adresse chargée dans le compteur d'instruction.
Le mécanisme de déroutement exécute les deux opérations suivantes. En premier lieu, la classe et le type de l'exception sont stockés dans le bloc de contrôle du processus en cours, et en second lieu, une instruction de simu lation de préparation de pile est exécutée, suivie d'une simulation d'instruc tion ENTER.
Le compteur d'instruction identifie l'adresse de la nouvelle procédure appelée par l'instruction ENTER simulée. Il est également nécessaire de préparer l'état d'un support de pile pour la nouvelle procédure. Ceci a été réalisé par l'intermédiaire d'une instruction simulée de Préparation de pile qui conserve l'ancien état de l'ancienne procédure. Ces données représentent les informations courantes du processus précédent comprenant notamment les registres de base, les registres generaux, ainsi que les registres scientifiques si le fonctionnement se déroulait en mode scientifique. L'instruction ENTER simulée charge également dans un registre de base, par exemple le registre de base 7, une section de liaison qui désigne les données de la nouvelle procédure.
Ce qui est plus important, c'est que le mécanisme d'exception central constitue un message à des adresse prédéterminées de la mémoire auxiliaire (WE4 - WE7) et stocke ensuite le message physiquement après avoir conserve les données d'état de l'ancienne procédure. Ce message est la signalisation d'exception et comprend les quatre mots représentés Figure 18a. Ce message, généré par le mécanisme d'exception central, est le suivant. La zone liaison suivante (NL) qui occupe les deux premiers octets du mot zéro ne contient que des zéros.
Le troisième octet du mot 0 est mis à zéro étant donne qu'il ne s'agit pas d'un message d'entrée/sortie. La zone priorité qui occupe les quatre premiers bits du quatrième octet du mot zero est mis arbitrairement à la valeur 1111 qui correspond à la priorité la plus faible. Le contenu des quatre bits suivants est une étiquette M qui indique les circonstances de l'exception. Ainsi, l'étiquette M indiquera si le processus en cours a été suspendu ou non. En outre, 1l'etiquet- te M définit le format général du message, autrement dit si la zone JP du mot i est significative ou non.
Dans le mot I, la zone JP indentifie le nom du processus en cours. Cette zone n'est définie que si la procédure courante du processus en cours d'exécution doit être interrompue, autrement dit si le processus en cours doit être suspendu. Les deux octets suivants du mot-I identifient le numéro de classe d'exception et le numéro de type d'exception fournis au registre AJ et stockes dans la mémoire auxiliaire. Le mot 2 est le paramètre d'exception propre à l'exception. Ce mot peut être utilisé pour préciser la cause de l'exception, par exemple numéro de segment de l'exception "segment manquant".'Les deux premiers octets du mot 3 sont à zéro et les deux derniers octets contiennent le nom du canal affecté à l'exception. Ce mot est fourni par le système d'entree/sortie et n'est pas décrit plus en détail.
Ainsi lorsque le seuil de relance est atteint, autrement dit lorsque la modification des registres a lieu, le bit de relance se trouvant dans le bloc de contrôle de processus prend la valeur binaire 0, validant ainsi un branchement sur l'opération 1706 grâce auquel le bit O du masque de contrôle hardware est testé. Si ce bit est égal à "1", cela indique que le système se trouve dans l'état erreur machine ; ceci se serait produit si le processeur central avait détecté une erreur machine ne pouvant faire l'objet d'une relance ou avait essayé sans succès une relance en cas d'erreur machine avant la mise en oeuvre du mécanisme d'exception central. Ainsi, si l'opération ne peut faire l'objet d'une relance, la machine est déjà passe à l'état erreur machine dans la perspective d'une seconde erreur machine pouvant empêcher le succès de la correction.Ainsi, dans le cas où une seconde erreur machine se produit effectivement avant 1 'exé- cution de la correction, il y a passage à l'état incident système 1708.
Cependant, dans le cas où l'opération peut faire l'objet d'une relance on exécute l'opération 1710 qui teste la bascule mode système pour déterminer si une opération de contrôle système était en cours d'exécution. Si une erreur hardware s'était produite dans le mode processus, le mécanisme d'erreur machine se limiterait au seul processus qui était en cours d'exécution et pour lequel l'erreur machine s'est produite. Toutefois, si une opération de contrôle système était en cours d'exécution, il ne serait pas possible de considérer que l'erreur appartient au seul mode processus et l'on considérerait qu'il s'agit d'une erreur système. S'il n'y avait pas d'opération de contrôle système, on procèderait par l'operation 1712, à l'extraction du mot processus courant de la base du système en BAR +56 ainsi qu'il est indiqué Figure 6.Dans ce mot de processus courant figure le numéro JP du processus courant. Ce numéro JP sert à extraire le bloc PCB de ce processus-là et, partant, son bit de relance qui, à l'opération 1714, est testé pour déterminer s'il a été positionné ou non. Si une erreur de firmware de diagnostic faisait l'objet d'un contrôle de la part de l'inspecteur ce bit de relance ne serait pas positionne sinon il introduirait une erreur dans le système. Ainsi, normalement, le bit de relance sera positionné et l'opération 1716 sera exécutée. Cette opération est également exécutée si une opération de contrôle système était en cours d'exécution.
Au cours de l'opération 1716, le comptage de relance initial et le comptage de relance courant stockés dans la base du système en BAR +52 et représentés Figure 11i sont transférés dans l'unité arithmétique et logique 1317. Le nombre initial est fixe à une valeur prédéterminer correspondant au nombre de relances effectuées en cas d'erreurs machine. Ces nombres sont stockés dans des registres de travail de l'unité arithmétique et logique.
Dans l'opération 1718, le comptage de relance courant est comparé au comptage de relance initial. Le comptage de relance courant est soit égal au comptage de relance initial soit inférieur an comptage de relance selon le nombre de fois où l'instruction a été réexécuté; Si le comptage de relance-courant est inférieur au comptage de relance initial, un branchement est effectué sur l'opé- ration 1720. Ceci se produira normalement lors de la première réexécution de l'instruction. Dans l'opération 1720, le comptage de relance courant est augmen- té d'une unité dans l'unité arithmétique et logique 1317 et retransféré dans la zone de base du système en mémoire.
Dans l'opération 1722 les opérations qui sont nécessaires pour redonner à l'instruction son état initial sont exécutées. Ces opérations dépendent de l'e- tat d'avancement de l'exécution de l'instruction et son connues. Ensuite, le masque positionné à l'opération 1702 est restauré par l'opération 1724, ce qui permet la détection d'erreurs machine supplémentaires dans le système.Dans l'opération 1726, le bit de relance d'opération qui est le bit 1 du masque de contrôle hardware est positionné à la valeur binaire UN pour indiquer au système que l'instruction n'a pas été exécutée normalement lors de sa première tentative d'exécution. tant donne que l'instruction est désormais prête à être réexécutée et que le mécanisme d'erreur machine a enregistre les paramètres appropriés, 7'opération 17?8 retransfère le contrôle du mécanisme d'erreur machine à la même instruction.
Toutefois, si lors de la réexécution de l'instruction, une autre erreur ou la même erreur est détectée, l'opération 1700 sera à nouveau exécutée. Dans le cas où l'opération peut faire l'objet d'une relance, la séquence d'étapes décrite antérieurement jusqu'à l'étape 1718 sera exécutée.
Dans l'opération 1718-, le comptage de relance courant peut désormais être égal au comptage de relance initial et un branchement est alors effectué sur l'operation 1730. Dans l'opération 1730, une bascule de la mémoire auxiliaire 1317a sera positionnée. Cette bascule est la bascule de la première série de relances qui indique que la séquence de relances a été exécutée. Pour les erreurs machine une série de deux séquences de relance est toujours tentée par le mecanisme de relance. En cas d'échec de la première séquence de relance, la bascule de série de relance est postionnée en 1732 et en 1734 le comptage de relance courant est à nouveau mis à zéro, pour la seconde séquence de relance.
Dans l'opération 1736, un délai d'une durée fixe, liée au modele, est déclenche pendant lequel le processeur central n'est plus disponible pour le traitement normal, ce délai étant de l'ordre de 3 millisecondes. A l'achèvement de ce délai la seconde séquence de relances est lancee, ainsi qu'il a été expose précédemment aux opération 1720 à 1726.
Si à l'issue de la seconde séquence de relances l'opération n'a toujours pas réussi, autrement dit si une erreur machine a été détectée, le mécanisme d'exception central recevra les paramètres appropriés indiqués Figure 18a. Ceci est indiqué à l'opération 1730 par la réponse OUI et le branchement sur l'opera- tion 1706, Figure 17. En 1706, le masque de contrôle hardware sera testé pour déterminer si l'état erreur machine existait ou non. S'il existait, on passera alors à l'état incident système en 1708. Toutefois, la réponse, normalement, sera NON et par suite l'opération 1738 sera exécutée et aura pour effet de positionner le bit O du masque de contrôle hardware à la valeur binaire "1".Cette opération sera également exécutée dans le cas où une erreur ne pouvant faire l'objet d'une relance aura été détectée, avec un masque de contrôle hardware différent de "1".
Dans l'opération 1740, le registre AJ recevra l'erreur classe O et un nu métro de type indiquant le type d'exception détecté. En ce point, le mécanisme d'exception machine prépare le mécanisme d'exception central à recevoir les pa ramètres appropries. Ainsi, la classe et le type représentés Figure 16 sont po sitionnés. Dans l'opérations 1742, le masque positionne à l'opération 1702 sera restauré, ce qui permettra la détection d'autres erreurs machine. Dans l'operation 1744, la bascule de traitement d'exception sera positionnée pour indiquer que le mécanisme d'exception central a été mis en oeuvre et ensuite un branchement sera effectué sur l'opération 1642 de la figure 16 pour provoquer une exception système.Cette condition provoquera l'accès à la base du système, cellule d'exception système 0, qui indique un sémaphore auquel un processus prêt à prendre en charge le type d'erreur hardware qui s'est produit, à savoir erreur machine classe 0.