Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική."— Μεταγράφημα παρουσίασης:

1 1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική και απόδοση Υπολογιστών Μέρος: Δεύτερο Καθηγητής: Α. Βαφειάδης 2009

2 2 Α. Βαφειάδης Η απόδοση της CPU - Ορισμοί  Κύκλος ρολογιού(Clock Cycle: Το διάστημα μεταξύ δύο γεγονότων ρολογιού (π.χ ακμές ανόδου)  Συχνότητα ρολογιού (Clock rate) : Η συχνότητα των κύκλων στη μονάδα του χρόνου  Περίοδος (Clock cycle time) = η διάρκεια ενός Clock Cycle (σε ns)  Clock rate = 1/clock cycle time (σε MΗz)

3 3 Α. Βαφειάδης ΠΑΡΑΔΕΙΓΜΑ Περίοδος 2ns σε πόσα MΗz αντιστοιχούν ? CR = Clock Rate = συχνότητα ρολογιού CP = Cycle Period = Περίοδος κύκλου

4 4 Α. Βαφειάδης Η επίδοση της CPU Ορισμοί - τύποι  Clock cycles/instruction (μέσο CPI) = = Πλήθος κύκλων/εντολή = = ο μέσος αριθμός των κύκλων που χρειάζεται μια εντολή γλώσσας μηχανής για να εκτελεστεί  Instruction count (IC) = = πλήθος εντολών = = το συνολικό πλήθος των εντολών ενός προγράμματος  Cycles /instruction (μέσο CPI) = = μέσο πλήθος κύκλων ανά εντολή πλήθος CPU κύκλων ανά πρόγραμμα = πλήθος εντολών προγράμματος

5 5 Α. Βαφειάδης CPU Time προγράμματος CPU time = πλήθος CPU κύκλων Χ μια περίοδο κύκλου = πλήθος CPU κύκλων = Clock rate CPU time = πλήθος εντολών Χ πλήθος κύκλων ανά εντολή Χ περίοδος κύκλου πλήθος εντολών Χ πλήθος κύκλων ανά εντολή CPU time = Clock rate

6 6 Α. Βαφειάδης Ο βασικός Τύπος ( CPU time πρoγράμματος) CPU time = Πλήθος εντολών (IC) X X Πλήθος κύκλων / εντολή (CPI) Χ X περίοδος κύκλου (CP) CPU time = IC x CPI x CP Instruction set Architecture + Τεχνολογία Compiler Instruction set Architecture + Οργάνωση Τεχνολογία Hardware + Οργάνωση

7 7 Α. Βαφειάδης Ο γενικευμένος βασικός τύπος Instruction Count = IC = IC 1 + IC 2 + …. IC N Υποθέτουμε ότι ένα πρόγραμμα αποτελείται από Ν διαφορετικό πλήθος εντολών ή ομάδων εντολών γλώσσας μηχανής όπου ICi παριστάνει το πλήθος των κύκλων της εντολής i στην οποία αντιστοιχεί το CPIi

8 8 Α. Βαφειάδης Παράδειγμα 1 Έχουμε δύο μηχανές Α και Β που έχουν την ίδια αρχιτεκτονική του instruction set αλλά διαφορετική υλοποίηση. Η μηχανή Α έχει clock cycle time = 1ns και τρέχει ένα πρόγραμμα με CPI=2 Η μηχανή B έχει clock cycle time = 2ns και τρέχει το ίδιο πρόγραμμα με CPI=1.2 Ποια μηχανή έχει μεγαλύτερη απόδοση και πόσες φορές ?

9 9 Α. Βαφειάδης Απάντηση Ο αριθμός (έστω N) των instructions του προγράμματος θα είναι ο ίδιος και στις δύο μηχανές λόγω της ίδιας αρχιτεκτονικής. Ερμηνεία :Η απόδοση του Α είναι 1.2 φόρες η απόδοσης του Β.

10 10 Α. Βαφειάδης Παράδειγμα 2 Μια μηχανή έχει Instruction Set το οποίο διαθέτει τρεις κατηγορίες εντολών (A,B και C) γλώσσας μηχανής. Κάθε κατηγορία έχει και διαφορετικό CPI( Cycles per Instruction). H κατηγορία Α έχει CPI=1, η Β έχει CPI=2 και η C έχει CPI=3. δηλαδή οι εντολές τις κατηγορίας Α εκτελούνται σε ένα κύκλο της κατηγορίας B σε δύο κύκλους και της κατηγορίας C σε τρεις κύκλους. Ο σχεδιαστής ενός compiler μιας ανώτερης γλώσσας προγραμματισμού επιθυμεί να βρει την καλύτερη μέθοδο μετάφρασης την οποία και θα ενσωματώσει στον compiler. Πρέπει να διαλέξει μεταξύ δύο μεθόδων. την Χ και την Υ. Καλύτερη θεωρείται η μέθοδος μετάφρασης η οποία παράγει για τον ίδιο πηγαίο κώδικα και για την ίδια CPU τον γρηγορότερο εκτελέσιμό κώδικά Παίρνει ένα τυχαίο πρόγραμμα και το μεταφράζει με τη μέθοδο μετάφρασης Χ και μετά με τη μέθοδο μετάφρασης Υ. Κάθε μέθοδος παράγει κώδικα ο οποίος έχει διαφορετικό instruction mix το οποίο φαίνεται στον παρακάτω πίνακα.

11 11 Α. Βαφειάδης Παράδειγμα 2 Εντολές Γλώσσας μηχανής (ΙC) Κατηγορία ΑΚατηγορία ΒΚατηγορία C Μέθοδος Χ201010 Μέθοδος Υ40101010 Ποια μέθοδος θα προτιμηθεί ?

12 12 Α. Βαφειάδης Έλεγχος της μεθόδου Χ Επειδή IC A =20 IC B =10 IC C = 20 και CPI A =1 CPI B =2 CPI C =3 και CPU Clock cycles = 1*20 + 2*10 + 3*20 = 100 κύκλοι Instruction count = 20+10+20 = 50 εντολές CPI (average) = 100/50 =2.0 κύκλοι/εντολή ή CPI (average) = 20/50 *1 + 10/50*2 + 20/50*3 = 0.4+0.4+1.2= 2.0 κύκλοι/εντολή

13 13 Α. Βαφειάδης Έλεγχος της μεθόδου Υ Επειδή IC A =40 IC B =10 IC C = 10 και CPI A =1 CPI B =2 CPI C =3 CPU Clock cycles = 1*40 + 2*10 + 3*10 = 90 κύκλοι Instruction count = 40+10+10 = 60 εντολές CPI (average) = 90/60 1.5 κύκλοι/εντολή ή CPI (average) = 40/60 *1 + 10/60*2 + 10/60*3 = 0.67+0.33+0.5= 1.5 κύκλοι/εντολή

14 14 Α. Βαφειάδης Συμπέρασμα Ο σχεδιαστής θα προτιμήσει την μέθοδο που δημιουργεί εκτελέσιμο κώδικα ο οποίος τελειώνει γρηγορότερα στην ίδια CPU. Δηλαδή αυτή που μας δίνει μικρότερο CPU χρόνο ή μεγαλύτερη απόδοση. CPU time (Χ) / CPU time (Υ) = CPU cycles(Χ) * Clock time / CPU cycles(Υ) * Clock time = CPU cycles(Χ) / CPU cycles( Y) = 100/90 = 1.1 Άρα CPU time(Χ) = CPU time(Υ) * 1.1 ή Απόδοση (Υ) = Απόδοση (Χ) * 1.1 Άρα μέθοδος Υ είναι η καλύτερη γιατί παρουσιάζει μεγαλύτερη απόδοση CPU Παρατήρηση : To clock time είναι ίδιο γιατί πρόκειται για την ίδια CPU

15 15 Α. Βαφειάδης Amdahl’s Low SO = Ολική επιτάχυνση (βελτίωση) FE = Ποσοστό μέρους που βελτιώνεται (FE < 1 ) SE = Μερική επιτάχυνση επιτάχυνση(speedup) SO = [απόδοση μετά ] / [απόδοση πριν ]

16 16 Α. Βαφειάδης Amdahl’s Low (Παράδειγμα 1) Επιθυμούμε να βελτιώσουμε την ολική απόδοση ενός Web Server Αποφασίσαμε να αντικαταστήσουμε τη CPU με μια άλλη 20% ταχύτερη. Οι μετρήσεις έδειξαν ότι στη λειτουργία του Server η CPU μετέχει κατά 30%. To υπόλοιπο είναι Ι/Ο. Πόση θα είναι η ολική βελτίωση του server SE = Μερική βελτίωση 1.2 FE = ποσοστό βελτιούμενου μέρους = 0.3 Αυτό σημαίνει ότι η απόδοση του server θα αυξηθεί κατά 5%

17 17 Α. Βαφειάδης Amdahl’s Low (Παράδειγμα 2) Επιθυμούμε να βελτιώσουμε την ολική απόδοση ενός Web Server κατά 2 φορές. Αποφασίσαμε να αντικαταστήσουμε τη CPU. Οι μετρήσεις έδειξαν ότι στη λειτουργία του Server η CPU μετέχει κατά 30%. To υπόλοιπο είναι Ι/Ο. Πόσο πιο γρήγορη θα πρέπει να είναι η νέα CPU. SO = ολική βελτίωση = 2 FE = ποσοστό βελτιούμενου μέρους = 0.3 Αυτό σημαίνει ότι για αυτά τα δεδομένα δεν μπορεί να ισχύσει ο νόμος Άρα δεν μπορούμε να βελτιώσουμε το σύστημα Αν θελήσουμε να βελτιώσουμε το σύστημα Ι/Ο τότε

18 18 Α. Βαφειάδης Προτάσεις για λύση θέλουμε να επιταχύνουμε την λειτουργία ενός υπολογιστή επιταχύνοντας τον επεξεργαστή του. Συγκεκριμένα αλλάζουμε την χρονισμό της CPU και την κάνουμε 5 φορές πιο γρήγορη H CPU συμμετέχει στην όλη λειτουργία του υπολογιστή και για συγκεκριμένη ομάδα προγραμμάτων κατά 60%.

19 19 Α. Βαφειάδης Προτάσεις για λύση Υποθέστε ότι σε ένα υπολογιστή τρέχει ένα πρόγραμμα το οποίο σε κάποιο σημείο του γίνεται εκτεταμένη χρήση γραφικών Θέλουμε να βελτιώσουμε τον χρόνο εκτέλεσης του προγράμματος. Ας υποθέσουμε ότι μπορούμε να αλλάξουμε μέρη της CPU. Γνωρίζουμε ότι η FPU αποτελείται από διάφορα ολοκληρωμένα ένα από τα οποία το SSE εκτελεί αποκλειστικά εντολές γραφικών. Στο πρόγραμμα αυτό η χρήση γραφικών καταλαμβάνει το 20% του συνολικού χρόνου εκτέλεσης. Βρισκόμαστε στο παρακάτω δίλημμα: Α) Να βελτιώσουμε μόνο το ολοκληρωμένο κύκλωμα SSE που έχει να κάνει με τη χρήση των γραφικών. Μπορούμε να το κάνουμε μέχρι και 10 φορές πιο γρήγορο. Β) Να βελτιώσουμε ολόκληρη την FPU. Μπορούμε να τη βελτιώσουμε ώστε να γίνει 1.6 πιο γρήγορη. Σημειώνουμε ότι οι πράξεις κινητής υποδιαστολής είναι υπεύθυνες για το 50% του συνολικού χρόνου εκτέλεσης του προγράμματος. Ποια από τις δύο μεθόδους να προτιμήσουμε ;

