CH690157GA3 - Dispositif multitâche de traitement de séquences d'instructions. - Google Patents
Dispositif multitâche de traitement de séquences d'instructions.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
Links
- 230000015654 memory Effects 0.000 claims description 38
- 238000000605 extraction Methods 0.000 claims description 9
- 230000003213 activating effect Effects 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 7
- 230000036316 preload Effects 0.000 description 5
- 150000001875 compounds Chemical class 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 210000000056 organ Anatomy 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent 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)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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 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>
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 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.
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.
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).
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.
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.
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.
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>
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.
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.
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.
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.
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>
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>
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 ).
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.
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.
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.
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.
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.
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.
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.
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>
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.
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.
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
PC1 <- F1* (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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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, 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.
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.
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).
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.
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 tssches comprennent une boucle Ù jeton (B) command e par des v nements.
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 |
---|---|
CH690157GA3 true CH690157GA3 (fr) | 2000-05-31 |
CH690157B5 CH690157B5 (fr) | 2000-11-15 |
Family
ID=9467259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CH02388/95A CH690157B5 (fr) | 1994-09-26 | 1995-08-22 | Dispositif multitâche de traitement de séquences d'instructions. |
Country Status (2)
Country | Link |
---|---|
CH (1) | CH690157B5 (fr) |
FR (1) | FR2725054B1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006529043A (ja) * | 2003-05-09 | 2006-12-28 | サンドブリッジ テクノロジーズ インコーポレーテッド | 飽和あり、または飽和なしで、オペランドの積和を実行するプロセッサ簡約ユニット |
Citations (2)
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 |
-
1994
- 1994-09-26 FR FR9411439A patent/FR2725054B1/fr not_active Expired - Fee Related
-
1995
- 1995-08-22 CH CH02388/95A patent/CH690157B5/fr not_active IP Right Cessation
Patent Citations (2)
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)
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 |
---|---|
CH690157B5 (fr) | 2000-11-15 |
FR2725054A1 (fr) | 1996-03-29 |
FR2725054B1 (fr) | 1997-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100428282C (zh) | 令牌触发多线程操作的方法和装置 | |
EP0030504B1 (fr) | Dispositif de synchronisation et d'affectation de processus entre plusieurs processeurs dans un système de traitement de l'information | |
EP0020202B1 (fr) | Système multiprocesseur de traitement de signal | |
EP1176505A1 (fr) | Processeur DSP à architecture parallèle | |
EP0439855B1 (fr) | MicrocontrÔleur pour l'exécution rapide d'un grand nombre d'opérations décomposables en séquences d'opérations de même nature | |
FR2937439A1 (fr) | Procede d'execution deterministe et de synchronisation d'un systeme de traitement de l'information comportant plusieurs coeurs de traitement executant des taches systemes. | |
WO2010105889A1 (fr) | Unité d'allocation et de contrôle | |
EP0913765A1 (fr) | Processeur avec commande d'instructions répétables ou multicycles | |
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'utilisation d'un coprocesseur | |
EP1868081A1 (fr) | Processeur | |
EP0632395B1 (fr) | Procédé pour exploiter un processeur numérique de traitement du signal et dispositif mettant en oeuvre le procédé | |
CH690157GA3 (fr) | Dispositif multitâche de traitement de séquences d'instructions. | |
FR2733612A1 (fr) | Dispositif de mise en service d'un circuit integre | |
JP3702184B2 (ja) | データ処理装置 | |
FR2575563A1 (fr) | Procede d'exploitation d'un microcalculateur a cycle d'instruction perfectionne | |
JP2003233509A (ja) | デジタル信号処理装置 | |
FR2662281A1 (fr) | Processeur comprenant un fichier de registres adressables en plusieurs jeux de registres contenus dans des fenetres. | |
WO2011110790A1 (fr) | Procédé de configuration d'un système informatique, programme d'ordinateur et système informatique correspondants | |
EP0742515B1 (fr) | Procédé de mise en service d'un circuit intégré | |
EP0709768B1 (fr) | Dispositif d'exécution d'un programme d'instructions | |
EP0215028A1 (fr) | Controleur de microprogrammes | |
EP0928002B1 (fr) | Double mémoire pour processeur de signal numérique | |
CA2228703A1 (fr) | Systeme d'organisation et procede de sequencement des circuits d'un microprocesseur | |
FR2607607A1 (fr) | Machine informatique destinee a l'execution de traitements symboliques pour les applications de l'intelligence artificielle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PL | Patent ceased |