Architecture microprocesseur

Architecture microprocesseur - Programmation

Marsh Posté le 10-05-2002 à 20:30:30    

salut, je suis en train de bosser sur les datasheets d'un microP, je bloque à un endroit, je sais pas si c'est l'anglais ou mes connaissances techniques qui me bloquent mais une petite aide serait la bienvenue:
 
The FPU, shown in Figure 1, is designed such that single-precision operations require only a single pass,with a latency of three cycles. As instructions are dispatched to the FPU?s reservation station, source operand data can be accessed from the FPRs or from the FPR rename buffers. Results in turn are written to the rename buffers and are made available to subsequent instructions. Instructions pass through the
reservation station in dispatch order.
The FPU contains a single-precision multiply-add array and the floating-point status and control register (FPSCR). The multiply-add array allows the 750 to efficiently implement multiply and multiply-add operations. The FPU is pipelined so that one single- or double-precision instruction can be issued per clock cycle.
 
Tout n'est pas très claire pour moi, nottament les cycles que prennent les différentes opérations
 
merci d'avance,
tout aide est la bienvenue

 

[jfdsdjhfuetppo]--Message édité par tchipy le 10-05-2002 à 20:32:06--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 10-05-2002 à 20:30:30   

Reply

Marsh Posté le 10-05-2002 à 20:41:21    

pour l'anglais technique, tu as dictionary.com : http://www.dictionary.com/cgi-bin/dict.pl?term=latency . tu as la définition standard du mot + souvent la définition technique.
 
disclaimer : je ne connais rien en processeur. pour le temps que prennent les instructions (latency & co), sur un fpu pentium tu as par ex fmul qui prend 3 cycles dont 2 parallélisables si le suivant n'empiète pas sur les variables du précédent.  
 
eg
 
fmul st(0), st(1) ; // 1 cycle
fmul st(2), st(3) ; // 1 cycle + 1 cycle du premier
fmul st(4), st(5) ; // 1 cycle + 1 cycle du premier + 1 cycle du second
restent les deux cycles du dernier + 1 cycle du second (qui s'éxécute en même temps que le premier cycle du dernier), au total 5 cycles.
 
alors que
 
fmul st(0), st(1)
fmul st(0), st(2)
fmul st(0), st(3)
 
comme les fmul dépendent des résultats des instructions précédentes, aucune n'est parallélisable, donc 9 cycles (3, 3, 3).
 
si je suis bien la dernière phrase de ton énoncé, c'est ce qu'il se passe : vu que le fpu est pipeliné (peut éxécuter une instruction en plusieurs étapes), il peut démarrer une instruction par cycle (clock).

Reply

Marsh Posté le 10-05-2002 à 20:44:10    

C'est le principe du pipe-line qui te pose problème en fait :??:  
 
Pour résumer, disons qu'il s'agit de décomposer une opération en plusieurs étapes. Le but, c'est de commencer une opération avant que la précédente soit terminée.
Si on considère qu'il faut 3 cycles pour exécuté une opération, on aura le résultat que 3 cycles après l'avoir demandé (c'est la latence).
Mais, si ca se passe bien, le proc sera capable de sortir un résultat à chaque cycle (donc une efficacité d'une instruction par cycle).
 
On peut prendre pour analogie une chaîne de montage (travail "à la chaine" ).
Imagine un produit qui est fabriqué en 20 étapes successives indépendantes, chacune prenant 1 heure. Chaque heure, il y aura un produit qui sortira de la chaîne. Mais si tu en veux un particulier (vert à pois bleus par exemple), il faudra attendre 20 heures avant qu'il ne soit terminé.

Reply

Marsh Posté le 10-05-2002 à 20:58:51    

merci beaucoup pour vos réponses, bien que le principe du pipeline n'ait aucun secret pour moi  :D , vous m'avez quand même permis de sortir de ma confusion  :jap: .
 
The FPU is pipelined so that one single- or double-precision instruction can be issued per clock cycle
 
j'avais compris que ces opérations duraient 1 cycle et non qu'on pouvait en émettre une par cycle (confusion au niveau du vocabulaire) ce qui est contradictoire avec ce qui est marqué plus tôt (3 cycles de latences)
 
Encore un grand merci à tous, je vais pouvoir me remettre au boulot
 
 :hello:

 

[jfdsdjhfuetppo]--Message édité par tchipy le 10-05-2002 à 20:59:44--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 10-05-2002 à 21:04:23    

si tu veux d'autres exemples, cf l'article de michael abrash et son boulot pour quake 1 - entres autres, une routine de multiplication point * matrice en 34 cycles : http://egor.spb.ru/doc/BookCD/DrDo [...] /9618h.htm

Reply

Marsh Posté le 10-05-2002 à 22:21:33    

voila

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed