CH690157GA3 - Device multitasking processing instruction sequences. - Google Patents

Device multitasking processing instruction sequences.

Info

Publication number
CH690157GA3
CH690157GA3 CH02388/95A CH238895A CH690157GA3 CH 690157G A3 CH690157G A3 CH 690157GA3 CH 02388/95 A CH02388/95 A CH 02388/95A CH 238895 A CH238895 A CH 238895A CH 690157G A3 CH690157G A3 CH 690157GA3
Authority
CH
Switzerland
Prior art keywords
execution
tasks
instructions
instruction
task
Prior art date
Application number
CH02388/95A
Other languages
French (fr)
Other versions
CH690157B5 (en
Inventor
Christian Piguet
Original Assignee
Suisse Electronique Microtech
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 Suisse Electronique Microtech filed Critical Suisse Electronique Microtech
Publication of CH690157GA3 publication Critical patent/CH690157GA3/en
Publication of CH690157B5 publication Critical patent/CH690157B5/en

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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Description

La pr sente invention est relative Ù un dispositif multitssche de traitement de s quences d'instructions, et plus particuli rement, Ù un dispositif du type qui comprend des moyens de stockage de N s quences d'instructions correspondant Ù N tssches diff rentes, des moyens pour activer une pluralit quelconque desdites tssches, des moyens pour ex cuter successivement une instruction de chaque tssche active et des moyens pour entrelacer les ex cutions des instructions des tssches actives. The present invention relates to a multi-task device for processing instruction sequences, and more particularly, to a device of the type which comprises means for storing N instruction sequences corresponding to N different tasks, means for activating any plurality of said tasks, means for successively executing an instruction from each active task and means for interleaving the execution of instructions from the active tasks.

On connaÖt de tels dispositifs multitssches, en particulier de la demande internationale de brevet WO-A9 415 287 d pos e le 10 d cembre 1993 au nom de Centre Electronique Horloger S.A. Le dispositif d crit dans cette demande de brevet comprend un microprocesseur pour traiter en simultan it et en partage de temps une pluralit quelconque de N tssches, un s quenceur multitssches pour commander l'ex cution desdites tssches par le microprocesseur, des moyens de stockage de N compteurs d'instructions utilis s par le s quenceur pour commander l'enchaÖnement d'une particuli re desdites tssches. Ainsi le s quenceur s lectionne l'instruction de la tssche suivante par un autre compteur lorsque l'instruction de la tssche pr c dente est termin e, ce qui vite un transfert de donn es Ù partir de moyens de stockage de ces donn es. Avantageusement, le microprocesseur du dispositif comprend aussi autant d'accumulateurs et de registres d'index que de compteurs d'instructions, toujours pour viter des transferts de donn es. On diminue ainsi la consommation d' nergie du dispositif et on entrelace l'ex cution des tssches ce qui am liore le temps de r ponse du dispositif. Ceci est particuli rement int ressant dans le domaine horloger o les microprocesseurs sont aliment s en basse tension, cette basse tension affectant d favorablement la vitesse d'ex cution des instructions par le microprocesseur. Such multitask devices are known, in particular from the international patent application WO-A9 415 287 filed on December 10, 1993 in the name of Center Electronique Horloger SA. The device described in this patent application comprises a microprocessor for processing simultaneous and in time sharing any plurality of N tasks, a multitask sequencer to control the execution of said tasks by the microprocessor, means for storing N instruction counters used by the sequencer to control the sequencing of a particular of said tasks. Thus the sequencer selects the instruction of the next task by another counter when the instruction of the previous task is finished, which quickly transfers data from storage means of this data. Advantageously, the microprocessor of the device also includes as many accumulators and index registers as there are instruction counters, always to avoid data transfers. The energy consumption of the device is thus reduced and the execution of the tasks is interleaved, which improves the response time of the device. This is particularly interesting in the horological field where the microprocessors are supplied with low voltage, this low voltage favorably affecting the speed of execution of instructions by the microprocessor.

Dans un dispositif multitssche tel que d crit dans la demande de brevet pr cit e, l'ex cution d'une instruction demande plusieurs phases d'horloge, par exemple 4. Compte tenu de la contrainte de basse consommation en basse tension pos e en micro lectronique horlog re, on comprend qu'il existe un besoin pour un dispositif capable d'ex cuter, par exemple, une instruction par phase, ce qui quadruplerait la vitesse avec une mme fr quence d'horloge et une mme tension d'alimentation, ou permettrait d'ex cuter le mme nombre d'instructions Ù une fr quence 4 fois inf rieure autorisant une tension d'alimentation r duite. In a multitsche device as described in the aforementioned patent application, the execution of an instruction requires several clock phases, for example 4. Taking into account the constraint of low consumption at low voltage posed in micro clock electronics, we understand that there is a need for a device capable of executing, for example, an instruction per phase, which would quadruple the speed with the same clock frequency and the same supply voltage , or would execute the same number of instructions at a frequency 4 times lower allowing a reduced supply voltage.

On connaÖt aussi la technique du traitement d'instructions d compos es en plusieurs phases successives, dite en "chevauchement" ou en "pipeline" suivant l'expression anglo-saxonne. A chaque instant, des phases diff rentes de plusieurs instructions successives sont trait es ce qui permet de r duire la dur e apparente d'ex cution d'une instruction compl te et donc de r duire la dur e d'ex cution d'une s quence d'instructions. Le traitement en pipeline pr sente n anmoins deux graves inconv nients qui r duisent le gain en dur e que l'on peut en attendre. D'une part, quand la s quence comprend un branchement, il faut le plus souvent "vider" le pipeline avant de le remplir avec une nouvelle suite d'instructions, ce qui entraÖne des phases Ù vide ralentissant l'ex cution de la s quence. On observe le mme inconv nient quand l'ex cution d'une instruction fait appel Ù un r sultat encore non disponible car produit par une instruction pr c dente qui n'est pas encore sortie du pipeline. We also know the technique of processing instructions of compounds in several successive phases, called "overlapping" or "pipeline" according to the English expression. At each instant, different phases of several successive instructions are treated which makes it possible to reduce the apparent duration of execution of a complete instruction and therefore to reduce the duration of execution of a sequence of instructions. However, pipeline processing has two serious drawbacks that reduce the gain in duration that can be expected. On the one hand, when the sequence includes a connection, it is most often necessary to "empty" the pipeline before filling it with a new sequence of instructions, which leads to empty phases slowing down the execution of the s quence. We observe the same drawback when the execution of an instruction calls for a result which is not yet available because it is produced by a previous instruction which has not yet left the pipeline.

La pr sente invention a pour but de r aliser un dispositif de traitement de s quences d'instructions qui ne souffre pas des contraintes qui r duisent la vitesse d'ex cution des dispositifs de traitement "multitssches" ou en "pipeline" et qui permette, en particulier, de r duire au minimum le nombre des phases Ù vide. The object of the present invention is to provide a device for processing instruction sequences which does not suffer from the constraints which reduce the speed of execution of "multitask" or "pipeline" processing devices and which allows , in particular, to reduce to a minimum the number of empty phases.

On atteint ces buts de l'invention, ainsi que d'autres qui apparaÖtront Ù la lecture de la description qui va suivre, avec un dispositif multitssche de traitement de s quences d'instructions, du type qui comprend des moyens de stockage de N s quences d'instructions correspondant Ù N tssches diff rentes, des moyens pour activer une pluralit quelconque desdites tssches, et des moyens pour entrelacer les ex cutions des instructions de X tssches actives (X </= N) de telle sorte que l'ex cution d'une instruction d'une tssche active suive l'ex cution d'une instruction de la tssche active pr c dente, ce dispositif tant remarquable en ce qu'il comprend des moyens de traitement en pipeline de M phases successives de chacune de plusieurs instructions entrelac es, et un gestionnaire de tssches sensible Ù des v nements impliquant l'activation desdites tssches pour commander les moyens de traitement de mani re Ù assurer l'ex cution en pipeline des phases successives des instructions entrelac es des tssches actives. These objects of the invention are achieved, as well as others which will appear on reading the description which follows, with a multitask device for processing sequences of instructions, of the type which includes means for storing N s instruction sequences corresponding to N different tasks, means for activating any plurality of said tasks, and means for interleaving the execution of the instructions of X active tasks (X </ = N) so that the execution of an instruction of an active task following the execution of an instruction of the preceding active task, this device being so remarkable in that it comprises means for processing in pipeline of M successive phases of each of several interleaved instructions, and a task manager sensitive to events involving the activation of said tasks to control the processing means so as to ensure the execution in pipeline of the successive phases of the interleaved instructions ac es active tasks.

Comme on le verra dans la suite, il r sulte de la structure multitssche du dispositif suivant l'invention que les instructions successives qui sont trait es en chevauchement ou en "pipeline" n'appartiennent pas aux mmes s quences d'instructions. Ainsi, la vitesse d'ex cution du dispositif n'est abaiss e ni par l'attente du r sultat d'une instruction non compl tement ex cut e ni par un "vidage" du pipeline exig par l'ex cution d'une instruction de branchement. As will be seen below, it follows from the multitsche structure of the device according to the invention that the successive instructions which are treated in overlap or in "pipeline" do not belong to the same sequences of instructions. Thus, the speed of execution of the device is not reduced either by waiting for the result of an instruction that is not completely executed or by an "emptying" of the pipeline required by the execution of a connection instruction.

Suivant un mode de r alisation du dispositif selon l'invention, conu̇ pour l'ex cution de quatre tssches actives au maximum, les moyens de traitement en pipeline traitent des instructions d compos es en trois phases, de lecture en m moire de stockage d'instructions, de r alisation d'une op ration dans une unit arithm tique et logique, et de rangement du r sultat en m moire simultan ment Ù une incr mentation de compteur de programme ou Ù un chargement d'adresse de branchement, respectivement. According to an embodiment of the device according to the invention, designed for the execution of a maximum of four active tasks, the pipeline processing means process instructions of compounds in three phases, of reading in memory of storage of instructions, performing an operation in an arithmetic and logical unit, and storing the result in memory simultaneously with an incrementation of a program counter or with a loading of connection address, respectively.

Suivant une premi re variante du dispositif selon l'invention, conu̇e pour l'ex cution de quatre tssches actives, les moyens de traitement et le gestionnaire de tssches commandent l'ex cution d'instructions d compos es en deux phases, d'extraction et d'ex cution respectivement. According to a first variant of the device according to the invention, designed for the execution of four active tasks, the processing means and the task manager control the execution of instructions of compounds in two phases, of extraction and execution respectively.

Suivant une deuxi me variante du dispositif selon l'invention, conu̇e pour l'ex cution de quatre tssches actives au maximum par des instructions d compos es en quatre phases, les moyens de traitement et le gestionnaire de tssches commandent l'adressage d'accumulateurs, de compteurs de programme, d'une m moire vive associ e au microprocesseur et des moyens de stockage des quatre s quences d'instructions, de mani re Ù assurer l'ex cution d'une tssche active dans un temps constant, quel que soit le nombre de tssches actives. According to a second variant of the device according to the invention, designed for the execution of a maximum of four active tasks by instructions d composed in four phases, the processing means and the task manager control the addressing of accumulators , program counters, random access memory associated with the microprocessor and means for storing the four sequences of instructions, so as to ensure the execution of an active task in a constant time, whatever the number of active tasks.

Suivant une troisi me variante du dispositif selon l'invention, la suite des M phases d'une instruction est choisie de mani re Ù viter tout blocage du traitement en pipeline quand le nombre de tssches actives est sup rieur ou gal Ù un nombre pr d termin inf rieur au nombre N des s quences d'instructions en m moire dans les moyens de stockage. According to a third variant of the device according to the invention, the sequence of M phases of an instruction is chosen so as to avoid any blocking of the processing in pipeline when the number of active tasks is greater than or equal to a number pr d termin lower than the number N of instruction sequences stored in memory in the storage means.

D'autres caract ristiques et avantages de la pr sente invention apparaÖtront Ù la lecture de la description qui va suivre et Ù l'examen du dessin annex , dans lequel: Other characteristics and advantages of the present invention will become apparent on reading the description which follows and on examining the appended drawing, in which:

la fig. 1 repr sente sch matiquement l'architecture d'un mode de r alisation du dispositif suivant l'invention et, les fig. 3, 5 et 6 repr sentent sch matiquement l'architecture de trois variantes de ce dispositif, et les fig. 2, 4 et 7 sont des chronogrammes des instructions ex cut es par les dispositifs des fig. 1, 3 et 6, respectivement.  fig. 1 schematically represents the architecture of an embodiment of the device according to the invention and,  fig. 3, 5 and 6 schematically represent the architecture of three variants of this device, and  fig. 2, 4 and 7 are timing diagrams of the instructions executed by the devices of FIGS. 1, 3 and 6, respectively.

On se r f re Ù la fig. 1 du dessin annex o l'on a repr sent l'architecture d'un mode de r alisation du dispositif suivant l'invention, adapt Ù l'ex cution de quatre tssches au maximum, avec un traitement des instructions en "pipeline" Ù trois tages. Les quatre s quences d'instructions correspondant aux quatre tssches sont stock es dans des sections diff rentes d'une m moire permanente ROM formant partie du premier tage de l'architecture "pipeline" du dispositif. Celui-ci comprend un microprocesseur form d'une unit arithm tique et logique ALU, d'une m moire vive RAM mont e entre un bus 1 et un bus 2 et, comme le dispositif multitssche d crit dans la demande de brevet pr cit e, une pluralit de compteurs de programme PC0 Ù PC3 pour adresser la m moire ROM et une pluralit correspondante d'accumulateurs AC0 Ù AC3 associ s Ù l'unit arithm tique et logique ALU. Ces compteurs et accumulateurs sont s lectivement adress s, en lecture, comme en criture, par un gestionnaire de tssches G command par une boucle B Ù jeton, qui s lectionne les tssches activ es par des v nements. Dans ce mode de r alisation, le gestionnaire s lectionne soit trois tssches soit quatre tssches. Dans l'hypoth se ou une ou deux tssches seulement devraient tre activ es, le gestionnaire pourrait ins rer des phases Ù vide, aux d pens de la vitesse d'ex cution du dispositif. We refer to fig. 1 of the accompanying drawing where the architecture of an embodiment of the device according to the invention has been represented, adapted to the execution of a maximum of four tasks, with processing of instructions in "pipeline" Ù three floors. The four instruction sequences corresponding to the four tasks are stored in different sections of a permanent ROM memory forming part of the first stage of the device's "pipeline" architecture. This includes a microprocessor formed by an arithmetic and logic unit ALU, a RAM memory mounted between a bus 1 and a bus 2 and, like the multitssche device described in the aforementioned patent application , a plurality of program counters PC0 Ù PC3 to address the ROM memory and a corresponding plurality of accumulators AC0 Ù AC3 associated with the arithmetic and logic unit ALU. These counters and accumulators are selectively addressed, in reading, as in writing, by a task manager G controlled by a token loop, which selects the tasks activated by events. In this embodiment, the manager selects either three tasks or four tasks. In the hypothesis that only one or two tasks should be activated, the manager could insert empty phases, at the expense of the speed of execution of the device.

Les v nements d clenchant la s lection d'une tssche peuvent tre d'origine interne (commande d'un moteur pas Ù pas dans une montre, par exemple) ou externe (s lection de la fonction chronom tre, par exemple). La s lection s'op re de la mani re suivante. Si le jeton J, par exemple, est dans une cellule CO de la boucle qui correspond Ù la tssche O, le gestionnaire de tssches pointe en sortie la tssche s = 0 pour commander l'activation du compteur de programme PC0, de l'accumulateur AC0, etc... Quand le jeton passe Ù la tssche 1, = 1, ce qui s lectionne AC1, PC1, etc... Comme le dispositif multitssche suivant l'invention assure aussi un traitement en pipeline des diverses phases des instructions, les diff rents tages du pipeline traitent des tssches diff rentes. The events triggering the selection of a task can be of internal origin (control of a stepping motor in a watch, for example) or external (selection of the stopwatch function, for example). The selection is made in the following manner. If the token J, for example, is in a CO cell of the loop which corresponds to task O, the task manager points at output task s = 0 to command the activation of the program counter PC0, of the accumulator AC0, etc ... When the token goes to task 1, = 1, which is selected AC1, PC1, etc ... As the multitssche device according to the invention also ensures pipeline processing of the various phases of the instructions, the different stages of the pipeline deal with different tasks.

Sur la fig. 1, il apparaÖt que le gestionnaire de tssches s lectionne en lecture (L) le compteur PCi (i = 0, 1, 2, 3) correspondant Ù la tssche s, s lectionne en criture (E) l'accumulateur ACi correspondant Ù la tache (s-1), s lectionne en lecture l'accumulateur et en criture le compteur qui correspondent Ù la tssche s-2. In fig. 1, it appears that the task manager selects in reading (L) the counter PCi (i = 0, 1, 2, 3) corresponding to the task s, selects in write mode (E) the accumulator ACi corresponding to the task (s-1), selects the accumulator by reading and writes the counter which corresponds to task s-2.

La m moire RAM utilis e dans le dispositif suivant l'invention doit pouvoir tre lue et crite Ù chaque phase des instructions. On choisit donc une m moire rapide Ù double acc s par le bus 1 et le bus 2. The RAM memory used in the device according to the invention must be able to be read and written at each phase of the instructions. We therefore choose a fast memory with double access via bus 1 and bus 2.

On remarquera encore, dans le dispositif de la fig. 1, la pr sence de deux registres d'instructions RI 1 et RI 2 plac s en s rie dans cet ordre entre la m moire ROM et l'entr e des compteurs de programme PC0 Ù PC3. La pr sence de ces deux registres r sulte du phasage choisi pour les instructions, qui s' tablit comme suit: <tb><TABLE> Columns=2 <tb><SEP>phase 1<SEP>RI 1 <- ROM (PCi) <tb><SEP>phase 2<SEP>ACi <- ALU (ACi, RAM), RI 2 <- RI 1 <tb><CEL AL=L>phase 3<SEP>RAM <- ACi, PCi <- PCi + 1 ou PCi <- ad <tb></TABLE> It will also be noted, in the device of FIG. 1, the presence of two instruction registers RI 1 and RI 2 placed in series in this order between the ROM memory and the input of the program counters PC0 Ù PC3. The presence of these two registers results from the phasing chosen for the instructions, which is established as follows: <tb> <TABLE> Columns = 2 <tb> <SEP> phase 1 <SEP> RI 1 <- ROM (PCi) <tb> <SEP> phase 2 <SEP> ACi <- ALU (ACi, RAM), RI 2 <- RI 1 <tb> <CEL AL = L> phase 3 <SEP> RAM <- ACi, PCi <- PCi + 1 or PCi <- ad <tb> </TABLE>

C'est ainsi qu'une instruction est ex cut e en trois phases, la premi re pour lire la m moire Ù l'adresse indiqu e par le compteur de programme PCi (i = 0, 1, 2, 3), la deuxi me pour r aliser une op ration dans l'unit ALU et charger l'accumulateur ACi et la troisi me pour ranger le r sultat en m moire et incr menter le compteur de programme PCi ou le charger avec une adresse ad de saut, en cas de branchement. L'instruction lue dans la m moire est inscrite dans le registre RI 1 pendant la premi re phase et le contenu de RI 1 transf r dans RI 2 pendant la deuxi me phase. Thus an instruction is executed in three phases, the first to read the memory at the address indicated by the program counter PCi (i = 0, 1, 2, 3), the second me to carry out an operation in the ALU unit and charge the ACi accumulator and the third to store the result in memory and increment the PCi program counter or load it with a jump address, in case of connection. The instruction read in the memory is entered in the register RI 1 during the first phase and the content of RI 1 transferred to RI 2 during the second phase.

Pour quatre tssches actives 1, 2, 3 et 4 et les accumulateurs et compteurs de programme de mmes indices qui leur sont affect s, le traitement multitssche en pipeline Ù trois tages des quatre s quences d'instructions correspondantes se d veloppe dans le temps selon le chronogramme repr sent Ù la fig. 2. Sur cette fig., il apparaÖt que les trois phases d'une mme instruction s' tagent en marches d'escalier, les instructions successives s'imbriquant les unes dans les autres. C'est ainsi que, Ù titre d'exemple, pendant la troisi me phase de la premi re instruction de la tssche 0: - l' tage 3 du pipeline est occup par une instruction de la tssche 0. On adresse l'accumulateur AC0 en lecture pour le d charger dans la RAM adress e en criture et on adresse le compteur PC0 soit pour l'incr menter, soit pour le charger avec une adresse ad de branchement, - l' tage 2 du pipeline est occup par une instruction de la tssche 1. On adresse l'accumulateur AC1 pour le charger avec le r sultat d'une op ration f ex cut e dans l'unit ALU, op ration dont les op randes sont les contenus de AC1 et de la RAM, adress e en lecture, - l' tage 1 du pipeline lit dans la m moire ROM une instruction de la tssche 2 en adressant en lecture le compteur de programme PC2. For four active tasks 1, 2, 3 and 4 and the accumulators and program counters with the same indices assigned to them, the multitasking three-stage pipeline processing of the four corresponding instruction sequences develops over time according to the timing diagram shown in fig. 2. In this fig., It appears that the three phases of the same instruction are tagged in staircase steps, the successive instructions overlapping one another. This is how, for example, during the third phase of the first instruction of task 0: - stage 3 of the pipeline is occupied by an instruction from task 0. The accumulator AC0 is read in order to load it into the RAM addressed in writing and the counter PC0 is addressed either to increment it, or to load it with a connection address ad, - stage 2 of the pipeline is occupied by an instruction from task 1. The accumulator AC1 is addressed to charge it with the result of a f ex cut operation in the ALU unit, operation whose operations routes are the contents of AC1 and RAM, read address, - stage 1 of the pipeline reads an instruction from task 2 in ROM memory by sending the program counter PC2 for reading.

Autrement dÖt, la tssche 2 tant trait e dans l' tage 1, on a s = 2 (voir fig. 1). La tssche pr c dente s-1 = 1 est dans l' tage 2 et la tssche s-2 = 0 est dans l' tage 3. Otherwise, task 2 being treated in stage 1, we have s = 2 (see fig. 1). The previous task s-1 = 1 is in stage 2 and the task s-2 = 0 is in stage 3.

Si la tssche 3 tait dans l' tage 1 (s = 3), on aurait la tssche 2 dans l' tage 2 (s-1 = 2) et la tssche 1 dans l' tage 3 (s-2 = 1). If task 3 was in stage 1 (s = 3), we would have task 2 in stage 2 (s-1 = 2) and task 1 in stage 3 (s-2 = 1).

Il apparaÖt que la gestion des tssches et du pipeline dans le dispositif suivant l'invention permet de faire en sorte que chaque instruction de chaque tssche soit ex cut e tour Ù tour, chacune n'ayant pas de rapport avec les autres instructions trait es dans le pipeline. It appears that the management of the tasks and of the pipeline in the device according to the invention makes it possible to ensure that each instruction of each task is executed in turn, each having no relation to the other instructions dealt with in the pipeline.

Ainsi, plus g n ralement, lors de l'ex cution de N tssches diff rentes en multiprogrammation, avec un pipeline Ù M tages (avec M </= N), les M instructions contenues dans le pipeline sont ind pendantes. Le pipeline n'est alors jamais bloqu par l'intervention d'un branchement ou par le fait qu'une instruction doit attendre le r sultat d'une instruction pr c dente incompl tement ex cut e. Les d lais ainsi supprim s notamment lors des branchements (qui repr sentent couramment environ 25% des instructions), permettent d'accroÖtre sensiblement la vitesse d'ex cution des tssches ou de maintenir une vitesse d'ex cution donn e avec un dispositif Ù consommation abaiss e, conform ment aux objectifs que l'on s' tait fix s. Thus, more generally, during the execution of N different tasks in multiprogramming, with a pipeline Ù M stages (with M </ = N), the M instructions contained in the pipeline are independent. The pipeline is never blocked by the intervention of a connection or by the fact that an instruction must wait for the result of a previous instruction that was not fully executed. The delays thus eliminated, in particular during the connections (which commonly represent around 25% of the instructions), make it possible to appreciably increase the speed of execution of the tasks or to maintain a given speed of execution with a device Ù lower consumption, in accordance with the objectives we set for ourselves.

On se r f re Ù la fig. 3 du dessin annex o l'on a repr sent sch matiquement l'architecture d'une variante du dispositif suivant l'invention, conu̇ pour ex cuter au maximum quatre tssches avec un pipeline Ù deux tages. Dans cette figure comme dans les suivantes, des r f rences identiques Ù des r f rences d jÙ utilis es d signent des l ments ou organes identiques ou similaires. C'est ainsi que, comme le mode de r alisation de la fig. 1, celui de la fig. 3 comprend quatre compteurs de programme PC0 Ù PC3 et quatre accumulateurs AC0 Ù AC3, chaque paire de compteur et d'accumulateur de mme indice num rique tant d volue Ù l'ex cution de l'une des quatre tssches possibles. Le dispositif comprend aussi un gestionnaire G des tssches s et (s-1) pour commander respectivement la s lection en lecture de l'un quelconque des compteurs, la s lection en criture de ces compteurs et la s lection en criture ou lecture des accumulateurs. Le dispositif comprend un seul registre d'instructions et une unit centrale de traitement CPU telle qu'un microprocesseur comprenant classiquement une unit de traitement ALU et une m moire RAM, non repr sent es, tout comme le dispositif de la fig. 1. We refer to fig. 3 of the accompanying drawing where we have schematically represented the architecture of a variant of the device according to the invention, designed to execute a maximum of four tasks with a two-stage pipeline. In this figure as in the following, identical references to references already used denote identical or similar elements or organs. Thus, like the embodiment of FIG. 1, that of FIG. 3 includes four program counters PC0 Ù PC3 and four accumulators AC0 Ù AC3, each pair of counter and accumulator of the same digital index as evolved in the execution of one of the four possible tasks. The device also includes a manager G of tasks s and (s-1) for respectively controlling the selection in reading of any one of the counters, the selection in writing of these counters and the selection in writing or reading of accumulators. . The device comprises a single instruction register and a central processing unit CPU such as a microprocessor conventionally comprising an ALU processing unit and a RAM memory, not shown, like the device in FIG. 1.

Les deux tages du pipeline, d'extraction F et d'ex cution E, ex cutent les op rations suivantes: <tb><TABLE> Columns=3 <tb><SEP>Phase 1A Phase 1B<SEP>Extraction<SEP>RI <- ROM (PC) PchRom <tb><SEP>Phase 2A Phase 2B<SEP>Ex cution<SEP>ACi <- ALU (ACi, RAM) RAM <- ACi; PCi <- PCi + 1 ou ad <tb></TABLE> The two stages of the pipeline, extraction F and execution E, execute the following operations: <tb> <TABLE> Columns = 3 <tb> <SEP> Phase 1A Phase 1B <SEP> Extraction <SEP> RI <- ROM (PC) PchRom <tb> <SEP> Phase 2A Phase 2B <SEP> Execution <SEP> ACi <- ALU (ACi, RAM) RAM <- ACi; PCi <- PCi + 1 or ad <tb> </TABLE>

Le premier tage assure l'extraction de l'instruction, soit la lecture de la m moire ROM et le chargement du registre d'instructions RI avec l'instruction lue, puis une pr charge Pch de la m moire ROM (sous-phases 1A et 1B). Le deuxi me tage r alise "l'ex cution", soit le chargement de l'accumulateur ACi associ Ù une tssche active i particuli re, par une op ration r alis e dans l'unit ALU, le chargement de la RAM par l'accumulateur ACi et l'incr mentation du compteur de programme PCi ou son chargement avec une adresse ad de branchement (sous-phases 2A et 2B). La m moire ROM contient les quatre tssches et est lue Ù chaque phase. The first stage ensures the extraction of the instruction, ie the reading of the ROM memory and the loading of the instruction register RI with the instruction read, then a preload Pch of the memory ROM (sub-phases 1A and 1B). The second stage realizes "the execution", that is to say the loading of the accumulator ACi associated with a task active i particular, by an operation carried out in the unit ALU, the loading of the RAM by l ACi accumulator and incrementation of the program counter PCi or its loading with a connection address ad (sub-phases 2A and 2B). The ROM memory contains the four tasks and is read at each phase.

On a repr sent Ù la fig. 4 le chronogramme des op rations ex cut es dans le cas o il y a quatre tssches actives. Dans ce chronogramme I0,1, par exemple, se lit "instruction 0 de la tssche 1". Il est clair que le traitement en pipeline n'est jamais bloqu (c'est-Ù-dire encombr de phases Ù vide) d s que deux tssches au moins sont activ es. A cette condition, la vitesse d'ex cution de ces tssches est optimale. S'il n'y a qu'une seule tssche active, le gestionnaire peut ins rer une tssche Ù vide (c'est-Ù-dire sans "extraction" ni "ex cution"). On peut aussi choisir de faire fonctionner le dispositif suivant le seul traitement en pipeline des instructions. Il faut alors ins rer un "d lai" (soit par exemple l'instruction inop rante "NOP" dans le langage mn monique des microprocesseurs du type MC 6800) apr s une instruction de branchement ou ignorer l'instruction qui suit un branchement effectif. We have shown in fig. 4 the chronogram of the ex cut operations in the case where there are four active tasks. In this timing diagram I0.1, for example, reads "instruction 0 of task 1". It is clear that the pipeline processing is never blocked (that is to say, empty phase congestion) as soon as at least two tasks are activated. On this condition, the speed of execution of these tasks is optimal. If there is only one active task, the manager can insert an empty task (that is to say without "extraction" or "execution"). It is also possible to choose to operate the device according to the sole processing of instructions by pipeline. It is then necessary to insert a "delay" (ie for example the inoperative instruction "NOP" in the mnemonic language of microprocessors of the MC 6800 type) after a connection instruction or ignore the instruction that follows an effective connection .

On se r f re maintenant Ù la fig. 5 du dessin annex o l'on a repr sent une deuxi me variante du dispositif selon l'invention. Dans cette variante, les moyens de stockage des instructions des N tssches (N = 4) sont constitu s par N m moires ROM 0 Ù ROM 3 en parall le, affect es chacune aux instructions d'une des tssches. Chaque m moire est lue seulement une fois toutes les N phases d'horloge ce qui permet d'utiliser des m moires moins rapides que si l'on utilisait une seule m moire pour stocker les N s quences d'instructions. En variante, on pourrait aussi installer des m moires caches rapides entre la m moire ROM (fig. 1 et 3) ou les m moires ROM (fig. 5) et le microprocesseur. We now refer to fig. 5 of the accompanying drawing where a second variant of the device according to the invention has been represented. In this variant, the means for storing the instructions of the N tasks (N = 4) are constituted by N memories ROM 0 Ù ROM 3 in parallel, each assigned to the instructions of one of the tasks. Each memory is read only once every N clock phases which makes it possible to use slower memories than if a single memory was used to store the N sequences of instructions. As a variant, it is also possible to install quick cache memories between the ROM memory (fig. 1 and 3) or the ROM memories (fig. 5) and the microprocessor.

Le dispositif de la fig. 5 comprend des moyens de pr charge des ROMi command s par des signaux de pr charge PRi (i = 0, 1, 2, 3). Il se distingue encore du dispositif de la fig. 1 en ce qu'il comprend quatre registres-maÖtres Mi associ s chacun Ù un des compteurs de programme PCi. Le gestionnaire de tssches G commande l'acc s en lecture ou en criture de ces registres. L'incr mentation, ou le saut Ù une adresse de branchement, des compteurs de programme est d termin par un multiplexeur Mux commandant les registres Mi. Pour le reste, le dispositif de la fig. 5 comprend deux registres d'instruction RI 1 et RI 2 et un microprocesseur conforme Ù celui du dispositif de la fig. 1. On remarquera que la RAM associ e Ù l'unit ALU devant tre adress e Ù chaque phase en double acc s ( criture et lecture) doit tre rapide. On pourrait utiliser aussi des RAM plus petites, sp cifiques Ù chaque tssche et adress es plus lentement. The device of fig. 5 comprises means for preloading ROMi controlled by preload signals PRi (i = 0, 1, 2, 3). It is further distinguished from the device of FIG. 1 in that it comprises four master registers Mi each associated with one of the program counters PCi. The task manager G controls access to read or write these registers. The incrementation, or the jump to a branch address, of the program counters is determined by a multiplexer Mux controlling the registers Mi. For the rest, the device of fig. 5 comprises two instruction registers RI 1 and RI 2 and a microprocessor conforming to that of the device of FIG. 1. Note that the RAM associated with the ALU unit to be addressed to each phase with double access (write and read) must be fast. We could also use smaller RAMs, specific to each task and addressed more slowly.

Le dispositif de la fig. 5 est conu̇ pour ex cuter jusqu'Ù quatre tssches, chaque instruction se d composant en quatre phases 1 Ù 4, pour tre ex cut e comme suit dans un pipeline Ù quatre tages: <tb><TABLE> Columns=2 <tb><SEP>phase 0<SEP>Pr charge ROMi (PRi actif) <tb><SEP>phase 1<SEP>RI 1 <- ROMi (PCi) <tb><SEP>phase 2<SEP>ACi <- ALU (ACi, RAM, Mi <- (PCi + 1 ou ad, RI 2 <- RI 1 <tb><SEP>phase 3<SEP>RAM <- ACi, PCi <- Mi, pr charge ROMi <tb></TABLE> The device of fig. 5 is designed to execute up to four tasks, each instruction consisting of four phases 1 to 4, to be executed as follows in a four-stage pipeline: <tb> <TABLE> Columns = 2 <tb> <SEP> phase 0 <SEP> Pr charge ROMi (PRi active) <tb> <SEP> phase 1 <SEP> RI 1 <- ROMi (PCi) <tb> <SEP> phase 2 <SEP> ACi <- ALU (ACi, RAM, Mi <- (PCi + 1 or ad, RI 2 <- RI 1 <tb> <SEP> phase 3 <SEP> RAM <- ACi, PCi <- Mi, pr ROMi charge <tb> </TABLE>

Pour l'ex cution des instructions, le gestionnaire de tssches G donne toujours la main cycliquement aux quatre tssches, mme si une ou plusieurs d'entre elles sont inactives, auquel cas, il y aura interposition de phases Ù vide. Avec quatre tssches actives, pendant la dur e d'une phase des diverses instructions trait es dans le pipeline, les op rations suivantes sont r alis es par le dispositif suivant l'invention, en prenant l'exemple de l'ex cution d'une instruction de la tssche 0 dans l' tage 3: <tb><TABLE> Columns=3 <tb><SEP>Etage 0<SEP>Pr charge ROM 3<SEP>tssche 3 <tb><SEP>Etage 1<SEP>RI 1 <- ROM 2 (PC2)<SEP>tssche 2 <tb><SEP>Etage 2<SEP>AC1 <- ALU (AC1, RAM) M1 <- (PC1 + 1) ou ad RI 2 <- RT 1<SEP>tssche 1 <tb><SEP>Etage 3<SEP>RAM <- AC0 PC0 <- M0 Pr charge ROM 0<SEP>tssche 0 <tb></TABLE> For the execution of the instructions, the task manager G always gives the hand cyclically to the four tasks, even if one or more of them are inactive, in which case, there will be interposition of empty phases. With four active tasks, during the duration of a phase of the various instructions processed in the pipeline, the following operations are carried out by the device according to the invention, taking the example of the execution of an instruction from task 0 in stage 3: <tb> <TABLE> Columns = 3 <tb> <SEP> Stage 0 <SEP> Preload ROM 3 <SEP> tssche 3 <tb> <SEP> Stage 1 <SEP> RI 1 <- ROM 2 (PC2) <SEP> tssche 2 <tb> <SEP> Stage 2 <SEP> AC1 <- ALU (AC1, RAM) M1 <- (PC1 + 1) or ad RI 2 <- RT 1 <SEP> task 1 <tb> <SEP> Stage 3 <SEP> RAM <- AC0 PC0 <- M0 Preload ROM 0 <SEP> tssche 0 <tb> </TABLE>

Ainsi dans cet tage il y a s lection en lecture de AC0 pour le chargement de la RAM, elle-mme adress e videmment en criture, s lection en lecture du registre M0 maÖtre de PC0 pour le chargement de ce dernier et pr charge de ROM 0 (le signal PR0 est activ ). Thus in this stage there is read selection of AC0 for the loading of the RAM, itself obviously addressed in writing, selection of reading of the register M0 master of PC0 for the loading of the latter and preloaded with ROM 0 (signal PR0 is activated).

L' tage 2 est alors occup par une instruction de la tssche 1. Il y a s lection en criture de AC1 pour y charger le r sultat d'une op ration ex cut e dans l'ALU dont un op rande provient de la RAM, s lection de PC1 en lecture pour charger la nouvelle adresse PC1 + 1 ou l'adresse ad de branchement stock e dans le registre RI 1 et s lection de Ml, registre-maÖtre de PC1, en criture pour le chargement de la nouvelle adresse. Stage 2 is then occupied by an instruction from task 1. There is selection in writing of AC1 to load there the result of an operation executed in the ALU of which an operand comes from RAM, selection of PC1 in read mode to load the new address PC1 + 1 or the ad connection address stored in the register RI 1 and selection of MI, master register of PC1, in writing for loading the new address.

L' tage 1 est occup par une instruction de la tssche 2. Il s'op re alors une lecture de la m moire ROM 2 adress e par le compteur PC2 et un chargement de l'instruction lue dans le registre RI 1. Stage 1 is occupied by an instruction from task 2. There is then a reading of the memory ROM 2 addressed by the counter PC2 and a loading of the instruction read in the register RI 1.

L' tage 0 est occup par une instruction de la tssche 3, soit une pr charge de la m moire ROM 3, pr ludant Ù la lecture d'une instruction dans cette m moire au cours de la phase suivante du traitement multitssches et pipeline ex cut par le dispositif selon l'invention. Stage 0 is occupied by an instruction of task 3, that is to say a preload of the memory ROM 3, prudant to the reading of an instruction in this memory during the next phase of the processing multitssches and pipeline ex cut by the device according to the invention.

On retrouve le jeu d'op rations d crit ci-dessus dans les phases du traitement qui suivent celle d crite, avec une permution circulaire (0, 1, 2, 3, 0, 1...) des indices num riques des accumulateurs ACi, m moires ROMi, compteurs PCi, registres Mi. We find the set of operations described above in the processing phases which follow that described, with a circular permutation (0, 1, 2, 3, 0, 1 ...) of the digital indices of the accumulators ACi, ROMi memories, PCi counters, Mi registers.

Il apparaÖt alors que la dur e d'ex cution d'une tssche dans le dispositif de la fig. 5 est constante, quel que soit le nombre de tssches actives. Il s'ensuit que si une seule tssche est activ e, le traitement en pipeline des instructions ne permet pas de r duire la dur e d'ex cution de cette tssche. Par contre, l'activation soudaine d'autres tssches ne ralentit pas l'ex cution de la tssche en cours. Le concepteur optimisera videmment le rendement du dispositif en programmant Ù chaque instant le maximum de tssches actives. It then appears that the duration of execution of a task in the device of FIG. 5 is constant, regardless of the number of active tasks. It follows that if only one task is activated, the processing of instructions by pipeline does not reduce the execution time of this task. On the other hand, the sudden activation of other tasks does not slow down the execution of the current task. The designer will obviously optimize the performance of the device by programming the maximum number of active tasks at all times.

On se r f re maintenant Ù la fig. 6 qui repr sente une troisi me variante du dispositif suivant l'invention, conu̇e pour faire en sorte que le traitement en pipeline ne soit jamais bloqu par des phases Ù vide, mme lorsque le nombre de tssches actives est inf rieur au nombre M d' tages du pipeline. On retrouve dans le dispositif de la fig. 6 les diff rents organes de celui de la fig. 5, Ù l'exception des registres-maÖtres Mi des compteurs PCi. Sur le plan mat riel, le dispositif de la fig. 6 se distingue encore de celui de la fig. 5 par la pr sence d'un troisi me registre d'instructions RI 3 en aval du deuxi me, et en amont de l'entr e d' criture de la m moire RAM associ e Ù l'unit de traitement ALU, et par la pr sence d'un deuxi me multiplexeur MUX 2 command par le gestionnaire de tssches (de mme que le multiplexeur MUX). Le multiplexeur MUX 2 d termine la fourniture Ù l'unit arithm tique et logique ALU d'une condition de branchement Fi, pour un but que l'on verra plus loin. We now refer to fig. 6 which represents a third variant of the device according to the invention, designed to ensure that the pipeline treatment is never blocked by empty phases, even when the number of active tasks is less than the number M of pipeline stages. Found in the device of FIG. 6 the different organs of that of FIG. 5, with the exception of the master registers Mi of the counters PCi. On the material level, the device of FIG. 6 is further distinguished from that of FIG. 5 by the presence of a third register of instructions RI 3 downstream of the second, and upstream of the write entry of the RAM memory associated with the processing unit ALU, and by the presence of a second MUX 2 multiplexer controlled by the task manager (same as the MUX multiplexer). The multiplexer MUX 2 determines the supply to the arithmetic and logic unit ALU of a connection condition Fi, for a purpose which will be seen later.

On peut obtenir le r sultat nonc ci-dessus (l'absence de blocage du pipeline), par un traitement en pipeline Ù quatre tages, avec deux tssches actives seulement. Dans ce cas, et avec quatre m moires ROM 0 Ù ROM 3, le pipeline contient Ù chaque instant, dans deux de ses quatre tages, deux instructions appartenant Ù la mme tssche. Il est alors n cessaire de g rer en cons quence le fonctionnement du pipeline. We can obtain the result stated above (the absence of pipeline blocking), by a four-stage pipeline processing, with only two active tasks. In this case, and with four memories ROM 0 to ROM 3, the pipeline contains at any time, in two of its four stages, two instructions belonging to the same task. It is therefore necessary to manage the operation of the pipeline accordingly.

A cet effet on modifie comme suit la suite des phases des instructions, par rapport Ù celle d crite en liaison avec la description du dispositif de la fig. 5: <tb><TABLE> Columns=2 <tb><SEP>extraction<SEP>RI 1 <- ROMi (PCi) <tb><SEP>d codage<SEP>RI 2 <- RI 1; PCi <- Fi* (PCi + 1) ou Fi ad, Prech ROMi <tb><SEP>ex cution 1<SEP>RI 3 <- RI 2; Fi, ACi <- ALU (ACi, RAM) <tb><SEP>ex cution 2<SEP>RAM <- ACi <tb></TABLE> To this end, the sequence of instructions is modified as follows, relative to that described in connection with the description of the device in FIG. 5: <tb> <TABLE> Columns = 2 <tb> <SEP> extraction <SEP> RI 1 <- ROMi (PCi) <tb> <SEP> d coding <SEP> RI 2 <- RI 1; PCi <- Fi * (PCi + 1) or Fi ad, Prech ROMi <tb> <SEP> execution 1 <SEP> RI 3 <- RI 2; Fi, ACi <- ALU (ACi, RAM) <tb> <SEP> execution 2 <SEP> RAM <- ACi <tb> </TABLE>

Cette s quence se d compose alors comme suit - une phase d'extraction pour lire une instruction et la charger dans RI 1, - une phase de "d codage" pendant laquelle l'instruction glisse dans le registre RI 2, alors que le compteur de programme PCi attach Ù la tssche active i est mis Ù jour et que la m moire ROMi est pr charg e. La mise Ù jour du compteur de programme s'op re par calcul de la condition Fi qui peut prendre la valeur 1 ou 0. Si Fi = 0, il y a incr mentation du compteur. Si Fi = 1 c'est une adresse de branchement ad qui est charg e dans le compteur de programme, - une premi re phase d'ex cution ("ex cution 1") au cours de laquelle l'unit ALU calcule un r sultat Ù partir des contenus de l'accumulateur ACi et de m moire RAM. L'unit calcule aussi la condition de branchement Fi qui doit tre disponible Ù la phase suivante pour l'instruction suivante de la tssche, qui se trouve dans le pipeline, sans qu'il soit n cessaire d'attendre la fin de l'ex cution de l'instruction. Pendant cette premi re phase d'ex cution, le contenu du registre RI 2 glisse dans le registre RI 3, - une deuxi me phase d'ex cution ("ex cution 2") pendant laquelle le contenu de l'accumulateur ACi passe dans la m moire RAM. This sequence is then composed as follows - an extraction phase to read an instruction and load it into RI 1, - a phase of "coding" during which the instruction slides into the register RI 2, while the program counter PCi attached to the active task i is updated and the memory ROMi is preloaded. The program counter is updated by calculating the condition Fi which can take the value 1 or 0. If Fi = 0, the counter is incremented. If Fi = 1 it is an ad branch address which is loaded into the program counter, - a first execution phase ("execution 1") during which the ALU unit calculates a result from the contents of the ACi accumulator and RAM memory. The unit also calculates the connection condition Fi which must be available at the next phase for the next instruction of the task, which is in the pipeline, without it being necessary to wait for the end of the ex cution of the instruction. During this first execution phase, the content of the RI 2 register slides into the RI 3 register, - a second execution phase ("execution 2") during which the contents of the ACi accumulator pass into RAM memory.

Avec un tel s quencement, la lecture d'une instruction et la mise Ù jour du compteur de programme se r alisent en deux phases seulement (extraction et d codage). L'ex cution des instructions de la s quence intervient alors suivant le diagramme temporel repr sent Ù la fig. 7. With such a sequencing, the reading of an instruction and the updating of the program counter are carried out in only two phases (extraction and coding). The execution of the instructions of the sequence then takes place according to the time diagram represented in fig. 7.

Selon ce diagramme, l'ex cution de la tssche 0 ou de la tssche 1 dans le pipeline Ù quatre tages s'effectue en deux phases successives: - une premi re phase pendant laquelle une instruction de la tssche 1 (par exemple) s'ex cute dans l' tage 2 du pipeline (AC1 <- ALU (AC1, RAM)), l'ALU calculant aussi la condition de branchement F1, alors que l'instruction 3 suivante de la tssche 1 (un branchement par exemple) est lue dans l' tage 1 du pipeline, - une deuxi me phase dans laquelle cette instruction d cide du branchement ou non Ù partir de la condition F1 calcul e pendant la premi re phase According to this diagram, the execution of task 0 or task 1 in the four-stage pipeline takes place in two successive phases: - a first phase during which an instruction from task 1 (for example) is executed in stage 2 of the pipeline (AC1 <- ALU (AC1, RAM)), the ALU also calculating the connection condition F1 , while the following instruction 3 of task 1 (a connection for example) is read in stage 1 of the pipeline, - a second phase in which this instruction decides whether to connect from condition F1 calculated during the first phase

PC1 <- F1* (PC1 + 1 ou F1* ad PC1 <- F1 * (PC1 + 1 or F1 * ad

Les deux phases du diagramme ci-dessus se r p tent cycliquement pendant toute la dur e du traitement des deux tssches actives 0 et 1. On constate que le s quencement choisi et le glissement s quentiel des instructions entrelac es des deux tssches dans les trois registres RI 1, RI 2, RI 3 permet d' viter toute phase Ù vide et donc tout blocage du pipeline. The two phases of the above diagram repeat themselves cyclically throughout the duration of the processing of the two active tasks 0 and 1. It can be seen that the sequence chosen and the sequential sliding of the interleaved instructions of the two tasks in the three registers RI 1, RI 2, RI 3 makes it possible to avoid any empty phase and therefore any blockage of the pipeline.

Bien entendu le dispositif de la fig. 6 permet aussi d'ex cuter quatre tssches actives sans phases Ù vide, tout comme celui de la fig. 5. Par contre, en pr sence d'une seule tssche active (tssche 1 par exemple, le gestionnaire de tssches G doit ins rer des phases Ù vide (par le code d'instructions "NOP" par exemple), dans toutes les cases du diagramme de la fig. 7 affect es Ù la tssche 0. Of course the device of FIG. 6 also makes it possible to execute four active tasks without empty phases, like that of FIG. 5. On the other hand, in the presence of only one active task (task 1 for example, the task manager G must insert empty phases (by the instruction code "NOP" for example), in all the boxes of the diagram in Fig. 7 assigned to task 0.

On notera que, en pr sence de deux tssches actives, l'instruction pr c dent un branchement doit fournir la variable bool enne F1 ou F0, r sultant du calcul d'une condition provenant, par exemple, d'une comparaison, sans attendre la fin de son ex cution. A la fig. 7, la variable bool enne F1 est calcul e par une instruction de la tssche 1 dans l' tage 2 lors de la premi re phase et la fl che indique qu'elle est directement utilis e par l'instruction suivante de la tssche 1, qui est une instruction de branchement, lors de la deuxi me phase dans l' tage 1. C'est le gestionnaire de tssches qui, s'il n'y a que deux tssches actives, aiguille la valeur de cette variable bool enne F1, par le multiplexeur MUX 2, vers l'ensemble des compteurs de programme. Note that, in the presence of two active tasks, the instruction before a connection must provide the boolean variable F1 or F0, resulting from the calculation of a condition coming, for example, from a comparison, without waiting the end of its execution. In fig. 7, the variable bool enne F1 is calculated by an instruction from task 1 in stage 2 during the first phase and the arrow indicates that it is directly used by the following instruction from task 1, which is a branch instruction, during the second phase in stage 1. It is the task manager which, if there are only two active tasks, directs the value of this variable bool enne F1, by the MUX 2 multiplexer, to all the program counters.

Il apparaÖt maintenant que l'invention permet bien d'atteindre les buts fix s, Ù savoir fournir un dispositif de traitement de s quences d'instructions combinant les avantages des traitements "multitssches" et en pipeline, sans en pr senter les inconv nients. On accroÖt ainsi la vitesse d'ex cution des diverses tssches confi es au dispositif par rapport Ù la vitesse observ e dans les dispositifs comparables connus Ù basse consommation d' nergie, tels que celui d crit dans la demande internationale de brevet pr cit e. L'invention fournit en particulier l'architecture d'un dispositif qui permet de ne jamais bloquer un pipeline Ù quatre tages traitant au moins deux tssches actives, moyennant un phasage appropri des instructions. It now appears that the invention does indeed achieve the set goals, namely providing a device for processing instruction sequences combining the advantages of "multitask" and pipeline processing, without presenting the drawbacks. This increases the speed of execution of the various tasks entrusted to the device relative to the speed observed in known comparable devices with low energy consumption, such as that described in the international patent application cited above. The invention provides in particular the architecture of a device which makes it possible never to block a pipeline with four stages processing at least two active tasks, by means of an appropriate phasing of the instructions.

Bien entendu, l'invention n'est pas limit e aux modes de r alisation d crits et repr sent s, qui n'ont t donn s qu'Ù titre d'exemple. Ainsi, l'invention pourrait trouver aussi application dans des dispositifs multitssches non soumis Ù une contrainte de basse consommation d' nergie. Of course, the invention is not limited to the embodiments described and shown, which have been given only by way of example. Thus, the invention could also find application in multitssche devices not subjected to a constraint of low energy consumption.

Claims (13)

1. Dispositif multitssche de traitement de s quences d'instructions, du type qui comprend: - des moyens de stockage de N s quences d'instructions correspondant Ù N tssches diff rentes, - des moyens pour activer une pluralit quelconque desdites tssches, et - des moyens pour entrelacer les ex cutions des instructions de X tssches actives (X </= N) de telle sorte que l'ex cution d'une instruction d'une tssche active suive l'ex cution d'une instruction de la tssche active pr c dente, caract ris en ce qu'il comprend: - des moyens de traitement en pipeline de M phases successives de chacune de plusieurs instructions entrelac es, et - un gestionnaire de tssches (G) sensible Ù des v nements impliquant l'activation desdites tssches pour commander les moyens de traitement de mani re Ù assurer l'ex cution en pipeline des phases successives des instructions entrelac es des tssches actives. 1. Multi-step device for processing instruction sequences, of the type which comprises: means for storing N sequences of instructions corresponding to N different tasks, means for activating any plurality of said tasks, and means for interleaving the executions of the instructions of X active tasks (X </ = N) so that the execution of an instruction of an active task follows the execution of an instruction of the task active previous, characterized in that it includes: means for processing in pipeline M successive phases of each of several interleaved instructions, and - A task manager (G) sensitive to events involving the activation of said tasks to control the processing means so as to ensure the execution in pipeline of the successive phases of the interleaved instructions of the active tasks. 2. Dispositif conforme Ù la revendication 1, caract ris en ce que les moyens de traitement comprennent un microprocesseur quip d'un jeu d'accumulateurs (ACi) et un jeu de compteurs de programme (PCi) associ s en paires (ACi, PCi) dont chacune intervient dans l'ex cution d'une des tssches, le gestionnaire de tssches (G) commandant s lectivement la lecture et l' criture de ces accumulateurs et compteurs. 2. Device according to claim 1, characterized in that the processing means comprise a microprocessor equipped with a set of accumulators (ACi) and a set of program counters (PCi) associated in pairs (ACi, PCi ) each of which is involved in the execution of one of the tasks, the task manager (G) selectively controlling the reading and writing of these accumulators and counters. 3. Dispositif conforme Ù la revendication 1 ou 2, caract ris en ce qu'il comprend des moyens pour ins rer des instructions inop rantes (NOP), lorsque le nombre de tssches actives est inf rieur au nombre M de phases. 3. Device according to claim 1 or 2, characterized in that it comprises means for inserting inoperative instructions (NOP), when the number of active tasks is less than the number M of phases. 4. Dispositif conforme Ù l'une quelconque des revendications 1 et 2, conu̇ pour l'ex cution de quatre tssches actives au maximum, caract ris en ce que les moyens de traitement en pipeline traitent des instructions d compos es en trois phases, de lecture en m moire (ROM) de stockage d'instructions, de r alisation d'une op ration dans une unit arithm tique et logique (ALU), et de rangement du r sultat en m moire simultan ment Ù une incr mentation de compteur de programme ou Ù un chargement d'adresse (ad) de branchement, respectivement. 4. Device according to any one of claims 1 and 2, designed for the execution of a maximum of four active tasks, characterized in that the pipeline processing means process instructions in three phases, reading in memory (ROM) for storing instructions, performing an operation in an arithmetic and logical unit (ALU), and storing the result in memory simultaneously at an increment of counter of program or Ù loading a branch address (ad), respectively. 5. Dispositif conforme Ù la revendication 4, caract ris en ce que les moyens de traitement comprennent deux registres d'instructions (RI 1, RI 2), le contenu d'un registre (RI 1) tant charg dans l'autre registre (RI 2) pendant l'ex cution de la deuxi me phase d'une instruction. 5. Device according to claim 4, characterized in that the processing means comprise two instruction registers (RI 1, RI 2), the content of a register (RI 1) being loaded in the other register ( RI 2) during the execution of the second phase of an instruction. 6. Dispositif conforme Ù l'une quelconque des revendications 1 et 2, conu̇ pour l'ex cution de quatre tssches actives, caract ris en ce que les moyens de traitement et le gestionnaire de tssches (G) commandent l'ex cution d'instructions d compos es en deux phases d'extraction (F) et d'ex cution (E), respectivement. 6. Device according to any one of claims 1 and 2, designed for the execution of four active tasks, characterized in that the processing means and the task manager (G) control the execution of instructions in two phases of extraction (F) and execution (E), respectively. 7. Dispositif conforme Ù la revendication 2, conu̇e pour l'ex cution de quatre tssches actives au maximum par des instructions d compos es en quatre phases, caract ris en ce que les moyens de traitement et le gestionnaire de tssches (G) commandent l'adressage des accumulateurs (ACi), de compteurs de programme (PCi), d'une m moire vive (RAM) associ e au microprocesseur et des moyens de stockage (ROMi) des quatre s quences d'instructions, de mani re Ù assurer l'ex cution d'une tssche active dans un temps constant, quel que soit le nombre de tssches actives. 7. Device according to claim 2, designed for the execution of a maximum of four active tasks by instructions composed in four phases, characterized in that the processing means and the task manager (G) control the addressing of accumulators (ACi), program counters (PCi), random access memory (RAM) associated with the microprocessor and storage means (ROMi) of the four instruction sequences, so as to ensure the execution of an active task in a constant time, regardless of the number of active tasks. 8. Dispositif conforme Ù la revendication 7, caract ris en ce que chaque compteur de programme (PCi) est command par un registre-maÖtre (Mi) lui-mme command par le gestionnaire de tssches (G). 8. Device according to claim 7, characterized in that each program counter (PCi) is controlled by a master register (Mi) itself controlled by the task manager (G). 9. Dispositif conforme Ù l'une quelconque des revendications 1 et 2, caract ris en ce que la suite des M phases d'une instruction est choisie de mani re Ù viter tout blocage du traitement en pipeline quand le nombre de tssches actives est sup rieur ou gal Ù un nombre pr d termin inf rieur au nombre (N) de s quences d'instructions en m moire dans les moyens de stockage. 9. Device according to any one of claims 1 and 2, characterized in that the sequence of M phases of an instruction is chosen so as to avoid any blocking of the processing in pipeline when the number of active tasks is greater greater than or equal to a predetermined number less than the number (N) of instruction sequences stored in memory in the storage means. 10. Dispositif conforme Ù la revendication 8, caract ris en ce que N = 4, M = 4 et le nombre pr d termin est 2. 10. Device according to claim 8, characterized in that N = 4, M = 4 and the predetermined number is 2. 11. Dispositif conforme Ù l'une quelconque des revendications 1 Ù 10, caract ris en ce que les moyens de stockage comprennent une m moire morte (ROM) unique divis e en N sections contenant autant de s quences d'instructions. 11. Device according to any one of claims 1 to 10, characterized in that the storage means comprise a single dead memory (ROM) divided into N sections containing as many sequences of instructions. 12. Dispositif conforme Ù l'une quelconque des revendications 1 Ù 10, caract ris en ce que les moyens de stockage comprennent N m moires mortes (ROMi) contenant chacune une des N s quences d'instructions. 12. Device according to any one of claims 1 to 10, characterized in that the storage means comprise N dead memories (ROMi) each containing one of the N sequences of instructions. 13. Dispositif conforme Ù l'une quelconque des revendications 1 Ù 12, caract ris en ce que les moyens d'activation d'une pluralit quelconque de tssches comprennent une boucle Ù jeton (B) command e par des v nements. 13. Device according to any one of claims 1 to 12, characterized in that the means for activating any plurality of tasks include a token loop (B) controlled by events.
CH238895A 1994-09-26 1995-08-22 Device multitasking processing instruction sequences. CH690157B5 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9411439A FR2725054B1 (en) 1994-09-26 1994-09-26 MULTI-TASK DEVICE FOR PROCESSING INSTRUCTION SEQUENCES, WITH LOW ENERGY CONSUMPTION

Publications (2)

Publication Number Publication Date
CH690157GA3 true CH690157GA3 (en) 2000-05-31
CH690157B5 CH690157B5 (en) 2000-11-15

Family

ID=9467259

Family Applications (1)

Application Number Title Priority Date Filing Date
CH238895A CH690157B5 (en) 1994-09-26 1995-08-22 Device multitasking processing instruction sequences.

Country Status (2)

Country Link
CH (1) CH690157B5 (en)
FR (1) FR2725054B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101005718B1 (en) * 2003-05-09 2011-01-10 샌드브리지 테크놀로지스, 인코포레이티드 Processor reduction unit for accumulation of multiple operands with or without saturation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4197579A (en) * 1978-06-06 1980-04-08 Xebec Systems Incorporated Multi-processor for simultaneously executing a plurality of programs in a time-interlaced manner
WO1994015287A2 (en) * 1992-12-23 1994-07-07 Centre Electronique Horloger S.A. Multi-tasking low-power controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4197579A (en) * 1978-06-06 1980-04-08 Xebec Systems Incorporated Multi-processor for simultaneously executing a plurality of programs in a time-interlaced manner
WO1994015287A2 (en) * 1992-12-23 1994-07-07 Centre Electronique Horloger S.A. Multi-tasking low-power controller

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IEEE JOURNAL OF SOLID-STATE CIRCUITS, vol. 29,no. 8, Août 1994 NEW YORK,US,, pages 986-991, PEROTTO ET AL. 'An 8-bit multitask micropower RISC core' … *
IEEE TRANSACTIONS ON COMPUTERS, vol. 40,no. 10, 1 Octobre 1991 pages 1125-1132, MCCRACKIN D C 'ELIMINATING INTERLOCKS IN DEEPLY PIPELINED PROCESSORS BY DELAY ENFORCED MULTISTREAMING' … *

Also Published As

Publication number Publication date
FR2725054A1 (en) 1996-03-29
CH690157B5 (en) 2000-11-15
FR2725054B1 (en) 1997-01-17

Similar Documents

Publication Publication Date Title
CN100428282C (en) Method and apparatus for token triggered multithreading
EP0020202B1 (en) Multiprocessing system for signal treatment
EP1176505A1 (en) Parallel digital signal processor architecture
EP0439855B1 (en) Microcontroller for the fast execution of a large number of operations which are decomposable in sequences of similar operations
EP0030504A1 (en) Device for the synchronization and allocation of processes between several processors in a data processing system
FR2937439A1 (en) METHOD FOR DETERMINISTIC EXECUTION AND SYNCHRONIZATION OF AN INFORMATION PROCESSING SYSTEM COMPRISING MULTIPLE PROCESSING HEADS EXECUTING SYSTEM TASKS
WO2010105889A1 (en) Allocation and monitoring unit
EP1830264A1 (en) Process and device to save and restore a set of microprocessor registers in an interruptible manner
EP0006478A1 (en) Programmable control latch mechanism for a data processing system
EP0684551B1 (en) Electronic circuit and method for use with a coprocessor
JP2011528817A (en) Pipeline processor
EP1868081A1 (en) Processor
FR2809508A1 (en) SYSTEM AND METHOD FOR MANAGING A MULTI-RESOURCE ARCHITECTURE
EP0632395B1 (en) System and method to operate a digital signal processor (DSP)
CH690157GA3 (en) Device multitasking processing instruction sequences.
FR2733612A1 (en) DEVICE FOR COMMISSIONING AN INTEGRATED CIRCUIT
FR2644912A1 (en) PROGRAMMABLE LOGIC CONTROLLER AND METHOD FOR OPERATING IT
US6981109B2 (en) Digital signal processor system having programmable random access memory that executes processing during downloading of a program
GB2381602A (en) Partial decoding in a pipeline processor before fetching an instruction
FR2575563A1 (en) PROCESS FOR OPERATING A MICROCALCULATOR WITH AN IMPROVED INSTRUCTION CYCLE
FR2662281A1 (en) Processor comprising a file of addressable registers as several sets of registers contained in windows
EP2545449A1 (en) Method for configuring an it system, corresponding computer program and it system
EP0709768B1 (en) Apparatus to execute instruction programs
EP0215028A1 (en) Microprogram controller
EP0928002B1 (en) Dual memory for digital signal processor

Legal Events

Date Code Title Description
PL Patent ceased