FR2693571A1 - Handling program loops in microprocessor data processing system - Google Patents

Handling program loops in microprocessor data processing system Download PDF

Info

Publication number
FR2693571A1
FR2693571A1 FR9208664A FR9208664A FR2693571A1 FR 2693571 A1 FR2693571 A1 FR 2693571A1 FR 9208664 A FR9208664 A FR 9208664A FR 9208664 A FR9208664 A FR 9208664A FR 2693571 A1 FR2693571 A1 FR 2693571A1
Authority
FR
France
Prior art keywords
arithmetic
data processing
instruction
state
processing system
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
Application number
FR9208664A
Other languages
French (fr)
Other versions
FR2693571B1 (en
Inventor
Wenzinger Yves
Dent Peter
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.)
Texas Instruments France SAS
Original Assignee
Texas Instruments France 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 Texas Instruments France SAS filed Critical Texas Instruments France SAS
Priority to FR9208664A priority Critical patent/FR2693571B1/en
Priority to EP93916063A priority patent/EP0650613A1/en
Priority to KR1019950700141A priority patent/KR950702719A/en
Priority to JP6503868A priority patent/JPH08509080A/en
Priority to PCT/GB1993/001470 priority patent/WO1994002894A2/en
Publication of FR2693571A1 publication Critical patent/FR2693571A1/en
Application granted granted Critical
Publication of FR2693571B1 publication Critical patent/FR2693571B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • 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

Abstract

The system includes a unit for executing in a repetitive manner an instruction sequence within the instruction sequence. A program counter (74) gives the incremented number of the next instruction. A program address start register (76) records the number of the present instruction. A repeat counter (70), initialised with repeat number at execution of first instruction, decrements, stopping sequence at zero.Depending on the number of pipeline levels, of the last instructions contains an end of loop code which determines when the contents of the program address start register is loaded into the program counter, if not at zero.

Description

La présente invention concerne les systèmes de traitement de données du type microprocesseur et en particulier un système de traitement de données dont le programme de commande comporte des instructions dépendant des paramètres du registre d'état déterminés par le résultat des opérations arithmétiques et logiques. The present invention relates to data processing systems of the microprocessor type and in particular to a data processing system, the control program of which comprises instructions depending on the parameters of the state register determined by the result of the arithmetic and logical operations.

Au cours de la dernière décennie l'informatique a envahi la technique industrielle. Les systèmes de traitement de données remplissent maintenant beaucoup plus rapidement et plus précisément des fonctions autrefois accomplies par des hommes. L'avènement des microprocesseurs ou de façon générale la possibilité d'intégrer un système de traitement de données sur une seule puce minuscule a permis d'automatiser et de rendre beaucoup plus performants la majorité des équipements dans quelque domaine que ce soit. In the last decade, IT has taken over industrial technology. Data processing systems are now performing much faster and more precisely the functions formerly performed by men. The advent of microprocessors or in general the possibility of integrating a data processing system on a single tiny chip has made it possible to automate and make much more efficient the majority of equipment in any field whatsoever.

Ces progrès considérables ont été rendus possibles grâce à la technologie de fabrication des circuits élémentaires constituant les systèmes de traitement de données qui a permis une miniaturisation de plus en plus poussée entraînant un accroissement énorme de la vitesse de traitement des instructions, une puissance de traitement toujours plus grande et une réduction des coûts de fabrication du fait de l'emploi de circuits élémentaires identiques, généralement des transistors, et de la consommation réduite du matériau à la base de ces circuits, le silicium. These considerable advances have been made possible thanks to the technology of manufacturing the elementary circuits constituting the data processing systems which has allowed increasingly miniaturization resulting in a huge increase in the processing speed of instructions, processing power always greater and a reduction in manufacturing costs due to the use of identical elementary circuits, generally transistors, and the reduced consumption of the material at the base of these circuits, silicon.

Parallèlement à ces améliorations dues principalement à la technologie des semiconducteurs, on cherche à améliorer les systèmes de traitement de données par d'autres moyens tels que la réduction du nombre des instructions du programme de commande nécessaires pour aboutir à un résultat déterminé. C'est précisément le but de l'invention. In addition to these improvements mainly due to semiconductor technology, efforts are being made to improve data processing systems by other means such as reducing the number of control program instructions necessary to achieve a specific result. This is precisely the aim of the invention.

