Tetedeiench Head Of God | w_o_moving a écrit a écrit :
quel rapport avec les ecrans??
Un pipeline c'est d'abord un gros tuyau pour transporter du petrole ou du gaz (oleoduc, gazoduc)
L'image a ete reprise en architecture des processeurs :
Ce n'est pas si le proc a une grosse tache, c'est pour chaque instruction que cela fonctionne.
Il faut expliquer en 2 mots le fonctionnement d'un processeur.
Un processeur comme son nom l'indique execute des instructions. Or une instruction prend en general 3 à 5 cycles (ou plus). Un cycle pour decoder l'instruction, un pour faire l'operation, un pour rendre le resultat, etc.
Donc la puissance du processeur (sa capacité à executer N instructions / seconde => IPS) ne va pas etre identique à sa frequence d'horloge. On a beau augmenter la frequence du proc, on gagne pas beaucoup en puissance de calcul.
On a donc chercher à ameliorer l'execution d'une instruction, en essayant d'obtenir 1 instruction / cycle. L'architecture pipeline est née.
En gros le processeur ne pouvait pas executer une 2e instruction tant qu'il n'avait pas fini la 1ere.
L'idée est donc de decouper l'execution d'une instruction en etages (typiquement 5). On commence la 1er instruction par le 1er etage, puis quand celle ci passe dans le 2e etage, on peut en commencer une autre par le 1er etage, et ainsi de suite.
Certes on met tjs le meme temps pour executer une instruction, mais pdt ce laps de temps on en a commencé 4 autres.
Vala je sais pas si c'est bien clair...
En tout cas... je vois pas bien le rapport avec les ecrans
w_o_moving
|
Dans le cas d'un processeur a Pipeline, on ne met pas le meme temps que si la tache se faisait en une fois.
On met du temps a inserer les "buffers" intermediaires, et mettre des valeurs dans un buffer prends du temps.
La meilleure image du pipeline que j'aie est celle ci.
Imagine deux usine de construction de bagnole. -Dans la premiere, tu mets tout ce qu'il faut pour bosser dans une seule machine. La machine bosse 20 heures, et te rends une bagnole toute prete. Maintenant que la machine est libre, elle peux commencer une nouvelle bagnole.
Rendement : 1 Bagnole/20h.
-Dans la seconde, tu as 4 machines independantes, chacune faisant une etape de l'operation.
Tu mets tout ce qu'il faut a la machine #1 pour qu'elle demarre. Elle bosse 5h, et te rends une carosserie. Un employe va ensuite diriger la carrosserie vers la seconde machine (il lui faut une heure).
La seconde machine prendra la carosserie, et y mettra le moteur. Mais pendant ce temps la... ben la premiere machine est libre. Donc tu peux lui faire faire une seconde carosserie.
Elle la fera pendant que la seconde place le moteur sur la premiere carosserie, y a pas de souci.
Ensuite, la seconde machine aura termine, au bout disons de 5h... et attendra que la seconde carosserie arrive (1h a attendre) pour prendre la carosserie et mettre le moteur. La premiere refabriquera une carosserie, et la troisieme prendra la premiere carosserie (qui a aussi mis une heure a lui parvenir) pour mettre l'interieur.
Et la quatrieme, pareil, mettra la peinture et finlisera la bagnole.
Au final, pour faire une bagnole, tu aura mis 20h + 4h de transport soit 24h.
Oui, mais apres, la seconde bagnole arrivera 6h plus tard. Donc 2 bagnoles en 30h. 3 en 36h... etc.
Le rendement est deja bien meilleur que la premiere usine
Apres, il y a des problemes a resoudre : Si une instruction depend d'une autre ( par exemple tu as x = 2 + 3 suivi de x * 3 ... comment executer la seconde alors que la premiere a meme pas termine ?), si un if arrive dans le pipeline ( par exemple si x == 2 alors a sinon b. Comment tu va faire pour enchainer si tu n'as pas le resultat de x==2 ?), et d'autres problemes ( style j'ecris mon x dans les registres et en meme temps je lis le x dans les registres... ca va pas marcher) , mais globalement, t'as saisi le principe la je pense
Mais la premiere est libre, l ---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
|