1

C'est quoi le pipeline dont on entend souvent parler ???
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

2

Ben le pipeline, c la separation des taches d'executions et leur execution en paralele :
ex :

A.Lecture instruction
B.Decodage instruction
C.Execution instruction
D.Chargement resultat.

Et lors de l'execution on fait au cycle :
1. A(I1)
2. A(I2) + B(I1)
3. A(I3) + B(I2) + C(I1)
4. A(I4) + B(I3) + C(I2) + D(I1)

En tout faut 4 cycles pour faire l'instruction 1, masi seuleement 4 + 3 = 7 cycles pour faire 4 instructions smile
Voila la pipeline.
Le 68000 charge l'instruction pendant le decodage et l'execution de l'instructuon precedente.

3

Ah c interessant ca smile
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

4

Ben c simple le pipeline
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

5

tiens est-ce un tigre ?
mais nan c pas un tigre ca !
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

6

nan, on dirait une vache
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

7

J'ai une routine dont le cumul des temps d'exécution est de 1200 cycles d'horloge. Pour trouver sa "fréquence d'exécution", je fais 12 millions / 1200.
Je trouve 10000 exécutions par seconde... En réalité c'est faux.

Comment faire alors pour trouver le temps d'exécution d'un ensemble d'instructions ??

Pourquoi cette opération s'appelle "pipeline" ?
[edit]Edité par Thibaut le 22-06-2001 à 15:32:23[/edit]
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

8

smeet-meuh va t'expliquer...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

9

désolé, smeet, j'ai pas pu résistergrin
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

10

Tu bosseras ca un jour. Moi c'etait mon sujet de partiels.

11

Je ne suit pas une filière d'info sad

Tu as du temps à revendre je crois (topic sur le cassoulet), alors garde-en un peu pour répondre à ma question, merci smile
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

12

oui mais pour ton problème Thibaut, c'est simple :
on a un 68000 a 10 ou 12 Mhz, et bien c'est juste la fréquence d'oscillation a l'entrée du microprocesseur, et comme je fais des études d'électronique, je suis bien placé pour savoir que (je pense en tous cas) dans les processeurs motorola, la fréquence principale est divisée par 4 !!!
Soit 2.5Mhz ou 3 Mhz, et la tu as plus 10000 mais 2500, et je te rapelle que du ne dois pas avoir d'interuptions activées, sinon ça fausse tout !
Je pense que cette fréquence divisée par 4 sert au pipeline de 68000, mais ça j'en sais rien du tout
:D

13

j'ai dis une betise :
"Je pense que cette fréquence multipliée par 4 sert au pipeline de 68000, mais ça j'en sais rien du tout
:D

14

Meuh non sad
Je ne vois pas pourquoi on diviserait la fréquence par 4 !
Parceque sinon ça ne sert à rien le parallélisme : on traite 4 instructions en même temps mais à une fréquance 4 fois moins imoprtante... On ne gagne rien, où est l'intérêt ???

Merci beaucoup freka de ton petit cours wink
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

15

<< ben ecoute, c'est simple que ca ne fasse pas le compte exact!!! il y a toutes les interruptions qui sont executées, donc ca prend du temps processeur, et tu n'arrives pas au meme resultat >>

Apparamment je suis pris pour un con ici, mais bon ça ne me pose pas de problème, et puis c'est un peu vrai je crois sad

Je sais parfaitement que les interruptions faussent le résultat...
Ce que je voulais dire, c'est que si 4 instructions de 4 cycles chacune sont exécutées à la suite, le tout va prendre 7 c.h., d'après PpHd, alors que par calcul, moi, j'étais tenté d'additionner les temps, et je trouvais 4+4+4+4= 16 c.h...
Ainsi, j'introduisais la question : "Comment faire alors pour trouver le temps d'exécution d'un ensemble d'instructions ??"
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

16

grin
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

17