Ainsi, un programme d'instructions pour la commande d'un système de traitement de données tel qu'un microprocesseur, comporte souvent des instructions à exécuter différentes selon le résultat d'une ou plusieurs instructions précédentes. Par exemple ceci peut être courant dans un système de traitement de données spécialisé tel qu'un processeur de signal numérique (DSP). Dans ce type de processeur, le résultat d'une comparaison détermine s'il y a lieu d'effectuer une addition ou une soustraction. Selon le résultat de la comparaison le programme se déroule en séquence s'il s'agit d'une addition ou fait un branchement consistant en un saut d'une ou plusieurs instructions s'il s'agit d'une soustraction. Bien entendu il faut de nouveau prévoir un saut de la ou des instructions de soustraction lorsque le programme effectue une addition.C'est donc un double jeu d'instructions (addition et soustraction) qu'il faut inclure dans le programme, et également prévoir des instructions de branchement et de saut d'instructions. Tout ceci augmente de façon substantielle le nombre d'instructions du programme, et surtout consomme du temps au détriment de la vitesse de traitement de l'ensemble des opérations. Thus, an instruction program for controlling a data processing system such as a microprocessor, often includes instructions to be executed differently depending on the result of one or more previous instructions. For example, this can be common in a specialized data processing system such as a digital signal processor (DSP). In this type of processor, the result of a comparison determines whether to perform an addition or a subtraction. According to the result of the comparison, the program runs in sequence if it is an addition or makes a connection consisting of a jump of one or more instructions if it is a subtraction. Of course, it is again necessary to provide for a jump of the subtraction instruction (s) when the program performs an addition. It is therefore a double set of instructions (addition and subtraction) that must be included in the program, and also provide branching and skipping instructions. All this substantially increases the number of instructions in the program, and above all consumes time at the expense of the processing speed of all operations.

Le but de l'invention est donc de réaliser un système de traitement de données tel qu'un microprocesseur comportant un nombre réduit d'instructions dépendant du résultat d'opérations antérieures. The object of the invention is therefore to provide a data processing system such as a microprocessor comprising a reduced number of instructions depending on the result of previous operations.

Un autre but de l'invention est de réaliser un système de traitement de données comportant une seule instruction à la place de plusieurs instructions alternatives dépendant du résultat d'opérations antérieures. Another object of the invention is to provide a data processing system comprising a single instruction in place of several alternative instructions depending on the result of previous operations.

L'objet de l'invention est un système de traitement de données du type comportant une unité arithmétique et logique pour effectuer des opérations arithmétiques et logiques commandées par le code opération des instructions d'un programme et un registre d'état contenant des paramètres d'état dont la valeur dépend d'opérations arithmétiques ou logiques effectuées par l'unité arithmétique et logique, et comprenant un circuit de décodage des paramètres contenus dans le registre d'état pour modifier le code opération d'une instruction transmis à l'unité arithmétique et logique en fonction des paramètres d'état de façon à fournir une pluralité de codes opérations équivalant à plusieurs instructions alternatives dont l'exécution dépend des paramètres d'état. The object of the invention is a data processing system of the type comprising an arithmetic and logic unit for performing arithmetic and logic operations controlled by the operation code of the instructions of a program and a status register containing parameters d state whose value depends on arithmetic or logic operations performed by the arithmetic and logic unit, and comprising a circuit for decoding the parameters contained in the state register to modify the operation code of an instruction transmitted to the unit arithmetic and logic as a function of the state parameters so as to provide a plurality of operation codes equivalent to several alternative instructions whose execution depends on the state parameters.

L'invention sera mieux comprise à la lecture de la description qui suit faite en référence aux dessins dans lesquels
- la figure 1 représente un schéma synoptique d'un système de traitement de données dans lequel l'invention est mise en oeuvre
- la figure 2 illustre de façon schématique un dispositif mettant en oeuvre l'invention ; et
- la figure 3 est un schéma synoptique d'un mode de réalisation préféré de l'invention.
The invention will be better understood on reading the following description made with reference to the drawings in which
- Figure 1 shows a block diagram of a data processing system in which the invention is implemented
- Figure 2 schematically illustrates a device implementing the invention; and
- Figure 3 is a block diagram of a preferred embodiment of the invention.

La figure 1 représente l'organisation d'un système de traitement de données incorporant l'invention. Un tel système de traitement de données préféré pour mettre en oeuvre l'invention est un processeur de données du type processeur de signal numérique ou un microprocesseur, sans que ce choix soit limitatif pour autant. FIG. 1 represents the organization of a data processing system incorporating the invention. Such a preferred data processing system for implementing the invention is a data processor of the digital signal processor type or a microprocessor, without this choice being limiting.

Les instructions du programme, quelquefois appelées micro-instructions lorsque le système de traitement de données est un microprocesseur, sont emmagasinées dans une mémoire de programme 10. La mémoire de programme 10 est généralement une mémoire morte ou à lecture seulement (ROM) du type programmable (PROM) ou effaçable (EPROM). Mais la mémoire 10 pourrait être également une mémoire vive (RAM). The program instructions, sometimes called micro-instructions when the data processing system is a microprocessor, are stored in a program memory 10. The program memory 10 is generally a read-only or read-only memory (ROM) of the programmable type (PROM) or erasable (EPROM). But the memory 10 could also be a random access memory (RAM).

La mémoire 10 communique par le bus 12 avec une unité de décodage et contrôle 14 qui contient l'essentiel de la logique du système chargée de décoder les instructions en provenance de la mémoire de programme 10 et de contrôler le cheminement des informations décodées dans les instructions. The memory 10 communicates by the bus 12 with a decoding and control unit 14 which contains most of the logic of the system responsible for decoding the instructions coming from the program memory 10 and for controlling the flow of the information decoded in the instructions .

Ces informations peuvent être utilisées soit pour l'accès aux données, soit pour des opérations arithmétiques et logiques. Pour ce faire l'unité de décodage et contrôle 14 est reliée au bus d'adressage 16. Le bus 16 est connecté d'une part à un bloc de registres de traitement 18 qui contient les registres généraux utilisés pour le traitement de instructions. Ces registres sont destinés à contenir les opérandes contenus dans les instructions ou en provenance de la mémoire de données, ou peuvent servir de registres d'index pour l'adressage indirect. Mais ces registres de traitement peuvent avoir d'autres fonctions dévolues la plupart du temps à l'unité de décodage et contrôle.Ainsi, le bloc de registres de traitement 18 peut contenir le compteur de programme (PC), des registres d'incrémentation, des registres de décalage utilisés principalement lors des opérations de multiplication ou division, tels qu'un registre à décalage de Booth, ou encore le registre d'état qui contient un certain nombre de paramètres déterminés après l'exécution d'une instruction du type arithmétique ou logique tels que les indications de résultat zéro, résultat négatif ou de report. La plupart des registres du bloc 18 sont adressables au moyen du bus d'adressage 16.This information can be used either for data access, or for arithmetic and logical operations. To do this, the decoding and control unit 14 is connected to the addressing bus 16. The bus 16 is connected on the one hand to a block of processing registers 18 which contains the general registers used for processing instructions. These registers are intended to contain the operands contained in the instructions or coming from the data memory, or can be used as index registers for indirect addressing. However, these processing registers can have other functions devolved most of the time to the decoding and control unit. Thus, the processing register block 18 can contain the program counter (PC), incrementation registers, shift registers used mainly during multiplication or division operations, such as a Booth shift register, or the state register which contains a certain number of parameters determined after the execution of an arithmetic type instruction or logical such as indications of zero result, negative result or carryover. Most of the registers in block 18 can be addressed using the address bus 16.

Le bus d'adressage 16 est également une entrée d'une unité de décodage d'adresse 20 dont la fonction est de décoder les adresses résultant du décodage des instructions par l'unité de décodage et contrôle 14 de façon à accéder aux données emmagasinées dans une mémoire de données 22. La mémoire de données est généralement une mémoire vive (RAM) mais ce pourrait être également une mémoire morte ou tout autre type de mémoire. On notera que le bloc de registres de traitement 18 est connecté au bus d'adressage 16 de sorte que le contenu de certains registres du bloc 18 puisse être transmis à l'unité de décodage d'adresse 20 lorsque ce contenu est une adresse d'accès à la mémoire de données 22. The address bus 16 is also an input of an address decoding unit 20 whose function is to decode the addresses resulting from the decoding of the instructions by the decoding and control unit 14 so as to access the data stored in a data memory 22. The data memory is generally a random access memory (RAM) but it could also be a read-only memory or any other type of memory. Note that the processing register block 18 is connected to the addressing bus 16 so that the content of certain registers in block 18 can be transmitted to the address decoding unit 20 when this content is an address of access to data memory 22.

De façon à effectuer les opérations arithmétiques et logiques commandées par le contenu des instructions du programme, une unité arithmétique et logique (ALU) 24 est connectée à la sortie du bloc de registres de traitement 18. In order to carry out the arithmetic and logic operations controlled by the content of the program instructions, an arithmetic and logic unit (ALU) 24 is connected to the output of the processing register block 18.

La sortie de l'unité arithmétique et logique 24 est soit un emmagasinage de données dans la mémoire de données 22 par le bus de données 26, soit un nouvel adressage d'un des registres du bloc de registres de traitement 18 par le bus de résultat 28. Les données en provenance de la mémoire de données 22 dont l'adresse a été fournie par l'unité de décodage d'adresse 20 sont transmises à l'entrée de l'unité arithmétique et logique 24 au moyen du bus de lecture de mémoire 30.The output of the arithmetic and logic unit 24 is either a storage of data in the data memory 22 by the data bus 26, or a new addressing of one of the registers of the block of processing registers 18 by the result bus 28. The data coming from the data memory 22 whose address has been supplied by the address decoding unit 20 are transmitted to the input of the arithmetic and logic unit 24 by means of the read bus of memory 30.

Enfin, le bloc de registres de traitement 18 est relié à l'unité de contrôle des unités périphériques 32 au moyen du bus entrée/sortie 34. Finally, the processing register block 18 is connected to the control unit of the peripheral units 32 by means of the input / output bus 34.

Le système de traitement de données qui vient d'être décrit est du type Harvard, c'est-à-dire que la mémoire 10 contenant les instructions est complètement séparée de la mémoire 22 contenant les données. Mais l'invention pourrait également être mise en oeuvre dans des systèmes de traitement de données d'un autre type. Le système de traitement de données peut être un microprocesseur à vocation universelle, ou bien, selon un mode de réalisation préféré, un processeur spécialisé tel qu'un processeur de signal numérique (DSP) utilisé dans un dispositif de transmission de données et en particulier dans un dispositif de radio cellulaire (GSM,
DECT, ou équivalent).
The data processing system which has just been described is of the Harvard type, that is to say that the memory 10 containing the instructions is completely separate from the memory 22 containing the data. However, the invention could also be implemented in data processing systems of another type. The data processing system can be a microprocessor with universal vocation, or alternatively, according to a preferred embodiment, a specialized processor such as a digital signal processor (DSP) used in a data transmission device and in particular in a cellular radio device (GSM,
DECT, or equivalent).

Le principe général de l'invention est de prévoir des instructions dont le code opération est variable selon les paramètres d'état du système. Ce principe est maintenant décrit en référence à la figure 2 qui représente un mode de réalisation général de l'invention. The general principle of the invention is to provide instructions whose operation code is variable according to the state parameters of the system. This principle is now described with reference to FIG. 2 which represents a general embodiment of the invention.

Comme illustré sur la figure 2, chaque instruction 40 comprend un champ 42 contenant le code opération (OPCODE) de l'instruction. Ce code opération qui est décodé par l'unité de décodage et contrôle 14 (déjà illustrée sur la figure 1), est le code qui commande le type d'opération à effectuer tel qu'Addition, Soustraction, Comparaison,... En réponse au décodage, les signaux sur les lignes de sortie 44 commandent alors soit l'adressage de registres de traitement, soit l'adressage de données en mémoire comme on l'a vu précédemment en référence à la figure 1. As illustrated in FIG. 2, each instruction 40 comprises a field 42 containing the operation code (OPCODE) of the instruction. This operation code which is decoded by the decoding and control unit 14 (already illustrated in FIG. 1), is the code which controls the type of operation to be carried out such as Addition, Subtraction, Comparison, ... In response during decoding, the signals on the output lines 44 then control either the addressing of processing registers, or the addressing of data in memory as we saw previously with reference to FIG. 1.

Un groupe 46 de lignes de sortie, qui peut d'ailleurs se réduire à une seule ligne comme on le verra ci-après, est connecté à un circuit de décodage 48. Ces lignes 46 fournissent les signaux produits par le décodage des instruc tions utilisées pour la mise en oeuvre de l'invention alors que pour toutes les autres instructions les signaux de décodage sont fournis sur les lignes 44. Les informations fournies sur les lignes 46 par le décodage du code opération d'une instruction dépendant des paramètres d'état sont utilisées par le circuit de décodage 48 conjointement avec certains paramètres d'état se trouvant dans le registre d'état 50 du bloc de registres de traitement 18. A group 46 of output lines, which can moreover be reduced to a single line as will be seen below, is connected to a decoding circuit 48. These lines 46 supply the signals produced by the decoding of the instructions used for the implementation of the invention while for all the other instructions the decoding signals are supplied on the lines 44. The information supplied on the lines 46 by the decoding of the operation code of an instruction depending on the state parameters are used by the decoding circuit 48 together with certain state parameters located in the state register 50 of the processing register block 18.

Les paramètres d'état du registre d'état 50 utilisés dans le cadre de l'invention sont
N : bit à 1 lorsque le bit de signe (MSB) de
l'opération précédente est à 1, indiquant
que le résultat de cette opération est néga
tif,
Z : bit à 1 lorsque le résultat de l'opération
précédente est nul,
C : bit de report à 1 lorsque l'opération génère
un report.
The status parameters of the status register 50 used in the context of the invention are
N: bit at 1 when the sign bit (MSB) of
previous operation is 1, indicating
that the result of this operation is negative
tif,
Z: bit at 1 when the result of the operation
previous is zero,
C: carry bit to 1 when the operation generates
a report.

Selon la valeur des paramètres d'état N, Z, ou C, le circuit de décodage 48 fournit un code de commande sur les lignes 52, en réponse aux signaux reçus sur les lignes 46 provenant du décodage du code opération d'une instruction dépendant des paramètres d'état. Ce code de commande est transmis directement à l'unité arithmétique et logique 24 dont l'opération sera différente selon le code. Sur la figure 2, 3 lignes 52 sont représentées parce que 8 codes de commande différents peuvent être fournis en réponse aux 8 combinaisons possibles des paramètres N, Z et C. Mais il va de soi que le nombre de lignes peut être inférieur ou supérieur à 3 sans déroger au principe de l'invention. According to the value of the state parameters N, Z, or C, the decoding circuit 48 supplies a control code on the lines 52, in response to the signals received on the lines 46 coming from the decoding of the operation code of a dependent instruction status parameters. This control code is transmitted directly to the arithmetic and logic unit 24, the operation of which will be different depending on the code. In Figure 2, 3 lines 52 are shown because 8 different control codes can be provided in response to the 8 possible combinations of parameters N, Z and C. But it goes without saying that the number of lines can be less than or greater than 3 without departing from the principle of the invention.

La figure 3 illustre un mode de réalisation préféré de l'invention qui permettra de mettre en évidence, grâce à un exemple réel, la réduction du nombre d'instructions rendue possible par la mise en oeuvre de l'invention. FIG. 3 illustrates a preferred embodiment of the invention which will make it possible to demonstrate, by means of a real example, the reduction in the number of instructions made possible by the implementation of the invention.

L'exemple illustré en liaison avec la figure 3 concerne une séquence d'instructions dans laquelle l'opération à effectuer est soit une addition, soit une soustraction, le choix dépendant du résultat d'une comparaison antérieure. The example illustrated in connection with FIG. 3 concerns a sequence of instructions in which the operation to be carried out is either an addition or a subtraction, the choice depending on the result of a previous comparison.

Dans un système de traitement de données classique, la séquence d'instructions se présente de la façon suivante (pour la compréhension, AO, Al, X et B sont des registres du bloc de registres de traitement).In a conventional data processing system, the sequence of instructions is presented as follows (for understanding, AO, A1, X and B are registers of the processing register block).

1ère instruction comparer AO et Al
2ème instruction brancher en L1 si N = 1
3ème instruction additionner X + B, résultat dans B
4ème instruction continuer en L2
L1 Sème instruction soustraire B - X, résultat dans B
L2 6ème instruction
Dans ce mode de réalisation de l'invention, seul le paramètre d'état N du registre d'état 50 est utilisé. La valeur de N est utilisée comme première entrée d'un circuit
OU-EXCLUSIF 60 (correspondant au circuit de décodage de la figure 2). La deuxième entrée du circuit 60 est un bit du code opération d'une instruction dépendant des paramètres d'état qui en comporte 4 dans le cas illustré. Selon que N a la valeur O ou la valeur 1 dépendant du résultat de la comparaison qui précède, ce bit de code opération sera inversé ou non.Le signal de sortie du circuit OU-EXCLUSIF 60 sur la ligne 62 est donc le même que le bit de code d'entrée lorsque N = O et l'inverse lorsque N = 1. Ce bit sur la ligne 62 est fourni à l'unité arithmétique et logique 24 qui effectue une addition lorsque N = O et une soustraction lorsque N = 1. On doit noter qu'au même moment l'unité
ALU 24 est conditionnée par les autres bits du code opération (trois dans le cas présent) pour effectuer soit une addition, soit une soustraction.
1st instruction compare AO and Al
2nd instruction plug into L1 if N = 1
3rd instruction add X + B, result in B
4th instruction continue in L2
L1 5th instruction subtract B - X, result in B
L2 6th instruction
In this embodiment of the invention, only the state parameter N of the status register 50 is used. The value of N is used as the first input of a circuit
OU-EXCLUSIF 60 (corresponding to the decoding circuit of figure 2). The second input of circuit 60 is a bit of the operation code of an instruction depending on the state parameters which includes 4 in the illustrated case. Depending on whether N has the value O or the value 1 depending on the result of the preceding comparison, this bit of operation code will be inverted or not. The output signal from the EXCLUSIVE circuit 60 on line 62 is therefore the same as the input code bit when N = O and vice versa when N = 1. This bit on line 62 is supplied to the arithmetic and logic unit 24 which performs an addition when N = O and a subtraction when N = 1 It should be noted that at the same time the unit
ALU 24 is conditioned by the other bits of the operation code (three in this case) to perform either an addition or a subtraction.

Grâce au dispositif illustré sur la figure 3, la séquence d'instructions à exécuter est la suivante
1ère instruction comparer AO et Al
2ème instruction additionner B + X si N = O et
soustraire B - X si N = 1, résultat
dans B
On voit donc que, grâce à l'invention, la séquence d'instructions ne nécessite plus que deux instructions au lieu de cinq avec un système de traitement de données classique. En pratique, la mise en oeuvre de l'invention permet un gain substantiel d'environ 500 000 instructions sur un total de 8 millions d'instructions nécessaires pour un programme du type ADPCM utilisé dans un codeur-décodeur vocal, ce qui représente un accroissement de la performance du processeur de l'ordre de 6 à 7 .
Thanks to the device illustrated in FIG. 3, the sequence of instructions to be executed is as follows
1st instruction compare AO and Al
2nd instruction add B + X if N = O and
subtract B - X if N = 1, result
in B
It can therefore be seen that, thanks to the invention, the sequence of instructions requires only two instructions instead of five with a conventional data processing system. In practice, the implementation of the invention allows a substantial gain of approximately 500,000 instructions out of a total of 8 million instructions necessary for a program of the ADPCM type used in a voice coder-decoder, which represents an increase. processor performance in the range of 6 to 7.

Bien que l'invention ait été mise en pratique dans le mode de réalisation illustré sur la figure 3 dans lequel seul le paramètre d'état N est utilisé, on peut envisager aisément un mode de réalisation dans lequel les deux paramètres d'état N et Z sont utilisés. Dans ce cas le code d'entrée du circuit de décodage comportera deux bits, et le circuit de décodage lui-même devra comporter deux circuits
OU-EXCLUSIF en série. Les quatre sorties possibles du circuit de décodage pourraient être utilisées pour commander l'unité arithmétique et logique à effectuer une parmi quatre opérations telles que l'addition, la soustraction, la mise à zéro et la mise à un.
Although the invention has been put into practice in the embodiment illustrated in FIG. 3 in which only the state parameter N is used, one can easily envisage an embodiment in which the two state parameters N and Z are used. In this case the input code of the decoding circuit will comprise two bits, and the decoding circuit itself will have to comprise two circuits
OU-EXCLUSIVE in series. The four possible outputs of the decoding circuit could be used to control the arithmetic and logic unit to perform one of four operations such as addition, subtraction, zeroing and setting.

Claims (4)

