Πίσω

Δραστηριότητα 3

   Έστω ότι έχουμε τις ακόλουθες εναλλακτικές λύσεις για τις εντολές διακλάδωσης με συνθήκη:
ΚΜΕΑ : ένας κώδικας συνθήκης ορίζεται από εντολή σύγκρισης και ακολουθείται από μία διακλάδωση η οποία ελέγχει τον κώδικα συνθήκης.
ΚΜΕΒ : στην διακλάδωση περιέχεται μία σύγκριση.
Και στις δύο ΚΜΕ, η εντολή διακλάδωσης με συνθήκη διαρκεί δύο κύκλους ρολογιού και όλες οι άλλες εντολές διαρκούν ένα κύκλο ρολογιού. Στην πρώτη ΚΜΕ το 20% των εντολών που εκτελούνται είναι συγκρίσεις. Επειδή η πρώτη ΚΜΕ δεν περιέχει τη σύγκριση μέσα στη διακλάδωση, υποθέτουμε ότι η διάρκεια του κύκλου ρολογιού της είναι 1.25 φορές πιο γρήγορη από αυτή της δεύτερης ΚΜΕ.
α) Να βρείτε ποια από τις δύο ΚΜΕ είναι πιο γρήγορη.
β) Ποια από τις δύο ΚΜΕ είναι πιο γρήγορη στην περίπτωση που η διάρκεια του κύκλου ρολογιού της είναι 1.1 φορές πιο γρήγορη από αυτή της δεύτερης ΚΜΕ;


Απάντηση δραστηριότητας 3

   α) Εφόσον έχουμε αγνοήσει τα θέματα που προκύπτουν από το σύστημα μπορούμε να χρησιμοποιήσουμε την εξίσωση απόδοσης της ΚΜΕ. 'Έτσι έχουμε ότι:

CPIΑ=0,20*2+0,80*1=1,2

Αφού 20%των διακλαδώσεων χρειάζονται 2 κύκλους ρολογιού και οι υπόλοιπες εντολές χρειάζονται 1 κύκλο ρολογιού. Η απόδοση της ΚΜΕΑ είναι:

Χρόνος ΚΜΕΑ= πλήθος εντολών *1,2 *κύκλος ρολογιούΑ

Ακόμα ισχύει ότι κύκλος ρολογιούΒ = 1,25 * κύκλος ρολογιούΑ αφού η πρώτη ΚΜΕ έχει συχνότητα ρολογιού η οποία είναι 1,25 φορές μεγαλύτερη. Στην ΚΜΕΒ δεν εκτελούνται συγκρίσεις έτσι 20% / 80% ή 25% των εντολών είναι τώρα διακλαδώσεις, και χρειάζονται 2 κύκλους ρολογιού ενώ το υπόλοιπο 75% των εντολών χρειάζονται από έναν κύκλο ρολογιού. 'Ετσι:

CPIΒ=0,25*2+0,75*1=1,25

Επειδή η ΚΜΕΒ δεν εκτελεί συγκρίσεις πλήθος εντολώνΒ= πλήθος εντολώνΑ * 0.8 Επομένως η απόδοση της ΚΜΕΒ είναι:

Χρόνος ΚΜΕΒ = πλήθος εντολών Β * CPIΒ* κύκλος ρολογιού Β
                        =0,8* πλήθος εντολών Α * 1,25 *(1,25 *κύκλος ρολογιού Α )
                        =1,25 * πλήθος εντολών Α * κύκλος ρολογιού Α
Κάτω από αυτές τις υποθέσεις η ΚΜΕ Α , με πιο σύντομο κύκλο ρολογιού ,είναι πιο γρήγορη από την ΚΜΕ Β ,η οποία εκτελεί λιγότερες εντολές.

β) Εάν η ΚΜΕ Α ήταν μόνο 1,1 φορές πιο γρήγορη ,τότε:

κύκλος ρολογιούΒ=1,10 * κύκλος ρολογιού Α
και η απόδοση της ΚΜΕ Β είναι

Χρόνος ΚΜΕ Β = πλήθος εντολών Β * CPI Β * κύκλος ρολογιού Β
                        =0,8* πλήθος εντολών Α * 1,25 *(1,10 *κύκλος ρολογιού Α )
                        =1,10 * πλήθος εντολών Α * κύκλος ρολογιού Α
Με αυτή την βελτίωση στην ΚΜΕ Β ,η οποία εκτελεί λιγότερες εντολές τώρα είναι πιο γρήγορη.