FR2725054A1 - Dispositif multitache de traitement de sequences d'instructions, a basse consommation d'energie - Google Patents

Dispositif multitache de traitement de sequences d'instructions, a basse consommation d'energie Download PDF

Info

Publication number
FR2725054A1
FR2725054A1 FR9411439A FR9411439A FR2725054A1 FR 2725054 A1 FR2725054 A1 FR 2725054A1 FR 9411439 A FR9411439 A FR 9411439A FR 9411439 A FR9411439 A FR 9411439A FR 2725054 A1 FR2725054 A1 FR 2725054A1
Authority
FR
France
Prior art keywords
sep
execution
tasks
instructions
instruction
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
FR9411439A
Other languages
English (en)
Other versions
FR2725054B1 (fr
Inventor
Christian Piguet
Jean Felix Perotto
Pierre Marchal
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.)
Centre Suisse dElectronique et Microtechnique SA CSEM
Original Assignee
Centre Suisse dElectronique et Microtechnique SA CSEM
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 Centre Suisse dElectronique et Microtechnique SA CSEM filed Critical Centre Suisse dElectronique et Microtechnique SA CSEM
Priority to FR9411439A priority Critical patent/FR2725054B1/fr
Priority to CH02388/95A priority patent/CH690157B5/fr
Publication of FR2725054A1 publication Critical patent/FR2725054A1/fr
Application granted granted Critical
Publication of FR2725054B1 publication Critical patent/FR2725054B1/fr
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/38Concurrent instruction execution, e.g. pipeline or 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 or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

Le dispositif comprend des moyens de stockage (ROM) de N séquences d'instructions correspondant à N tâches différentes, des moyens (B) pour activer une pluralité quelconque desdites tâches, et des moyens pour entrelacer les exécutions des instructions des tâches actives. Il comprend en outre des moyens de traitement en pipeline de M phases successives de chacune de plusieurs instructions entrelacées, et un gestionnaire de tâches (G) sensible à des événements impliquant l'activation desdites tâches pour commander les moyens de traitement de manière à assurer l'exécution en pipeline des phases successives des instructions entrelacées des tâches actives. Application à la microélectronique horlogère.

Description

La présente invention est relative à un dispositif multitâche 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 tâches différentes, des moyens pour activer une pluralité quelconque desdites tâches, des moyens pour exécuter successivement une instruction de chaque tâche active et des moyens pour entrelacer les exécutions des instructions des tâches actives.
On connaît de tels dispositifs multitâches, en particulier de la demande internationale de brevet WO-A- 9415287 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 tâches, un séquenceur multitâches pour commander l'exécution desdites tâches 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 tâches. Ainsi le séquenceur sélectionne l'instruction de la tâche suivante par un autre compteur lorsque l'instruction de la tâche 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 consonation d'énergie du dispositif et on entrelace l'exécution des tâches 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.
Dans un dispositif multitâche 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 même fréquence d'horloge et une même tension d'alimentation, ou permettrait d'exécuter le même nombre d'instructions à une fréquence 4 fois inférieure autorisant une tension d'alimentation réduite.
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 même 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.
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 "multitâches" ou en "pipeline" et qui permette, en particulier, de réduire au minimum le nombre des phases à vide.
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 multitâche de traitement de séquences d'instructions, du type qui comprend des moyens de stockage de N séquences d'instructions correspondant à N tâches différentes, des moyens pour activer une pluralité quelconque desdites tâches, et des moyens pour entrelacer les exécutions des instructions de X tâches actives (X 5 N) de telle sorte que l'exécution d'une instruction d'une tâche active suive l'exécution d'une instruction de la tâche 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 tâches sensible à des événements impliquant l'activation desdites tâches pour commander les moyens de traitement de manière à assurer l'exécution en pipeline des phases successives des instructions entrelacées des tâches actives.
Comme on le verra dans la suite, il résulte de la structure multitâche du dispositif suivant l'invention que les instructions successives qui sont traitées en chevauchement ou en "pipeline" n'appartiennent pas aux mêmes 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.
Suivant un mode de réalisation du dispositif selon l'invention, conçu pour l'exécution de quatre tâches 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.
Suivant une première variante du dispositif selon l'invention, conçue pour l'exécution de quatre tâches actives, les moyens de traitement et le gestionnaire de tâches commandent l'exécution d'instructions décomposées en deux phases, d'extraction et d'exécution respectivement.
Suivant une deuxième variante du dispositif selon l'invention, conçue pour l'exécution de quatre tâches actives au maximum par des instructions décomposées en quatre phases, les moyens de traitement et le gestionnaire de tâches 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 tâche active dans un temps constant, quel que soit le nombre de tâches actives.
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 tâches 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.
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
- la figure 1 représente schématiquement l'architecture d'un mode de réalisation du dispositif suivant l'invention et,
- les figures 3, 5 et 6 représentent schématiquement l'architecture de trois variantes de ce dispositif, et
- les figures 2, 4 et 7 sont des chronogrammes des instructions exécutées par les dispositifs des figures 1, 3 et 6, respectivement.
On se réfère à la figure 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 tâches au maximum, avec un traitement des instructions en "pipeline" à trois étages. Les quatre séquences d'instructions correspondant aux quatre tâches 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 multitâche 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 ACO à 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 tâches G commandé par une boucle B à jeton, qui sélectionne les tâches activées par des événements. Dans ce mode de réalisation, le gestionnaire sélectionne soit trois tâches soit quatre tâches. Dans l'hypothèse ou une ou deux tâches seulement devraient être activées, le gestionnaire pourrait insérer des phases à vide, aux dépens de la vitesse d'exécution du dispositif.
Les événements déclenchant la sélection d'une tâche 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 tâche O, le gestionnaire de tâches pointe en sortie la tâche s = O pour commander l'activation du compteur de programme PCO, de l'accumulateur ACO, etc... Quand le jeton passe à la tâche 1, s = 1, ce qui sélectionne AC1, PC1, etc... Comme le dispositif multitâche suivant l'invention assure aussi un traitement en pipeline des diverses phases des instructions, les différents étages du pipeline traitent des tâches différentes.
Sur la figure 1, il apparaît que le gestionnaire de tâches sélectionne en lecture (L) le compteur PCi (i = 0, 1, 2,3) correspondant à la tâche s, sélectionne en écriture (E) l'accumulateur ACi correspondant à la tache (s-l), sélectionne en lecture l'accumulateur et en écriture le compteur qui correspondent à la tâche 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.
On remarquera encore, dans le dispositif de la figure 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
Figure img00060001
<tb> phase <SEP> phase <SEP> 1 <SEP> RI <SEP> 1 <SEP> # <SEP> <SEP> ROM(PCi)
<tb> phase <SEP> 2 <SEP> ACi <SEP> ALU(ACi,RAM > <SEP> 2 <SEP> 2 <SEP> RI <SEP> 1
<tb> phase <SEP> 3 <SEP> RAM <SEP> # <SEP> <SEP> ACi,PCi <SEP> # <SEP> PCi+1 <SEP> ou <SEP> PCi <SEP> # <SEP> ad
<tb>
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.
Pour quatre tâches actives 1, 2, 3 et 4 et les accumulateurs et compteurs de programme de mêmes indices qui leur sont affectés, le traitement multitâche en pipeline à trois étages des quatre séquences d'instructions correspondantes se développe dans le temps selon le chronogramme représenté à la figure 2. Sur cette figure, il apparaît que les trois phases d'une même 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 tâche 0
- l'étage 3 du pipeline est occupé par une instruction de la tâche 0.On adresse l'accumulateur ACO 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 tâche 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 tâche 2 en adressant en lecture le compteur de programme PC2.
Autrement dit, la tâche 2 étant traitée dans l'étage 1, on a s = 2 (voir figure 1). La tâche précédente s-l = 1 est dans l'étage 2 et la tâche s-2 = 0 est dans l'étage 3.
Si la tâche 3 était dans l'étage 1 (s = 3), on aurait la tâche 2 dans l'étage 2 (s-l = 2) et la tâche 1 dans l'étage 3 (s-2 = 1).
Il apparaît que la gestion des tâches et du pipeline dans le dispositif suivant l'invention permet de faire en sorte que chaque instruction de chaque tâche soit exécutée tour à tour, chacune n'ayant pas de rapport avec les autres instructions traitées dans le pipeline.
Ainsi, plus généralement, lors de l'exécution de N tâches 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 tâches 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.
On se réfère à la figure 3 du dessin annexé où l'on a représenté schématiquement l'architecture d'une variante du dispositif suivant l'invention, conçu pour exécuter au maximum quatre tâches 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 figure 1, celui de la figure 3 comprend quatre compteurs de programme PCo à
PC3 et quatre accumulateurs ACO à AC3, chaque paire de compteur et d'accumulateur de même indice numérique étant dévolue à l'exécution de l'une des quatre tâches possibles.
Le dispositif comprend aussi un gestionnaire G des tâches s et (s-l) 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 figure 1.
Les deux étages du pipeline, d'extraction F et d'exécution E, exécutent les opérations suivantes
Figure img00080001
<tb> Phase <SEP> 1A <SEP> Extraction <SEP> RI <SEP> t <SEP> ROM <SEP> (PC)
<tb> Phase <SEP> 1B <SEP> PchRom
<tb> Phase <SEP> 2A <SEP> Exécution <SEP> ACi <SEP> c <SEP> ALU(ACi,RAM)
<tb> Phase <SEP> 2B <SEP> RAM <SEP> v <SEP> ACi;;PCi <SEP> c <SEP> PCi+l <SEP> ou <SEP> - <SEP> ad
<tb>
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 tâche 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 tâches et est lue à chaque phase.
On a représenté à la figure 4 le chronogramme des opérations exécutées dans le cas où il y a quatre tâches actives. Dans ce chronogramme 1o,i, par exemple, se lit "instruction 0 de la tâche 1". Il est clair que le traitement en pipeline n'est jamais bloqué (c'est-à-dire encombré de phases à vide) dès que deux tâches au moins sont activées. A cette condition, la vitesse d'exécution de ces tâches est optimale. S'il n'y a qu'une seule tâche active, le gestionnaire peut insérer une tâche à 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 "NOS" 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.
On se réfère maintenant à la figure 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 tâches (N = 4) sont constitués par N mémoires ROM 0 à ROM 3 en parallèle, affectées chacune aux instructions d'une des tâches. 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 (figures 1 et 3) ou les mémoires ROM (figure 5) et le microprocesseur.
Le dispositif de la figure 5 comprend des moyens de précharge des ROMi commandés par des signaux de précharge
PRi (i = 0,1,2,3). I1 se distingue encore du dispositif de la figure 1 en ce qu'il comprend quatre registres-maîtres Ni associés chacun à un des compteurs de programme PCi. Le gestionnaire de tâches 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 figure 5 comprend deux registres d'instruction RI 1 et RI 2 et un microprocesseur conforme à celui du dispositif de la figure 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 tâche et adressées plus lentement.
Le dispositif de la figure 5 est conçu pour exécuter jusqu'à quatre tâches, chaque instruction se décomposant en quatre phases 1 à 4, pour être exécutée comme suit dans un pipeline à quatre étages
Figure img00100001
<tb> phase <SEP> 0 <SEP> Précharge <SEP> ROMi(PRi <SEP> actif)
<tb> phase <SEP> 1 <SEP> RI <SEP> 1 <SEP> # <SEP> ROMi(PCi) <SEP>
<tb> phase <SEP> 2 <SEP> ACi <SEP> # <SEP> ALU(ACi,PAM), <SEP> Mi <SEP> # <SEP> (Pci <SEP> + <SEP> 1) <SEP> ou <SEP> ad, <SEP> RT <SEP> 2 <SEP> # <SEP> RI <SEP> 1 <SEP>
<tb> phase <SEP> 3 <SEP> RAM <SEP> # <SEP> Aci, <SEP> PCi <SEP> # <SEP> Mi, <SEP> précharge <SEP> ROMi
<tb>
Pour l'exécution des instructions, le gestionnaire de tâches G donne toujours la main cycliquement aux quatre tâches, même si une ou plusieurs d'entre elles sont inactives, auquel cas, il y aura interposition de phases à vide. Avec quatre tâches 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 tâche 0 dans l'étage 3
Figure img00100002
<tb> Etage <SEP> 0 <SEP> Pré <SEP> charge <SEP> ROM <SEP> 3 <SEP> tâche <SEP> 3
<tb> Etage <SEP> 1 <SEP> RI <SEP> 1 <SEP> v <SEP> <SEP> ROM <SEP> 2(PC2) <SEP> tâche <SEP> 2
<tb> Etage <SEP> 2 <SEP> AC1 <SEP> # <SEP> <SEP> ALU(AC1,RAM) <SEP>
<tb> <SEP> M1 <SEP> # <SEP> (PC1+1) <SEP> ou <SEP> ad
<tb> <SEP> RI <SEP> 2 <SEP> # <SEP> RI <SEP> 1
<tb> Etage <SEP> 3 <SEP> RAM <SEP> # <SEP> AC0 <SEP> tâche <SEP> 0
<tb> <SEP> PC0 <SEP> # <SEP> M0
<tb> <SEP> Précharge <SEP> ROM <SEP> 0
<tb>
Ainsi dans cet étage il y a sélection en lecture de ACO pour le chargement de la RAM, elle-même adressée évidemment en écriture, sélection en lecture du registre n0 maître de PC0 pour le chargement de ce dernier et précharge de ROM 0 (le signal PRO est activé).
L'étage 2 est alors occupé par une instruction de la tâche 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
M1, registre-maître de PC1, en écriture pour le chargement de la nouvelle adresse.
L'étage 1 est occupé par une instruction de la tâche 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.
L'étage 0 est occupé par une instruction de la tâche 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 multitâches et pipeline exécuté par le dispositif selon l'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 Roui, compteurs
PCi, registres Mi.
Il apparaît alors que la durée d'exécution d'une tâche dans le dispositif de la figure 5 est constante, quel que soit le nombre de tâches actives. Il s'ensuit que si une seule tâche est activée, le traitement en pipeline des instructions ne permet pas de réduire la durée d'exécution de cette tâche. Par contre, l'activation soudaine d'autres tâches ne ralentit pas l'exécution de la tâche en cours. Le concepteur optimisera évidemment le rendement du dispositif en programmant à chaque instant le maximum de tâches actives.
On se réfère maintenant à la figure 6 qui représente une troisième variante du dispositif suivant l'invention, conçue pour faire en sorte que le traitement en pipeline ne soit jamais bloqué par des phases à vide, même lorsque le nombre de tâches actives est inférieur au nombre M d'étages du pipeline. On retrouve dans le dispositif de la figure 6 les différents organes de celui de la figure 5, à l'exception des registres-maîtres Mi des compteurs PCi. Sur le plan matériel, le dispositif de la figure 6 se distingue encore de celui de la figure 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 tâches (de même 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.
On peut obtenir le résultat énoncé ci-dessus (l'absence de blocage du pipeline), par un traitement en pipeline à quatre étages, avec deux tâches 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 même tâche. Il est alors nécessaire de gérer en conséquence le fonctionnement du pipeline.
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 figure 5
Figure img00120001
<tb> extraction <SEP> RI <SEP> 1 <SEP> e <SEP> <SEP> ROMi <SEP> (PCi)
<tb> décodage <SEP> RI <SEP> 2 <SEP> <SEP> RIRT <SEP> 1; <SEP> PCic <SEP> Fi <SEP> (PCi+1) <SEP> ou <SEP> Fi <SEP> ad,
<tb> <SEP> Prech <SEP> ROMi
<tb> exécution <SEP> 1 <SEP> RI <SEP> 3 <SEP> <SEP> RIRT <SEP> 2;<SEP> Fi,ACi <SEP> c <SEP> ALU <SEP> (ACi,RAM)
<tb> exécution <SEP> 2 <SEP> RAM <SEP> t <SEP> ACi
<tb>
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 tâche 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 O. 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 tâche, 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.
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 figure 7.
Selon ce diagramme, l'exécution de la tâche O ou de la tâche 1 dans le pipeline à quatre étages s'effectue en deux phases successives
- une première phase pendant laquelle une instruction de la tâche 1 (par exemple) s'exécute dans l'étage 2 du pipeline (AC1 , ALU (AC1,RAM)), l'ALU calculant aussi la condition de branchement Fl, alors que l'instruction suivante de la tâche 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 PC1 c Fl (PC1+1) ou F1* ad
Les deux phases du diagramme ci-dessus se répètent cycliquement pendant toute la durée du traitement des deux tâches actives 0 et 1. On constate que le séquencement choisi et le glissement séquentiel des instructions entrelacées des deux tâches dans les trois registres RI 1,
RI 2, RI 3 permet d'éviter toute phase à vide et donc tout blocage du pipeline.
Bien entendu le dispositif de la figure 6 permet aussi d'exécuter quatre tâches actives sans phases à vide, tout comme celui de la figure 5. Par contre, en présence d'une seule tâche active (tâche 1 par exemple), le gestionnaire de tâches G doit insérer des phases à vide (par le code d'instructions NOP" par exemple), dans toutes les cases du diagramme de la figure 7 affectées à la tâche 0.
On notera que, en présence de deux tâches 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 figure 7, la variable booléenne F1 est calculée par une instruction de la tâche 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 tâche 1, qui est une instruction de branchement, lors de la deuxième phase dans l'étage 1. C'est le gestionnaire de tâches qui, s'il n'y a que deux tâches actives, aiguille la valeur de cette variable booléenne F1, par le multiplexeur MUX 2, vers l'ensemble des compteurs de programme.
I1 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 "multitâches" et en pipeline, sans en présenter les inconvénients. On accroît ainsi la vitesse d'exécution des diverses tâches 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 tâches actives, moyennant un phasage approprié des 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 multitâches non soumis à une contrainte de basse consommation d'énergie.

Claims (13)

REVENDICATIONS
1. Dispositif multitâche de traitement de séquences d'instructions, du type qui comprend
- des moyens de stockage de N séquences d'instructions correspondant à N tâches différentes,
- des moyens pour activer une pluralité quelconque desdites tâches, et
- des moyens pour entrelacer les exécutions des instructions de X tâches actives (X S N) de telle sorte que l'exécution d'une instruction d'une tâche active suive l'exécution d'une instruction de la tâche 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 tâches (G) sensible à des événements impliquant l'activation desdites tâches pour commander les moyens de traitement de manière à assurer l'exécution en pipeline des phases successives des instructions entrelacées des tâches actives.
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 tâches, le gestionnaire de tâches (G) commandant sélectivement la lecture et l'écriture de ces accumulateurs et compteurs.
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 tâches actives est inférieur au nombre M de phases.
4. Dispositif conforme à l'une quelconque des revendications 1 et 2, conçu pour l'exécution de quatre tâches 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.
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.
6. Dispositif conforme à l'une quelconque des revendications 1 et 2, conçu pour l'exécution de quatre tâches actives, caractérisé en ce que les moyens de traitement et le gestionnaire de tâches (G) commandent l'exécution d'instructions décomposées en deux phases d'extraction (F) et d'exécution (E), respectivement.
7. Dispositif conforme à la revendication 2, conçue pour l'exécution de quatre tâches 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 tâches (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 tâche active dans un temps constant, quel que soit le nombre de tâches actives.
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-même commandé par le gestionnaire de tâches (G).
9. Dispositif conforme à l'une quelconque des revendications 1 et 2, caractérisé en ce que la suite des X phases d'une instruction est choisie de manière à éviter tout blocage du traitement en pipeline quand le nombre de tâches 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.
10. Dispositif conforme à la revendication 8, caractérisé en ce que N = 4, M = 4 et le nombre prédéterminé est 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.
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.
13. Dispositif conforme à l'une quelconque des revendications 1 à 12, caractérisé en ce que les moyens d'activation d'une pluralité quelconque de tâches comprennent une boucle à jeton (B) commandée par des événements.
FR9411439A 1994-09-26 1994-09-26 Dispositif multitache de traitement de sequences d'instructions, a basse consommation d'energie Expired - Fee Related FR2725054B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR9411439A FR2725054B1 (fr) 1994-09-26 1994-09-26 Dispositif multitache de traitement de sequences d'instructions, a basse consommation d'energie
CH02388/95A CH690157B5 (fr) 1994-09-26 1995-08-22 Dispositif multitâche de traitement de séquences d'instructions.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9411439A FR2725054B1 (fr) 1994-09-26 1994-09-26 Dispositif multitache de traitement de sequences d'instructions, a basse consommation d'energie

Publications (2)

Publication Number Publication Date
FR2725054A1 true FR2725054A1 (fr) 1996-03-29
FR2725054B1 FR2725054B1 (fr) 1997-01-17

Family

ID=9467259

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9411439A Expired - Fee Related FR2725054B1 (fr) 1994-09-26 1994-09-26 Dispositif multitache de traitement de sequences d'instructions, a basse consommation d'energie

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2290525A3 (fr) * 2003-05-09 2011-04-20 Aspen Acquisition Corporation Unité de réduction de processeur permettant d'accumuler de multiples opérandes avec ou sans 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 (fr) * 1992-12-23 1994-07-07 Centre Electronique Horloger S.A. Unite de commande a faible puissance destinee a l'exploitation en multitache

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 (fr) * 1992-12-23 1994-07-07 Centre Electronique Horloger S.A. Unite de commande a faible puissance destinee a l'exploitation en multitache

Non-Patent Citations (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2290525A3 (fr) * 2003-05-09 2011-04-20 Aspen Acquisition Corporation Unité de réduction de processeur permettant d'accumuler de multiples opérandes avec ou sans saturation

Also Published As

Publication number Publication date
CH690157B5 (fr) 2000-11-15
CH690157GA3 (fr) 2000-05-31
FR2725054B1 (fr) 1997-01-17

Similar Documents

Publication Publication Date Title
EP0439855B1 (fr) MicrocontrÔleur pour l&#39;exécution rapide d&#39;un grand nombre d&#39;opérations décomposables en séquences d&#39;opérations de même nature
EP0030504A1 (fr) Dispositif de synchronisation et d&#39;affectation de processus entre plusieurs processeurs dans un système de traitement de l&#39;information
EP0826169A1 (fr) Circuit integre perfectionne et procede d&#39;utilisation d&#39;un tel circuit integre
FR2667171A1 (fr) Support portable a micro-circuit facilement programmable et procede de programmation de ce micro-circuit.
EP1027644B1 (fr) Microprocesseur, notamment pour carte a puce et procede de traitement d&#39;une instruction
EP0913765A1 (fr) Processeur avec commande d&#39;instructions répétables ou multicycles
EP0020202A1 (fr) Système multiprocesseur de traitement de signal
CA2348069A1 (fr) Systeme et methode de gestion d&#39;une architecture multi-ressources
WO2010105889A1 (fr) Unité d&#39;allocation et de contrôle
EP0006478A1 (fr) Dispositif programmable de verrouillage de signaux de commande dans un système de traitement de données
EP0684551B1 (fr) Circuit électronique et méthode pour l&#39;utilisation d&#39;un coprocesseur
EP0171856B1 (fr) Processeur pour le traitement de signal et structure de multitraitement hiérarchisée comportant au moins un tel processeur
FR2708359A1 (fr) Procédé pour exploiter un processeur numérique de signal et dispositif mettant en Óoeuvre le procédé.
FR2725054A1 (fr) Dispositif multitache de traitement de sequences d&#39;instructions, a basse consommation d&#39;energie
WO2006042736A1 (fr) Systeme de processeur parallele reconfigurable, modulaire et hierarchique
FR2656442A1 (fr) Processeur a plusieurs unites microprogrammees avec mecanisme d&#39;execution anticipee des instructions.
FR2662281A1 (fr) Processeur comprenant un fichier de registres adressables en plusieurs jeux de registres contenus dans des fenetres.
FR2980611A1 (fr) Circuit pour planifier le deroulement d&#39;un traitement de donnees
EP0845787B1 (fr) Dispositif de protection après une écriture de page d&#39;une mémoire électriquement programmable
FR2871253A1 (fr) Dispositif de commande ayant des moyens de decodage
EP0557197B1 (fr) Système de partage de temps d&#39;accès à une mémoire partagée entre un processeur et d&#39;autres applications
FR2824154A1 (fr) Procede et dispositif pour generer des mots d&#39;instruction pour la commande d&#39;unites fonctionnelles dans un processeur
FR2864320A1 (fr) Nouvelle architecture de memoire fifo et procede de gestion d&#39;une telle memoire.
EP0842465B1 (fr) Systeme d&#39;organisation et procede de sequencement des circuits d&#39;un microprocesseur
EP0729091B1 (fr) Procédé et dispositif de commande simultanée des états de contrôle des unités d&#39;exécution d&#39;un processeur programmable

Legal Events

Date Code Title Description
ST Notification of lapse