REVENDICATIONS 1. Système de traitement de données dont le fonctionnement est commandé par le déroulement d'un programme composé d'une séquence d'instructions comprenant une unité arithmétique et logique (24) pour effectuer des opérations arithmétiques et logiques commandées par le code opération des instructions de ladite séquence d'instructions et un registre d'état (50) contenant des paramètres d'état dont la valeur dépend des résultats d'opérations arithmétiques ou logiques effectuées par ladite unité arithmétique et logique; ledit système étant caractérisé en ce qu'il comprend un circuit de décodage (14) des paramètres d'état contenus dans ledit registre d'état pour modifier le code opération (42) d'une instruction transmis à l'unité arithmétique et logique dépendant de paramètres d'état en fonction desdits paramètres de façon à fournir une pluralité de codes de commande équivalant à plusieurs instructions alternatives dont l'exécution dépend desdits paramètres d'état, l'un desdits codes de commande dépendant de la valeur desdits paramètres d'état étant transmis à ladite unité arithmétique et logique pour que celle-ci exécute une opération arithmétique ou logique associée audit code de commande. 1. Data processing system, the operation of which is controlled by the execution of a program composed of a sequence of instructions comprising an arithmetic and logic unit (24) for performing arithmetic and logic operations controlled by the instruction operation code said sequence of instructions and a state register (50) containing state parameters, the value of which depends on the results of arithmetic or logic operations performed by said arithmetic and logic unit; said system being characterized in that it comprises a decoding circuit (14) of the state parameters contained in said state register for modifying the operation code (42) of an instruction transmitted to the arithmetic and logic dependent unit of state parameters as a function of said parameters so as to provide a plurality of control codes equivalent to several alternative instructions whose execution depends on said state parameters, one of said control codes depending on the value of said parameters state being transmitted to said arithmetic and logic unit so that it performs an arithmetic or logic operation associated with said command code. 2. Système de traitement de données selon la revendication 1, caractérisé en ce que lesdits paramètres d'état utilisés pour modifier le code opération (42) d'une instruction dépendant de paramètres d'état sont N qui est à 1 lorsque le résultat de l'opération précédente est négatif, 2. Data processing system according to claim 1, characterized in that said state parameters used to modify the operation code (42) of an instruction depending on state parameters are N which is 1 when the result of the previous operation is negative, Z qui est à I lorsque le résultat de l'opération précédente est nul et C qui est à 1 lorsque l'opération précédente a généré un report.Z which is at I when the result of the previous operation is zero and C which is at 1 when the previous operation generated a carryover. 3. Système de traitement de données selon la revendication 2, caractérisé en ce que ledit circuit de décodage est un circuit OU-EXCLUSIF (60) dont la première entrée est fournie par le paramètre d'état N et la deuxième entrée par un des bits du code opération d'une instruction dépendant de paramètres d'état, la sortie dudit circuit OU-EXCLUSIF commandant l'exécution par ladite unité arithmétique et logique (24) d'une parmi deux opérations possibles déterminée par la valeur dudit paramètre N. 3. Data processing system according to claim 2, characterized in that said decoding circuit is an OU-EXCLUSIVE circuit (60), the first input of which is provided by the state parameter N and the second input by one of the bits of the operation code of an instruction depending on state parameters, the output of said OU-EXCLUSIVE circuit controlling the execution by said arithmetic and logic unit (24) of one of two possible operations determined by the value of said parameter N. 4. Système de traitement de données selon la revendication 3, caractérisé en ce que lesdites deux opérations possibles dont le choix est déterminé par la valeur dudit paramètre d'état N, sont l'addition ou la soustraction.  4. Data processing system according to claim 3, characterized in that said two possible operations, the choice of which is determined by the value of said state parameter N, are addition or subtraction.
FR9208664A 1992-07-13 1992-07-13 Data processing system, the control program of which includes instructions dependent on state parameters. Expired - Fee Related FR2693571B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR9208664A FR2693571B1 (en) 1992-07-13 1992-07-13 Data processing system, the control program of which includes instructions dependent on state parameters.
EP93916063A EP0650613A1 (en) 1992-07-13 1993-07-13 Data-processing system with a device for handling program loops
KR1019950700141A KR950702719A (en) 1992-07-13 1993-07-13 DATA-PROCESSING SYSTEM WITH A DEVICE FOR HANDLING PROGRAM LOOPS
JP6503868A JPH08509080A (en) 1992-07-13 1993-07-13 Data processing system with device for program loop processing
PCT/GB1993/001470 WO1994002894A2 (en) 1992-07-13 1993-07-13 Data-processing system with a device for handling program loops

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9208664A FR2693571B1 (en) 1992-07-13 1992-07-13 Data processing system, the control program of which includes instructions dependent on state parameters.

Publications (2)

Publication Number Publication Date
FR2693571A1 true FR2693571A1 (en) 1994-01-14
FR2693571B1 FR2693571B1 (en) 1994-09-30

Family

ID=9431848

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9208664A Expired - Fee Related FR2693571B1 (en) 1992-07-13 1992-07-13 Data processing system, the control program of which includes instructions dependent on state parameters.

Country Status (1)

