logo

Crowdly

Browser

Add to Chrome

CA & OS (Computer Architecture) - EFREI - Fall 2026

Looking for CA & OS (Computer Architecture) - EFREI - Fall 2026 test answers and solutions? Browse our comprehensive collection of verified answers for CA & OS (Computer Architecture) - EFREI - Fall 2026 at moodle.lab.ii.agh.edu.pl.

Get instant access to accurate answers and detailed explanations for your course questions. Our community-driven platform helps students succeed!

Calculez l'accélération par rapport à l'exécution du programme sur le processeur séquencé.

accélération = CPIseq / CPIpip

Quelle est la valeur d'accélération ?

View this question
danger brut

L'aléa RAW est l'un des problèmes les plus courants liés à l'exécution pipelinée et parallèle des instructions par le processeur. Ce type d'aléa survient lorsqu'une instruction ultérieure (j) requiert le résultat d'une instruction précédente (i) pour s'exécuter, mais que l'exécution de cette dernière (i) n'est pas encore terminée (fin de la phase WB du cycle d'instruction en MIPS). Si l'exécution du programme n'est pas interrompue, il se peut que l'instruction ultérieure (j) effectue des opérations sur un argument incorrect : la valeur correcte de l'argument de l'instruction (j) n'est pas disponible avant la fin de l'exécution de l'instruction précédente (i). Ce type d'aléa peut être observé lors de l'exécution du programme d'exemple :

;MIPS64 RAW hazard example

    .data

A:    .word 2

B:    .word 3

C:    .word 7

D:    .word 0

    

    .text

main:    ld r1,A(r0)

    ld r2,B(r0)

    dadd r3,r1,r2

    sw r3,C(r0)

    lw r4,C(r0)

    dadd r5,r1,r4

    sw r5,D(r0)

    halt

Analysez ce programme et calculez le nombre de cycles d'horloge nécessaires à son exécution sur le processeur séquentiel. Supposons que l'exécution de chaque instruction prenne 5 cycles d'horloge.

Combien de cycles d'horloge sont nécessaires pour exécuter ce programme sur un processeur séquentiel ?

View this question
Observation de l'exécution en pipeline d'un programme simple

Dans cette section, vous tenterez d'évaluer l'impact de l'exécution en pipeline du programme sur ses performances.

Préparez et chargez le programme de test (copiez et collez le code suivant) :

      .data

A:    .word 10

B:    .word 8

C:    .word 0

    

      .text

main:    ld r4,A(r0)

         ld r5,B(r0)

         dadd r3,r4,r5

         sd r3,C(r0)

         halt

Dans le menu « Configurer », cochez et activez l’option « Activer le transfert ».

Exécutez le programme en mode d'instruction monocycle . Observez la fenêtre du pipeline et le diagramme du cycle d'horloge.

Quel est le nombre de cycles d'horloge ( n ) utilisés pour l'exécution de ce programme qui apparaît dans la fenêtre « Statistiques » ?

0%
100%
0%
0%
View this question
Risque de guerre

Ce type d'aléa peut survenir lorsque l'instruction suivante (j) stocke le résultat de son exécution dans la ressource (registre ou emplacement mémoire) utilisée comme argument par l'instruction précédente (i). Le problème apparaît lorsque l'exécution de l'instruction précédente (i) est retardée et que l'instruction suivante (j) se termine avant que l'instruction précédente (i) puisse recevoir son argument. Cela peut entraîner un résultat erroné pour l'instruction (i). La méthode classique pour supprimer cette dépendance consiste à retarder l'exécution de l'instruction (j) jusqu'à la fin de l'exécution de l'instruction (i). 

Pour illustrer ce problème, le code suivant sera utilisé :

;WinMIPS64 WAR hazard example

    .data

A:    .double 10.0

B:    .double 5.0

C:    .double 3.5

D:    .double 1.0

E:    .double 3.14.0

res:    .double 0.0

    

    .text

main:    l.d f2,A(r0)

    l.d f3,B(r0)

    l.d f4,C(r0)

    l.d f5,D(r0)

    l.d f6,E(r0)

    

    add.d f2,f2,f3

    sub.d f2,f2,f4

    mul.d f4,f5,f6

    

    s.d f2,res(r0)

    halt

Activez le mécanisme de transfert de données et exécutez le programme d'exemple.

Analysez le diagramme du cycle d'horloge et identifiez l'instruction provoquant le blocage WAR .  

Marquez l'instruction qui provoque le blocage de WAR.

0%
0%
0%
0%
0%
View this question

Analysez le programme et essayez d'évaluer la valeur de res si l'exécution de l'instruction qui provoque le blocage WAR a été poursuivie sans attendre la fin de l'exécution de l'instruction précédente.

Valeur de ressource « incorrecte » calculée :

View this question

Analysez le programme et essayez d'évaluer la valeur de res si l'exécution de l'instruction qui provoque le blocage WAW a été poursuivie sans attendre la fin de l'exécution de l'instruction précédente.

Valeur de ressource « incorrecte » calculée :

View this question
W-A-W hazard

This type of hazard may occur when two adjacent instructions (i) and (j) save the result of their execution to the same resource (register, memory cell) and the time of the execution of the earlier instruction (i) is longer than the time of the execution instruction (j). It may cause an erroneous result of executing this sequence of instructions to be written into the resource. The typical way to remove such a dependency is to delay the completion of the execution instruction (j) until the execution of the instruction (i) is completed. 

To illustrate this problem, the following code will be used:

;WinMIPS64 WAW hazard example

    .data

A:    .double 15.0

B:    .double 5.0

C:    .double 4.4

D:    .double 1.0

E:    .double 3.14.0

res:    .double 0.0

    

    .text

main:    l.d f2,A(r0)

    l.d f3,B(r0)

    l.d f4,C(r0)

    l.d f5,D(r0)

    l.d f6,E(r0)

    nop

    mul.d f6,f2,f4

    sub.d f6,f2,f3

    add.d f3,f6,f4

    s.d f3,res(r0)

    halt

Note très importante ! Avant d’exécuter ce programme, assurez-vous que le mécanisme de transfert de données est désactivé . Si le transfert de données est activé, le matériel MIPS ne peut pas détecter, signaler et prévenir les risques liés aux courants d’arrêt automatiques (WAW). 

Exécutez le programme d'exemple. Analysez le diagramme du cycle d'horloge et trouvez l'instruction qui provoque le blocage WAW.

Indiquez l'instruction qui a causé le risque de WAW.

0%
0%
0%
100%
0%
View this question

Une fois le programme exécuté, vérifiez la valeur attribuée à la variable res . (Cette valeur se trouve dans la fenêtre Données du simulateur MIPS).

Quelle est la valeur stockée dans la variable res à la fin de l'exécution du programme ?

View this question

Expliquez pourquoi l'exécution de l'instruction indiquée dans la réponse à la question précédente a dû être suspendue.

View this question

Calculez le gain de vitesse par rapport à l'exécution en pipeline du programme avec le mécanisme DF désactivé.

speedupDF = CPIpip / CPIpipDF

Quelle est la valeur d'accélération ?

View this question

Want instant access to all verified answers on moodle.lab.ii.agh.edu.pl?

Get Unlimited Answers To Exam Questions - Install Crowdly Extension Now!

Browser

Add to Chrome