FR2632746A1 - Dispositif de traitement de donnees - Google Patents
Dispositif de traitement de donnees Download PDFInfo
- Publication number
- FR2632746A1 FR2632746A1 FR8907536A FR8907536A FR2632746A1 FR 2632746 A1 FR2632746 A1 FR 2632746A1 FR 8907536 A FR8907536 A FR 8907536A FR 8907536 A FR8907536 A FR 8907536A FR 2632746 A1 FR2632746 A1 FR 2632746A1
- Authority
- FR
- France
- Prior art keywords
- instruction
- type
- memory
- address
- exception
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000011664 signaling Effects 0.000 claims description 4
- 238000000034 method Methods 0.000 abstract description 9
- 230000000717 retained effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
Le dispositif selon l'invention comporte des moyens de mémorisation 4, 12, 11, 21, d'identification 3, d'exécution 4, de sauvegarde 26, de traitement d'exception 8 et permet d'identifier une instruction de 1**e**r type réalisée par un microprogramme mémorisé dans une mémoire de commande 4 et une instruction de 2**e type; il permet de faire exécuter par des instructions du 1**e**r type, constituant un programme d'instruction pour cette instruction, une instruction du 2**e type qui a été identifiée; il permet également quand une exception survient durant l'exécution de ce programme de la traiter en utilisant l'adresse d'instruction du 2**e type retenue dans la section de sauvegarde, le dispositif de traitement d'exception pouvant ainsi traiter une exception survenant durant l'exécution du programme pour réaliser une instruction du 2**e type.
Description
Dispositif de traitement de données La présente invention se rapporte à un
dispositif de traitement de données et, plus particulièrement, a un dispositif de traitement de donnees controlé par des
microprogrammes mémorisés dans une memoire de commande.
Afin d'améliorer l'exécution du traitement, un dispositif de traitement de donnees classique de ce type emploie un système à microinstructions de type dit horizontal. Dans ce système, une configuration avec de nombreux bits est employée pour accroître une fonction a étape d'exécution unique de microinstructions constituant un microprogramme pour realiser un traitement en parallele. Surtout pour les instructions de base qui sont utilisées fréquemment, une structure matérielle peut être optimisee pour maximiser-les caractéristiques des microinstructions de type horizontal ci-dessus et de la le nombre d'étapes pour un microprogramme qui est
considérablement réduit.
Par contraste avec ceci, dans d'autres instructions telles que de nombreuses sortes d'instructions de commande, ou des instructions de traitement de listes-ou des données ou une mémoire centrale sont traitées iterativement, l'operation est séquentielle. Dans ces instructions, meme si des microinstructions du type horizontal avancé sont utilisées, le nombre des microinstructions a exécuter en une étape est petit et il y a un grand nombre de champs de microinstructions inutilisés, c'est-à-dire que l'exécution de traitement en parallèle est faible. Pour cette raison, un tel dispositif de traitement de données emploie une structure hiérarchique pour executer diverses instructions de commande en utilisant un programme d'instruction constitué par les instructions d'opération de base susmentionnees, augmentant de cette façon l'efficacité d'utilisation d'une mémoire de commande pour memoriser un
microprogramme dans le sens de mots..
Un dispositif de traitement de données classique a une disposition montrée dans la figure 1, c'est-a-dire, comprend une memoire centrale 1, un circuit de prise en charge d'instruction 2, une memoire d'analyse d'instruction 3 (moyens d'identification), un circuit memoire de commande 4 (moyens d'exécution), un circuit arithmétique 5 et un dispositif de traitement d'exception 8. La memoire centrale 1 comprend une section programme logiciel 11 (deuxiemes moyens de mémoire) pour mémoriser un programme logiciel pour effectuer un traitement prédéterminé et une section programme d'instruction 12 (premiers moyens de mémoire) pour memoriser une pluralité de programmes d'instruction
décrits par des instructions du premier type.
Le circuit arithmétrique 5 est commandé par le circuit mémoire de commande 4 pour effectuer diverses opérations en utilisant un microprogramme pour realiser une fonction définie par les instructions du premier type
(décrites plus loin).
L'adresse du programme logiciel memoris.e dans la section programme logiciel 11 de la mémoire centrale 1 est généree par un compteur d'instruction 25 et un circuit générateur d'adresse série 24 dans un circuit de prise en charge d'instruction 2 et est lue depuis la memoire centrale 1 par une adresse contenue dans un registre d'adresse d'instruction 21. Le programme logiciel lu est ensuite memorise dans un registre
tampon d'instruction 22.
Noter que la - recherche d'instruction est en général effectuée par un procédé dit de recherche préliminaire dans lequel, quand une instruction donnée est réellement exécutée,. l'instruction a déja atteint
le registre tampon d'instruction.
Les instructions du premier type a réaliser par un microprogramme dans une memoire de commande 41 vont etre décrites ci-dessous. Dans ce cas, les instructions du premier type sont des instructions de base pour lesquelles l'effet de traitement en parallèle de
microinstructions de type horizontal peut-être maximisé.
En general, la fréquence d'utilisation de telles
instructions dans un programme logiciel est tres elevee.
Noter que les instructions du premier type peuvent etre utilisées dans un programme d'instruction ou un programme logiciel. Une partie code d'instruction 221 de l'instruction memorisee dans le registre tampon d'instruction 22 est fournie a la mémoire d'analyse d'instruction 3. Des données de commande 31 à 33 sont ensuite lues depuis la memoire d'analyse d'instruction 3 en tant que valeurs initiales exigées pour commander un microprogramme pour l'instruction. Des données autres que-la partie code d'instruction 221 dans le registre tampon 22 sont fournies au circuit générateur d'adresse de branchement
23 en tant qu'opérande.
Les données de commande 32 sont des données signalant si l'instruction correspondante est une instruction du premier ou du deuxième type et sont fournies à un séquenceur de microinstruction 42 du
circuit mémoire de commande 4.
Si les données de commande 32 signalent que l'instruction est une instruction du premier type, le séquenceur de microinstruction 42 fournit les donnees de commande 31 à la mémoire de commande 41 en tant qu'adresse de début d'un microprogramme pour exécuter cette instruction et lit un microcode depuis l'adresse de la mémoire de commande 41. Le microcode lu est contenu temporairement dans le registre de microinstruction 44 et
de la est fourni au circuit arithmétique 5.
Noter que ce microcode.comprend un procédé pour déterminer l'adresse de microinstruction suivante, ou
comprend l'adresse de microinstruction suivante elle-
meme. Quand le séquenceur de microinstruction 42 reçoit cette adresse du registre de microinstruction 44, la microinstruction suivante est lue. Par la suite, le dispositif de traitement de données execute sequentiellement un microprogramme exécutable de la
manière décrite ci-dessus.
Les instructions du deuxième type à réaliser par un programme d'instruction constitué par les instructions du premier type vont etre décrites ci-dessous. Dans ce cas, les instructions du deuxième type sont des instructions o l'on s'attend à ce qu'une faible part de traitement en parallele utilise un microprogramme consistant en microinstructions de type horizontal et ou les microinstructions sont plut8t utilisées comme des microinstructions de type vertical. Noter que les instructions du deuxieme type peuvent seulement etre utilisées dans un programme logiciel, pas dans un
programme d'instruction.
Si les données de commande 32 de la mémoire d'analyse d'instruction 3 signalent que l'instruction est une instruction du deuxième type, le séquenceur de microinstruction 42 arrête de lire une microinstruction depuis la memoire de commande 41 vers le registre de microinstruction 44. Un microcode de NOP (non-opération) est contenu dans le registre de microinstruction 44 et l'opération du circuit arithmétique 5 est temporairement interrompue. En même temps, les donnees de commande 32 sont fournies au circuit générateur d'adresse de branchement 23. Le circuit 23 sort ensuite les données de commande 33 en tant qu'adresse de début d'un programme d'instruction pour executer cette instruction vers le registre d'adresse d'instruction 21 par l'intermédiaire du sélecteur 27 de façon à faire que le registre 21
contienne l'adresse de début du programme d'instruction.
En utilisant cette adresse, le dispositif de traitement de données commence à lire le programme d'instruction depuis la section programme d'instruction 12 de la mémoire centrale 1. En conséquence, la premièere instruction du programme d'instruction est mémorisée dans
le registre tampon d'instruction 22.
En outre, les données de commande 32 désignent un registre de sauvegarde du compteur d'instruction 26
(moyens de sauvegarde) pour memoriser la valeur (c'est-a-
dire l'adresse de l'instruction du deuxième type) d'un compteur d'instruction 25 quand une instruction du deuxième type est d'abord lue depuis la memoire centrale 1. Quand une instruction du deuxieme type B1 va être executee par un programme d'instruction décrit par des instructions du premier type Aa à Ad, comme le montre la figure 2, la premiere instruction Aa est memorisee dans le registre tampon d'instruction 22. Noter qu'un programme logiciel,, dans la figure 2, est constitué par des instructions du premier type A1 à A4 et l'instruction
du deuxième type B1.
Puisque l'instruction Aa est d'un premier type, elle est executee par le microprogramme de la mémoire-de commande 41. De la meme façon, les instructions Ab et Ac
du programme d'instruction sont executees par le.
microprogramme de la mémoire de commande 41.
Bien que l'instruction Ad soit d'un premier type, elle est la derniere instruction du programme d'instruction pour executer l'instruction du deuxieme type B1 et elle sert à renvoyer le déroulement du traitement à l'instruction A3 suivant'l'instruction B1
dans la seéquence du programme logiciel original.
C'est-a-dire que l'instruction Ad est définie comme une instruction de branchement relative basée sur une adresse contenue dans le registre de sauvegarde du compteur d'instruction 26. Dans ce cas, puisque la valeur du compteur d'instruction 25, quand l'instruction du deuxième type B1 est lue, est contenue dans le registre de sauvegarde du compteur d'instruction 26, si la longueur du mot d'instruction de l'instruction du deuxième type B1 est établie en tant que déplacement de l'instruction de branchement relative, l'adresse d'instruction de l'instruction A3 suivant l'instruction du deuxième type B1 est générée par le circuit générateur d'adresse de branchement 23 dans la séquence d'instruction. Par la suite, cette adresse d'instruction est contenue dans le registre d'adresse d'instruction 21
par l'intermédiaire du sélecteur 27.
En même temps, en utilisant l'adresse contenue dans le registre d'adresse d'instruction 21, le dispositif de traitement de donnees commence a lire l'instruction A3 depuis la section programme logiciel 11 de. la memoire centrale 1. L'instruction A3 lue depuis la section programme logiciel 11 est mémorisée dans le registre
tampon d'instruction 22.
Puisque l'instruction A3 est d'un premier type, elle est exécutée par le microprogramme mémorisé dans la memoire de commande 41. Ultérieurement, les intructions
du programme logiciel sont exécutées sequentiellement.
Le dispositif de traitement d'exception 8 débute normalement quand une exception est détectée durant l'exécution d'une instruction lue depuis la mémoire centrale 1, de façon à générer un message d'exception et à le signaler au logiciel. Dans ce cas, une exception signifie une situation anormale survenant durant l'exécution d'un programme, c'est-a-dire, une erreur du logiciel. Ce message d'exception comprend aussi bien l'adresse d'une instruction lorsque survient l'exception,
que des paramètres déterminés par un type d'exception.
Comme adresse de l'instruction lorsque survient l'exception, on utilise le contenu du compteur d'instruction 25 au moment ou l'exception survient. Dans le dispositif de traitement d'exception 8, le message d'exception est préparé par le contenu du compteur d'instruction 25. La préparation de ce message d'exception est généralement appelée "traitement d'exception". Dans le dispositif de traitement de données classique, cependant, si une exception survient durant l'exécution de l'instruction du deuxieme type B1 à réaliser par le programme d'instruction décrit par les instructions du premier type Aa à Ad, les adresses des instructions du premier type Aa à Ad qui sont actuellement exécutées, c'est-a-dire, le contenu du compteur d'instruction 25 au moment o les instructions du premier type Aa à Ad sont exécutées, sont utilisées en tant qu'adresse d'une instruction lorsque'survient l'exception, alors que l'adresse de l'instruction du deuxième type B1 devrait etre utilisée en tant qu'adresse
de l'instruction -lorsque survient l'exception.
Par conséquent, un objet principal de'la présente
invention est de prevoir un dispositif de traitement de-
donnees capable de traiter une exception survenant durant l'exécution d'un programme d'instruction pour réaliser une instruction du deuxième- type en tant qu'exception
d'une instruction du deuxième type.
Afin d'arriver à 1'objet ci-dessus, selon un aspect de la présente invention, il est fourni un dispositif de traitement de donnees comprenant une memoire de commande pour memoriser un microprogramme, des premiers moyens de mémoire pour memoriser un programme d'instruction constitué par une instruction du premier type réalisée par le' microprogramme, des deuxièmes moyens de memoire pour memoriser un programme logiciel constitue par l'instruction du premier type et une- instruction du deuxième type réalisée par le programme d'instruction memorisé dans les premiers moyens de mémoire, des moyens de mémoire d'adresse pour memoriser des adresses d'instruction lues depuis les premiers et deuxièmes moyens de memoire, des moyens d'identification pour identifier une instruction lue depuis les deuxièmes moyens de memoire en tant qu'instruction du premier ou du deuxième type, des moyens d'exécution pour executer l'instruction du deuxieme type en utilisant l'instruction du premier type constituant le programme d'instruction lu depuis les premiers moyens de mémoire quand les moyens d'identification identifient l'instruction lue en tant qu'instruction du deuxième type, des moyens de sauvegarde pour sauver une adresse d'instruction du deuxième type quand les moyens d'identification identifient l'instruction lue en tant qu'instruction du deuxieme type, des moyens de temporisation pour contenir des donnees signalant que l'instruction du deuxieme type est executée quand les moyens d'identification identifient l'instruction lue en tant qu'instruction du deuxieme type, des moyens de sélection pour sélectionner une des adresses respectivement mémorisée dans les moyens de mémoire d'adresse et les moyens de sauvegarde conformément aux données contenues dans les moyens de temporisation, et des moyens de traitement d'exception, connectes du cote d'une sortie des moyens de selection, pour préparer un message d'exception, dans lequel les moyens de traitement d'exception préparent le message d'exception sur la base d'une adresse sélectionnée par les moyens de sélection quand une exception survient durant l'execution de l'une des instructions du premier et du deuxième type qui est lue depuis les deuxièmes
moyens de memoire.
La figure 1 est un bloc-diagramme montrant un dispositif de traitement de données classique; La figure 2 est une vue illustrant une séquence d'un programme logiciel; et La figure 3 est un bloc-diagramme montrant un dispositif de traitement de données selon un premier mode
de réalisation de la présente invention.
La figure 3 montre un dispositif de traitement de donnees selon un premier mode de réalisation de la présente invention. Les numeros de référence de la figure 3 indiquent les mêmes éléments que dans la figure 1. En se référant à la figure 3, le numero de référence 6 indique un registre servant de moyens de temporisation;
et 7, un sélecteur servant de moyens de sélection.
Les données de commande 32 et 33 de la mémoire d'analyse d'instruction 3 sont respectivement introduites sur les bornes de mise a un et de mise a zero, 1 et 0, du
registre 6.
Conformement au signal de sortie du registre 6, le sélecteur 7 sélectionne l'un des signaux de sortie d'un compteur d'instruction 25 et d'un registre de sauvegarde du compteur d'instruction 26 d'un circuit de recherche d'instruction 2 et le sort sur un dispositif de traitement d'exception 8. C'est-a-dire que le sélecteur 7 sélectionne l'une des adresses d'une instruction qui est actuellement exécutée et d'une instruction du deuxieme type sauvegard4e dans le registre de sauvegarde du compteur
d'instruction 26, conformément au contenu du registre 6.
Une opération du mode de réalisation de la présente invention va être décrite ci-dessous, avec référence aux figures 3 et 2. Dans le dispositif de traitement de données, des instructions du premier type A1 a A4 et une instruction du deuxième type B1 sont. lues depuis une section programme logiciel 11 d'une memoire centrale 1 en utilisant une adresse contenue dans un registre d'adresse d'instruction 21 du circuit de recherche d'instruction 2, sous la commande d'une mémoire de commande 41. Les instructions du premier type A1 a A4 et l'instruction du deuxième type B1 sont executees sequentiellement, de la même manière que dans l'operation décrite ci-dessus du dispositif de traitement de données
montré dans la figure 1.
A ce moment-la, dans le dispositif de traitement de données, en réponse a une partie code d'instruction 221 d'une instruction mémorisée dans un registre tampon d'instruction 22, les données de commande 31 a 33 sont lues depuis la mémoire d'analyse d'instruction 3 en tant que valeurs initiales exigées pour commander un
microprogramme pour traiter l'instruction.
Des données de commande 31 a 33, la donnée 32 signale si l'instruction est d'un premier ou d'un deuxième type, comme décrit ci-dessus. Quand l'instruction est d'un premier type, ia donnée 32 est mise a "O". Quand elle est d'un deuxième type, la donnée
32 est mise a "1".
En conséquence, le registre 6 est positionne conformément aux données de commande 32 et est mis a un seulement quand la donnée 32 signale une instruction du
deuxième type.
Ulterieurement, quand les instructions du premier type A1 a A4 -sont lues depuis la section programme logiciel 11 de la memoire centrale 1 dans le dispositif de traitement de données, puisque la donnée de commande 32 de la mémoire d'analyse d'instruction 3 signale une instruction du premier type, un séquenceur de microinstruction 42 fournit les données de commande 31 a une mémoire de commande 41 en tant qu'adresse de début d'un microprogramme pour réaliser ces instructions et lit un microcode depuis l'adresse correspondante de la memoire de commande 41. Le microcode lu est contenu temporairement dans un registre de microinstruction 44 et de la est fourni a un circuit arithmetique 5. En conséquence, les instructions du premier type Ai a A4 sont exécutées par le microcode de la mémoire de commande. A ce moment-là, puisque "O" est introduit dans le registre 6, le registre 6 est maintenu dans un état de
mise a zero.
Si une exception est détectée durant l'exécution des instructions du premier type A1 a A4, par exemple, si une exception survient durant l'exécution de l'instruction du premier type A2, puisque le registre 6 contient "0", le sélecteur 7 sélectionne un signal de sortie du compteur d'instruction 25 et sort l'adresse de l'instruction du premier type A2, contenue dans le compteur d'instruction 25, vers le dispositif de traitement d'exception 8. Le dispositif de traitement d'exception 8 traite l'adresse de l'instruction du premier type A2 contenue dans le compteur d'instruction en tant qu'adresse d'une instruction lorsque survient
l'exception et prépare un message d'exception.
Quand l'instruction du deuxieme type B1 est lue depuis la section programme logiciel 11 de la mémoire centrale 1 dans le dispositif de traitement de-donnees, puisque la donnée de commande 32 de la memoire d'analyse d'instruction 3 signale une instruction du deuxième type, le séquenceur de microinstruction 42 arrête de lire une
microinstruction vers le registre de microinstruction 44.
En conséquence, un microcode de NOP {non-opération) est contenu dans le registre de microinstruction 44 et l'opération du circuit d'opération 5 est temporairement interrompue. En meme temps, la donnée de commande 32 est fournie à un circuit générateur d'adresse de branchement 23. Le circuit 23 sort les données de commande 33 vers le registre d 'adresse d'instruction 21, par l'intermédiaire d'un sélecteur 27, en tant qu'adresse de début d'un programme d'instruction pour réaliser le traitement de l'instruction et fait que le registre 21 la contienne. Le dispositif de traitement de données commence a lire le programme d'instruction depuis la section programme d'instruction 12 en utilisant cette adresse de début et
une premiere instruction Aa du programme d'instruction -
est mémorisée dans le registre tampon d'instruction 22.
En addition, la donnée de commande 32 désigne le registre de sauvegarde du compteur d'instruction 26 pour mémoriser la valeur (c'est-à-dire l'adresse de l'instruction du deuxième type B1) du compteur d'instruction 25 quand l'instruction du deuxième type
initiale B1 est d'abord lue depuis la mémoire centrale 1.
A ce moment-la, "1" est mis dans le registre 6 par la
donnée de commande 32.
Puisque les instructions Aa a Ad constituant le programme d'instruction pour realiser l'instruction du deuxième type B1 sont des instructions du premier type, elles sont réalisées par le microprogramme dans la memoire de commande 41 et de cette façon sont exécutées sequentiellement. Bien que l'instruction Ad soit une instruction du premier type, elle est la dernière instruction du programme d'instruction pour realiser l'instruction du deuxième type B1 et est utilisée pour renvoyer le déroulement du traitement à l'instruction A3 suivant l'instruction B1 dans la séquence du programme logiciel original. C'est-à-dire que l'instruction Ad est définie comme une instruction de branchement relative basée sur l'adresse contenue dans le registre de sauvegarde du compteur d'instruction 26. La valeur du compteur d'instruction 25 obtenue quand l'instruction du deuxième type B1 est lue est contenue dans le registre de sauvegarde du compteur d'instruction 26. Par conséquent, en établissant la longueur du mot d'instruction de l'instruction du deuxième type B1 en tant que déplacement de l'instruction de branchement relative, l'adresse d'instruction de l'instruction A3 suivant l'instruction du deuxième type B1 est généree dans la séquence d'instruction dans le circuit générateur d'adresse de branchement 23. Cette adresse d'instruction est contenue dans le registre d'adresse d'instruction 21 par
l'intermédiaire du sélecteur 27.
En même temps, le dispositif de traitement de
donnees commence à lire l'instruction A3 depuis la -
section programme logiciel 11 de la mémoire centrale 1 en utilisant l'adresse contenue dans le registre d'adresse d'instruction 21. L'instruction A3 lue depuis la section programme logiciel 11 est mémorisée dans le registre
tampon d'instruction 22.
Puisque l'instruction A3 est d'un premier type, elle est réalise par le microprogramme memorise dans la memoire de commande 41. Ultérieurement, les intructions
du programme logiciel sont réalisees sequentiellement.
Si aucune exception n'est détectée quand le programme d'instruction décrit par les instructions Aa à Ad, c'est-a-dire, quand l'instruction du deuxième type B1 est executee sans dispositif de traitement d'exception, le registre 6 est mis a zero a l'execution de l'instruction Ad par les données de commande 33 lues depuis la mémoire d'analyse d'instruction 3. C'est-a-dire que le registre 6 est mis a un quand l'exécution de l'instruction du deuxième type est commencee et est mis à
zero quand l'exécution est achevee.
Si une exception est detectée durant l'exécution du programme d'instruction pour réaliser l'instruction du deuxième type B1, c'est-adire si-une exception survient
durant l'execution de l'instruction du deuxième type Ab.
dans le programme d'instruction, puisque "1" est contenu dans le registre 6, le sélecteur 7 sélectionne un signal de sortie du registre de sauvegarde du compteur d'instruction 26 et sort l'adresse de l'instruction du deuxieme type B1 sauvee dans le registre 26 vers le dispositif de traitement d'exception 8. Le dispositif de
traitement d'exception 8 traite l'adresse de l'instruc-
tion du deuxième type Bi sauvegardée dans le registre 26 en tant qu'adresse d'une instruction lorsque survient
une exception et prépare un message d'exception.
Quand une exception survient durant l'exécution du programme d'instruction, l'adresse de l'instruction du deuxieme type Bl sauvegardée dans le registre de sauvegarde du compteur d'instruction 26 est sélectionnée par le sélecteur 7, conformement aux donnees signalant que le programme d'instruction contenu dans le registre 6 est exécuté et est fournie au dispositif de traitement d'exception 8. Pour cette raison, le dispositif de traitement de donnees peut traiter une exception survenant durant l'exécution du programme d'instruction pour réaliser l'instruction du deuxieme type non pas comme une exception des instructions du premier type Aa à Ad constituant le programme d'instruction, mais comme une exception d'une instruction du deuxieme type, effectuant
par conséquent un traitemnent d'exception correct.
De plus, dans un dispositif de traitement de données ayant un matériel capable d'effectuer un traitement en parallèle d'instructions du logiciel par traitement pipeline, le temps d'exécution peut être
réduit.
Comme on l'a décrit ci-dessus, selon la présente invention, une instruction du premier type réalisée par un microprogramme mémorisé dans une memoire de commande et une instruction du deuxième type réalisee'par un programme d'instruction constitué par des instructions du premier type sont identifiées. Quand ce résultat d'identification indique une instruction du deuxieme type, le dispositif de traitement de données fait que l'instruction du deuxième type est executee par un programme d'instruction constitué par des instructions du premier type. En plus, quand une exception survient durant-l'execution de ce programme d'instruction, le dispositif de traitement de données peut traiter l'exception en utilisant l'adresse de l'instruction du deuxieme type sauvegardée dans les moyens de sauvegarde. Le dispositif de traitement de données peut traiter une exception survenant durant l'exécution du programme d'instruction pour realiser une instruction du deuxième type et de la peut effectuer un traitement d'exception correct. Dans le mode de réalisation de la présente invention, l'adresse de début d'une instruction pour realiser l'instruction du deuxième type B1 est memorisee dans la mémoire d'analyse d'instruction 3. Cependant, une partie seulement de l'adresse de début du programme d'instruction pour réaliser l'instruction du deuxieme type B1 peut être mémorisée dans la mémoire d'analyse d'instruction 3 et une adresse de début peut être généree en combinant la partie de l'adresse de début avec une
constante prédéterminée.
- De plus, dans le mode de réalisation de la présente invention, l'adresse de début du microprogramme pour realiser le traitement des instructions du premier type A1 a A4 est définie par les données de commande 31 de la memoire d'analyse d'instruction 3 et l'adresse de début du programme d'instruction pour réaliser le traitement de l'instruction du deuxième type B1 est définie par les
données de commande 33 de la mémoire 3. Cependant,-
l'adresse de début du programme d'instruction pour realiser l'instruction du deuxième type B1 peut être assignée aux données de commande 31 de la mémoire d'analyse d'instruction 3 qui désigne l'adresse de début du microprogramme pour réaliser le traitement des
instructions du premier type Al a A4 et Aa a Ad.
En outre, dans le mode de réalisation de la présente invention, le registre 6 est mis a zero en -utilisant les données de commande 33 de la mémoire d'analyse d'instruction 3. Cependant, le registre 6 peut être mis a zero par, -a savoir,-une microinstruction. La
presente-invention ne se limite pas a ceci.
Claims (1)
- REVENDICATIONDispositif de traitement de données, caracterisé en ce qu'il comprend: une mémoire de commande pour memoriser un microprogramme; des premiers moyens de mémoire pour memoriser un programme d'instruction constitué par une instruction du premier type realisee par le microprogramme; des deuxièmes moyens de mémoire pour memoriser un programme logiciel constitué par l'instruction du premier type et une instruction du deuxième type réalisée par le programme d'ins:truction mémorisé dans ces premiers moyens de memoire; des moyens de mémoire d'adresse pour memoriser des adresses d'instructions lues depuis ces premiers et deuxiemes moyens de mémoire; des moyens d'identification pour identifier une instruction lue depuis ces deuxièmes moyens de memoire en - tant qu'instruction du premier ou du deuxieme type; des moyens d'exécution pour executer l'instruction du deuxième type en utilisant l'instruction du premier type constituant le programme d'instruction lu depuis ces premiers moyens de memoire quand ces moyens d'identification identifient l'instruction lue en tant qu'instruction du deuxième type; des moyens de sauvegarde pour sauver une adresse d'instruction du deuxième type quand ces moyens d'identification identifient l'instruction lue en tant qu'instruction du deuxième type; des moyens de temporisation pour contenir des données signalant que l'instruction du deuxième type est executee quand ces moyens d'identification identifient l'instruction lue en tant qu'instruction du deuxieme type; des moyens de sélection pour sélectionner une des adresses respectivement mémorisée dans ces moyens de memoire d'adresse et ces moyens de sauvegarde conformément aux données contenues dans ces moyens de temporisation; et des moyens de traitement d'exception, connectés du coté d'une sortie de ces-moyens -de sélection, pour préparer un message d'exception, dans lequel ces moyens de traitement d'exception préparent le message d'exception sur la base de l'adresse sélectionnée par ces moyens de sélection quand une exception survient durant l'exécution de l'une des instructions du premier et du deuxieme type qui est luedepuis ces deuxièmes moyens de mémoire.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63140779A JPH0682320B2 (ja) | 1988-06-08 | 1988-06-08 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2632746A1 true FR2632746A1 (fr) | 1989-12-15 |
FR2632746B1 FR2632746B1 (fr) | 1994-10-28 |
Family
ID=15276549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR8907536A Expired - Fee Related FR2632746B1 (fr) | 1988-06-08 | 1989-06-07 | Dispositif de traitement de donnees |
Country Status (3)
Country | Link |
---|---|
US (1) | US5095426A (fr) |
JP (1) | JPH0682320B2 (fr) |
FR (1) | FR2632746B1 (fr) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5134693A (en) * | 1989-01-18 | 1992-07-28 | Intel Corporation | System for handling occurrence of exceptions during execution of microinstructions while running floating point and non-floating point instructions in parallel |
JP2504235B2 (ja) * | 1989-11-16 | 1996-06-05 | 三菱電機株式会社 | デ―タ処理装置 |
JP2581236B2 (ja) * | 1989-11-16 | 1997-02-12 | 三菱電機株式会社 | データ処理装置 |
US5237700A (en) * | 1990-03-21 | 1993-08-17 | Advanced Micro Devices, Inc. | Exception handling processor for handling first and second level exceptions with reduced exception latency |
US5574872A (en) * | 1991-12-10 | 1996-11-12 | Intel Corporation | Method and apparatus for controlling the saving of pipelines in pipelined processors during trap handling |
DE4237417C2 (de) * | 1992-03-25 | 1997-01-30 | Hewlett Packard Co | Datenverarbeitungssystem |
US5386563A (en) * | 1992-10-13 | 1995-01-31 | Advanced Risc Machines Limited | Register substitution during exception processing |
US5761407A (en) * | 1993-03-15 | 1998-06-02 | International Business Machines Corporation | Message based exception handler |
US5758141A (en) * | 1995-02-10 | 1998-05-26 | International Business Machines Corporation | Method and system for selective support of non-architected instructions within a superscaler processor system utilizing a special access bit within a machine state register |
US6052801A (en) * | 1995-05-10 | 2000-04-18 | Intel Corporation | Method and apparatus for providing breakpoints on a selectable address range |
US5659679A (en) * | 1995-05-30 | 1997-08-19 | Intel Corporation | Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system |
US5740413A (en) * | 1995-06-19 | 1998-04-14 | Intel Corporation | Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping |
US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
JP3451594B2 (ja) * | 1995-12-21 | 2003-09-29 | 株式会社森精機ハイテック | 数値制御装置における記憶手段アクセス制御方法および数値制御装置 |
FR2757653B1 (fr) * | 1996-12-20 | 1999-03-12 | Sextant Avionique | Controleur d'entrees-sorties autonome et deporte |
US6009515A (en) * | 1997-05-30 | 1999-12-28 | Sun Microsystems, Inc. | Digital data processing system including efficient arrangement to support branching within trap shadows |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3766532A (en) * | 1972-04-28 | 1973-10-16 | Nanodata Corp | Data processing system having two levels of program control |
US4434462A (en) * | 1980-11-24 | 1984-02-28 | Texas Instruments Incorporated | Off-chip access for psuedo-microprogramming in microprocessor |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1426749A (en) * | 1973-06-05 | 1976-03-03 | Burroughs Corp | Micro programme data processor having parallel instruction flow streams for plural level of subinstruction sets |
US4370709A (en) * | 1980-08-01 | 1983-01-25 | Tracor, Inc. | Computer emulator with three segment microcode memory and two separate microcontrollers for operand derivation and execution phases |
US4399505A (en) * | 1981-02-06 | 1983-08-16 | Data General Corporaton | External microcode operation in a multi-level microprocessor |
US4928223A (en) * | 1982-10-06 | 1990-05-22 | Fairchild Semiconductor Corporation | Floating point microprocessor with directable two level microinstructions |
US4901235A (en) * | 1983-10-28 | 1990-02-13 | Data General Corporation | Data processing system having unique multilevel microcode architecture |
US4975837A (en) * | 1984-10-01 | 1990-12-04 | Unisys Corporation | Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets |
-
1988
- 1988-06-08 JP JP63140779A patent/JPH0682320B2/ja not_active Expired - Lifetime
-
1989
- 1989-06-06 US US07/361,977 patent/US5095426A/en not_active Expired - Fee Related
- 1989-06-07 FR FR8907536A patent/FR2632746B1/fr not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3766532A (en) * | 1972-04-28 | 1973-10-16 | Nanodata Corp | Data processing system having two levels of program control |
US4434462A (en) * | 1980-11-24 | 1984-02-28 | Texas Instruments Incorporated | Off-chip access for psuedo-microprogramming in microprocessor |
Non-Patent Citations (1)
Title |
---|
ICCD '86 - IEEE INTERNATIONAL CONFERENCE ON COMPUTER DESIGN: VLSI IN COMPUTERS 9 Octobre 1986, PORT CHESTER, NY, US pages 332 - 335 R. W. HADSELL ET AL 'MICRO/370 CONTROL FLOW' * |
Also Published As
Publication number | Publication date |
---|---|
US5095426A (en) | 1992-03-10 |
FR2632746B1 (fr) | 1994-10-28 |
JPH0682320B2 (ja) | 1994-10-19 |
JPH01310441A (ja) | 1989-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2632746A1 (fr) | Dispositif de traitement de donnees | |
JP3984786B2 (ja) | 異なる待ち時間を伴う命令のスケジューリング | |
US4430706A (en) | Branch prediction apparatus and method for a data processing system | |
US5428618A (en) | Debugger apparatus and method having an event history recording capability | |
FR2606903A1 (fr) | Procede et dispositif de gestion de points d'arret dans un moniteur de logiciel | |
US20110093683A1 (en) | Program flow control | |
EP0377994A2 (fr) | Dispositif pour effectuer des opérations arithmétiques à virgule flottante | |
US9785439B2 (en) | Processor testing | |
FR2894693A1 (fr) | Procede et dispositif de sauvegarde et de restauration d'une maniere interruptible d'un ensemble de registres d'un microprocesseur | |
JPH0574099B2 (fr) | ||
US4679138A (en) | Microsequencer in a data processing system using stack storage for controlling the sequencing of microroutines | |
US20100037208A1 (en) | handle based method for side-by-side assemblies in a unix environment | |
CN113626333A (zh) | 一种接口自动化测试方法及装置 | |
FR2601792A1 (fr) | Systeme de traitement vectoriel | |
FR2632089A1 (fr) | Systeme de calculateur electronique pourvu de moyens pour fournir une imitation de requete de stockage avant l'execution d'une poursuite de transition d'etat | |
KR970012141A (ko) | 파이프라인 처리를 수행하는 데이터 처리 장치 | |
CN116088863B (zh) | 故障定位方法及系统 | |
US20060155972A1 (en) | Method in pipelined data processing | |
EP0006485A1 (fr) | Dispositif d'adressage de pages dans un système de traitement de données | |
CN109101192B (zh) | 数据存储方法和装置 | |
JPH06290045A (ja) | 並列演算処理装置の演算エラー検出方式 | |
FR2805367A1 (fr) | Emulation d'instruction de branchement | |
FR2607607A1 (fr) | Machine informatique destinee a l'execution de traitements symboliques pour les applications de l'intelligence artificielle | |
FR2458844A1 (fr) | Procede et dispositif de traitement des signaux d'interruption pour un systeme de traitement de donnees a microprogramme | |
JP3057732B2 (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |