ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ"

Transcript

1 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ακ. έτος Εξετάζουμε την εκτέλεση του εξής κώδικα: Άσκηση 1 Repeat: Exit: ld r2,100(r3) sub r2,r2,r5 st r2,100(r3) sub r3,r3,r6 sub r1,r1,r7 bnez r1,repeat Υποθέτουμε ότι έχουμε αρχιτεκτονική σωλήνωσης (pipelining) 5 σταδίων (IF ID EX MEM WB). Έστω ότι η αρχική τιμή του r1 είναι 500 και του r7 είναι 5, και ότι όλες οι αναφορές στη μνήμη ικανοποιούνται από την κρυφή μνήμη σε 1 κύκλο (δεν υπάρχουν δηλαδή αστοχίες). α) Αρχικά, υποθέτουμε ότι η αρχιτεκτονική σωλήνωσης δε διαθέτει σχήμα προώθησης (forwarding). Επίσης, η εγγραφή σε κάποιον καταχωρητή γίνεται στο πρώτο μισό ενός κύκλου, ενώ η ανάγνωση από τον ίδιον καταχωρητή στο δεύτερο μισό του ίδιου κύκλου. Επιπλέον, η απόφαση για μια διακλάδωση λαμβάνεται στο στάδιο ΜΕΜ, και για να γίνει η διακλάδωση πρέπει να καθαριστεί (flush) το pipeline. Για την 1η επανάληψη του παραπάνω βρόχου, μέχρι και το load της 2ης επανάληψης, χρησιμοποιείστε ένα διάγραμμα χρονισμού όπως αυτό που παρουσιάζεται στη συνέχεια, για να δείξετε τα διάφορα στάδια του pipeline από τα οποία διέρχονται οι εντολές σε αυτό το διάστημα εκτέλεσης. Υποδείξτε και εξηγείστε τους πιθανούς κινδύνους (hazards) που μπορούν να προκύψουν κατά την εκτέλεση, καθώς και τον τρόπο με τον οποίον αυτοί αντιμετωπίζονται. Κύκλος Εντολή 1 IF ID EX MEM WB Εντολή 2 IF ID EX MEM WB Εντολή Πόσοι κύκλοι απαιτούνται συνολικά για να ολοκληρωθεί ο παραπάνω βρόχος (για όλες τις επαναλήψεις του, όχι μόνο για την 1η);

2 Ο βρόχος θα εκτελεστεί για 500/5=100 επαναλήψεις. Το διάγραμμα χρονισμού του pipeline για τη χρονική διάρκεια που ζητείται είναι το ακόλουθο: Κύκλος ld r2,100(r3) IF ID EX MEM WB sub r2,r2,r5 IF ID - - EX MEM WB st r2,100(r3) IF - - ID - - EX MEM WB sub r3,r3,r6 IF - - ID EX MEM WB sub r1,r1,r7 IF ID EX MEM WB bnez r1, Repeat IF ID - - EX MEM WB ld r2,100(r3) IF ID EX MEM W B Στο παραπάνω διάγραμμα, οι - υποδηλώνουν stalls. Τα stalls στους κύκλους 4,5 οφείλονται στο ότι ο r2 για την εντολή sub r2,r2,r5 (η ανάγνωση του οποίου γίνεται στο στάδιο ID) γίνεται διαθέσιμος στο τέλος του κύκλου 5 (στάδιο WB). Τα stalls στους κύκλους 7,8 οφείλονται πάλι στο ότι ο r2 για την εντολή st r2,100(r3) γίνεται διαθέσιμος στο τέλος του κύκλου 8. Τα stalls στους κύκλους 12,13 οφείλονται στο ότι o r1 για την εντολή bnez r1,repeat γίνεται διαθέσιμος στο τέλος του κύκλου 13. Το δεύτερο στιγμιότυπο της εντολής ld r2,100(r3) αρχίζει να εκτελείται από τον κύκλο 16, διότι η απόφαση για την διακλάδωση ελήφθη στον κύκλο 15. Όπως φαίνεται από το παραπάνω διάγραμμα, ο πρώτος κύκλος για την επανάληψη i επικαλύπτεται με τον τελευταίο κύκλο για την επανάληψη i-1. Επομένως, λαμβάνοντας υπόψη αυτή την επικάλυψη, οι επαναλήψεις για i= διαρκούν συνολικά 15 κύκλους η κάθε μία, ή 15*99=1485 κύκλους συνολικά. Η τελευταία επανάληψη i=100, διαρκεί 16 κύκλους. Επομένως, απαιτούνται = 1501 κύκλου για την εκτέλεση του βρόχου. β) Για την ίδια ακολουθία εντολών, δείξτε και εξηγείστε όπως και πριν, τον χρονισμό του pipeline, θεωρώντας όμως τώρα ότι υπάρχει σχήμα προώθησης. Θεωρείστε ότι οι αποφάσεις για τις διακλαδώσεις λαμβάνονται στο στάδιο ΜΕΜ. Πόσοι κύκλοι απαιτούνται συνολικά για να ολοκληρωθεί ο βρόχος; Το διάγραμμα χρονισμού του pipeline για τη χρονική διάρκεια που ζητείται είναι το ακόλουθο: Κύκλος ld r2,100(r3) IF ID EX MEM WB sub r2,r2,r5 IF ID - ΕΧ ΜΕΜ WB st r2,100(r3) IF - ID EX MEM WB sub r3,r3,r6 IF ID EX MEM WB sub r1,r1,r7 IF ID EX MEM WB bnez r1, Repeat IF ID EX MEM WB ld r2,100(r3) IF ID EX MEM WB Στον κύκλο 4 υπάρχει stall, διότι η τιμή της θέσης μνήμης 100(r3), που πρόκειται να αποθηκευτεί στον r2, δεν μπορεί να είναι διαθέσιμη πριν το στάδιο MEM. Όταν όμως θα γίνει διαθέσιμη στο τέλος του κύκλου αυτού (και αποθηκευτεί στον ενδιάμεσο καταχωρητή ΜΕΜ/WB του pipeline), τότε το σχήμα προώθησης θα την προωθήσει κατευθείαν στις εισόδους της ALU, ώστε να μπορεί να εκτελεστεί η εντολή sub r2,r2,r5 χωρίς να χρειάζεται να περιμένουμε μέχρι η τιμή αυτή γραφτεί στον r2. Με αυτόν τον τρόπο, αποφεύγεται το stall που είχαμε στην προηγούμενη περίπτωση στην κύκλο 5. Το ίδιο ισχύει και για τα stalls που είχαμε στους κύκλους 7,8. Η τιμή του r2, που χρειάζεται από την εντολή st r2,100(r3), παράγεται στον 5ο κύκλο της εντολής sub r2,r2,r5 κατά το στάδιο ΕΧ και αποθηκεύεται στον

3 ενδιάμεσο καταχωρητή ΕΧ/ΜΕΜ. Επομένως μπορεί να προωθηθεί στις εισόδους της ALU και να αποφευχθούν τα stalls. Για τον ίδιο λόγο αποφεύγονται και τα stalls στους κύκλους 12,13. Η τιμή του r1 γίνεται διαθέσιμη στο στάδιο ΕΧ της εντολής sub r1,r1,r7, αποθηκεύεται στον ενδιάμεσο καταχωρητή ΕΧ/ΜΕΜ οπότε μπορεί να χρησιμοποιηθεί άμεσα για την εντολή διακλάδωσης που ακολουθεί. Με ανάλογο σκεπτικό όπως και πριν, οι κύκλοι που απαιτούνται για την εκτέλεση του βρόχου είναι 10*99+11=1001.

4 Άσκηση 2 Εξετάζουμε το pipeline για μια αρχιτεκτονική συνόλου εντολών (ISA) καταχωρητή-μνήμης (registermemory). Στην αρχιτεκτονική αυτή υπάρχουν 2 μορφές εντολών: καταχωρητή-καταχωρητή (registerregister), και καταχωρητή-μνήμης (register-memory). Στην τελευταία περίπτωση, ένας από τους τελεστές για μία πράξη που εκτελείται στην ALU μπορεί να προέρχεται από τη μνήμη. Για τις αναφορές στη μνήμη, υπάρχει ένας μόνο τρόπος διευθυνσιοδότησης: offset(base_reg) (δηλ. Mem[offset + $base_reg]). Όλες οι διαθέσιμες εντολές καταχωρητή-μνήμης (που δεν είναι εντολές διακλάδωσης) έχουν τη μορφή: Operation T, S1, S2 ή Operation T, S1, Mem όπου Operation είναι κάποια πράξη από τις: add, sub, and, or, ld (σε αυτή την περίπτωση ο S1 αγνοείται), st. Οι T (target), S1 (source 1), S2 (source 2) είναι καταχωρητές, ενώ Mem είναι μια αναφορά στη μνήμη με τον τρόπο διευθυνσιοδότησης που αναφέραμε. Για τις εντολές διακλάδωσης υπό συνθήκη, συγκρίνονται δύο καταχωρητές, και ανάλογα με το αποτέλεσμα της σύγκρισης, γίνεται άλμα στην διεύθυνση-στόχο που υποδεικνύεται. Η διεύθυνση-στόχος, μπορεί να προσδιορίζεται είτε από μία ακέραια σταθερά (που υποδηλώνει το offset σε σχέση με την τρέχουσα τιμή του μετρητή προγράμματος), είτε από έναν καταχωρητή (το περιεχόμενο του οποίου αντιστοιχεί στην απόλυτη διεύθυνση-στόχο). Υποθέτουμε ότι τα στάδια της σωλήνωσης της αρχιτεκτονικής είναι τα εξής: IF ID AGU MEM ALU WB Στο στάδιο AGU (address generation unit) γίνεται ο υπολογισμός των τελικών διευθύνσεων μνήμης, για εντολές αναφοράς στη μνήμη και για εντολές διακλάδωσης. Στο στάδιο ALU γίνεται η εκτέλεση των αριθμητικών πράξεων καθώς και η σύγκριση για εντολές διακλάδωσης υπό συνθήκη. Η εγγραφή σε κάποιον καταχωρητή γίνεται στο πρώτο μισό ενός κύκλου, ενώ η ανάγνωση από τον ίδιον καταχωρητή στο δεύτερο μισό του ίδιου κύκλου. α) Βρείτε τον αριθμό των αθροιστών που απαιτούνται για την ελαχιστοποίηση των δομικών κινδύνων (structural hazards). Δικαιολογείστε την επιλογή σας αυτή. Στο pipeline που περιγράφει η άσκηση, οι δομικοί κίνδυνοι που μπορούν να προκύψουν οφείλονται σε συγκρούσεις εξαιτίας της χρήσης της ίδιας δομικής μονάδας στον ίδιο κύκλο από διαφορετικά στάδια του pipeline. Τα στάδια που χρησιμοποιούν πράξεις πρόσθεσης, στην περίπτωσή μας, είναι 3: το IF (που προσαυξάνει την τρέχουσα τιμή του PC ώστε να δείχνει στην επόμενη κατά σειρά εντολή), το AGU (που εκτελεί την πρόσθεση offset + $base_reg για να παράξει, είτε την διεύθυνση για μία αναφορά μνήμης, είτε τη διεύθυνση μιας εντολής διακλάδωσης), το ALU (όπου εκτελούνται μεταξύ άλλων πράξεις add και sub). Για να ελαχιστοποιηθούν επομένως οι δομικοί κίνδυνοι, απαιτούνται 3 αθροιστές. β) Βρείτε τον αριθμό των ports για ανάγνωση και εγγραφή των καταχωρητών, και των ports για ανάγνωση και εγγραφή μνήμης, ώστε να ελαχιστοποιούνται οι δομικοί κίνδυνοι. Δικαιολογείστε αντίστοιχα. Καταχωρητές: το αρχείο καταχωρητών χρησιμοποιείται σε δύο στάδια, το ID και το WB. Στο ID, διαβάζονται οι source registers μιας εντολής. Για το ISA που εξετάζει η άσκηση, ο μέγιστος αριθμός source registers που μπορούν να προσδιοριστούν σε μια εντολή είναι 3: breq r1,r2,10(r3), για παράδειγμα. Στο WB, γράφεται κάποιος target register. Επομένως, για το αρχείο καταχωρητών, απαιτούνται 3 read ports και 1 write port.

5 Μνήμη: η προσπέλαση της μνήμης γίνεται μόνο στο στάδιο MEM, και μπορεί να είναι είτε εγγραφή είτε ανάγνωση. Επομένως, απαιτείται 1 read port και 1 write port. γ) Αν υπήρχε σχήμα προώθησης των αποτελεσμάτων από το στάδιο ALU σε οποιοδήποτε από τα στάδια AGU, MEM, ALU, θα μειώνονταν οι καθυστερήσεις (stalls); Δικαιολογείστε την απάντησή σας για κάθε ένα από τα στάδια αυτά. Σε όποια περίπτωση πιστεύετε ότι θα υπήρχε μείωση ή αποφυγή των καθυστερήσεων, δώστε και ένα παράδειγμα όπου θα γίνεται εμφανές αυτό. προώθηση ALU AGU: Κύκλος add r1,r1,r2 IF ID AGU MEM ALU WB instr1 IF ID AGU MEM ALU WB instr2 IF ID AGU MEM ALU WB ld r3,0(r1) IF ID - AGU MEM ALU WB Με προώθηση: add r1,r1,r2 IF ID AGU MEM ALU WB instr1 IF ID AGU MEM ALU WB instr2 IF ID AGU MEM ALU WB ld r3,0(r1) IF ID AGU MEM ALU WB Στο παραπάνω παράδειγμα, οι εντολές instr1 και instr2 είναι τέτοιες ώστε να μην δημιουργούν κινδύνους στο pipeline και επομένως να μην προκαλούν καθυστερήσεις. Στον 5ο κύκλο, το σχήμα προώθησης ανιχνεύει ότι η εντολή load χρειάζεται τον source register r1, και θυμάται ότι η τιμή του r1 θα είναι στο τέλος του κύκλου αυτού διαθέσιμη, από την εντολή add. Έτσι, αντί να εμποδίσει την εντολή load (και όλες τις επόμενές της) να προχωρήσει στο pipeline, μέχρι ο r1 να γραφτεί στο στάδιο WB, το σχήμα προώθησης δίνει το δικαίωμα στην εντολή load να συνεχίσει, και ταυτόχρονα προωθεί κατευθείαν την τιμή του r1 από τον ενδιάμεσο καταχωρητή ALU/WB στις εισόδους της AGU. προώθηση ALU MEM: Κύκλος add r1,r1,r2 IF ID AGU MEM ALU WB instr1 IF ID AGU MEM ALU WB st r1,0(r3) IF ID - - AGU MEM ALU WB Με προώθηση: add r1,r1,r2 IF ID AGU MEM ALU WB instr1 IF ID AGU MEM ALU WB st r1,0(r3) IF ID AGU MEM ALU WB Στο παραπάνω παράδειγμα, οι εντολή instr1 είναι τέτοια ώστε να μην δημιουργεί κινδύνους στο pipeline. Στον 4ο κύκλο, κατά τον οποίον η εντολή store διαβάζει τον source register r1, το σχήμα προώθησης θυμάται ότι

6 η τιμή αυτή θα γίνει διαθέσιμη στο τέλος του 5ου κύκλου, από την εντολή add. Επιπλέον, επειδή ξέρει ότι η εντολή store δε θα χρησιμοποιήσει την τιμή του r1 κατά τη διάρκεια του 5ου κύκλου, της δίνει το δικαίωμα να συνεχίσει και να μην καθυστερήσει στον κύκλο αυτό. Στο τέλος του 5ου κύκλου, το σχήμα προώθησης προωθεί την τιμή του r1, από τον ενδιάμεσο καταχωρητή ALU/WB στις εισόδους της μονάδας MEM, και έτσι αποφεύγεται και η καθυστέρηση και στον κύκλο 6. προώθηση ALU ALU: Κύκλος add r1,r1,r2 IF ID AGU MEM ALU WB sub r3,r1,r2 IF ID AGU MEM ALU WB Με προώθηση: add r1,r1,r2 IF ID AGU MEM ALU WB sub r3,r1,r2 IF ID AGU MEM ALU WB Στον 3ο κύκλο, κατά τον οποίον η εντολή sub διαβάζει τον source register r1, το σχήμα προώθησης θυμάται ότι η τιμή αυτή θα γίνει διαθέσιμη στο τέλος του 5ου κύκλου, από την εντολή add. Επιπλέον, επειδή ξέρει ότι η εντολή sub δε θα χρησιμοποιήσει την τιμή του r1 κατά τη διάρκεια του 4ου και 5ου κύκλου, της δίνει το δικαίωμα να συνεχίσει και να μην καθυστερήσει στους κύκλους αυτούς. Στο τέλος του 5ου κύκλου, το σχήμα προώθησης προωθεί την τιμή του r1, από τον ενδιάμεσο καταχωρητή ALU/WB στις εισόδους της ALU, και έτσι αποφεύγεται και η καθυστέρηση και στον κύκλο 6. δ) Αν υπήρχε σχήμα προώθησης των αποτελεσμάτων από το στάδιο ΜΕΜ σε οποιοδήποτε από τα στάδια AGU, MEM, ALU, θα μειώνονταν οι καθυστερήσεις; Δικαιολογείστε την απάντησή σας για κάθε ένα από τα στάδια αυτά. Σε όποια περίπτωση πιστεύετε ότι θα υπήρχε μείωση ή αποφυγή των καθυστερήσεων, δώστε και ένα παράδειγμα όπου θα γίνεται εμφανές αυτό. προώθηση MEM AGU: Κύκλος ld r1,0(r2) IF ID AGU MEM ALU WB instr1 IF ID AGU MEM ALU WB ld r3,0(r1) IF ID - - AGU MEM ALU WB Με προώθηση: ld r1,0(r2) IF ID AGU MEM ALU WB instr1 IF ID AGU MEM ALU WB ld r3,0(r1) IF ID AGU MEM ALU WB Στο παραπάνω παράδειγμα, οι εντολή instr1 είναι τέτοια ώστε να μην δημιουργεί κινδύνους στο pipeline. Στον 4ο κύκλο, κατά τον οποίον η δεύτερη εντολή load διαβάζει τον source register r1, το σχήμα προώθησης θυμάται ότι η τιμή αυτή θα γίνει διαθέσιμη στο τέλος του 4ου κύκλου, από την πρώτη εντολή load. Στο τέλος του 4ου κύκλου, το σχήμα προώθησης προωθεί την τιμή που πρόκειται να αποθηκευτεί στον r1 (0(r2)), από τον ενδιάμεσο καταχωρητή MEM/ALU στις εισόδους της μονάδας AGU, και έτσι αποφεύγονται οι

7 καθυστερήσεις στους κύκλους 5 και 6. προώθηση MEM ΜΕΜ: Κύκλος ld r1,0(r2) IF ID AGU MEM ALU WB st r1,0(r4) IF ID AGU MEM ALU WB Με προώθηση: ld r1,0(r2) IF ID AGU MEM ALU WB st r1,0(r4) IF ID AGU MEM ALU WB Στον 3ο κύκλο, κατά τον οποίον η εντολή store διαβάζει τον source register r1, το σχήμα προώθησης θυμάται ότι η τιμή που θα αποθηκευτεί στον r1 (0(r2)) θα γίνει διαθέσιμη στο τέλος του 4ου κύκλου, από την εντολή load. Επιπλέον, επειδή ξέρει ότι η εντολή store δε θα χρησιμοποιήσει την τιμή του r1 κατά τη διάρκεια του 4ου κύκλου, της δίνει το δικαίωμα να συνεχίσει και να μην καθυστερήσει στον κύκλο αυτό. Στο τέλος του 4ου κύκλου, το σχήμα προώθησης προωθεί την τιμή που πρόκειται να αποθηκευτεί στον r1, από τον ενδιάμεσο καταχωρητή ΜΕΜ/ALU στις εισόδους της μονάδας MEM, και έτσι αποφεύγονται οι καθυστερήσεις. προώθηση MEM ALU: Εφόσον το στάδιο ΜΕΜ βρίσκεται πριν το στάδιο ALU στο pipeline, δε χρειάζεται να γίνει κάποιο είδος προώθησης. Στην ουσία, τα στάδια αυτά είναι συναπτά, επομένως η προώθηση, τυπικά συμβαίνει σε κάθε κύκλο, εκ κατασκευής του pipeline (το περιεχόμενο του καταχωρητή MEM/ALU προωθείται, ούτως ή άλλως, στις εισόδους της ALU).

8 Άσκηση 3 Υποθέτουμε ότι έχουμε αρχιτεκτονική σωλήνωσης (pipelining) αποτελούμενη από τα εξής στάδια: IF ID1 ID2 ΜΕΜ ALU WB. Τα στάδια IF, MEM, ALU και WB έχουν την ίδια λειτουργικότητα με αυτά της κλασικής σωλήνωσης του MIPS. Το ID1 χρησιμοποιείται για την ανάγνωση καταχωρητών, ενώ το ID2 χρησιμοποιείται για τον υπολογισμό τελικών διευθύνσεων μνήμης, για τον υπολογισμό διευθύνσεωνστόχων σε εντολές διακλάδωσης, καθώς και για τον έλεγχο συνθήκης σε εντολές διακλάδωσης υπό συνθήκη. Επιπλέον, οι αριθμητικές εντολές μπορούν να προσπελάσουν απευθείας μια θέση μνήμης. Όλα τα στάδια διαρκούν 1 κύκλο ρολογιού. α) Βρείτε όλες τις εξαρτήσεις στο ακόλουθο κομμάτι κώδικα καθώς και την κατηγορία στην οποία ανήκουν (true dependence, output dependence, anti-dependence, control dependence). Loop: (1) ld r1,50(r2) (2) add r3,r1,100(r4) (3) mul r6,r5,r3 (4) st r6,50(r2) (5) add r4,r4,#100 (6) sub r2,r2,#8 (7) bnez r2,loop (8) sub r1,r1,#100 True dependence Output dependence Anti-dependence Control dependence 2 από την 1 (στον r1) 3 από την 2 (στον r3) 4 από την 3 (στον r6) 7 από την 6 (στον r2) 8 από την 1 (στον r1) 8 από την 1 (στον r1) 5 από την 2 (στον r4) 6 από την 1 (στον r2) 6 από την 4 (στον r2) 8 από την 2 (στον r1) 1,2,3,4,5,6,8 από την 7 β) Υποθέστε ότι δεν υπάρχει σχήμα προώθησης. Πόσοι κύκλοι απαιτούνται για την εκτέλεση μιας επανάληψης του loop; Κύκλος ld r1,50(r2) IF ID1 ID2 M AL WB add r3,r1,100(r4) IF ID ID2 M AL WB mul r6,r5,r3 IF ID ID2 M AL WB st r6,50(r2) IF ID ID2 M AL WB add r4,r4,#100 IF ID1 ID2 M AL WB sub r2,r2,#8 IF ID1 ID2 M AL WB bnez r2,loop IF ID ID2 M ld r1,50(r2) IF Τα stalls στους κύκλους 4-6 οφείλονται στο ότι ο r1 για την εντολή add r3,r1,100(r4) (η ανάγνωση του οποίου γίνεται στο στάδιο ID1) γίνεται διαθέσιμος στο τέλος του κύκλου 6 (στάδιο WB). Τα stalls στους κύκλους 8-10 οφείλονται στο ότι ο r3 για την εντολή mul r6,r5,r3 γίνεται διαθέσιμος στο τέλος του κύκλου 10. Τα stalls στους κύκλους οφείλονται στο ότι o r6 για την εντολή st r6,50(r2) γίνεται διαθέσιμος στο τέλος του κύκλου 14. Τα stalls στους κύκλους οφείλονται στο ότι ο r2 για την εντολή bnez r2,loop γίνεται διαθέσιμος στο τέλος του κύκλου 20. Το δεύτερο στιγμιότυπο της εντολής ld αρχίζει να εκτελείται από τον

9 κύκλο 22, διότι η απόφαση για την διακλάδωση λαμβάνεται στο προηγούμενο κύκλο (στάδιο ID2). Συνολικά απαιτούνται 21 κύκλοι για την εκτέλεση μιας επανάληψης. γ) Υποθέστε τώρα ότι υπάρχουν όλα τα δυνατά σχήματα προώθησης. Πόσοι κύκλοι απαιτούνται για την εκτέλεση μιας επανάληψης του loop; Κύκλος ld r1,50(r2) IF ID1 ID2 M AL WB add r3,r1,100(r4) IF ID1 ID2 M AL WB mul r6,r5,r3 IF ID1 ID2 M AL WB st r6,50(r2) IF ID1 ID2 - M AL WB add r4,r4,#100 IF ID1 - ID2 M AL WB sub r2,r2,#8 IF - ID1 ID2 M AL WB bnez r2,loop IF ID1 - - ID2 M AL WB ld r1,50(r2) IF ID1 ID2 M AL WB Στο παραπάνω διάγραμμα, τα κανονικά βέλη δείχνουν τις προωθήσεις που γίνονται, ενώ τα διακεκομμένα δείχνουν τα στάδια όπου χρησιμοποιούνται οι προωθούμενες τιμές. Στην πρώτη προώθηση, η τιμή που θα αποθηκευτεί στον r1 (και η οποία γίνεται διαθέσιμη στο τέλος του 4 ου κύκλου) προωθείται στις εισόδους του ίδιου σταδίου (ΜΕΜ), έτσι ώστε να προχωρήσει στο pipeline και να χρησιμοποιηθεί όταν ακριβώς την χρειάζεται η add, δηλαδή στον μεθεπόμενο κύκλο, στο στάδιο ALU. Στη δεύτερη περίπτωση προώθησης, ο r3 προωθείται από την έξοδο της ALU σε κάποια από τις εισόδους της, ώστε να χρησιμοποιηθεί στον επόμενο κύκλο από την mul. Στην τρίτη περίπτωση, η τιμή του r6 προωθείται αμέσως μόλις γίνει διαθέσιμη (τέλος 7 ου κύκλου) στις εισόδους του σταδίου MEM. Δεν μπορεί να γίνει διαθέσιμη νωρίτερα, γι αυτό και αναγκαστικά εισάγεται stall στον 7 ο κύκλο για την εντολή st r6,50(r2) καθώς και όσες επόμενες βρίσκονται στο pipeline. Ομοίως, στην τέταρτη περίπτωση, η τιμή του r2 (την οποία χρειάζεται η bnez στο στάδιο ID2) δεν μπορεί να γίνει διαθέσιμη πριν τον τέλος του 11 ου κύκλου (στάδιο ALU), γι αυτό και εισάγονται 2 stalls για την bnez στους κύκλους 10 και 11. Μόλις η τιμή του r2 γίνεται διαθέσιμη, προωθείται από την έξοδο του σταδίου ALU στην είσοδο του ID2. Συνολικά απαιτούνται 12 κύκλοι για την εκτέλεση μιας επανάληψης. δ) Θεωρώντας την ίδια σωλήνωση με το ερώτημα γ, μπορείτε να επιτύχετε ακόμα καλύτερη επίδοση για την εκτέλεση μιας επανάληψης του loop; Αρχικά, θα αναδιατάξουμε τις εντολές του κώδικα ώστε να αποφύγουμε τα stalls που εισάγονται λόγω των εξαρτήσεων δεδομένων. Μια αναδιάταξη των εντολών η οποία διατηρεί τη σημασιολογία του κώδικα (σωστή ροή εντολών) και η οποία αποφεύγει την ανάγκη εισαγωγής stalls είναι η ακόλουθη: Loop: ld r1,50(r2) add r3,r1,100(r4) sub r2,r2,#8 mul r6,r5,r3 add r4,r4,#100 st r6,58(r2) bnez r2,loop

10 Η λογική είναι να «μπλέξουμε» τις «ανεξάρτητες» εντολές sub r2,r2,#8 και add r4,r4,#100, με τις 4 πρώτες εντολές ld, add, mul, st (οι οποίες αποτελούν στην ουσία μια αλυσίδα από εξαρτήσεις), ώστε εκεί που είχαμε stalls λόγω εξαρτήσεων να παρεμβάλλεται η εκτέλεση των ανεξάρτητων αυτών εντολών. Η παραπάνω μίξη των εντολών είναι τέτοια ώστε να μην προκαλεί stalls στο pipeline λόγω εξαρτήσεων, όπως φαίνεται κι από το ακόλουθο διάγραμμα χρονισμού. Κύκλος ld r1,50(r2) IF ID1 ID2 M AL WB add r3,r1,100(r4) IF ID1 ID2 M AL WB sub r2,r2,#8 IF ID1 ID2 M AL WB mul r6,r5,r3 IF ID1 ID2 M AL WB add r4,r4,#100 IF ID1 ID2 M AL WB st r6,58(r2) IF ID1 ID2 M AL WB bnez r2,loop IF ID1 ID2 M AL WB ld r1,50(r2) - - IF ID1 ID2 M AL WB Τώρα απαιτούνται συνολικά 9 κύκλοι για την εκτέλεση μιας επανάληψης. Το ερώτημα που τίθεται είναι, μπορούμε να επιτύχουμε κάτι καλύτερο από αυτό; Με άλλα λόγια, για το δεδομένο pipeline, μπορούμε να εξαλείψουμε τα stalls στους κύκλους 8,9 που οφείλονται στο γεγονός ότι η απόφαση για μια διακλάδωση υπό συνθήκη λαμβάνεται στο στάδιο ID2; Για να το επιτύχουμε αυτό, θα χρησιμοποιήσουμε την τεχνική του delayed branch. Η λογική αυτής της τεχνικής είναι να χρησιμοποιήσουμε τους κύκλους εκείνους κατά τους οποίους το pipeline «παγώνει» μέχρι να βγει η απόφαση για μια διακλάδωση («branch delay slots»), για να δρομολογήσουμε εντολές οι οποίες είναι σίγουρο ότι θα εκτελεστούν, είτε αν η διακλάδωση είναι TAKEN είτε είναι NOT TAKEN. Στην περίπτωσή μας, έχουμε 2 branch delay slots, επομένως αυτό που κάνουμε είναι να εκτελέσουμε την εντολή διακλάδωσης 2 εντολές νωρίτερα. Ο νέος κώδικας έχει ως εξής: Loop: ld r1,50(r2) add r3,r1,100(r4) sub r2,r2,#8 mul r6,r5,r3 bnez r2,loop add r4,r4,#100 st r6,58(r2) Το διάγραμμα χρονισμού είναι το ακόλουθο: Κύκλος ld r1,50(r2) IF ID1 ID2 M AL WB add r3,r1,100(r4) IF ID1 ID2 M AL WB sub r2,r2,#8 IF ID1 ID2 M AL WB mul r6,r5,r3 IF ID1 ID2 M AL WB bnez r2,loop IF ID1 - ID2 M AL WB add r4,r4,#100 IF - ID1 ID2 M AL WB st r6,58(r2) IF ID1 ID2 M AL WB ld r1,50(r2) IF ID1 ID2 M AL WB