Country Link
FR (1) FR2693571B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0825528A2 (en) * 1996-08-23 1998-02-25 Matsushita Electric Industrial Co., Ltd. Digital signal processor
FR2867874A1 (en) * 2004-03-22 2005-09-23 St Microelectronics Sa DEVICE AND METHOD FOR MANAGING A SET OF INSTRUCTIONS OF A MICROPROCESSOR

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4236204A (en) * 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
EP0306920A2 (en) * 1987-09-07 1989-03-15 Nec Corporation Data processor having expanded operating functions
EP0350928A2 (en) * 1988-07-13 1990-01-17 Nec Corporation Data processor capable of executing division of signed data with a small number of program steps

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4236204A (en) * 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
EP0306920A2 (en) * 1987-09-07 1989-03-15 Nec Corporation Data processor having expanded operating functions
EP0350928A2 (en) * 1988-07-13 1990-01-17 Nec Corporation Data processor capable of executing division of signed data with a small number of program steps

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
I. R. WHITWORTH '16-bit Microprocessors' 1984 , GRANADA PUBLISHING LTD. , LONDON, GB *
IBM TECHNICAL DISCLOSURE BULLETIN vol. 31, no. 9, Février 1989, ARMONK, NY, US page 454 'Logic circuit to enhance the function of an arithmetic logic unit' *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0825528A2 (en) * 1996-08-23 1998-02-25 Matsushita Electric Industrial Co., Ltd. Digital signal processor
EP0825528A3 (en) * 1996-08-23 1998-12-23 Matsushita Electric Industrial Co., Ltd. Digital signal processor
US6047371A (en) * 1996-08-23 2000-04-04 Matsushita Electric Industrial Co., Ltd. Signal processor for performing conditional operation
FR2867874A1 (en) * 2004-03-22 2005-09-23 St Microelectronics Sa DEVICE AND METHOD FOR MANAGING A SET OF INSTRUCTIONS OF A MICROPROCESSOR

Also Published As

Publication number Publication date
FR2693571B1 (en) 1994-09-30

Similar Documents

Publication Publication Date Title
EP0913765A1 (en) Processor with control of repeatable or multicycle instructions
EP0173383A1 (en) Processor for processing data according to different modes, and suitable multiplying device for such a processor
FR3075444A1 (en) SYSTEM COMPRISING A MEMORY ADAPTED TO IMPLEMENT CALCULATION OPERATIONS
FR2588981A1 (en) DIGITAL SIGNAL PROCESSING PROCESSOR
EP0678808B1 (en) Digital processing device with instructions for searching the minimum and maximum
FR2491654A1 (en) MICROPROGRAM CONTROL APPARATUS
FR2678400A1 (en) Protocol processor intended for executing a set of instructions in a reduced number of operations
FR2738366A1 (en) COMPUTER PROCESSOR PRESENTING A PIPELINE ARCHITECTURE AND METHOD OF USING THE SAME
EP0155731A1 (en) Addressing device for the delivery of address codes to a memory
FR2693571A1 (en) Handling program loops in microprocessor data processing system
FR2794259A1 (en) Parallel instruction processing device for programmable instructions set has micro-instructions selection block that controls each activation blocks for selecting specific micro-instruction from corresponding set
EP0520579A2 (en) Data processing apparatus particularly adapted for threaded languages, notably FORTH
FR2600794A1 (en) SYSTEM FOR CONTROLLING ARITHMETIC OPERATIONS ON POLYNOMIAL VECTORS
FR2693573A1 (en) Handling program loops in microprocessor data processing system
FR2693572A1 (en) Handling program loops in microprocessor data processing system
FR2693586A1 (en) Handling program loops in microprocessor data processing system
FR2731813A1 (en) COMPUTER PROCESSOR USING LOGARITHMIC CONVERSION AND METHOD OF USING THE SAME
EP1596282A2 (en) Apparatus and method of instruction set control in a microprocessor
FR2645665A1 (en) DEVICE FOR DECODING PIPELINE INSTRUCTIONS FOR MICROPROCESSOR
EP0006485A1 (en) Page addressing mechanism in a data processing system
EP1233402A1 (en) System for processing graphic patterns having different formats by pixel extraction and routing of the same to different coding means
WO2003034204A1 (en) Microprocessor having an extended addressable memory space
US5490277A (en) Digital computation integrated circuit
FR2693579A1 (en) Processor architecture especially for multiple access digital telephony.
JP2005198287A (en) Fir filter improved in performance

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20080331