THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Αρχιτεκτονική Προηγμένων Υπολογιστών => Topic started by: Prison Mike on September 30, 2019, 23:56:29 pm



Title: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: Prison Mike on September 30, 2019, 23:56:29 pm
Για οποιαδήποτε απορία πάνω στις ασκήσεις.Stay on topic!


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: elenkani on August 25, 2020, 13:45:29 pm
Παιδιά, υπάρχει κανείς που να έχει λύσει έστω μέρος των θεμάτων Ιουνίου 2020 ; Ή που να έχει ασκήσεις από το μάθημα μέσα στο εξάμηνο ;


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: evelzaman on August 25, 2020, 18:06:16 pm
Παιδιά, υπάρχει κανείς που να έχει λύσει έστω μέρος των θεμάτων Ιουνίου 2020 ; Ή που να έχει ασκήσεις από το μάθημα μέσα στο εξάμηνο ;
Η ερώτηση 3 είναι παρόμοια, αν όχι ίδια, με μια άσκηση του βιβλίου. Βρήκα αυτό σαν λύση...


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: Ragnar on August 27, 2020, 14:29:24 pm
παιδιά ερώτηση. Στο θέμα 1 (Ιουλίου 20) πρέπει να κάνω όλο το pipeline και να βρω ολες τις καθυστερήσεις (stalls) ή θεωρώ μόνο τις καθυστερήσεις για τα lw,sw και bnz που μου λέει στην εκφώνηση; Επίσης στο θέμα 2 εκτελώ κλασσικό τομασουλο με 3 στάδια; Αν υπάρχουν ενδεικτικές λύσεις ακόμα καλύτερα. Ευχαριστώ!
sent from mTHMMY (https://play.google.com/store/apps/details?id=gr.thmmy.mthmmy) 


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: astasinos on August 28, 2020, 11:59:09 am
Το θέμα 1 του ιουνίου είναι ίδιο σχεδόν με την άσκηση 3.11 της 6ης εκδοσης του βιβλίου ενω στην 5η εκδοση είναι η ίδια άσκηση απλά έχει άλλες εντολές.

Για την 3.11 της 5ης εκδοσης εχω βρει τη λυση στη σελ. 20 εδ (https://www.slideshare.net/ZohaibAli64/computer-architecture-a-quantitative-approach-solution-for-5th-edition) . Ωστόσο στη λυση αυτή το register read γινεται στο σταδιο execute και οχι στο decode όπως γίνεται κλασσικά. Εδω στο stack overflow καποιος με την ιδια απορί (https://stackoverflow.com/questions/40397993/computer-architecture-pipeline-stalls) . Η λυση αναφερει την παραδοχή πως το read γινεται στο execute αλλα η εκφώνηση και ο παπαευσταθίου δε το αναφέρουν κάπου. Υπάρχει κάποιος που το έλυσε να μας πεί πως το έβγαλε και τι θεώρηση έκανε?

Επίσης στη λύση αυτή μετά το memory stage το load κανει stall δυο κύκλους πάντα επειδή αναφέρεται στην εκφώνηση το ίδιο και το branch μετα το execute. Ο παπαευσταθιου αναφέρει πως το load κάνει 2 κυκλους stall σε περίπτωση hazard αρα αν δεν εξαρτόταν απο το παραπάνω add δε θα εκανε stall , σωστά? Το branch που λεει κανει stall δυο κύκλους εννοεί πάντα όπως η 3.11 ή επειδή τώρα εξαρτάται απο την παραπάνω sub?



Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: Ragnar on August 28, 2020, 14:26:46 pm
Νομίζω το register read γίνεται κανονικά στο στάδιο ID και στη συνέχεια η προηγούμενη εντολή περνάει τις τιμές τον μεταβλητών απο το WB στάδιο, στο EX στάδιο της επόμενης. Αυτό δεν είναι προώθηση νομίζω. Προώθηση θα ήταν αν απο το EX της προηγούμενης εντολής πέρναγε στο ΕΧ της επόμενης (ή απο το ΜΕΜ της προηγούμενης αν μιλάμε για LW intsruction). Όσο για τις ερωτήσεις που κάνει το παιδι στο stackoverflow, νομίζω πάλι οτι όταν κάνει stall τότε όλη η στήλη απο εκεί και κάτω είναι stall. Γιαυτό πχ η τέταρτη εντολή ξεκινάει στον 7ο κύκλο και όχι στον τέταρτο....

Στη δική μας περίπτωση αφού το SW δεν επηρεάζει πουθενά θα κάνει stall? Ετσι όπως το σκέφτομαι νομίζω δε θα κάνει επειδή απλά αποθηκεύει την τιμή R1 η οποία μετά δε χρησιμοποιείται...


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: astasinos on August 28, 2020, 14:43:03 pm
Ευχαριστώ για την απάντηση. Για τα LW/SW αναφέρει πως θα κανουν 2 κύκλους stall αν υπάρχει hazard. Όντως το SW στο 1ο θέμα  θα πρέπει να διαβάσει τον R1 οπότε θα πρέπει να κάνει stall δυο κύκλους μέχρι να γραφτεί αυτός απο την ADD. Οι δύο κύκλοι καθυστέρησης που αναφέρει ο παπαευσταθίου είναι αυτοί ή είναι επιπρόσθετοι σε αυτούς; Δηλαδή το branch στο οποίο λεει έχει 2 κύκλους καθυστέρηση ανεξάρτητα απο hazard εννοεί πως εκτός απο τους 2 κύκλους που θα φάει γτ πρέπει να περιμένει την SUB θα κάνει και άλλους δυο ; Ρωτάω επειδή στο παράδειγμα του βιβλίου που έστειλα λεεί το ίδιο για το branch και ενώ δεν έχει κάποιο dependence μετά το EX περιμένει δυο κύκλους.


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: Ragnar on August 28, 2020, 15:01:43 pm
Νομίζω οτι πρέπει να κάνει εξτρα 2 stalls ναι. Γενικά απο αυτά που ανέβασες και αυτά που έχω δει εχω καταλήξει οτι αυτά τα εξτρα stalls που λέει η εκφώνηση γίνονται στο στάδιο που εκτελείται η κάθε εντολή. Πχ στο LW γίνονται στο στάδιο MEM ενώ στο ΒΝΖ (η αν υπήρχαν εξτρα stalls στην add πχ) θα γινόταν στο στάδιο EX.

Έκανα μια προσπάθεια για το θέμα 1. Για δες και πες μου αν συμφωνείς η αν δεν συμφωνείς...


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: astasinos on August 28, 2020, 15:49:26 pm
Στην κλασσική pipeline για να πάει στο στάδιο ID μια εντολή νομίζω πως πρέπει να μπορεί να διαβάσει τους regs που θέλει.

Ετσι για παράδειγμα το πρώτο load δε μπορεί να ολοκληρώσει to ID αν δε κανει WB η παραπάνω ADD. Επίσης, ετσι όπως το λεει στην εκφώνηση δηλαδή 2 κύκλους stall σε περίπτωση data hazard θα περίμενα τα stall να εξυπηρετουν στο να τελειωσει πρώτα η απο πάνω ADD για να μπορεί να κάνει ID η LOAD. Στο παράδειγμα που έστειλες η load κανει ID μολις κάνει EX και η ADD , αλλά στο 1ο θέμα λεει δεν υποστηρίζεται forwarding. Πιστεύω πως θα έπρεπε να είναι κάπως έτσι  https://prnt.sc/u7h9fx  (https://prnt.sc/u7h9fx) με την εξαίρεση πως το δικό μας load επειδή έχει την απο πάνω add θα πρέπει να φάει 2 stalls αναμεσα απο Fetch και ID και το branch αλλα 2 stall ( γιατι ετσι λεει η εκφώνηση ανεξάρτητα απο hazard ) μετα το EX + αυτά που έχει γτ δε μπορεί να δει τον R4.

Το branch overhead μου βγαίνει 6 κύκλοι δλδ 2 + 2 stalls + τα ID EX . Για τον dynamic predictor συμφωνω πως δε θα χάσουμε κύκλο.

Εν τέλει δηλαδή το load/store να έχει stall μονο αν πρέπει να περιμένει κάποιον και το branch πάντα?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: Ragnar on August 28, 2020, 17:53:52 pm
Ναι λογικα εχεις δικιο. Το ΕΧ πρεπει αν παει ενα μετα το WB του προηγουμενου...

Ετσι νομίζω... Το branch παντα και τα LW,SW οταν υπαρχει εξαρτηση...


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις
Post by: Ragnar on August 28, 2020, 18:04:00 pm
Στην κλασσική pipeline για να πάει στο στάδιο ID μια εντολή νομίζω πως πρέπει να μπορεί να διαβάσει τους regs που θέλει.

Ετσι για παράδειγμα το πρώτο load δε μπορεί να ολοκληρώσει to ID αν δε κανει WB η παραπάνω ADD. Επίσης, ετσι όπως το λεει στην εκφώνηση δηλαδή 2 κύκλους stall σε περίπτωση data hazard θα περίμενα τα stall να εξυπηρετουν στο να τελειωσει πρώτα η απο πάνω ADD για να μπορεί να κάνει ID η LOAD. Στο παράδειγμα που έστειλες η load κανει ID μολις κάνει EX και η ADD , αλλά στο 1ο θέμα λεει δεν υποστηρίζεται forwarding. Πιστεύω πως θα έπρεπε να είναι κάπως έτσι  https://prnt.sc/u7h9fx  (https://prnt.sc/u7h9fx) με την εξαίρεση πως το δικό μας load επειδή έχει την απο πάνω add θα πρέπει να φάει 2 stalls αναμεσα απο Fetch και ID και το branch αλλα 2 stall ( γιατι ετσι λεει η εκφώνηση ανεξάρτητα απο hazard ) μετα το EX + αυτά που έχει γτ δε μπορεί να δει τον R4.

Το branch overhead μου βγαίνει 6 κύκλοι δλδ 2 + 2 stalls + τα ID EX . Για τον dynamic predictor συμφωνω πως δε θα χάσουμε κύκλο.

Εν τέλει δηλαδή το load/store να έχει stall μονο αν πρέπει να περιμένει κάποιον και το branch πάντα?


Στο branch overhead που λες 2 +2 stalls+ ID EX... Το πρώτο 2 που γράφεις τι είναι?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: coraface on August 29, 2020, 14:28:41 pm
Mαγκες μπορει να εξηγησει καποιος πως προκυπτουν τα branch overheads per loop και πως για ολο το προγραμμα? Στις λυσεις τις 3.11 στο 1ο ερωτημα δείχνει στο σχήμα οτι per loop ειναι από το branch fetch μεχρι το επομενο load fetch, ενώ στο 2ο ερώτημα (που λογικα ψαχνουμε για ολο το προγραμμα) λεει 2, διοτι αναγκαστικα θα τους φας στο fetch και decode.


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: apooreapo on August 29, 2020, 17:15:59 pm
Νομίζω οτι πρέπει να κάνει εξτρα 2 stalls ναι. Γενικά απο αυτά που ανέβασες και αυτά που έχω δει εχω καταλήξει οτι αυτά τα εξτρα stalls που λέει η εκφώνηση γίνονται στο στάδιο που εκτελείται η κάθε εντολή. Πχ στο LW γίνονται στο στάδιο MEM ενώ στο ΒΝΖ (η αν υπήρχαν εξτρα stalls στην add πχ) θα γινόταν στο στάδιο EX.

Έκανα μια προσπάθεια για το θέμα 1. Για δες και πες μου αν συμφωνείς η αν δεν συμφωνείς...

Όσον αφορά το 2ο ερώτημα: Στη λύση που δίνει για το βιβλίο αυτός στο 3.11, λέει 2 stalls, ένα για το Fetching και ένα για το Decoding. Ωστόσο, αν ήταν έτσι δε θα έπρεπε αυτό να μετριέται συνολικά σαν ένα stall; Γιατί ούτως ή άλλως πάντα η επόμενη εντολή ξεκινάει την επόμενη στιγμή. Θέλω να πω : αν απαιτούνταν μόνο η ολοκλήρωση του F και D, στο παράδειγμα του βιβλίου το τελευταίο LW R3, 0(R0) δε θα έπρεπε να ξεκινάει ακριβώς κάτω από το Ε;


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: Ragnar on August 29, 2020, 21:00:29 pm
Όσον αφορά το 2ο ερώτημα: Στη λύση που δίνει για το βιβλίο αυτός στο 3.11, λέει 2 stalls, ένα για το Fetching και ένα για το Decoding. Ωστόσο, αν ήταν έτσι δε θα έπρεπε αυτό να μετριέται συνολικά σαν ένα stall; Γιατί ούτως ή άλλως πάντα η επόμενη εντολή ξεκινάει την επόμενη στιγμή. Θέλω να πω : αν απαιτούνταν μόνο η ολοκλήρωση του F και D, στο παράδειγμα του βιβλίου το τελευταίο LW R3, 0(R0) δε θα έπρεπε να ξεκινάει ακριβώς κάτω από το Ε;

Και μένα έτσι όπως το λες μου φαίνεται λογικό.

Ερώτηση....στο θέμα 2 του ιουλίου που είχε TOMASULO είχα κανονικά 3 στήλες?  issue , exec, write? 
Ρωτάω επειδή μας δίνει και τα 5 στάδια του pipeline και επίσης μας ζητάει να γράψουμε στον πίνακα τον κύκλο που ξεκινάει το issue, το execute, η πρόσβαση στη μνήμη , και το CDB...
Γενικά έχει κάνεις κανείς προσπάθεια γι'αυτο το θέμα?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: apooreapo on August 30, 2020, 21:15:03 pm
Και μένα έτσι όπως το λες μου φαίνεται λογικό.

Ερώτηση....στο θέμα 2 του ιουλίου που είχε TOMASULO είχα κανονικά 3 στήλες?  issue , exec, write? 
Ρωτάω επειδή μας δίνει και τα 5 στάδια του pipeline και επίσης μας ζητάει να γράψουμε στον πίνακα τον κύκλο που ξεκινάει το issue, το execute, η πρόσβαση στη μνήμη , και το CDB...
Γενικά έχει κάνεις κανείς προσπάθεια γι'αυτο το θέμα?

Το issue, to execute και η εγγραφη στο CBD είναι οι στάνταρ στήλες του tomasulo. Με την πρόσβαση στη μνήμη δεν καταλαβαίνω τι ακριβώς εννοεί. Επίσης, οι ενδεδειγμένες λύσεις που υπάρχουν στο ίντερνετ για αυτή την άσκηση (3.15 νομίζω) αγνοούν και αυτές αυτό το πεδίο.


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις
Post by: astasinos on August 31, 2020, 12:52:47 pm
Στο branch overhead που λες 2 +2 stalls+ ID EX... Το πρώτο 2 που γράφεις τι είναι?

Εννοώ 2 κύκλοι που πρέπει να περιμένει η branch ετσι κι αλλιώς για να δεί την τιμή του R4.

Επίσης το βιβλίο κάνει τη παραδοχή ότι το register read γίνεται στο EX και οχι στο ID όπως είναι κλασσικά. Ο παπαευσταθίου στο θέμα λεεί πως έχουμε την κλασσική αρχιτεκτονική MIPS άρα το register read θα γίνει στο ID εδώ ?

Ναι λογικα εχεις δικιο. Το ΕΧ πρεπει αν παει ενα μετα το WB του προηγουμενου...


Αυτό δε το κατάλαβα..στο βιβλίο και γενικά δεν υποτίθεται ότι μπορείς να κάνεις register read ταυτόχρονα με το writeback το οποίο περιμένεις?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: Ragnar on August 31, 2020, 14:31:51 pm
Το issue, to execute και η εγγραφη στο CBD είναι οι στάνταρ στήλες του tomasulo. Με την πρόσβαση στη μνήμη δεν καταλαβαίνω τι ακριβώς εννοεί. Επίσης, οι ενδεδειγμένες λύσεις που υπάρχουν στο ίντερνετ για αυτή την άσκηση (3.15 νομίζω) αγνοούν και αυτές αυτό το πεδίο.

Ευχαριστώ πολύ...
Μήπως ξέρεις στο 2ο ερώτημα με τα 2 issue στην 3η επανάληψη τι ακριβώς παίζει?
Ποιος ο λόγος που δε κάνουν write? Αυτός λέει είναι γεμάτο το int RS αλλά δε καταλαβαίνω πως βγαίνει αυτό...


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις
Post by: Ragnar on August 31, 2020, 14:41:50 pm
Εννοώ 2 κύκλοι που πρέπει να περιμένει η branch ετσι κι αλλιώς για να δεί την τιμή του R4.

Επίσης το βιβλίο κάνει τη παραδοχή ότι το register read γίνεται στο EX και οχι στο ID όπως είναι κλασσικά. Ο παπαευσταθίου στο θέμα λεεί πως έχουμε την κλασσική αρχιτεκτονική MIPS άρα το register read θα γίνει στο ID εδώ ?

Αυτό δε το κατάλαβα..στο βιβλίο και γενικά δεν υποτίθεται ότι μπορείς να κάνεις register read ταυτόχρονα με το writeback το οποίο περιμένεις?



 Αν κάνει register read στο ΕΧ. Μπορώ να βάλω το ΕΧ κάτω απο το προηγούμενο WB (όπως στο βιβλίο).
 Αν κάνει στο ID τότε μπορώ να βάλω το ID κάτω απο το ΕΧ ( όπως λογικά θα έπρεπε να κάνουμε στο θέμα 1 ιουλίου)
 Όλα αυτά χωρίς προώθηση...
 Μέ κάθε επιφύλαξη....

   


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: Dimopapa on August 31, 2020, 23:56:23 pm
Παιδιά παίζει να έχει βρει κανείς της λύσεις του βιβλίου της 6ης έκδοσης σε pdf;


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: panos98 on September 01, 2020, 14:02:56 pm
παιδια SOS η ασκηση 3.13 απο το πδφ με τις λυμενες ειναι πολυ πιθανο να πεσει


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: Ragnar on September 01, 2020, 16:08:17 pm
παιδια SOS η ασκηση 3.13 απο το πδφ με τις λυμενες ειναι πολυ πιθανο να πεσει

Έχεις ιδέα γιατί δε μετράει κάποια stalls?
Μήπως το σωστό είναι να τα μετράει? Το λέω επειδή σε μία αντίστοιχη (3.6 από τις λυμένες) τα μετράει κανονικά.
Μιλάω για το α' ερώτημα...


Title: Re: [Αρχιτεκτονική Υπολογιστών] Απορίες σε ασκήσεις 2019-2020
Post by: apooreapo on September 01, 2020, 19:01:18 pm
Ευχαριστώ πολύ...
Μήπως ξέρεις στο 2ο ερώτημα με τα 2 issue στην 3η επανάληψη τι ακριβώς παίζει?
Ποιος ο λόγος που δε κάνουν write? Αυτός λέει είναι γεμάτο το int RS αλλά δε καταλαβαίνω πως βγαίνει αυτό...


Και εγώ την ίδια απορία έχω να σου πω την αλήθεια.. Η εκφώνηση λέει ότι έχουμε 5 reservation stations για πράξεις ακεραίων, οπότε αυτά τα περίεργα που κάνει στην 3η λούπα δεν βγάζουν κανένα νόημα