C'est quoi le pipeline dont on entend souvent parler ???

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.
tiens est-ce un tigre ?
mais nan c pas un tigre ca !
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]

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.
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
PpHd Le 06/07/2001 à 22:40 Tu bosseras ca un jour. Moi c'etait mon sujet de partiels.
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
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
Mais quel est l'intérêt alors ?????

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.
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.
PpHd Le 06/07/2001 à 22:40 >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.
zewoo Le 06/07/2001 à 22:40 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!!
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...
zewoo Le 06/07/2001 à 22:40 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!!