20 20 Α. Βαφειάδης Προτάσεις για λύση Σε ένα πρόγραμμα οι εντολές Ι/Ο συμμετέχουν κατά 40% στον συνολικό χρόνο εκτέλεσης ενός προγράμματος, ενός οι υπολογιστικές εντολές το υπόλοιπο. Επιθυμούμε την επιτάχυνση του προγράμματος. Υπάρχουν δύο λύσεις Α) να τροποποιήσουμε τις εντολές Ι/Ο και Β) να τροποποιήσουμε κάποια ομάδα από τις υπολογιστικές εντολές. Στη Α λύση μπορούμε να αντικαταστήσουμε τις εντολές εισόδου με άλλες, 2 φορές πιο γρήγορες. Οι εντολές εισόδου συμμετέχουν στο χρόνο εκτέλεσης των εντολών Ι/Ο κατά 40%. Στη λύση Β μπορούμε να αντικαταστήσουμε ένα υποπρόγραμμα που καλείται από το πρόγραμμα με ένα άλλο 6 φόρες πιο γρήγορο. Το συγκεκριμένο υποπρόγραμμα συμμετέχει στο χρόνο των εκτελέσιμων εντολών κατά 20%. Ποια από τις δύο μεθόδους να προτιμήσουμε ;


Κατέβασμα ppt "1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google