11 Όπως βλέπουμε, τα stalls που είχαμε λόγω της εντολής διακλάδωσης εξαλείφθηκαν, ενώ οι κύκλοι για την εκτέλεση μιας επανάληψης μειώθηκαν στους 8. Όμως η πρώιμη εκτέλεση της bnez οδηγεί σε RAW κίνδυνο δεδομένων (εξαιτίας της εξάρτησής της από την sub r2,r2,#8) ο οποίος αντιμετωπίζεται με stall στον κύκλο 7. Για να αποφύγουμε το stall αυτό, ανεβάζουμε την (ούτως ή άλλως ανεξάρτητη) sub μια θέση παραπάνω απ ό,τι ήταν. Ο νέος κώδικας είναι ο εξής: Loop: ld r1,50(r2) sub r2,r2,#8 add r3,r1,100(r4) mul r6,r5,r3 bnez r2,loop add r4,r4,#100 st r6,58(r2) Το διάγραμμα χρονισμού είναι το ακόλουθο: Κύκλος ld r1,50(r2) IF ID1 ID2 M AL WB sub r2,r2,#8 IF ID1 ID2 M AL WB add r3,r1,100(r4) IF ID1 ID2 M AL WB mul r6,r5,r3 IF ID1 ID2 M AL WB bnez r2,loop IF ID1 ID2 M AL WB add r4,r4,#100 IF ID1 ID2 M AL WB st r6,58(r2) IF ID1 ID2 M AL WB ld r1,50(r2) IF ID1 ID2 M AL WB Όπως βλέπουμε, όλα τα stalls έχουν εξαλειφθεί, ενώ απαιτούνται πλέον 7 κύκλοι για την εκτέλεση μιας επανάληψης.

12 Άσκηση 4 Θεωρήστε ένα σύστημα μνήμης με μία 4-way set associative cache μεγέθους 256ΚΒ, και με cache line 8 λέξεων. Το μέγεθος της λέξης είναι 32 bits. Η μικρότερη μονάδα δεδομένων που μπορεί να διευθυνσιοδοτηθεί είναι το 1 byte, ενώ οι διευθύνσεις μνήμης έχουν εύρος 64 bit. 1) Για τα επιμέρους πεδία στα οποία χωρίζεται μία διεύθυνση μνήμης σε μία τέτοια οργάνωση cache, υπολογίστε τον αριθμό των bits του καθενός. Παρουσιάστε ένα διάγραμμα που να δείχνει πώς διαχωρίζεται η διεύθυνση στα πεδία αυτά, και εξηγείστε τη σημασία του καθενός. Τα επιμέρους πεδία στα οποία χωρίζεται μία διεύθυνση μνήμης σε μία set associative cache παρουσιάζονται στο παραπάνω διάγραμμα. Ο πρώτος διαχωρισμός που γίνεται είναι ανάμεσα στη διεύθυνση του block και στο block offset, το οποίο εκφράζει τη θέση του περιεχομένου της διεύθυνσης μνήμης μέσα στο block. H διεύθυνση του block διαχωρίζεται περαιτέρω στο tag και στο index. Το index υποδηλώνει το σύνολο της cache στο οποίο απεικονίζεται το block. To πεδίο tag χρησιμοποιείται για να καθορίσουμε αν το block βρίσκεται στην cache (hit), συγκρίνοντάς το με τα tags όλων των blocks του συνόλου του. Στην περίπτωσή μας, το μέγεθος ενός block είναι 8*4=32 bytes. Επομένως, αφού η μικρότερη μονάδα που μπορεί να διευθυνσιοδοτηθεί είναι το 1 byte, για το block offset θα απαιτούνται log 2 32 = 5 bits. Κάθε σύνολο στην cache αποτελείται από 4*32 bytes, οπότε υπάρχουν συνολικά 256ΚΒ/(4*32) = 2048 σύνολα. Έτσι το μέγεθος του index είναι log = 11 bits. Τα υπόλοιπα =48 bits χρησιμοποιούνται για το tag. 2) Σε ποιες θέσεις της cache μπορεί να απεικονιστεί το byte στη διεύθυνση μνήμης ; Είναι: = η οποία διασπάται στα επιμέρους πεδία tag, index, block offset ως εξής: [ ] [ ] [01000]. Καταρχήν το byte θα βρίσκεται στην 8η θέση του block. To block αυτό, μπορεί μετέπειτα να απεικονιστεί σε οποιαδήποτε από τις 4 θέσεις του συνόλου = 156 της cache μιας και αυτή είναι set assosiative. 3) Ποιες θέσεις μνήμης μπορούν να απεικονιστούν στο σύνολο 244 της cache; Στο σύνολο 244 απεικονίζονται όλες οι διευθύνσεις που τα bits τους [15:5] (index) ταυτίζονται με το = ) Τι ποσοστό του συνολικού μεγέθους της cache αφιερώνεται για τα bits του tag; Ένα cache block αποτελείται από 256 bits δεδομένων, και του αντιστοιχεί 1 tag. Επομένως (έστω ότι δε λαμβάνουμε υπόψη το valid bit), το ποσοστό του μεγέθους της cache που αφιερώνεται για τα bits του tag είναι 48/(48+256) = 15.78%.

13 Άσκηση 5 Έχουμε ένα σύστημα που αποτελείται από έναν επεξεργαστή με in-oder εκτέλεση εντολών, συχνότητα λειτουργίας 1.5GHz και CPI ίσο με 1 (στην περίπτωση όπου δεν υπάρχουν προσβάσεις στη μνήμη). Οι μόνες εντολές που διαβάζουν/γράφουν δεδομένα από/προς τη μνήμη, είναι loads (40% κατά μέσο όρο επί του συνόλου των εντολών) και stores (10% επί του συνόλου των εντολών). Η ιεραρχία μνήμης αποτελείται από τα εξής στοιχεία: - Κρυφή μνήμη εντολών επιπέδου 1 (L1I): direct mapped, μεγέθους 32ΚΒ, ποσοστό αστοχίας 5%, με μπλοκς των 64 bytes. O χρόνος που η L1I ικανοποεί ένα hit ισούται με 2 nsec. - Κρυφή μνήμη δεδομένων επιπέδου 1 (L1D): direct mapped, write-through, no-write-allocate, μεγέθους 32ΚΒ, ποσοστό αστοχίας 8%, με μπλοκς των 64 bytes. O χρόνος που η L1D ικανοποεί ένα hit ισούται με 2 nsec. - Για να μειωθούν τα write-stalls, δηλαδή οι καθυστερήσεις που οφείλονται στο ότι ο επεξεργαστής πρέπει να περιμένει να ολοκληρωθούν οι write-through εγγραφές της L1D, το σύστημα μνήμης διαθέτει έναν ειδικό buffer εγγραφής, που επιτρέπει στον επεξεργαστή να συνεχίσει μόλις τα δεδομένα εγγραφούν σε αυτόν. Με αυτό τον τρόπο γίνεται επικάλυψη της εκτέλεσης και της εγγραφής στη μνήμη. To 96% των εγγραφών της L1D, βρίσκουν ελεύθερη θέση στον buffer άμεσα. Το υπόλοιπο 4%, πρέπει να περιμένουν μέχρι να ελευθερωθεί κάποια θέση στον buffer. Σε αυτή την περίπτωση, ο buffer κάνει στην ουσία μία αίτηση στην L2 για να στείλει εκεί τα δεδομένα κάποιας θέσης του, και η θέση αυτή αποδεσμεύεται μόλις η L2 είναι έτοιμη να δεχτεί τα δεδομένα αυτά. Αν δεν υπάρχουν ελεύθερες θέσεις στον buffer, ο επεξεργαστής θα πρέπει να περιμένει όποτε κάνει κάποια εγγραφή. - Ενοποιημένη κρυφή μνήμη εντολών και δεδομένων επιπέδου 2 (L2): write-back, write-allocate, μεγέθους 1024 ΚΒ, με μπλοκς των 64 bytes. Ο χρόνος που η L2 ικανοποιεί ένα hit είναι 22nsec. Αυτός είναι και ο χρόνος εγγραφής μιας λέξης στην L2. To ποσοστό επιτυχίας της είναι 84%. Επιπλέον, το 50% όλων των μπλοκς της που αντικαθιστώνται είναι dirty. Οι διευθύνσεις στο σύστημά μας έχουν εύρος 64 bits. Ο χρόνος πρόσβασης σε μία διεύθυνση της κύριας μνήμης (είτε λόγω ανάγνωσης είτε λόγω write-back ) είναι 50nsec. Ο δίαυλος δεδομένων μεταξύ μνήμης-επεξεργαστή έχει εύρος 64 bits, λειτουργεί στα 100 ΜHz, και μπορεί να μεταφέρει 64 bits σε κάθε κύκλο διαύλου. Σημείωση: στα ερωτήματα που ακολουθούν, όπου ζητούνται ποσοστά αστοχίας για κάποια κρυφή μνήμη, δώστε τα τοπικά ποσοστά (δηλαδή, από την οπτική γωνία της μνήμης αυτής). Α) Υπολογισμός μέσου χρόνου πρόσβασης στη κύρια μνήμη για ανάγνωση εντολών: i) Για την ανάγνωση εντολών, δώστε τις τιμές για τα ακόλουθα μεγέθη: χρόνος ικανοποίησης hit από την L1: 2 nsec ποσοστό αστοχίας στην L1: 5% χρόνος ικανοποίησης hit από την L2: 22 nsec ποσοστό αστοχίας στην L2: 16% ii) Δώστε έναν τύπο που να υπολογίζει την ποινή αστοχίας στην L2, και υπολογίστε την τιμή της για την περίπτωση που εξετάζουμε. Ως ποινή αστοχίας στην L2, εννοούμε τον χρόνο από τη στιγμή που η L2 ζητήσει τα δεδομένα που δεν βρέθηκαν σε αυτήν, μέχρι τα δεδομένα να έρθουν σε αυτήν από την κύρια μνήμη. Για το υποερώτημα αυτό, λάβετε υπόψη σας το γεγονός ότι το 50% όλων των μπλοκς της που αντικαθιστώνται είναι dirty. Ποινή αστοχίας στην L2 = χρόνος πρόσβασης στη θέση μνήμης όπου βρίσκονται τα ζητούμενα δεδομένα + χρόνος μεταφοράς στην L2 του block στo οποίo περιέχονται τα ζητούμενα δεδομένα. Ο ρυθμός μεταφοράς στο δίαυλο δεδομένων είναι 64 bits/κύκλο διαύλου = 64 bits / 10 nsec = 8 bytes / 10 nsec = 0.8 bytes / nsec. Ο χρόνος για τη μεταφορά ενός cache block στην L2 ισούται με 64 bytes/0.8 bytes = 80 nsec.

14 Επομένως, η ποινή αστοχίας στην L2 ισούται με 50 nsec + 80 nsec = 130 nsec. Όμως, όταν ένα block έρχεται στην L2, έχει πιθανότητα 50% να αντικαταστήσει ένα dirty block, και στην περίπτωση που γίνει αυτό θα πρέπει να περιμένει μέχρι το dirty block γίνει write-back στην κύρια μνήμη πριν γραφτεί στη θέση του. To write-back, χρειάζεται κι αυτό άλλα 130 nsec για να ολοκληρωθεί. Επομένως, κατά μέσο όρο, η ποινή αστοχίας στην L2 ισούται με %*130 = 195 nsec. iii) Χρησιμοποιώντας τα μεγέθη που ζητούνται στα i και ii, δώστε έναν τύπο που να υπολογίζει τον μέσο χρόνο πρόσβασης στη μνήμη. Υπολογίστε την τιμή του για το σύστημα μνήμης που εξετάζουμε. Μέσος χρόνος πρόσβασης = (χρόνος L1I hit) + (%αστοχίας L1I)*(χρόνος L2 hit) + (%αστοχίας L1I)*(%αστοχίας L2)*(ποινή αστοχίας L2) = 2nsec + 5%*22nsec + 5%*16%*195nsec = = 4.66 nsec. Β) Υπολογισμός μέσου χρόνου πρόσβασης στη κύρια μνήμη για ανάγνωση δεδομένων: i) Για την ανάγνωση δεδομένων, δώστε την τιμή του ποσοστού αστοχίας στην L1: 8% ii) Δώστε έναν τύπο που να υπολογίζει τον μέσο χρόνο πρόσβασης στην μνήμη. Υπολογίστε την τιμή του για το σύστημα μνήμης που εξετάζουμε. Μέσος χρόνος πρόσβασης = (χρόνος L1D hit) + (%αστοχίας L1D)*(χρόνος L2 hit) + (%αστοχίας L1D)*(%αστοχίας L2)*(ποινή αστοχίας L2) = 2nsec + 8%*22nsec + 8%*16%*195nsec = = nsec. Γ) Υπολογισμός μέσου χρόνου πρόσβασης στη κύρια μνήμη για εγγραφή δεδομένων: i) Για την εγγραφή δεδομένων, υπολογίστε την τιμή της ποινής αστοχίας στην L2. Εφόσον η L2 είναι write-allocate, στην περίπτωση ενός write miss θα πρέπει να γίνουν στην ουσία οι ίδιες ενέργειες με την περίπτωση ενός read miss, να φορτωθεί δηλαδή το block από την κύρια μνήμη στην L2. Επομένως η ποινή αστοχίας για την εγγραφή ισούται με την ποινή αστοχίας για την ανάγνωση, δηλαδή 195 nsec. ii) Υπολογίστε τον μέσο χρόνο εγγραφής των δεδομένων μιας θέσης του buffer εγγραφής στην L2. To ποσοστό επιτυχίας της L2 ισούται με 84%, πράγμα που σημαίνει ότι το 16% των εγγραφών του buffer θα αστοχούν στην L2 και θα βαρύνονται με την ποινή αστοχίας της L2. Επομένως, ο ζητούμενος μέσος χρόνος εγγραφής ισούται με: (χρόνος L2 hit) + (%αστοχίας L2)*(ποινή αστοχίας L2) = 22nsec + 16%*195nsec = 53.2 nsec iii) Χρησιμοποιώντας τα προηγούμενα μεγέθη, δώστε έναν τύπο και υπολογίστε τον μέσο χρόνο πρόσβασης στη μνήμη για εγγραφές δεδομένων. Σημείωση: λάβετε υπόψη σας τις 2 περιπτώσεις για την κατάσταση του buffer εγγραφής (γεμάτος ή όχι). Στο 96% των περιπτώσεων ο buffer εγγραφής θα έχει ελεύθερη θέση, οπότε ο επεξεργαστής μπορεί να συνεχίσει, έχοντας περιμένει συνολικά 2nsec που απαιτούνται για πρόσβαση στην L1. Στο υπόλοιπο 4% των περιπτώσεων, ο buffer εγγραφής θα είναι γεμάτος, οπότε ο επεξεργαστής θα πρέπει να περιμένει επιπρόσθετα για τον χρόνο που απαιτείται για να εγγραφούν τα δεδομένα μιας θέσης του buffer εγγραφής στην L2. Δηλαδή, μέσος χρόνος πρόσβασης στη μνήμη = χρόνος πρόσβασης στην L1 + 4%*(μέσος χρόνος εγγραφής μιας θέσης του buffer εγγραφής στην L2) = 2nsec + 4%*53.2nsec = nsec.

15 Άσκηση 6 Θεωρείστε το ακόλουθο κομμάτι κώδικα: 1: int x,y; 2: float tmp1, tmp2, arr1[64][64], arr2[64][64]; 3: for ( x = 0; x < 64; x++ ) 4: { 5: for ( y = 0; y < 64; y++ ) 6: tmp1 -= arr1[x][y]; 7: 8: for ( y = 0; y < 32; y++ ) 9: tmp2 -= arr2[x][2*y]; 10: 11: } Κάνουμε τις ακόλουθες υποθέσεις: - Οι τύποι δεδομένων int και float είναι μεγέθους 4 bytes. - Όλες οι μεταβλητές, πλην των στοιχείων των 2 πινάκων, μπορούν να αποθηκευτούνσε καταχωρητές του επεξεργαστή, οπότε οποιαδήποτε αναφορά σε αυτές δεν συνεπάγεται προσπέλαση στην κρυφή μνήμη. Επιπλέον, δε λαμβάνονται υπόψη οι προσπελάσεις των εντολών στη μνήμη (υποθέτουμε ότι έχουμε τέλεια κρυφή μνήμη εντολών). - Η κρυφή μνήμη δεδομένων είναι πλήρως συσχετιστική, με LRU πολιτική αντικαστάστασης, αποτελούμενη από 32 γραμμές, με κάθε γραμμή να αποτελείται από 16 bytes. Αρχικά, είναι εντελώς άδεια. - Οι πίνακες είναι αποθηκευμένοι στην κύρια μνήμη κατά γραμμές ( row-major layout ). Επιπλέον, είναι ευθυγραμμισμένοι ώστε το πρώτο στοιχείο του καθενός να απεικονίζεται στην αρχή μιας γραμμής της κρυφής μνήμης. - H εκτέλεση των εντολών γίνεται σειριακά. Ο χρόνος που απαιτείται για να εκτελεστεί κάθε φορά κάποια από τις γραμμές 3,5 και 8 ισούται με 5 κύκλους. Οι γραμμές 6 και 9 χρειάζονται 12 κύκλους η κάθε μία, και 50 κύκλους επιπλέον αν σημειωθεί κάποια αστοχία στην κρυφή μνήνη δεδομένων. - To σύνολο εντολών της αρχιτεκτονικής του επεξεργαστή διαθέτει μία ειδική εντολή prf(*addr). H εντολή αυτή προ-φορτώνει στην κρυφή μνήμη ολόκληρο το μπλοκ που περιέχει τη λέξη που βρίσκεται στη διεύθυνση μνήμης addr. Η εντολή εκτελείται σε 1 κύκλο από τον επεξεργαστή, ενώ από το σημείο αυτό και έπειτα, η προφόρτωση των δεδομένων γίνεται παράλληλα και ανεξάρτητα από την υπόλοιπη εκτέλεση του προγράμματος, χωρίς να προκαλείται κάποιο stall στο pipeline του επεξεργαστή. Με άλλα λόγια, ο επεξεργαστής μπορεί να συνεχίσει με την εκτέλεση των εντολών που ακολουθούν. Αν τα δεδομένα που ζητάει η εντολή prf δεν είναι στην κρυφή μνήμη, τότε θεωρούμε ότι απαιτούνται 50 κύκλοι μέχρι να μεταφερθούν σε αυτήν. α. Πόσοι κύκλοι απαιτούνται για την εκτέλεση του παραπάνω τμήματος κώδικα αν δεν χρησιμοποιήσουμε προφόρτωση δεδομένων; Για την γραμμή (3), απαιτούνται συνολικά 64*5 = 320 κύκλοι Για την γραμμή (5), απαιτούνται συνολικά 64*64*5 = κύκλοι Για την γραμμή (6), απαιτούνται συνολικά 64*64* *64*50/4 = κύκλοι Ο δεύτερος όρος αντιστοιχεί στο γεγονός ότι, ανά 4 διαδοχικές αναφορές στο arr1[x][y] έχουμε cache miss. Το miss αυτό προκαλείται από την πρώτη αναφορά (π.χ. arr1[0][0]), εφόσον η cache είναι αρχικά άδεια. Οι επόμενες 3 αναφορές (π.χ. arr1[0][1], arr1[0][2], arr1[0][3]) δεν αστοχούν στην cache, επειδή τα στοιχεία αυτά φορτώθηκαν με την πρώτη αναφορά, διότι βρίσκονται στην ίδια cache line με το πρώτο (λόγω του ότι βρίσκονται σε διαδοχικές θέσεις μνήμης εξαιτίας του row-major layout). Για την γραμμή (8), απαιτούνται συνολικά 64*32*5 = κύκλοι

16 Για την γραμμή (9), απαιτούνται συνολικά 64*32* *32*50/2 = κύκλοι Κι εδώ ισχύει το ίδιο με πριν, μόνο που τώρα έχουμε miss και φόρτωμα νέας cache line ανά 2 διαδοχικές αναφορές στο arr2[x][2*y] (δηλαδή γίνονται π.χ. διαδοχικά οι αναφορές arr2[0][0], arr2[0][2], arr2[0][4], arr2[0][6], εκ των οποίων οι 2 πρώτες ανήκουν στην ίδια cache line ενώ οι 2 επόμενες στην επόμενη). Συνολικά, απαιτούνται = κύκλοι. β. Θεωρείστε την περίπτωση εισαγωγής εντολών prf στα δύο εσωτερικότερα loops του κώδικα. Εξηγείστε γιατί είναι απαραίτητο σε αυτή την περίπτωση να εφαρμόσουμε στα loops αυτά την τεχνική του ξεδιπλώματος βρόχων ( loop unrolling ). Ποιος είναι ο ελάχιστος αριθμός φορών που χρειάζεται να ξεδιπλώσουμε κάθε ένα από τα 2 loops για το σκοπό αυτό; Μία cache line αποτελείται από 16 bytes, οπότε μπορεί να χωρέσει 4 floats. Eπομένως, μια εντολή prf, θα φορτώσει 4 διαδοχικά στοιχεία του πίνακα στην cache. Έτσι, για το 1ο εσωτερικό loop του κώδικα, χρειάζεται στην ουσία να κάνουμε προφόρτωση κάθε 4 επαναλήψεις, οπότε αρκεί να ξεδιπλώσουμε το loop 4 φορές. Για το 2ο εσωτερικό loop, χρειάζεται να κάνουμε προφόρτωση κάθε 2 επαναλήψεις, οπότε αρκεί να το ξεδιπλώσουμε 2 φορές. γ. Εφαρμόστε unrolling στα εσωτερικά loops, για τον αριθμό φορών που απαντήσατε στο προηγούμενο ερώτημα. Εισάγετε τον μικρότερο δυνατό αριθμό εντολών prf στα κατάλληλα σημεία του ξεδιπλωμένου κώδικα, ώστε να ελαχιστοποιηθεί ο χρόνος εκτέλεσης. (Σημείωση: μην λάβετε ειδική μέριμνα για τις αρχικές επαναλήψεις των loops) Ο κώδικας που προκύπτει μετά το ξεδίπλωμα είναι ο ακόλουθος: 1: int x,y; 2: float tmp1, tmp2, arr1[64][64], arr2[64][64]; 3: for ( x = 0; x < 64; x++ ) 4: { 5: for ( y = 0; y < 64; y+=4 ) { 6: prf(arr1[x][y+4]); 7: tmp1 -= arr1[x][y]; 8: tmp1 -= arr1[x][y+1]; 9: tmp1 -= arr1[x][y+2]; 10: tmp1 -= arr1[x][y+3]; 11: } 12: 13: for ( y = 0; y < 32; y+=2 ) { 14: prf(arr2[x][2*(y+4)]); 15: tmp2 -= arr2[x][2*y]; 16: tmp2 -= arr2[x][2*(y+1)]; 17: 18: } Για το πρώτο loop, η prf προφορτώνει δεδομένα του arr1 που θα χρειαστούν στην επόμενη επανάληψη. Τα δεδομένα αυτά θα έχουν φτάσει όντως στην cache πριν γίνει στην επόμενη επανάληψη η πρώτη αναφορά (arr1[x][y]) σε αυτά. Δηλαδή, αν υποθέσουμε ότι είμαστε στην επανάληψη x=0, y=8 και στον κύκλο k, τότε: k: prf(arr1[0][12]); /*τα δεδομένα θα φτάσουν στην cache στον κύκλο k+50 */ k+1: tmp1 -= arr1[0][8]; /*τα δεδομένα έχουν προφορτωθεί από την προηγούμενη επανάληψη,*/ k+13: tmp1 -= arr1[0][9]; /*οπότε κάθε μία από τις γραμμές 7-10 θα εκτελεστεί σε 12 κύκλους*/ k+25: tmp1 -= arr1[0][10]; k+37: tmp1 -= arr1[0][11];

17 k+49: for(...) k+54: prf(arr1[0][16]); k+55: tmp1 -= arr1[0][12]; /*η cache line που περιέχει τα στοιχεία arr1[0][12],...,arr1[0][15] */ /*βρίσκεται ήδη στην cache από τον κύκλο k+50*/ Για το δεύτερο loop, η prf προφορτώνει δεδομένα του arr2 που θα χρειαστούν στην μεθεπόμενη επανάληψη, διότι το σώμα το 2ου loop, με τις 2 φορές που έχει ξεδιπλωθεί, θα εκτελεστεί σε λιγότερο χρόνο απ'ό,τι χρειάζεται για να φέρει η prf τα δεδομένα. Αντιθέτως, 2 συνεχόμενες επαναλήψεις του loop, διαρκούν περισσότερο από το χρόνο αυτό (λαμβάνοντας υπόψη, όπως και προηγουμένως, το χρόνο για να εκτελεστεί η ίδια η prf και το χρόνο για να εκτελεστούν οι εντολές ελέγχου του loop), οπότε η τρίτη κατά σειρά επανάληψη θα βρει έτοιμα στην cache τα δεδομένα που ζήτησε η prf στην πρώτη επανάληψη. δ. Πόσοι κύκλοι απαιτούνται τώρα για την εκτέλεση του κώδικα που προέκυψε από το προηγούμενο ερώτημα; Υπολογίστε το ποσοστό % της βελτίωσης του χρόνου εκτέλεσης ( speedup ) σε σχέση με τον αρχικό, μη βελτιστοποιημένο κώδικα. Για τη γραμμή (3), απαιτούνται συνολικά 64*5 κύκλοι Για τη γραμμή (5), απαιτούνται συνολικά 64*16*5 κύκλοι Για τη γραμμή (6), απαιτούνται συνολικά 64*16*1 κύκλοι Για τη γραμμή (7), απαιτούνται συνολικά 64*1*(12+50) + 64*15*12 κύκλοι Αυτό συμβαίνει διότι κάθε πρώτη επανάληψη του εσωτερικού loop, θα έχουμε cache miss, αφού προφορτώνουμε δεδομένα μόνο για τις επόμενες επαναλήψεις. Κάθε μία από τις γραμμές (8)-(10), απαιτούν συνολικά 64*16*12 κύκλους. Για τη γραμμή (13), απαιτούνται συνολικά 64*16*5 κύκλοι Για τη γραμμή (14), απαιτούνται συνολικά 64*16*1 κύκλοι Για τη γραμμή (15), απαιτούνται συνολικά 64*2*(12+50) + 64*14*12 κύκλοι Ομοίως, στις 2 πρώτες επαναλήψεις του 2ου εσωτερικού loop θα έχουμε misses στις αναφορές που κάνει η γραμμή (15). Στις επόμενες επαναλήψεις, οι αναφορές θα βρίσκουν τα δεδομένα προφορτωμένα στην cache. Για τη γραμμή (16), απαιτούνται συνολικά 64*16*12 κύκλοι Συνολικά, οι κύκλοι που απαιτούνται είναι Το speedup σε σχέση με τον αρχικό κώδικα είναι /95936 = 2.16% ε. Υπάρχει άλλος τρόπος, εκτός του loop unrolling, να γραφτεί το αρχικό πρόγραμμα, ώστε να επιτυγχάνεται μεν ο σκοπός που εξυπηρετεί το unrolling, αλλά χρησιμοποιώντας αυτή τη φορά λιγότερες εντολές σε σχέση με τον κώδικα του ερωτήματος γ ; Μπορούμε να χρησιμοποιήσουμε εντολές if ώστε να καθορίσουμε ανά πόσες επαναλήψεις πρέπει να γίνεται η προφόρτωση δεδομένων, χωρίς να ξεδιπλώσουμε το σώμα των loops, χρησιμοποιώντας έτσι λιγότερες εντολές στο πρόγραμμα. 1: int x,y; 2: float tmp1, tmp2, arr1[64][64], arr2[64][64]; 3: for ( x = 0; x < 64; x++ ) 4: { 5: for ( y = 0; y < 64; y++ ) { 6: if(y%4 == 0) 7: prf(arr1[x][y+4]; 8: tmp1 -= arr1[x][y];

18 9: } 10: 11: for ( y = 0; y < 32; y++ ){ 12: if(y%2 == 0) 13: prf(arr2[x][2*(y+4)]; 14: tmp2 -= arr2[x][2*y]; 15: 16: }

Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών

Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών ακ. έτος 2006-2007 Νεκτάριος Κοζύρης Νίκος Αναστόπουλος {nkoziris,anastop}@cslab.ece.ntua.gr Άσκηση 1: pipelining Εξετάζουμε την εκτέλεση του παρακάτω

Διαβάστε περισσότερα

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ε Ρ Γ Α Σ Τ ΗΡ ΙΟ Υ ΠΟΛΟΓΙΣ Τ Ι Κ Ω Ν Σ Υ Σ Τ ΗΜΑΤΩΝ w w w. c s l ab.

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ε Ρ Γ ΑΣ Τ ΗΡ ΙΟ Υ ΠΟΛΟΓΙΣ Τ ΙΚΩΝ Σ Υ Σ Τ ΗΜΑΤΩΝ w w w. c s l ab.ece.ntua.gr

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

AΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ (5 ο εξάμηνο) ΕΠΑΝΑΛΗΠΤΙΚΗ ΕΞΕΤΑΣΗ (ΦΘΙΝΟΠΩΡΟ 2007) ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2 ΩΡΕΣ 30 ΛΕΠΤΑ

AΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ (5 ο εξάμηνο) ΕΠΑΝΑΛΗΠΤΙΚΗ ΕΞΕΤΑΣΗ (ΦΘΙΝΟΠΩΡΟ 2007) ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2 ΩΡΕΣ 30 ΛΕΠΤΑ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ε Ρ Γ Α Σ Τ ΗΡ ΙΟ Υ ΠΟΛΟΓΙΣ Τ Ι Κ Ω Ν Σ Υ Σ Τ ΗΜΑΤΩΝ w w w. c s l ab.

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΑΡΧΙΤΕΚΤΟΝΙΚΗ

Διαβάστε περισσότερα

Άσκηση 1η. Θεωρήστε ένα σύστημα μνήμης με μία cache: 4 way set associative μεγέθους 256ΚΒ,

Άσκηση 1η. Θεωρήστε ένα σύστημα μνήμης με μία cache: 4 way set associative μεγέθους 256ΚΒ, Ασκήσεις Caches Άσκηση 1η Θεωρήστε ένα σύστημα μνήμης με μία cache: 4 way set associative μεγέθους 256ΚΒ, με cache line 8 λέξεων. Χαρακτηριστικά συστήματος μνήμης: μέγεθος της λέξης είναι 32 bits. 1 byte

Διαβάστε περισσότερα

Ασκήσεις Caches

Ασκήσεις Caches Ασκήσεις Caches 1 Άσκηση 1η Θεωρήστε ένα σύστημα μνήμης με μία cache: 4-way set associative μεγέθους 256ΚΒ, με cache line 8 λέξεων. Χαρακτηριστικά συστήματος μνήμης: μέγεθος της λέξης είναι 32 bits. 1

Διαβάστε περισσότερα

Ασκήσεις Caches

Ασκήσεις Caches Ασκήσεις Caches 1 Άσκηση 1η Θεωρήστε ένα σύστημα μνήμης με μία cache: 4-way set associative μεγέθους 256ΚΒ, με cache line 8 λέξεων. Χαρακτηριστικά συστήματος μνήμης: μέγεθος της λέξης είναι 32 bits. 1

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ: ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ονοματεπώνυμο: ΑΜ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ (τμήμα Μ - Ω) Κανονική εξεταστική Φεβρουαρίου

Διαβάστε περισσότερα

3 η ΑΣΚΗΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΥΠΟΛΟΓΙΣΤΩΝ

3 η ΑΣΚΗΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ntua.gr 3 η ΑΣΚΗΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ

Διαβάστε περισσότερα

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw.

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw. ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΡ ΙΟ ΥΠΟΛΟΟ ΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua. gr ΑΡΧΙΤΕΚΤΟΝΙΚΗ

Διαβάστε περισσότερα

Ασκήσεις Caches. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Ασκήσεις Caches. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr Ασκήσεις Caches http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

Θέµατα Φεβρουαρίου

Θέµατα Φεβρουαρίου Θέµατα Φεβρουαρίου 2-2 cslab@ntua 2- Θέµα ο (3%): Έστω η παρακάτω ακολουθία εντολών που χρησιµοποιείται για την αντιγραφ από µια θέση µνµης σε µια άλλη (memory-to-memory copy): lw $2, ($) sw $2, 2($) i)

Διαβάστε περισσότερα

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n;

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n; Άσκηση 1 η Μέρος Α Ζητούμενο: Δίνεται το παρακάτω πρόγραμμα σε C καθώς και μια μετάφραση του σε assembly MIPS. Συμπληρώστε τα κενά. Σας υπενθυμίζουμε ότι ο καταχωρητής $0 (ή $zero) είναι πάντα μηδέν. int

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

Pipeline: Ένα παράδειγμα από.τη καθημερινή ζωή. 30 min κάθε «φάση»

Pipeline: Ένα παράδειγμα από.τη καθημερινή ζωή. 30 min κάθε «φάση» Pipeline: Ένα παράδειγμα από.τη καθημερινή ζωή 1. Πλυντήριο 2. Στεγνωτήριο 3. Δίπλωμα 4. αποθήκευση Σειριακή προσέγγιση για 4 φορτία = 8h 30 min κάθε «φάση» Pipelined προσέγγιση για 4 φορτία = 3.5h Το

Διαβάστε περισσότερα

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση Αρης Ευθυμίου Απόδοση απλής υλοποίησης Υλοποίηση ενός κύκλου είναι πολύ αργή κάθε κύκλος είναι τόσο μεγάλος όσο χρειάζεται

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

Διαβάστε περισσότερα

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 2 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Καθυστερήσεις και Εκκενώσεις Εντολών

Διαβάστε περισσότερα

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering Οργάνωση και Σχεδίαση Η/Y (HY232) Εργαστήριο 8 Χειμερινό Εξάμηνο 2016-2017 1. Προσομοίωση λειτουργίας ιεραρχίας

Διαβάστε περισσότερα

Διάλεξη 12 Καθυστερήσεις (Stalls)

Διάλεξη 12 Καθυστερήσεις (Stalls) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 12 Καθυστερήσεις (Stalls) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ 1 Καθυστερήσεις και Εκκενώσεις Εντολών Οι κίνδυνοι δεδομένων (data

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΥΠΟΛΟΓΙΣΤΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο ΦΕΒΡΟΥΑΡΙΟΣ 2006 ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών

Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό

Διαβάστε περισσότερα

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ 1 ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ονοματεπώνυμο: ΑΜ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ (τμήμα Λ - Ω) Εξέταση Μαρτίου 2014

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) Δευτέρα, 3 Νοεμβρίου 25 ΔΙΑΡΚΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ 3 ΛΕΠΤΑ Για πλήρη

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΤΕΛΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) Τετάρτη, 21 Δεκεμβρίου 2016 ΔΙΑΡΚΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ 3 ΩΡΕΣ Για πλήρη

Διαβάστε περισσότερα

30 min κάθε «φάση» Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 1. Πλυντήριο. 2. Στεγνωτήριο. 3. ίπλωµα. 4. αποθήκευση. προσέγγιση για 4.

30 min κάθε «φάση» Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 1. Πλυντήριο. 2. Στεγνωτήριο. 3. ίπλωµα. 4. αποθήκευση. προσέγγιση για 4. Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή Time 6 PM 7 8 9 10 11 12 1 2 AM 1. Πλυντήριο 2. Στεγνωτήριο 3. ίπλωµα 4. αποθήκευση Task order A B C D Σειριακή προσέγγιση για 4 φορτία =8h 30 min κάθε «φάση»

Διαβάστε περισσότερα

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης

Διαβάστε περισσότερα

Πανεπιστήµιο Θεσσαλίας

Πανεπιστήµιο Θεσσαλίας Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 1: Λυµένες Ασκήσεις Έστω ένας επεξεργαστής, στον οποίο ένα πρόγραµµα ολοκληρώνει την εκτέλεσή

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

Διάλεξη 11 Προώθηση (Forwarding)

Διάλεξη 11 Προώθηση (Forwarding) ΗΥ 3 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη Προώθηση (Forwarding) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων (HY3) Η μέχρι τώρα μικρο-αρχιτεκτονική του MIPS ID/EX PCSrc Control WB

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 7ο μάθημα: Κρυφές μνήμες (cache) - εισαγωγή Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Σύστημα μνήμης! Η μνήμη είναι σημαντικό

Διαβάστε περισσότερα

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

Ασκήσεις Αρχιτεκτονικής Υπολογιστών

Ασκήσεις Αρχιτεκτονικής Υπολογιστών Ασκήσεις Αρχιτεκτονικής Υπολογιστών ακαδ. έτος 2008-2009 Άσκηση 1: caches Θεωρούμε το ακόλουθο κομμάτι κώδικα #define N 4 #define M 8 double c[n], a[n][m], b[m]; int i,j; for(i = 0; i < N; i++) for(j =

Διαβάστε περισσότερα

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy) Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy) 1 Συστήματα Μνήμης Η οργάνωση του συστήματος μνήμης επηρεάζει τη λειτουργία και απόδοση ενός μικροεπεξεργαστή: Διαχείριση μνήμης και περιφερειακών (Ι/Ο) απότολειτουργικόσύστημα

Διαβάστε περισσότερα

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline) Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών

Διαβάστε περισσότερα

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath O επεξεργαστής: Η δίοδος δεδοµένων (path) και η µονάδα ελέγχου (control) Σχεδίαση path 4 κατηγορίες εντολών: Αριθµητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη µνήµη (lw, sw) I

Διαβάστε περισσότερα

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή Αρης Ευθυμίου Σύστημα μνήμης Η μνήμη είναι σημαντικό κομμάτι ενός υπολογιστή Επηρεάζει κόστος, ταχύτητα, κατανάλωση

Διαβάστε περισσότερα

1.1 ΑΣΚΗΣΗ ΛΥΣΗ 2.1 ΑΣΚΗΣΗ ΛΥΣΗ 3.1 ΑΣΚΗΣΗ

1.1 ΑΣΚΗΣΗ ΛΥΣΗ 2.1 ΑΣΚΗΣΗ ΛΥΣΗ 3.1 ΑΣΚΗΣΗ 1.1 ΑΣΚΗΣΗ i) Έστω ότι οι εντολές κινητής υποδιαστολής ευθύνονται για το 25% του χρόνου εκτέλεσης ενός προγράµµατος σε ένα µηχάνηµα. Προτείνεται να βελτιωθεί το υλικό που σχετίζεται µε αριθµούς κινητής

Διαβάστε περισσότερα

Τελική Εξέταση, Απαντήσεις/Λύσεις

Τελική Εξέταση, Απαντήσεις/Λύσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 Τελική Εξέταση, Απαντήσεις/Λύσεις Άσκηση 1: Assembly για

Διαβάστε περισσότερα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) Σάββατο, 26 Νοεμβρίου 2016 ΔΙΑΡΚΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ 120 ΛΕΠΤΑ 1) Υλοποίηση

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Γιώργος Δημητρίου Ενότητα 3 η : Μερική Επικάλυψη Μερική Επικάλυψη Μηχανισμός μερικής επικάλυψης εντολών Εξαρτήσεις Κίνδυνοι (hazards) Παροχέτευση Πρόβλεψη διακλαδώσεων Μερική επικάλυψη σε μονάδες εκτέλεσης

Διαβάστε περισσότερα

Κεντρική Μονάδα Επεξεργασίας

Κεντρική Μονάδα Επεξεργασίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Μονάδα Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ιεραρχία συχνά και το

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών

Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό

Διαβάστε περισσότερα

Διάλεξη 15 Απόδοση της Ιεραρχίας Μνήμης Βελτιστοποίηση της απόδοσης

Διάλεξη 15 Απόδοση της Ιεραρχίας Μνήμης Βελτιστοποίηση της απόδοσης ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 5 Απόδοση της Ιεραρχίας Μνήμης Βελτιστοποίηση της απόδοσης Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πόσο μεγάλη είναι μια μνήμη cache;

Διαβάστε περισσότερα

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Διακλαδώσεις. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Διακλαδώσεις. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 13 Διακλαδώσεις Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Η μέχρι τώρα μικρο-αρχιτεκτονική (Eντολές Διακλάδωσης) Η μικρο-αρχιτεκτονική

Διαβάστε περισσότερα

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Για βελτίωση της απόδοσης

Διαβάστε περισσότερα

ΕΠΛ 605: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2018 ΕΡΓΑΣΙΑ 3 (13/10/2018) Ηµεροµηνία Παράδοσης δεύτερου µέρους: 18/10/2018

ΕΠΛ 605: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2018 ΕΡΓΑΣΙΑ 3 (13/10/2018) Ηµεροµηνία Παράδοσης δεύτερου µέρους: 18/10/2018 ΕΠΛ 605: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2018 ΕΡΓΑΣΙΑ 3 (13/10/2018) Ηµεροµηνία Παράδοσης δεύτερου µέρους: 18/10/2018 Ηµεροµηνία Παράδοσης πρώτου µέρους: 25/10/2018 Θα πρέπει να παραδώσετε

Διαβάστε περισσότερα

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

Διαβάστε περισσότερα

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Συστήματα σε Ολοκληρωμένα Κυκλώματα Συστήματα σε Ολοκληρωμένα Κυκλώματα Κεφάλαιο 4: Αρχιτεκτονική των Embedded Μικροεπεξεργαστών Διδάσκων: Καθηγητής Οδυσσέας Κουφοπαύλου Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών ΕΙΣΑΓΩΓΗ Παρουσιάζεται

Διαβάστε περισσότερα

2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις

2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMMY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις Άσκηση 1: Διασωλήνωση

Διαβάστε περισσότερα

Pipelined Datapath, Hazards and Forwarding

Pipelined Datapath, Hazards and Forwarding Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης Pipelined Datapath, Hazards and Forwarding Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 1: Ασκήσεις Εξαμήνου Μέρος Α Οκτώβριος 2016 Θεωρήστε κάποιον επεξεργαστή γενικού σκοπού που

Διαβάστε περισσότερα

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

Διαβάστε περισσότερα

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ Γιώργος Δημητρίου Μάθημα 7 ο ΠΜΣ Εφαρμοσμένη Πληροφορική ΔΙΑΔΟΧΙΚΕΣ ΔΙΑΔΙΚΑΣΙΕΣ Σειριακή εκτέλεση, χωρίς καμία επικάλυψη: 50ns 100ns Δ1 Χρόνος Δ2 Δ3 Συνολικός χρόνος ολοκλήρωσης

Διαβάστε περισσότερα

Διάλεξη 14 Εισαγωγή στην Ιεραρχία Μνήμης

Διάλεξη 14 Εισαγωγή στην Ιεραρχία Μνήμης ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 14 Εισαγωγή στην Ιεραρχία Μνήμης Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 H Μικρο-αρχιτεκτονική μας 4 1 0 PCSrc IF/ID Control ID/EX

Διαβάστε περισσότερα

Θέματα Μεταγλωττιστών

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 9 η : Θέματα Δρομολόγησης Εντολών ILP Παραλληλισμός επιπέδου εντολής Εξαρτήσεις δεδομένων Εξαρτήσεις ελέγχου (διαδικασιακές) Με διαθέσιμους πόρους, οι εντολές μπορούν να εκτελεστούν

Διαβάστε περισσότερα

Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών

Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών Αρης Ευθυμίου Διαδικαστικά Ιστοσελίδα μαθήματος: h:p://www.cs.uoi.gr/~plmy07/ Διαφάνειες μαθημάτων, κτλ 2 Γρήγορη εκτέλεση σειριακού

Διαβάστε περισσότερα

Κεφάλαιο 4: Pipelining 75

Κεφάλαιο 4: Pipelining 75 Κεφάλαιο 4: Pipelining 75 4. Pipelining Το pipelining (στα ελληνικά ορισμένες φορές καλείται σωλήνωση αλλά θα αποφύγουμε τη χρήση αυτού του όρου εδώ) είναι η λειτουργία κατά την οποία η εκτέλεση μιας διαδικασίας

Διαβάστε περισσότερα

Κεφάλαιο 4. Ο επεξεργαστής. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

Κεφάλαιο 4. Ο επεξεργαστής. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση Κεφάλαιο 4 Ο επεξεργαστής ιαφάνειες διδασκαλίας του πρωτότυπου βιβλίου µεταφρασµένες στα ελληνικά και εµπλουτισµένες (µετάφραση,

Διαβάστε περισσότερα

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Η υπολογιστική

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ε Ρ Γ ΑΣ Τ ΗΡ ΙΟ Υ ΠΟΛΟΓΙΣ Τ ΙΚΩΝ Σ Υ Σ Τ ΗΜΑΤΩΝ w w w. c s l ab.ece.ntua.gr

Διαβάστε περισσότερα

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Ταχύτητα εκτέλεσης Χρόνος εκτέλεσης = (αριθμός εντολών που εκτελούνται) Τί έχει σημασία: Χ (χρόνος εκτέλεσης εντολής) Αριθμός

Διαβάστε περισσότερα

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

Διαβάστε περισσότερα

Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 30 min κάθε «φάση»

Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 30 min κάθε «φάση» Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή 1. Πλυντήριο 2. Στεγνωτήριο 3. ίπλωµα 4. αποθήκευση Time Task order A B C D 6 PM 7 8 9 10 11 12 1 2 AM Σειριακή προσέγγιση για 4 φορτία =8h 30 min κάθε «φάση»

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Υποσύστημα μνήμης Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 11 (εργαστηριακή): Ασκήσεις Εξαμήνου Μέρος Γ Δεκέμβριος 2016 Γράψτε ένα πρόγραμμα προσομοίωσης

Διαβάστε περισσότερα

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή 1 Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή μνήμη(cache). Η cache είναι πολύ σημαντική, πολύ γρήγορη,

Διαβάστε περισσότερα

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το

Διαβάστε περισσότερα

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη. Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης,

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεµατική Ενότητα ΠΛΗ 21: Ψηφιακά Συστήµατα Ακαδηµαϊκό Έτος 2009 2010 Γραπτή Εργασία #3 Παράδοση: 28 Μαρτίου 2010 Άσκηση 1 (15 µονάδες) Ένας επεξεργαστής υποστηρίζει τόσο

Διαβάστε περισσότερα

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr Single Cycle Datapath http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Οργάνωση επεξεργαστή Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

Διαβάστε περισσότερα

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 6ο μάθημα: χρονοπρογραμματισμός, αλγόριθμος Tomasulo, εικασία Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου InstrucDon- Level

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Άσκηση 6: Ασκήσεις Χειμερινού Εξαμήνου 2017-2018 (μέρος Β ) Στην άσκηση αυτή θα μελετήσουμε την εκτέλεση

Διαβάστε περισσότερα

Ενότητα 2: Η κρυφή µνήµη και η λειτουργία της

Ενότητα 2: Η κρυφή µνήµη και η λειτουργία της Ενότητα 2: Η κρυφή µνήµη και η λειτουργία της Στην ενότητα αυτή θα αναφερθούµε εκτενέστερα στη λειτουργία και την οργάνωση της κρυφής µνήµης. Θα προσδιορίσουµε τις βασικές λειτουργίες που σχετίζονται µε

Διαβάστε περισσότερα

Παραλληλισμός σε επίπεδο εντολών

Παραλληλισμός σε επίπεδο εντολών Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

ΠΛΕ- 027 Μικροεπεξεργαστές 8ο μάθημα: Παραλληλία επιπέδου εντολής

ΠΛΕ- 027 Μικροεπεξεργαστές 8ο μάθημα: Παραλληλία επιπέδου εντολής ΠΛΕ- 027 Μικροεπεξεργαστές 8ο μάθημα: Παραλληλία επιπέδου εντολής Αρης Ευθυμίου Ταχύτερη εκτέλεση Με τις τεχνικές που είδαμε στα προηγούμενα μαθήματα μπορούμε να εκτελέσουμε (με επικάλυψη) περίπου 1 εντολή

Διαβάστε περισσότερα

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Κρυφές μνήμες

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Κρυφές μνήμες Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Κρυφές μνήμες Αρης Ευθυμίου Το σημερινό μάθημα Κρυφές μνήμες (cache memory) Βασική οργάνωση, παράμετροι: γραμμές, συσχετιστικότητα, συνολική χωρητικότητα Επίδοση:

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών II 16-2-2012. Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

Αρχιτεκτονική Υπολογιστών II 16-2-2012. Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων Αρχιτεκτονική Υπολογιστών II 6 --0 Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων Θέμα. Τι γνωρίζετε για την τοπικότητα των αναφορών και ποιών μονάδων του υπολογιστή ή τεχνικών η απόδοση εξαρτάται από

Διαβάστε περισσότερα

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ι Γ. Τσιατούχας 2 ο Κεφάλαιο ιάρθρωση 1. Οργάνωση της 2. εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο

Διαβάστε περισσότερα

Η ιεραρχία της μνήμης

Η ιεραρχία της μνήμης Η ιεραρχία της μνήμης Οι περιορισμοί στο σχεδιασμό της μνήμης συνοψίζονται σε τρεις ερωτήσεις : 1) Πόση 2) Πόσο γρήγορη 3) Πόσο ακριβή Ερωτήματα-Απαντήσεις Ερώτημα πόση μνήμη. Είναι ανοικτό. Αν υπάρχει

Διαβάστε περισσότερα

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Διοχέτευση

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Διοχέτευση Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Διοχέτευση Αρης Ευθυμίου Το σημερινό μάθημα Υπόβαθρο: Διοχέτευση (Pipelining) Βασική οργάνωση Δομικοί κίνδυνοι Κίνδυνοι δεδομένων (hazards): RAW, WAR, WAW Stall

Διαβάστε περισσότερα

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) SMPcache Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) 1. Βασικές ρυθμίσεις του συστήματος: δημιουργία μια δικής μας σύνθεσης συστήματος. Το SMPcache είναι ένα εργαλείο με το οποίο μπορούμε

Διαβάστε περισσότερα

Processor-Memory (DRAM) ιαφορά επίδοσης

Processor-Memory (DRAM) ιαφορά επίδοσης Processor-Memory (DRAM) ιαφορά επίδοσης µproc 6%/yr 98 98 982 983 984 985 986 987 988 989 99 99 992 993 994 995 996 997 998 999 2 2 22 23 24 25 Performance Processor-Memory Performance Gap: (grows 5% /

Διαβάστε περισσότερα

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης Αρης Ευθυμίου Το σημερινό μάθημα Execu9on scheduling wake- up and select specula9ve wake- up Εκτέλεση εντολών

Διαβάστε περισσότερα

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή Εισαγωγή Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ Σκοπός του εργαστηρίου είναι να γνωρίσουµε την εσωτερική δοµή και αρχιτεκτονική της κεντρικής µονάδας επεξεργασίας, να κατανοήσουµε τον τρόπο µε τον οποίο λειτουργεί

Διαβάστε περισσότερα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 4 : Κρυφή Μνήμη Καρβούνης Ευάγγελος Δευτέρα, 30/11/2015 Χαρακτηριστικά Θέση Χωρητικότητα Μονάδα Μεταφοράς

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα