FR2678401A1 - INFORMATION PROCESSING DEVICE MORE PARTICULARLY ADAPTED TO A CHAIN LANGUAGE, OF THE FORTH TYPE IN PARTICULAR. - Google Patents

INFORMATION PROCESSING DEVICE MORE PARTICULARLY ADAPTED TO A CHAIN LANGUAGE, OF THE FORTH TYPE IN PARTICULAR. Download PDF

Info

Publication number
FR2678401A1
FR2678401A1 FR9108062A FR9108062A FR2678401A1 FR 2678401 A1 FR2678401 A1 FR 2678401A1 FR 9108062 A FR9108062 A FR 9108062A FR 9108062 A FR9108062 A FR 9108062A FR 2678401 A1 FR2678401 A1 FR 2678401A1
Authority
FR
France
Prior art keywords
memory
instruction
tor
address
program
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.)
Pending
Application number
FR9108062A
Other languages
French (fr)
Inventor
Marc Duranton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Laboratoires dElectronique Philips SAS
Original Assignee
Laboratoires dElectronique Philips SAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Laboratoires dElectronique Philips SAS filed Critical Laboratoires dElectronique Philips SAS
Priority to FR9108062A priority Critical patent/FR2678401A1/en
Priority to DE69229302T priority patent/DE69229302T2/en
Priority to EP92201877A priority patent/EP0520579B1/en
Priority to JP16964992A priority patent/JP3233686B2/en
Publication of FR2678401A1 publication Critical patent/FR2678401A1/en
Priority to US08/286,102 priority patent/US5479621A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter

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)
  • Devices For Executing Special Programs (AREA)

Abstract

Ce dispositif de traitement d'informations plus particulièrement adapté à un langage informatique chaîné du type FORTH notamment, comporte: - une mémoire principale (10) pour contenir un programme d'exécution avec ses données d'instruction constituées par une pluralité d'instructions directement ou non directement exécutables qui sont regroupées en au moins un sous-programme, - une première mémoire (30) de type pile pour contenir l'adresse suivant l'adresse d'appel à un sous-programme (adresse retour), - une ou plusieurs unités d'opération (40) pour exécuter les instructions directement exécutables, pouvant contenir: . une deuxième mémoire de type pile (20) pour contenir des paramètres utilisés par ledit programme, . un organe de décodage d'instructions (70) pour décoder chaque donné d'instruction issue de la mémoire principale. Application: traitement de l'information.This information processing device more particularly suited to a chained computer language of the FORTH type in particular, comprises: a main memory (10) for containing an execution program with its instruction data constituted by a plurality of instructions directly or not directly executable which are grouped into at least one subroutine, - a first memory (30) of stack type to contain the address following the call address to a subroutine (return address), - one or several operation units (40) for executing the directly executable instructions, which may contain:. a second stack-type memory (20) for containing parameters used by said program,. an instruction decoding member (70) for decoding each instruction data item coming from the main memory. Application: information processing.

Description

"Dispositif de traitement de l'information plus particulièrement adapté à"Information processing device more particularly adapted to

un langage chaîné, du type FORTH notamment".  a chained language, of the FORTH type in particular ".

DescriptionDescription

La présente invention concerne un dispositif de traitement d'informations plus particulièrement adapté à un langage informatique chaîné du type FORTH notamment, dispositif comportant entre autres: une mémoire principale pour contenir un programme d'exécution avec ses données d'instruction constituées par une pluralité d'instructions directement ou non directement exécutables qui sont regroupées en au moins un sous-programme, une première mémoire de type pile pour contenir l'adresse suivant l'adresse d'appel à un sous-programme (adresse de retour), une ou plusieurs unités d'opération pour exécuter les instructions directement exécutables 1 pouvant contenir chacune: une deuxième mémoire de type pile pour contenir des paramètres utilisés par ledit programme, un organe de décodage d'instructions pour décoder chaque  The present invention relates to an information processing device more particularly adapted to a chained computer language of the FORTH type in particular, a device comprising among others: a main memory for containing an execution program with its instruction data constituted by a plurality of directly or indirectly executable instructions which are grouped into at least one subroutine, a first stack memory for containing the address following the subroutine call address (return address), one or more units of operation for executing directly executable instructions 1 each of which may include: a second stack memory for holding parameters used by said program, an instruction decoding device for decoding each

donnée d'instruction issue de la mémoire principale.  instruction data from the main memory.

Un tel dispositif est décrit dans le document de  Such a device is described in the document

brevet européen publié sous le numéro O 185 215.  European patent published under number O 185 215.

Pour concevoir un programme d'exécution, le programmeur, ou le compilateur de langage, doit connaître les ressources matérielles avec lesquelles le dispositif fonctionne Ainsi il doit savoir si chaque instruction est une instruction directement exécutable ou si l'on doit se brancher à un sous-programme effectuant la fonction à l'aide d'instructions directement exécutables Par exemple si un organe de multiplication est prévu dans l'environnement du dispositif, l'opération de multiplication est directement exécutable et si cet organe est absent on doit se brancher à un sous-programme de multiplication qui va l'effectuer par additions et décalages successifs Ce choix est fixé au moyen d'un élément binaire incorporé à l'instruction que le programmeur positionne pour indiquer que l'instruction est directement ou non directement exécutable En d'autres termes, on doit compiler avec un indicateur pour fournir soit des instructions directement exécutables, soit un appel à une  To design an execution program, the programmer, or the language compiler, must know the hardware resources with which the device works. Thus he must know if each instruction is a directly executable instruction or if one must connect to a sub-program. -program performing the function using directly executable instructions For example if a multiplier is provided in the environment of the device, the multiplication operation is directly executable and if this organ is absent must be connected to a multiplication subroutine which will perform it by additions and successive offsets This choice is fixed by means of a binary element incorporated in the instruction that the programmer positions to indicate that the instruction is directly or not directly executable. other words, one must compile with an indicator to provide either directly executable instructions or a call to a e

bibliothèque émulant l'instruction absente.  library emulating the missing instruction.

Le fait que l'utilisateur doit connaître les  The fact that the user needs to know the

ressources constitue un premier inconvénient.  resources is a first disadvantage.

Un deuxième inconvénient qui en découle est que le programme établi ne peut fonctionner que sur le dispositif avec l'environnement pour lequel le programme a été conçu l'ajout d'autres ressources matérielles impose une  A second disadvantage that follows is that the established program can only work on the device with the environment for which the program was designed the addition of other hardware resources imposes a

ré-écriture ou une recompilation du programme.  rewriting or recompiling the program.

L'invention propose un dispositif du genre mentionné dans le préambule qui évite, dans une large mesure,  The invention proposes a device of the type mentioned in the preamble which avoids, to a large extent,

les inconvénients précités.the aforementioned drawbacks.

Pour cela, un tel dispositif est remarquable en ce qu'il est muni de moyens pour considérer comme des adresses de sous-programme les instructions qu'il ne peut pas exécuter directement. Ainsi l'idée de l'invention est de considérer que toute donnée d'instruction est une adresse de procédure Il  For this, such a device is remarkable in that it is provided with means for considering as subroutine addresses instructions that it can not execute directly. So the idea of the invention is to consider that any instruction data is a procedure address It

n'y a donc plus d'instructions au sens propre du terme.  There are therefore no more instructions in the true sense of the word.

La description suivante accompagnée des dessins  The following description with drawings

annexés, le tout donné à titre d'exemple non limitatif fera  annexed, all given as a non-restrictive example will be

bien comprendre comment l'invention peut être réalisée.  understand how the invention can be realized.

La figure 1 montre le schéma d'un premier dispositif de traitement de l'information conforme à l'invention. La figure 2 montre l'implantation de données  Figure 1 shows the diagram of a first information processing device according to the invention. Figure 2 shows the data implementation

d'instructions dans la mémoire principale.  instructions in the main memory.

La figure 3 montre plus en détail l'unité de décodage. La figure 4 montre le schéma d'un autre mode de réalisation d'un dispositif de traitement de l'information,  Figure 3 shows in more detail the decoding unit. FIG. 4 shows the diagram of another embodiment of an information processing device,

incluant des moyens pour l'exécution de boucles de progamme.  including means for executing program loops.

La figure 5 montre plus en détail l'unité de décodage convenant pour le dispositif de l'invention montré à  FIG. 5 shows in more detail the decoding unit that is suitable for the device of the invention shown in FIG.

la figure 4.Figure 4.

La figure 6 montre l'implantation en mémoire pour  Figure 6 shows the implementation in memory for

l'exécution d'une boucle de programme.  running a program loop.

Le dispositif de traitement d'informations montré à -la figure 1 se compose tout d'abord d'une mémoire principale contenant les données d'instructions A la figure 2 on a représenté, à titre d'exemple, une série de telles données montrant un programme P 4 calculant la puissance quatrième d'un nombre "a", c'est-à-dire calculant a 4 A la figure 2, la rubrique @ indique l'adresse et D la donnée présente à cette adresse Ainsi le programme P 4 est appelé à l'adresse @APPEL et implique d'autres sous-programmes qui seront explicités en détail dans la suite du présent exposé Cette structure d'instructions est propre aux langages dit "chaînés" Les instructions dont il a été question, ainsi que *, DUP sont  The information processing device shown in FIG. 1 consists firstly of a main memory containing the instruction data. In FIG. 2, a series of such data showing, by way of example, is shown. a program P 4 calculating the fourth power of a number "a", that is to say calculating at 4 in FIG. 2, the item @ indicates the address and D the data present at this address. Thus the program P 4 is called at the address @APPEL and implies other subroutines which will be explained in detail in the remainder of this presentation. This instruction structure is specific to the so-called "linked" languages. The instructions that have been discussed, as well as that *, DUP are

conformes aux notations du langage Forth.  consistent with Forth notation.

Le dispositif de la figure 1 comporte en outre une première mémoire 20 de type pile (dernière donnée entrée, première donnée sortie) prévue pour contenir des paramètres et, dans l'exemple décrit, on trouvera notamment le nombre a une deuxième mémoire 30 aussi de type pile, est prévue pour contenir les adresses de sous-programmes et coopère avec un registre d'adresses de données d'instructions portant la référence 32 Par l'intermédiaire d'un commutateur SW 1 le contenu du registre 32 peut être augmenté d'une unité au moyen d'un additionneur 34 ou pas, avant d'être transmis vers un autre commutateur SW 2 dont la sortie est en relation avec l'entrée de la mémoire 30 La dernière information entrée est mise à la position repérée par TOR tandis que l'avant dernière est repérée par NOR Un commutateur SW 3 sélectionne la donnée contenue dans la position NOR ou TOR avant de l'acheminer vers  The device of FIG. 1 further comprises a first memory 20 of the stack type (last data input, first output data) intended to contain parameters and, in the example described, in particular the number has a second memory 30 also of type stack, is intended to contain the subroutine addresses and cooperates with an instruction data address register with the reference 32 Through a switch SW 1 the contents of the register 32 can be increased by one unit by means of an adder 34 or not, before being transmitted to another switch SW 2 whose output is in relation to the input of the memory 30 The last information input is set to the position marked by TOR while that the penultimate is marked by NOR A switch SW 3 selects the data contained in the position NOR or TOR before routing it towards

le registre 32 par l'intermédiaire d'un autre commutateur SW 4.  the register 32 via another switch SW 4.

D'une manière similaire, on a repéré respectivement par TOP et NOP la dernière et l'avant dernière positions auxquelles les paramètres se Un commutateur à trois I sélectionner les données à i données proviennent soit de d'opération 40, et soit de l unité 40 est munie de deux ( A est reliée à la position ' l'entrée B est reliée à la < entrées El et E 2 L'entrée I ont emmagasinés dans la mémoire positions SW 5 permet de empiler dans la mémoire 20 Ces la mémoire 10, soit d'une unité La sortie du commutateur SW 3 Cette entrées d'opérande A et B L'entrée TOP de la mémoire 20 tandis que ortie d'un commutateur SW 6 à deux E 1 est reliée à la position NOP de la mémoire 20 et l'entrée E 2 est reliée à l'accès extérieur 50 par l'intermédiaire d'une unité d'entrée-sortie 55 Cette unité fournit aussi des informations de sortie, provenant de l'unité d'opération 40, à l'accès 50 Le commutateur SW 2 permet de sélectionner, outre la donnée provenant du registre 32, des données provenant de la sortie du commutateur SW 3 et celles contenues à la position TOP de la mémoire 20 Un commutateur SW 4 permet de charger le registre 32 de données provenant soit de la mémoire 10, soit des données présentes à la sortie du commutateur SW 3 et d'un autre commutateur SW 8 qui présélectionne les données contenues aux positions NOP et TOP  In a similar manner, TOP and NOP were respectively marked last and last to the positions at which the parameters are selected. 40 is equipped with two (A is connected to the position 'input B is connected to the <inputs E1 and E2 Input I have stored in the memory positions SW 5 can stack in memory 20 These memory 10 The output of the switch SW 3 This operand inputs A and B The TOP input of the memory 20 while netting a SW switch with two E 1 is connected to the NOP position of the memory And the input E 2 is connected to the external port 50 via an input-output unit 55. This unit also provides output information, from the operation unit 40, to the 50 The switch SW 2 makes it possible to select, besides the data coming from the r 32, data from the output of the switch SW 3 and those contained at the TOP position of the memory 20 A switch SW 4 is used to load the register 32 data from either the memory 10 or data present at the output switch SW 3 and another switch SW 8 which preselects the data contained in the positions NOP and TOP

de la mémoire 20.of memory 20.

Les différents commutateurs SW 1 à SW 6 et SW 8 sont munis respectivement de commandes de positions KW 1 à KWG et  The different switches SW 1 to SW 6 and SW 8 are respectively provided with position commands KW 1 to KWG and

KW 8.KW 8.

L'unité d'opération 40 est munie d'une entrée de commande K qui reçoit les informations de commande d'une unité de décodage d'instruction 70 dont l'entrée DK est branchée à la sortie de la mémoire 10 et fournit les différents signaux  The operation unit 40 is provided with a control input K which receives the control information of an instruction decoding unit 70 whose input DK is connected to the output of the memory 10 and supplies the different signals

KW 1 à KW 6, KW 8 en fonction des instructions à effectuer.  KW 1 to KW 6, KW 8 according to the instructions to be made.

Selon l'invention l'unité de décodage d'instructions est réalisée d'une manière avantageuse à partir d'une mémoire associative dont un schéma de principe est  According to the invention, the instruction decoding unit is advantageously produced from an associative memory whose schematic diagram is

représenté à la figure 3.shown in Figure 3.

Cette mémoire associative est constituée à partir d'un bloc de mémoire 100 muni d'une sortie 50 peut fournir un code, afin que les opérations à effectuer par l'unité 40 puissent se dérouler Cependant, le code d'entrée relié à l'accès DK est comparé avec tous les codes d'exécution qui peuvent être exécutés directement par l'unité 40 Tous ces codes d'exécution sont contenus dans des registres Rl à RN et des comparateurs Cl à CN effectuent la comparaison avec le contenu de ces registres et le code d'entrée présent à l'entrée DK Un décodeur 102 utilise les résultats de ces comparaisons pour générer l'adresse de la mémoire 100, afin que celle-ci délivre à l'unité 40 l'instruction correspondante Une porte OU référencée 110, par exemple, recueille le résultat de ces comparaisons Si le code d'entrée est reconnu, la sortie du bloc mémoire est reconnue et son code (ou ses codes) de sortie est (sont) validé(s) et sort (sortent) du bloc 100 à l'entrée K de l'unité 40 Si le code d'entrée n'est pas reconnu, un code non opératoire (nop) est appliqué alors à la commande K, l'adresse de non décodage génère le nop Les différentes informations issues de la porte 110 et de la sortie 50 de la mémoire 100 sont appliquées à une unité de commande de commutation 120 qui fournit les signaux  This associative memory is constituted from a memory block 100 provided with an output 50 can provide a code, so that the operations to be performed by the unit 40 can take place However, the input code connected to the DK access is compared with all the execution codes that can be executed directly by the unit 40 All these execution codes are contained in registers R1 to RN and comparators C1 to CN compare with the contents of these registers and the input code present at the input DK A decoder 102 uses the results of these comparisons to generate the address of the memory 100, so that the latter delivers to the unit 40 the corresponding instruction A referenced OR gate 110, for example, collects the result of these comparisons If the input code is recognized, the output of the memory block is recognized and its code (or codes) output is (are) validated (s) and out (out) from block 100 to the K input of the unit 40 If the input code is not recognized, a non-operative code (nop) is then applied to the command K, the non-decoding address generates the nop The various information from the gate 110 and the output 50 of the memory 100 are applied to a switching control unit 120 which provides the signals

KW 1 à KW 6 et KW 8.KW 1 to KW 6 and KW 8.

Le décodage d'instructions peut être réalisé par  The decoding of instructions can be done by

toute autre méthode de décodage, programmable ou non.  any other method of decoding, programmable or not.

L'ensemble Rl,, RN, Cl,, CN peut être réalisé par toute structure de mémoire associative Pour l'invention, la  The set R1 ,, RN, Cl ,, CN can be realized by any associative memory structure For the invention, the

méthode de décodage sera avantageusement programmable.  decoding method will be advantageously programmable.

En effet, pour toute modification du matériel, il suffit de ne modifier que le contenu de la mémoire associative Un programme se compose donc: d'une liste d' instructions', indépendante du processeur utilisé (dans la limite ou celui-ci a des instructions élémentaires communes), et d'une table, chargée dans la 'mémoire associative qui reflète les caractéristiques propres de la machine Cela est avantageux lors de la vente de programmes clé en main La modification du matériel n'entraîne pas une recompilation de l'application, mais uniquement la modification du contenu de  Indeed, for any modification of the material, it is enough to modify only the contents of the associative memory A program is thus composed: of a list of instructions', independent of the processor used (in the limit or this one has some common elementary instructions), and a table, loaded into the associative memory that reflects the characteristics of the machine This is advantageous when selling turnkey programs The modification of the material does not result in a recompilation of the application, but only the modification of the content of

la mémoire associative (quelques octets).  associative memory (a few bytes).

On explique maintenant le fonctionnement du dispositif de l'invention dans le cadre du programme exemple montré à la figure 2, c'est-à-dire la mise à la puissance 4  The operation of the device of the invention is now explained in the context of the example program shown in FIG. 2, that is to say the setting to the power 4

d'un nombre "a", soit évaluer a 4.of a number "a", to be evaluated at 4.

Tout d'abord on expose le fonctionnement de base du dispositif de l'invention Par défaut, le dispositif considère que toute donnée en sortie de ( 10) est une adresse d'appel de sous-programme Les opérations de base se déroulent comme suit: dans les opérations explicitées ci-dessous, ( 32) indique le contenu du registre 32, l@( 32)llo indique le contenu de la mémoire 10 à l'adresse indiquée par le contenu  Firstly, the basic operation of the device of the invention is explained. By default, the device considers that any data output from (10) is a subroutine call address. The basic operations are as follows: in the operations explained below, (32) indicates the contents of the register 32, l @ (32) llo indicates the contents of the memory 10 at the address indicated by the content.

du registre 32.from the register 32.

( 32) + 1 TOR: on empile l'adresse suivante l@( 32)llo: est analysé par 70 pour déterminer si c'est une instruction ou un appel de sous- programme. Si c'est un appel de sous-programme (pas reconnu par la mémoire associative comme une instruction exécutable par le matériel): l@( 32)llo 32 et le cycle recommence Si c'est une instruction, elle peut avoir deux formes  (32) + 1 TOR: stack the following address l @ (32) llo: is analyzed by 70 to determine if it is an instruction or a subroutine call. If it is a subroutine call (not recognized by associative memory as an instruction executable by the hardware): l @ (32) llo 32 and the cycle starts again If it is an instruction, it can have two forms

retour ou non retour.return or no return.

forme non retour: on exécute les opérations en séquence l@( 32)lil est exécuté par l'unité 40 TOR c 32 le registre 32 est chargé avec l'adresse de  non-return form: the operations are executed in sequence l @ (32) lil is executed by the unit 40 TOR c 32 the register 32 is loaded with the address of

de l'instruction suivante (on dépile une seule donnée).  of the following instruction (we unpile a single data).

forme retour: dans ce cas, ôn effectue en même temps que  return form: in this case, you perform at the same time as

l'opération codée, un retour de sous-programme.  the coded operation, a subroutine return.

l@( 32)llo est exécuté par 40l @ (32) llo is executed by 40

NOR 32: dépilage de deux données dans la mémoire 30.  NOR 32: unstacking of two data in the memory 30.

On retourne à l'adresse d'appel du sous-programme.  We return to the call address of the subroutine.

On va voir ce mécanisme dans le cadre du programme  We will see this mechanism as part of the program

exemple.example.

D'autres informations peuvent être trouvées dans  Further information can be found in

l'Annexe I du présent mémoire.Appendix I of this memo.

On admet qu'au départ, le contenu du registre 32 est APPEL-2, qui est un code d'adresse noté @APPEL-2 pour une donnée d'instruction contenue dans la mémoire 10 A cette adresse un symbole, par exemple CONST, signifie que la donnée suivante est une constante et qu'elle doit être stockée à la  It is assumed that initially the contents of the register 32 are CALL-2, which is an address code denoted @ CALL-2 for an instruction datum contained in the memory 10. At this address a symbol, for example CONST, means that the following data is a constant and that it must be stored at the

position TOP au sein de la mémoire 20.  TOP position within the memory 20.

Les étapes de fonctionnement sont expliquées ci-dessous par des commentaires relatifs à des pas de  The steps of operation are explained below by comments on steps of

programme explicités plus en détail à l'Annexe II.  described in more detail in Appendix II.

Pas du progr Commentaires 1 La valeur @APPEL-2 incrémentée d'une unité est transférée à la position TOR de la mémoire 30 On effectue alors un empilage à la position TOR, on a le  No progress Comments 1 The value @ CALL-2 incremented by one unit is transferred to the digital position of the memory 30 Then a stacking is carried out at the TOR position, we have the

code lAPPEL-1 i.code lAPPEL-1 i.

2 Le contenu de la mémoire 10 à l'adresse @APPEL-2 est  2 The contents of memory 10 at @ APPEL-2 is

analysé comme le préalable d'une constante.  analyzed as the prerequisite of a constant.

3 La valeur EAPPEL-1 pointe maintenant la valeur "a" contenue dans la mémoire 10 On effectue alors un dépilage. 4 La valeur @APPEL-1 incrémentée d'une unité est  The value EAPPEL-1 now points to the value "a" contained in the memory 10. An unstacking is then performed. 4 The value @ CALL-1 incremented by one unit is

transférée à la position TOR de la mémoire 30 (empilage).  transferred to the digital position of the memory 30 (stacking).

5 La constante "a" est mise à la position TOP de la mémoire 20 (le préalable du pas 2 a commuté les  The constant "a" is set to the TOP position of the memory 20 (the previous step 2 has switched the

commutateurs SW 3).SW switches 3).

6 Le contenu du registre 32 est @APPEL ce qui correspond à l'exécution de la puissance quatrième de "a", le code contenu correspond à une adresse de  6 The content of the register 32 is @APPEL which corresponds to the execution of the fourth power of "a", the content code corresponds to an address of

sous-programme @P 4 (primitive continue).  subroutine @P 4 (continuous primitive).

7 L'adresse @APPEL, incrémentée d'une unité est mise  7 The @APPEL address, incremented by one unit, is set

à la position TOR.at the TOR position.

8 Le contenu de la mémoire 10 à l'adresse @APPEL est analysé; comme ce code n'est pas reconnu comme étant directement exécutable, il est considéré comme étant une adresse.  8 The contents of the memory 10 at the address @APPEL are analyzed; since this code is not recognized as directly executable, it is considered to be an address.

9 L'adresse @P 4 est mise dans le registre 32.  9 The address @P 4 is set in the register 32.

L'adresse @P 4 incrémentée d'une unité est empilée.  The incremented @P 4 address of one unit is stacked.

il Le contenu de la mémoire 10 à l'adresse @P 4 est  The contents of memory 10 at address @P 4 are

analysé comme une adresse.analyzed as an address.

12 L'adresse @carré est mise dans le registre 32.  The @ square address is set in the register 32.

13 L'adresse @carré, incrémentée d'une unité, est empilée. 14 L'instruction DUP est analysée, c'est une  13 The @ square address, incremented by one unit, is stacked. The DUP instruction is analyzed.

primitive Cette instruction est donc exécutée.  primitive This statement is executed.

On passe à l'instruction suivante.We go on to the next instruction.

16 On empile dans la mémoire 10 l'adresse du retour.  The return address is stacked in the memory 10.

17 L'examen de l'instruction implique un sous-programme. 18 L'adresse de ce sous-programme est mise dans le registre 32 de sorte qu'à la sortie de la mémoire 10 on a  17 The examination of instruction involves a sub-program. The address of this routine is set in the register 32 so that at the output of the memory 10 there is

la première instruction INM 1 de multiplication.  the first INM instruction 1 multiplication.

L'exécution de la multiplication est effectuée au moyen d'additions et de décodages successifs selon les manières  The execution of the multiplication is carried out by means of successive additions and decodings according to the manners

bien connues de l'homme de l'art.well known to those skilled in the art.

19 Puis, on arrive à l'instruction de la forme de retour.  Then we come to the instruction of the form of return.

Cette forme est examinée.This form is examined.

21 Après 2 dépilages on a effectué le retour du  After 2 depilages, the return of the

sous-programme.subroutine.

22 L'instruction du retour IR est rendue disponible.  22 The IR return instruction is made available.

23 Elle est examinée.23 She is examined.

26 On fait appel au sous-programme de ncarrée qui  26 The nested subprogram is used.

27 commence par l'instruction DUP.It starts with the DUP instruction.

Le programme se poursuit ensuite comme depuis le pas 13  The program then continues as from step 13

et suivants jusqu'à l'appel d'un nouveau carré.  and following until the call of a new square.

28 On retrouve donc le retour de sous-programme.  28 So we find the return of subroutine.

29 Examen de l'instruction, retour de sous-programme.  29 Examination of instruction, return of subprogram.

30 On dépile de deux éléments.Two elements are removed.

31 Puis on obtient l'instruction de retour 32 et on procède à son examen  31 Then we get the return instruction 32 and we proceed to its examination

33 Suite du programme.33 Continuation of the program.

Le programme finit de se dérouler.The program ends up unfolding.

Il est à noter que chaque instruction se compose des cycles suivants: ( 32) + 1 -+ TOR qui est un cycle d'empilage du contenu du  It should be noted that each instruction consists of the following cycles: (32) + 1 - + TOR which is a stacking cycle of the contents of the

registre 31 augmenté d'une unité.register 31 increased by one unit.

l@( 32)llo qui est l'examen et l'analyse de l'instruction.  l @ (32) llo which is the examination and analysis of instruction.

Puis le branchement et le chargement d'une nouvelle  Then connecting and loading a new

valeur dans le registre 32.value in the register 32.

Pour cela, on distingue trois cas a) l@( 32)lla définit un appel de sousprogramme b) (TOR) 32 implique l'exécution en séquence de  For this, we distinguish three cases a) l @ (32) lla defines a subprogram call b) (TOR) 32 implies the execution in sequence of

l'instruction suivante avec un dépilage.  the next statement with unstacking.

c) (NOR) 32 relatif au retour de sous-programme avec un dépilage de deux éléments de la mémoire de retour 30. D'autres opérations peuvent être effectuées par le dispositif de l'invention montré à la figure 1 Ceci est montré à l'Annexe I. On a expliqué ici le fonctionnement d'un dispositif comportant des moyens pour exécuter un minimum d'instructions Il convient alors de bien remarquer que le programme présenté ici, avec les mêmes instructions, peut être exécuté avec un dispositif conforme à l'invention et comportant des moyens supplémentaires; par exemple, l'unité d'opération 40 peut comporter des moyens lui permettant  c) (NOR) 32 relating to the subroutine return with an unstacking of two elements of the return memory 30. Other operations can be performed by the device of the invention shown in FIG. 1 This is shown in FIG. Appendix I. The operation of a device having means for executing a minimum of instructions is explained here. It should then be noted that the program presented here, with the same instructions, can be executed with a device in accordance with FIG. invention and having additional means; for example, the operation unit 40 may comprise means enabling it to

d'exécuter des multiplications.to perform multiplications.

Le programme sera alors exécuté de la manière suivante: 1 à 16 identiques 17 l@( 32)llo est analysé alors comme une instruction directement exécutable, le symbole n*n n'est pas considéré comme une adresse, l'opération  The program will then be executed in the following way: 1 to 16 identical 17 l @ (32) llo is then analyzed as a directly executable instruction, the symbol n * n is not considered as an address, the operation

est exécutée.is executed.

Le code de l'application reste inchangé, il n'y a que le contenu du décodeur d'instructions 70 qui est modifié lorsqu'on ajoute une ressource matérielle au dispositif (dans  The code of the application remains unchanged, only the contents of the instruction decoder 70 are modified when a hardware resource is added to the device (in

ce cas un organe de multiplication câblé).  this case a cable multiplier).

A la figure 4, on a représenté une autre variante  In Figure 4, there is shown another variant

de réalisation d'un autre dispositif conforme à l'invention.  embodiment of another device according to the invention.

Sur cette figure, les éléments communs à ceux de la figure 1 portent les mêmes références Ce dispositif de la figure 4 est muni de moyens qui lui permettent d'effectuer des boucles de programmes. Ce dispositif de la figure 4 se distingue de celui de la figure 1, tout d'abord par le fait que les entrées de l'additionneur 34 sont reliées aux sorties de deux commutateurs SW 10 et SW 12 Le commutateur SW 10 est muni de quatre entrées qui reçoivent les signaux représentant les nombres + 1, 0, 1 et le contenu de la mémoire 20 défini par la position TOP respectivement Le commutateur SW 12 est muni de deux entrées La première est reliée à la sortie du registre 32 et la deuxième, à la sortie d'un registre d'index dont l'entrée est en relation avec la position TOR de la  In this figure, the elements common to those of Figure 1 bear the same references This device of Figure 4 is provided with means that allow it to perform program loops. This device of FIG. 4 differs from that of FIG. 1, first of all in that the inputs of the adder 34 are connected to the outputs of two switches SW 10 and SW 12. The switch SW 10 is provided with four inputs which receive the signals representing the numbers + 1, 0, 1 and the contents of the memory 20 defined by the position TOP respectively The switch SW 12 is provided with two inputs The first is connected to the output of the register 32 and the second, at the output of an index register whose input is in relation with the digital position of the

mémoire-pile 30.memory-stack 30.

Le dispositif de la figure 4 se distingue de celui de la figure 1, en outre, par le fait qu'il est prévu un comparateur de codes 155 Ses entrées sont mises en relation avec les positions NOR et TOR de la mémoire 30 et sa sortie à l'entrée de l'unité de décodage d'instructions 70 Cette unité fournira les signaux de commande KW 10 et KW 12 en direction des  The device of FIG. 4 differs from that of FIG. 1, in addition, in that a code comparator 155 is provided. Its inputs are related to the NOR and TOR positions of the memory 30 and its output. at the input of the instruction decoding unit 70 This unit will provide the control signals KW 10 and KW 12 towards the

commutateurs SW 10 et SW 12 respectivement.  switches SW 10 and SW 12 respectively.

L'unité 70 de la figure 4 est montrée plus en détail à la figure 5 Le signal issu du comparateur 155 est  The unit 70 of FIG. 4 is shown in more detail in FIG. 5. The signal coming from the comparator 155 is

appliqué à l'unité de commande de commutation 120.  applied to the switching control unit 120.

L'index de boucle est en TOR, la limite de boucle en NOR (chargé par 2 instructions >R), on a donc une implantation mémoire telle que montrée à la figure 6, dans laquelle LIM est la limite de bouclage et INDX l'initialisation du registre 150, LIM et INDX étant annoncés  The loop index is in TOR, the loop limit in NOR (loaded by 2 instructions> R), so we have a memory layout as shown in FIG. 6, in which LIM is the loopback limit and INDX the initialization of register 150, LIM and INDX being announced

par CONST.by CONST.

Une boucle de programme s'effectue alors de la manière suivante, lorsqu'on a la limite de boucle en NOR, l'index de boucle  A program loop is then performed as follows, when the loop limit in NOR is set, the loop index

( 32)+ 1 C(32) + 1 C

l@( 32)l 10 (TOR)l @ (32) l 10 (TOR)

(TOR) -(TOR) -

( 150)+ 1(150) + 1

en TC TOR TOR )R: : Empilage de ( 32)+ 1 adresse de branchement  in TOR TOR TOR) R:: Stacking of (32) + 1 connection address

: L'instruction "boucle" est dé-: The "loop" instruction is de-

: Dépilage de TOR : Dépilage de l'index de boucle : Incrémentation de 1 de l'inde, boucle tectée x de ou ( 150)+(TOP) TOR: Incrémentation de l'index de boucle  : Discrete unloading: Unstacking of the loop index: Incrementation of 1 of the inde, loop tapped x of or (150) + (TOP) Discrete: Incrementation of the index of loop

de la valeur contenue dans TOP.of the value contained in TOP.

Nota: TOR ne doit pas être dépilé  Note: TOR must not be removed

lors de cette opération.during this operation.

l( 155)l:On teste l'égalité des contenus aux emplacements NOR et TOR S'il y a égalité ( 32)+ 1 TOR:Fin de la boucle (on saute l'adresse de branchement) (TOR) 32: instruction suivante sinon ( 32)-1 -+ TOR: on restaure l'adresse de l'instruction de "boucle" 32: appel du sousprogramme l( 32)llo -+ En sortie, il faut transférer TOR et NOR dans NOP  l (155) l: One tests the equality of the contents in the NOR and TOR locations If there is equality (32) + 1 TOR: End of the loop (one skips the address of connection) (TOR) 32: instruction next otherwise (32) -1 - + TOR: we restore the address of the instruction of "loop" 32: call of the subrogramme l (32) llo - + At the exit, it is necessary to transfer TOR and NOR in NOP

et TOP pour pouvoir les effacer.and TOP to be able to erase them.

Une instruction de boucle se comporte comme suit: "limite", "index", "> R", ">R", "Loop', "<adresse du call>",  A loop instruction behaves as follows: "limit", "index", "> R", "> R", "Loop", "<call address>",

"R>", "R>", "DROP", "DROP"."R>", "R>", "DROP", "DROP".

A N N E X E IA N N E X E I

Instructions exécutables Dans ce qui suit PC représente le contenu du  Executable instructions In what follows PC represents the contents of the

registre 32.register 32.

Le cycle normal est PC + 1 TOR avec empilage dans ( 30) voir figure 1 Par défaut toute donnée en sortie de la mémoire 10  The normal cycle is PC + 1 TOR with stacking in (30) see figure 1 By default any data output from the memory 10

est considérée comme une adresse de sous-programme.  is considered a subroutine address.

NORMAL (appel de sous-programme): Instruction de base si TOR 4 PC dépilage de 1 élément dans la mémoire ( 30) si NOR 4 PC dépilage de 2 éléments dans ( 30) 1 PC + 1 TOR (empilage)  NORMAL (subroutine call): Basic instruction if discrete 4 PC unstacking of 1 element in memory (30) if NOR 4 PC unstacking of 2 elements in (30) 1 PC + 1 TOR (stacking)

2 M(PC) analysée comme NORMAL par le décodeur 70.  2 M (PC) analyzed as NORMAL by the decoder 70.

3 M(PC)*PC3M (PC) * PC

PRIMITIVE RETOUR:PRIMITIVE RETURN:

Instruction élémentaire reconnue par l'unité d'opération  Basic instruction recognized by the operation unit

avec retour de sous-programme inclus dans l'instruction.  with subroutine return included in the instruction.

1 PC + 1 +TOR (empilage) 2 M(PC) analysée comme PRIMITIVE RETOUR 3 NOR 4 PC (dépilage de 2 éléments)  1 PC + 1 + TOR (stacking) 2 M (PC) analyzed as PRIMITIVE RETURN 3 NOR 4 PC (unstacking of 2 elements)

PRIMITIVE CONTINUE:PRIMITIVE CONTINUES:

Instruction élémentaire L'instruction exécutée après est  Elementary instruction The statement executed after is

l'instruction suivante en mémoire.the following instruction in memory.

1 PC + 1 TOR (empilage) 2 M(PC analysée comme PRIMITIVE CONTINUE 3 TOR-PC (dépilage) CONSTANTE (la valeur de la constante est juste après): 1 PC + 1-TOR (empilage) 2 M(PC) analysée comme CONSTANTE, la prochaine instruction  1 PC + 1 TOR (stacking) 2 M (PC analyzed as PRIMITIVE CONTINUOUS 3 TOR-PC (unstacking) CONSTANT (the value of the constant is just after): 1 PC + 1-TOR (stacking) 2 M (PC) analyzed as CONSTANT, the next instruction

sera forcée comme primitive.will be forced as primitive.

3 TOR 4 PC (dépilage) 4 PC + 1 ITOR (empilage)  3 TOR 4 PC (unstacking) 4 PC + 1 ITOR (stacking)

M(PC)-TOPM (PC) -TOP

6 TOR ou NOR+PC (si CONSTANTE RETOUR ou CONTINUE),  6 TOR or NOR + PC (if CONSTANT RETURN or CONTINUE),

(dépilage 1 ou 2).(unstacking 1 or 2).

TEST: Plusieurs options sont possibles: choix TOR ou NOR (forme RETOUR ou CONTINUE) inhiber le + 1 lors de la seconde phase de lecture,  TEST: Several options are possible: choice TOR or NOR (form BACK or CONTINUE) to inhibit the + 1 during the second phase of reading,

choix M(PC) ou TOR lors de la seconde phase de lecture.  choice M (PC) or TOR in the second reading phase.

On va voir quelques options possibles: 1 PC + 1 *TOR (empilage) 2 M(PC) analysée comme RETOUR CONDITIONNEL 3 TOR ou NOR 4 PC selon condition (dépilage 1 ou 2) ou encore: 1 PC + 1 VTOR (empilage) 2 M(PC) analisée comme IF 3 TOR 4 PC (dépilage) 4 PC + 1- TOR (empilage) 5 TOR 4 PC (dépilage) (pas de saut) ou M(PC)4 PC (saut) au sous-programme ou bien encore 1 PC + 1-TOR (empilage) 2 M(PC) analysée comme IF 3 TOR+PC (dépilage) 4 TOR PC (retour) ou M(PC)4 PC (saut) (sans retour) FETCH ou STORE IMMEDIAT: La donnée est en TOP et l'adresse est dans le code programme. 1 PC + 1-TOR (empilage) 2 M(PC) analysée en FETCH ou STORE IMMEDIAT 3 TOR>PC (dépilage) 4 PC + 1-TOR (empilage)  We will see some possible options: 1 PC + 1 * TOR (stacking) 2 M (PC) analyzed as BACK CONDITIONAL 3 TOR or NOR 4 PC according to condition (unstacking 1 or 2) or again: 1 PC + 1 VTOR (stacking) 2M (PC) analised as IF 3 TOR 4 PC (unstacking) 4 PC + 1-TOR (stacking) 5 TOR 4 PC (unstacking) (no jumping) or M (PC) 4 PC (jumping) to subroutine or else 1 PC + 1-TOR (stacking) 2 M (PC) analyzed as IF 3 TOR + PC (unstacking) 4 TOR PC (return) or M (PC) 4 PC (jump) (no return) FETCH or STORE IMMEDIATE: The data is in TOP and the address is in the program code. 1 PC + 1-TOR (stacking) 2 M (PC) analyzed in FETCH or STORE IMMEDIATE 3 TOR> PC (unstacking) 4 PC + 1-TOR (stacking)

M(PC)-+PCM (PC) - PC +

6 M(PC)-TOP (suivant fetch ou store) 7 TOR ou NOR-PC (forme retour ou continue de l'instruction), ( 1 ou 2 dépilages) FETCE ou STORE: Ici l'adresse est en TOP et la donnée (en STORE) est en  6 M (PC) -TOP (following fetch or store) 7 TOR or NOR-PC (return or continuous form of the instruction), (1 or 2 unstacking) FETCE or STORE: Here the address is in TOP and the data (in STORE) is in

NOP.NOP.

1 PC + 1 TOR (empilage) 2 M(PC) analysée en FETCH ou STORE 3 TOP-PC (dépilage) 4 M(PC)-TOP (suivant fetch ou store) 5 TOR ou NOR-+ PC (forme retour ou continue de l'instruction) R> ou >R: Echange de données entre pile paramètre ( 20) et pile de  1 PC + 1 TOR (stacking) 2M (PC) analyzed in FETCH or STORE 3 TOP-PC (unstacking) 4M (PC) -TOP (following fetch or blind) 5 TOR or NOR- + PC (return or continuous form) of the instruction) R> or> R: Data exchange between parameter stack (20) and stack of

retour ( 30).back (30).

R> transfert du sommet de la pile de retour ( 30) vers le  R> transfer from the top of the return stack (30) to the

sommet de la pile ( 20).top of the stack (20).

>R transfert du sommet de la pile ( 20) vers le sommet de la  > R transfer from the top of the stack (20) to the top of the

pile de retou ( 30).stack of retou (30).

1 PC + 14 TOR (empilage) 2 M(PC) analysée en R> ou >R 3 TOR-PC (dépilage) 4 TOR-TOP (suivant >R ou R>)  1 PC + 14 TOR (stacking) 2 M (PC) analyzed in R> or> R 3 TOR-PC (unstacking) 4 TOR-TOP (following> R or R>)

ANNEXE IIANNEX II

Exécution du programme exemple Pas du Instruction ( 32) l@( 32)lol Pile de retour Prg  Execution of the sample program Step Instruction (32) l @ (32) lol Return stack Prg

( 32)+ 14 TOR(32) + 14 TOR

l@( 32)l 10l @ (32) l 10

(TOR)-+ 32(TOR) - + 32

( 32)+ 14 TOR(32) + 14 TOR

l@( 32)l 1 o-TOPl @ (32) l 1 o-TOP

(TOR)432(TOR) 432

( 32)+ 1-+TOR(32) + 1- + TOR

l@( 32)l 10 l l 8 ( 32)l 10 * 32l @ (32) l 10 l l 8 (32) l 10 * 32

@APPEL-2@ CALL-2

_APPEL-1_APPEL-1

@APPEL-1@ APPEL-1

@APPEL@CALL

@APPEL@CALL

@P 4 CONST a a @P 4 @P 4 @carré l@APPEL-1 l l@APPEL-1 l lSAPPELl l@APPEL+ 1 l ( 32)+ 1-TOR @P 4 @carré l@P 4 + 1 llSAPPEL+ 1 l 11 l@( 32)l 1 io@P 4 @carré 12 l 8 ( 32)l 10 o-32 @carré DUP l@P 4 + 1 ll@APPEL+ 11 13 ( 32)+ 14 TOR@carré DUP l@carré+lll@P 4 + 1 l l@APPEL+ 1 l 14 l@( 32)l 1 o @carré DUP (TOR)432 @carré @* l@P 4 + 1 llSAPPEL+ 1 l 16 ( 32)+ 1-TOR8 carré+ 1 @* l@carré+ 2 ll@P 4 + 1 l l@APPEL+ 1 l 17 l@( 32)l 10 @carré+ 1 @* 18 l 8 ( 32)l 1 o-+ 32@* INM 1 l@carré+ 2 ll@P 4 + 1 l l@APPEL+ 1 l Exécution de la multiplication par addition et décalage j  @P 4 CONST aa @P 4 @P 4 @ square l @ CALL-1 ll @ CALL-1 lSAPPELl l @ CALL + 1 l (32) + 1-TOR @P 4 @ square l @ P 4 + 1 llSAPPEL + 1 l 11 l @ (32) l 1 io @ P 4 @ square 12 l 8 (32) l 10 o-32 @ square DUP l @ P 4 + 1 ll @ CALL + 11 13 (32) + 14 TOR @ square DUP l @ square + lll @ P 4 + 1 ll @ CALL + 1 l 14 l @ (32) l 1 o @ square DUP (TOR) 432 @ square @ * l @ P 4 + 1 llSAPPEL + 1 l 16 (32) + 1- TOR8 square + 1 @ * l @ square + 2 ll @ P 4 + 1 ll @ CALL + 1 l 17 l @ (32) l 10 @ square + 1 @ * 18 l 8 (32) l 1 o- + 32 @ * INM 1 l @ square + 2 ll @ P 4 + 1 ll @ CALL + 1 l Execution of multiplication by addition and shift j

19 ( 32)+ 1-TOR19 (32) + 1-TOR

l@( 32)l 1 ol @ (32) l 1 o

21 (NOR)43221 (NOR) 432

22 ( 32)+ 1 TOR22 (32) + 1 TOR

23 l@( 32)l O23 l @ (32) l O

24 (NOR)-3224 (NOR) -32

( 32)+ 1 TOR(32) + 1 TOR

26 l@( 32)l 10 @carré+ 2 @carré+ 2  26 l @ (32) l 10 @ square + 2 @ square + 2

@P 4 + 1@P 4 + 1

@P 4 + 1@P 4 + 1

IR @carré @carré l@*F+ 1 ll@carré+ 1 l l@P 4 + 1 ll@APPEL+ 1 l l@P 4 + 1 ll@APPEL+ 1 l l@carré+ 3 ll@P 4 + 1 l l@APPEL+ 1 l l@APPEL+ 1 l l@P 4 + 2 ll@APPEL+ 1 l 27 l@( 32)l 1 o-32 @carré DUP l@P 4 + 2 ll@APPEL+ 1 l Comme pas 13 et suivants 28 ( 32)+ 14 TOP @carré+ 2; l@carré+ 3 ll@P 4 + 2 l I I ll@APPEL+ 1 l l@( 32)1 Io  IR @ square @ square l @ * F + 1 ll @ square + 1 ll @ P 4 + 1 ll @ CALL + 1 ll @ P 4 + 1 ll @ CALL + 1 ll @ square + 3 ll @ P 4 + 1 ll @ CALL + 1 11 @ CALL + 1 ll @ P 4 + 2 ll @ CALL + 1 l 27 l @ (32) l 1 o-32 @ square DUP l @ P 4 + 2 ll @ CALL + 1 l As not 13 and following 28 (32) + 14 TOP @ square + 2; l @ square + 3 ll @ P 4 + 2 l I I ll @ CALL + 1 l l @ (32) 1 Io

(NOR)-+ 32(NOR) - + 32

( 32)+ 14 TOR(32) + 14 TOR

l@( 32)l 1 ol @ (32) l 1 o

(NOR)+ 32(NOR) + 32

@P 4 + 2@P 4 + 2

@P 4 + 2@P 4 + 2

@APPEL+ 1@ CALL + 1

l@APPEL+I 1 l l@P 4 + 3 ll@APPEL+ 1 l  l @ CALL + I 1 l l @ P 4 + 3 ll @ CALL + 1 l

Claims (3)

RevendicationClaim 1 Dispositif de traitement d'informations plus particulièrement adapté à un langage informatique chaîné du type FORTH notamment, dispositif comportant entre autres une mémoire principale pour contenir un programme d'exécution avec ses données d'instruction constituées par une pluralité d'instructions directement ou non directement exécutables qui sont regroupées en au moins un sous- programme, une première mémoire de type pile pour contenir l'adresse suivant l'adresse d'appel à un sous-programme (adresse retour), une ou plusieurs unités d'opération pour exécuter les instructions directement exécutables, pouvant contenir une deuxième mémoire de type pile pour contenir des paramètres utilisés par ledit programme, un organe de décodage d'instructions pour décoder chaque donné d'instruction issue de la mémoire principale, caractérisé en ce qu'il est muni de moyens pour considérer comme des adresses de sous- programme les instructions qu'il ne  1 device for processing information more particularly adapted to a computer language chained of the FORTH type in particular, device comprising inter alia a main memory for containing an execution program with its instruction data constituted by a plurality of instructions directly or not directly executable which are grouped into at least one subroutine, a first stack memory for containing the address following the subroutine call address (return address), one or more operation units for executing the directly executable instructions, which may contain a second stack memory for containing parameters used by said program, an instruction decoding device for decoding each instruction data from the main memory, characterized in that it is provided with means for considering as subprogram addresses the instructions that it does not peut pas exécuter directement.can not run directly. 2 Dispositif de traitement d'informations selon la revendication 1, caractérisé en ce que lesdits moyens sont constitués par l'organe de décodage formé à partir d'une  2 information processing device according to claim 1, characterized in that said means are constituted by the decoding member formed from a mémoire associative.associative memory. 3 Dispositif de traitement d'informations selon la revendication 1 ou 2, caractérisé en ce que pour effectuer des boucles de programme il comporte les moyens suivants: un incrémenteur- décrémenteur de registre pour incrémenter un registre d'index, un décodeur pour décoder la fin de l'écriture de la boucle, couplé d'une part à une des mémoires piles contenant la limite de boucle et d'autre part au registre d'index, et pour agir sur l'organe de décodage d'instruction afin  3 information processing device according to claim 1 or 2, characterized in that for performing program loops it comprises the following means: a register incrementer-decrementor for incrementing an index register, a decoder for decoding the end of the writing of the loop, coupled on the one hand to one of the stacks containing the loop limit and on the other hand to the index register, and to act on the instruction decoding member so as to d'assurer la bonne exécution de la boucle.  to ensure the proper execution of the loop.
FR9108062A 1991-06-28 1991-06-28 INFORMATION PROCESSING DEVICE MORE PARTICULARLY ADAPTED TO A CHAIN LANGUAGE, OF THE FORTH TYPE IN PARTICULAR. Pending FR2678401A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR9108062A FR2678401A1 (en) 1991-06-28 1991-06-28 INFORMATION PROCESSING DEVICE MORE PARTICULARLY ADAPTED TO A CHAIN LANGUAGE, OF THE FORTH TYPE IN PARTICULAR.
DE69229302T DE69229302T2 (en) 1991-06-28 1992-06-25 Data processing arrangement, especially adapted to FORTH-like programming languages
EP92201877A EP0520579B1 (en) 1991-06-28 1992-06-25 Data processing apparatus particularly adapted for threaded languages, notably FORTH
JP16964992A JP3233686B2 (en) 1991-06-28 1992-06-26 Data processing apparatus for executing a computer program containing a sequence of instructions
US08/286,102 US5479621A (en) 1991-06-28 1994-08-04 Data processor, for use with a chained language, with apparatus for distinguishing directly executable instructions from instructions requiring a sub-routine call

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9108062A FR2678401A1 (en) 1991-06-28 1991-06-28 INFORMATION PROCESSING DEVICE MORE PARTICULARLY ADAPTED TO A CHAIN LANGUAGE, OF THE FORTH TYPE IN PARTICULAR.

Publications (1)

Publication Number Publication Date
FR2678401A1 true FR2678401A1 (en) 1992-12-31

Family

ID=9414459

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9108062A Pending FR2678401A1 (en) 1991-06-28 1991-06-28 INFORMATION PROCESSING DEVICE MORE PARTICULARLY ADAPTED TO A CHAIN LANGUAGE, OF THE FORTH TYPE IN PARTICULAR.

Country Status (5)

Country Link
US (1) US5479621A (en)
EP (1) EP0520579B1 (en)
JP (1) JP3233686B2 (en)
DE (1) DE69229302T2 (en)
FR (1) FR2678401A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867681A (en) * 1996-05-23 1999-02-02 Lsi Logic Corporation Microprocessor having register dependent immediate decompression
US5905893A (en) * 1996-06-10 1999-05-18 Lsi Logic Corporation Microprocessor adapted for executing both a non-compressed fixed length instruction set and a compressed variable length instruction set
US5794010A (en) * 1996-06-10 1998-08-11 Lsi Logic Corporation Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
EP0886824A1 (en) * 1996-12-13 1998-12-30 Nyquist B.V. Redundant data processing system having two programmed logic controllers operating in tandem
EP0992881A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. A processor
GB9822191D0 (en) * 1998-10-13 1998-12-02 Kubiczek Maciej High performance low cost microprocessor
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0185215A2 (en) * 1984-11-21 1986-06-25 Harris Corporation Forth-like language microprocessor

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3958222A (en) * 1974-06-27 1976-05-18 Ibm Corporation Reconfigurable decoding scheme for memory address signals that uses an associative memory table
US4070703A (en) * 1976-09-27 1978-01-24 Honeywell Information Systems Inc. Control store organization in a microprogrammed data processing system
US4462073A (en) * 1978-11-08 1984-07-24 Data General Corporation Apparatus for fetching and decoding instructions
US4415969A (en) * 1980-02-07 1983-11-15 Intel Corporation Macroinstruction translator unit for use in a microprocessor
US4499604A (en) * 1981-05-22 1985-02-12 Data General Corporation Digital data processing system for executing instructions containing operation codes belonging to a plurality of operation code sets and names corresponding to name table entries
US4514800A (en) * 1981-05-22 1985-04-30 Data General Corporation Digital computer system including apparatus for resolving names representing data items and capable of executing instructions belonging to general instruction sets
US4794522A (en) * 1985-09-30 1988-12-27 International Business Machines Corporation Method for detecting modified object code in an emulator
US4972317A (en) * 1986-10-06 1990-11-20 International Business Machines Corp. Microprocessor implemented data processing system capable of emulating execution of special instructions not within the established microprocessor instruction set by switching access from a main store portion of a memory
US4841476A (en) * 1986-10-06 1989-06-20 International Business Machines Corporation Extended floating point operations supporting emulation of source instruction execution
US4785392A (en) * 1986-10-14 1988-11-15 Amdahl Corporation Addressing multiple storage spaces
US5210832A (en) * 1986-10-14 1993-05-11 Amdahl Corporation Multiple domain emulation system with separate domain facilities which tests for emulated instruction exceptions before completion of operand fetch cycle
US4992934A (en) * 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
FR2645986B1 (en) * 1989-04-13 1994-06-17 Bull Sa METHOD FOR ACCELERATING MEMORY ACCESS OF A COMPUTER SYSTEM AND SYSTEM FOR IMPLEMENTING THE METHOD

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0185215A2 (en) * 1984-11-21 1986-06-25 Harris Corporation Forth-like language microprocessor

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ELECTRONIC DESIGN vol. 35, no. 12, 14 Mai 1987, HASBROUCK HEIGHTS, NJ, US pages 93 - 100; T. JONES ET AL: 'Standard-cell CPU toolkit crafts potent processors' *
INSPEC Database Institute of Electrical Engineers, LONDON, GB J. R. HAYES et al; "A 32 Bit Forth Micro processor"; Accession No. B88050187 *

Also Published As

Publication number Publication date
DE69229302T2 (en) 1999-12-02
US5479621A (en) 1995-12-26
EP0520579A2 (en) 1992-12-30
EP0520579A3 (en) 1994-02-16
JPH05189240A (en) 1993-07-30
JP3233686B2 (en) 2001-11-26
DE69229302D1 (en) 1999-07-08
EP0520579B1 (en) 1999-06-02

Similar Documents

Publication Publication Date Title
FR2500659A1 (en) DEVICE FOR DYNAMICALLY ALLOCATING TASKS OF A MULTIPROCESSOR COMPUTER
EP1212678B1 (en) Management protocol, method for verifying and transforming a downloaded programme fragment and corresponding systems
EP0020983B1 (en) Memory system comprising a serial storage device
FR2489555A1 (en) PIPELINE CONTROLLED DATA PROCESSING SYSTEM
FR3091375A1 (en) LOADING-STORAGE INSTRUCTION
FR2752630A1 (en) SINGLE-INSTRUCTION MULTIPLE DATA PROCESSING IN A MULTI-SUPPORT SIGNAL PROCESSOR
FR2588980A1 (en) DIGITAL SIGNAL PROCESSING PROCESSOR COMPRISING SEVERAL MULTIPLIERS
FR2752965A1 (en) MULTIPLE DATA PROCESSING OF A SINGLE INSTRUCTION USING MULTIPLE ROWS OF VECTORIAL REGISTERS
EP0006478A1 (en) Programmable control latch mechanism for a data processing system
FR2678401A1 (en) INFORMATION PROCESSING DEVICE MORE PARTICULARLY ADAPTED TO A CHAIN LANGUAGE, OF THE FORTH TYPE IN PARTICULAR.
EP1830264A1 (en) Process and device to save and restore a set of microprocessor registers in an interruptible manner
FR2656710A1 (en) MICROCONTROLLER FOR THE RAPID EXECUTION OF A LARGE NUMBER OF DECOMPOSABLE OPERATIONS IN THE SEQUENCE OF OPERATIONS OF THE SAME NATURE.
JPH01310441A (en) Data processor
EP0171856A1 (en) Signal processor and hierarchical multiprocessing structure comprising at least one such processor
FR2558613A1 (en) APPARATUS FOR PROCESSING PIPELINE TYPE DATA
JPS58500778A (en) Digital computer for executing instructions in three time-multiplexed parts
FR2662281A1 (en) Processor comprising a file of addressable registers as several sets of registers contained in windows
FR2896601A1 (en) Reverse polish notation processing device for e.g. microprocessor, has stack manager and multiplexers managing content of stack such that content of stage of stack is stored in cache memory and content of other stages is stored in RAM
EP0520572B1 (en) Information processing apparatus
WO2006048378A1 (en) Method for loading a software code compiled in an object-oriented intermediate language in a portable device
US7774764B2 (en) Method and system for efficient range and stride checking
EP0683455A1 (en) Microcomputer with integrated breakpoint circuit triggered by combined events
FR2601163A1 (en) SCALING DATA ARITHMETIC CONTROL SYSTEM FOR A VECTOR ARITHMETIC PROCESSOR.
EP0112427A1 (en) Programmable logic controller
EP1811371A1 (en) Device for Postfix Processing through Reverse Polish Notation for table manipulation, and electronic integrated circuit comprising such a processing device