[Advcomparch] Απορίες

George Matikas g_matikas at hotmail.com
Thu Apr 3 15:53:46 EEST 2014


Σας ευχαριστώ για την άμεση απάντηση στις απορίες μου!  

Όσον αφορά την 3η απορία μου:

3) Αυτό που εννοώ είναι ότι, πέραν του μεγέθους (2, 2) για τον global
history predictor, δεν χρειαζόμαστε και τον αριθμό των bits που
διευθυνσιοδοτούν τον πίνακα PHT; Γιατί από το μέγεθος (2, 2) αυτό
που συμπεραίνουμε μόνο είναι ότι για κάθε εγγραφή του PHT έχουμε
4 2-bit predictors. Αλλά χωρίς τον αριθμό bit που ανέφερα παραπάνω
δεν γνωρίζουμε πόσες εγγραφές έχει ο PHT συνολικά και οπότε δεν
μπορούμε να συμπεράνουμε αν τα δύο branches “πέφτουν” τελικά
πάνω στην ίδια τετράδα 2-bit predictors του PHT (αν δηλαδή έχουμε
aliasing) ή αν πέφτουν σε διαφορετικές τετράδες.

Ευχαριστώ,
Ματίκας Γεώργιος


On Thursday, 3 April 2014 at 12:48 μ.μ., Konstantinos Nikas wrote:

> Καλημέρα,
>  
> 1) Τα παραδείγματα στα οποία αναφέρεσαι είναι από το βιβλίο (Παράρτημα
> Α5, σχήματα Α33, Α34 στην ελληνική (3η) έκδοση), όπου μπορείς να βρεις
> λίγο παραπάνω λεπτομέρειες.
>  
> Στη διαφάνεια 40 η εντολή κάνει stall γιατί όπως έχουμε μάθει στο απλό
> 5-stage pipeline δεν μπορεί να βρίσκεται παραπάνω από μια εντολή στο
> ίδιο στάδιο. Όπως όμως λέει το κείμενο (και εμείς στην παράδοση),
> μπορεί το πρόβλημα αυτό να αντιμετωπιστεί με επιπλέον υλικό. Έτσι
> καταλήγουμε στη διαφάνεια 41, όπου σωστά υποθέτεις ότι οι εντολές
> μπορούν να βρίσκονται ταυτόχρονα στο ΜΕΜ, καθώς μόνο μια από αυτές
> χρησιμοποιεί τη μνήμη και άρα δεν υπάρχει πραγματικός structural
> hazard.
>  
> 2) Το loop unrolling προφανώς βοηθάει στα control stalls. Βοηθάει όμως
> και στα data hazards stalls (αναφερόμαστε πάντα σε in-order
> επεξεργαστή). Σκέψου τον εξής κώδικα:
>  
> for(i = 0; i < N; i++)
> a[i]++;
>  
> o οποίος σε επίπεδο assembly είναι ld -> add -> st με RAW
> dependencies, τα οποία προκαλούν stalls. Αν κάνεις unrolling, τότε ο
> compiler θα μπορέσει να αναδιατάξει τις εντολές και να επικαλύψει έτσι
> τα stalls με χρήσιμη δουλειά.
>  
> 3) Δεν είμαι σίγουρος ότι καταλαβαίνω τι με ρωτάς. Όταν λέμε ότι
> υπάρχει ένας global history predictor, δίνουμε και τα χαρακτηριστικά
> του (στο θέμα που αναφέρεις λέμε ότι είναι (2,2)) με βάση τα οποία
> μπορείτε να τον "σχεδιάσετε" και να καταλάβετε τη δομή και τη
> λειτουργία του.
>  
> Κ.
>  
>  
> 2014-04-03 2:46 GMT+03:00 George Matikas <g_matikas at hotmail.com (mailto:g_matikas at hotmail.com)>:
> > Γεια σας!
> >  
> > Καθώς προετοιμάζομαι για την ερχόμενη εξέταση της Παρασκευής μου γεννήθηκαν
> > κάποιες απορίες. Θα μπορούσατε να με βοηθήσετε να τις λύσω;
> >  
> > 1) Στις διαφάνειες "Lec1-overview-13" στη σελίδα 41, αναφέρει ότι υπάρχει το ενδεχόμενο
> > να εμφανιστεί structural hazard λόγω ταυτόχρονης εγγραφής του register file στο στάδιο WB.
> > Ωστόσο, πιστεύω ότι αυτό δεν είναι εφικτό, αφού πάντα πριν το στάδιο WB βρίσκεται στο
> > pipeline του παραδείγματος το στάδιο MEM. Άρα θα έχουμε εκεί structural hazard και
> > επομένως stall και δεν θα συμπέσουν ποτέ 2 WB στάδια. Μία σκέψη που μου πέρασε από το
> >  
> > μυαλλό είναι ότι δεν μας πειράζει που θα πέσουν δύο ή περισσότερα στάδια MEM μαζί από
> > τη στιγμή που οι εντολές αυτές δεν κάνουν τίποτα στα στάδια αυτά (δηλαδή δεν διαβάζουν
> > ή γράφουν τη μνήμη), οπότε και γι’ αυτό επιτρέπουμε να πέσουν μαζί και δεν έχουμε stall
> > όπως ανέφερα παραπάνω. Ωστόσο, η σκέψη αυτή αναιρείται από την προηγούμενη σελίδα
> > των διαφανειών (σελ. 40) όπου τοποθετείται ένα επιπλέον stall ανάμεσα στις 2 τελευταίες
> > εντολές για να μην συμπέσουν τα στάδια MEM τους, παρόλο που η μία δεν κάνει τίποτα σε
> > αυτό το στάδιο.
> >  
> > 2) Στις διαφάνειες αναφέρετε συχνά σε ένα συγκεκριμένο slide (πχ "Lec5-dynamic-13.pps”
> > σελ. 3) ότι το loop unrolling βοηθάει στα Data Hazard Stalls, αλλά δεν μπορώ να καταλάβω
> >  
> > γιατί αυτό συμβαίνει. Μήπως το βελάκι προοριζόταν να δείχνει ότι το loop unrolling βοηθάει
> > στα Control Stalls;
> >  
> > 3) Όταν αναφέρετε ότι μας δίνεται “ένας” global history predictor, όπως πχ στο θέμα 3 της
> > εξέτασης Ιουλίου 2010, εννοείται ότι κάθε εντολή άλματος έχει τις δικιές της εγγραφές
> > στον PHT με βάση τα τελευταία bits του PC ή ότι όλες έχουν το ίδιο σετ εγγραφών και
> > όλες χρησιμοποιούν αυτό;
> >  
> >  
> > Ευχαριστώ εκ των προτέρων,
> > Ματίκας Γεώργιος
> >  
> >  
> > _______________________________________________
> > Advcomparch mailing list
> > Advcomparch at lists.cslab.ece.ntua.gr (mailto:Advcomparch at lists.cslab.ece.ntua.gr)
> > http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch
>  
>  
>  
>  
>  
> --  
> Dr. Konstantinos Nikas
> Computing Systems Laboratory
> School of Electrical and Computer Engineering
> National Technical University of Athens
>  
> Tel: +30-210-7724159
> e-mail: knikas at cslab.ece.ntua.gr (mailto:knikas at cslab.ece.ntua.gr)
> http://www.cslab.ece.ntua.gr/~knikas





More information about the Advcomparch mailing list