je ne délire pas !
j'ai sous les yeux un document (vieux de 15 ans) sur le 68000 qui précise bien que l'on divise la fréquence de travail par 4!
NON JE DELIRE PAS !
et j'en suis moi même étonné
wink
:D

18

Mais quel est l'intérêt alors ?????
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

19

non, la fréquence de travail n'est pas divisée, (y a pas un diviseur 4 sur l'entrée d'horloge du 68000), mais les cycles bus sont basés sur 4 périodes d'horloges (en gros le débit du bus est de H/4 Mo/s si H est en MHz)
C'est parce que chaque top d'horloge sert à quelque chose (sauf le 4ème roll, enfin il sert en interne mais le bus est inactif sur celui-là, dans l'Atari 520 ST par exemple, le controlleur video utilisait le 4ème top d'horloge pour accéder à la RAM pendant que le CPU ne l'utilisait pas)

Rectification : le 68000 n'a PAS de pipeline
C'est le 68010 qui en a un de 3 mots de long (pour accélérer certaines boucles)

20

thibaut: le principal interet et de pouvoir commencer à traiter des instructions en avance: c'est à dire alors que la precedante est encore en train d'etre traitée... Voilà un exemple simpliste (mais assez clair j'esperesmile
t=1: lecture instruction 1
t=2: decodage instruction 1 lecture instruction 2

t=3: execution instruction 1 decodage instruction 2
t=4: chargement resultat 1 execution instruction 2

t=5: chargement resultat 2 lecture instruction 3

...

Par contre, cela ne prend tout son interet que si le code est prevu pour en prendre compte: par exemple si on utilise plein de saut conditionels, on ne peu pas savoir à l"'avance" quelle sera la prochaine instruction: par exemple si on a:
tst.w d0
bne _blabla
move.w #10,d0
on ne pourra pas savoir avant d'avoir executé le tst si la prochaine instruction sera bne... ou bien move...
La programmation est un art... Ne prétendons pas en être des virtuoses mais tout au plus des adeptes...
ASM Rulez!!

21

mmu_man sera toujours aussi génial. Ecrit un bouquin mon gars ! Tu es trop fort smile
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

22

erf, mmu_man, arréte de répondre avant moi stp smile
Et il me semble aussi que le 68000@8MHz dévellope 1,2 Mips (Officiel de motorola).
Alors a 20Mhz, si le matos suit, vous avez environ 3Mips.

Euh, mmu_man, me semble aussi que le pipeline n'a été introduit dans les motorola qu'a partir du 68030 ou 040, je sais pu, mais pas à partir du 010. Aurai tu confondu cache et pipeline ?
NBox6 - The DynaStat Nolrd Six
If U're silly dont think, it'll kill you !
Just go with the wind, you'll be better.
But be aware, don't cross road or holes.

23

Les mecs, je vais vous dire d'où on tire e savoir:

DES ECRIT bande de louf !!!!
Si vous lisez pas intelligement des truc intelligent, vous serez tjs au meme level !

Et surtout, vous faite pas chier vek les pipelines, c'est des truc top ouf à calculer !!!
NBox6 - The DynaStat Nolrd Six
If U're silly dont think, it'll kill you !
Just go with the wind, you'll be better.
But be aware, don't cross road or holes.

24

>Freka: Mon dieu!!! pphd! ce n'est pas leur execution parallele, ca c'est les superscalaire.
J'ai pas raconte de conneries.
Relis ce que j'ai ecrit.
Je sais ce qu'est une pipeline. J'en ai fait une.

>le pipeline est un peu différent, alors comme pphd dans le traitement d'une instruction, il y a plusieurs étapes, or lorsuqe l'instruction est traité, elle passe toutes les etapes, mais comme les instructions sont traités une a une, certaines etapes attendent pour rien, ce qui est une perte de temps, alors le pipeline a été inventé pour permettre au processeur d'éviter de laisser des etapes vides, et les met a la queue leu leu dans les etapes du traitement des instructions.
C pas ca le pipeline.

>En gros a lieu qu'il y ai une instructions qui fasse toutes les etapes puis que le processeur passe a la suivante, le processeur va traiter les informations a la queue leu leu mais en remplissant toutes les etapes d'instructions a la suite.
En gros, il y a 4 etapes dans le pipeline:
la lecture de l'instruction
l'envoie de l'instruction ou il faut pour quelle soit traité
le traitement a proprement dit
et pour finir la dernière etape qui sert a la ranger le resultat
Et chacune des etapes d'une instruction est traite en parallele avec les etapes des autres instructions.

>Maintenant il faut saoivr que dans le pipeline d'un p4 il y a plus de 20 etages, donc ce n'est pas aussi simpliste que ca...
Si ca reste simpliste.
Ca pose probleme lorsqu'on veut optimiser la pipeline. La ca devient Zarb.

>en ce qui concerne le superscalaire, il faut savoir que cetaines instructions peuvent etre traitées indépendemment, ainsi les superscalaires ont ete créés pour traiter a la fois plusieurs instructions pour aller plus vite
Voui monsieur.
Et meme qu'il y en a qui font 32 instructions / cycle.

Bref, le pipeline c decoupe une instruction en etapes succesives. Puis tu en prends plusieurs, et tu executes toutes ces etapes en paraleles au maixmun en respectant leur ordre. Bref, tu arrives a faire 1 instruction/cycle et a augmenter la frequence de fonctionnement.

25

euh, oui effectivement le 68010 a 3 mots de 'cache'... qui ne sert que pour les boucles qui tiennent dedans.

c.f. http://e-www.motorola.com/brdata/PDFDB/MICROPROCESSORS/32_BIT/68K-COLDFIRE/M680X0/MC68030UM.pdf page 545.

pour le pipeline je crois que ça date du 68040.
mea culpa roll

NSPIRIT, désolé de répondre avant, promis je le fais plus grin

26

Pollux: non, ça ne <<rajoute>> pas 2 cycles à chaque saut:
1)Ca "economise" des cycles sur les instructions: dans le pire des cas on obtient le meme nombre de cycle que le meme proceseur non muni d'un pipeline.
2)Lors d'un saut, l'instruction suivante est quand meme traitée dans le pipeline (le decodage tout du moins), mais celui-ci est vidé si cette instruction n'était pas à traiter.
Donc si on veut un maximum d'efficacité, il faut faire en sorte qu'apres notre test (dans une boucle par exemple) soit immediatement suivi de l'instruction qui sera le plus souvent executée afin d'eviter un reset du pipeline.
3)Quand on à affaire à un saut inconditionnel: le probleme ne se pose pas: on sait quelle sera la prochaine instruction.
La programmation est un art... Ne prétendons pas en être des virtuoses mais tout au plus des adeptes...
ASM Rulez!!

27

Bon, le pipeline ne change rien au nombres de cyles, simplement ça permet de trainer les instructions à la chaine, sans devoir attendre que l'instruction ait été "executé" pour en remettre une autre. Par contre, si une instruction doit rester longtemps, genre une division, le pipeline change pas mal de choses, car l'instruction suivante peut donc commencer alors qu'il y a encore pas mal de cycles à effetuer pour terminer la premiere instruction.
Donc ça fait gagner du temps lorsque les instructions mangent du cycle et qu'il y a bcp d'étages...
C'est moi.

28

oui, mais dans le cas d'un saut conditionel, tu est obligé d'executer l'instruction pour connaitre la suivante à executer... les unités de predictions ne servent pas beaucoup :/
La programmation est un art... Ne prétendons pas en être des virtuoses mais tout au plus des adeptes...
ASM Rulez!!

29

thibault >
http://florian.clavert.free.fr/timing.txt
[edit]Edité par segaman le 03-07-2001 à 20:31:09[/edit]

30

au passage, vivement les CPU quantiques paralelles, en un cycle d'horloge ça execute un programme entier. grin