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

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

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

Transcript

1 Αρχιτεκτονική Υπολογιστών Μικροαρχιτεκτονική Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Organization, W. Robinson, CS-231, Vanderbildt Univesrity. Αρχιτεκτονική Υπολογιστών, Ν. Κοζύρης, Εθνικό Μετσόβιο Πολυτεχνείο. Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός, Π. Ευριπίδου, Πανεπιστήμιο Κύπρου Mic-1 simulator Mic-1MMV simulator, Rick Salter, Oberlin College. Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής.

2 Αρχιτεκτονική Υπολογιστών Μικροαρχιτεκτονική Προκαταβολική ανάκληση εντολών (Mic-2) Διοχέτευση Ι (Mic-3 και Mic-4) Kρυφή Μνήμη Διοχέτευση ΙΙ και Υπερβαθμωτή εκτέλεση Μικροαρχιτεκτονική Pentium 4 και Υλοποίηση JVM

3 Μικροαρχιτεκτονική Mic-1 Δύο βασικά τμήματα: Διαδρομή Δεδομένων (Datapath) = λογική αφαίρεση της CPU όπως τη 'βλέπει' η ISA. Έλεγχος (Control) = η υλοποίηση της διερμηνείας της ISA απο το επίπεδο της μικροαχιτεκτονικής.

4 Mic-1 Διαδρομή Δεδομένων Οι εσωτερικοί δίαυλοι και οι μονάδες επεξεργασίας και αποθήκευσης δεδομένων του επεξεργαστή Mic-1. Υλοποιεί την Αρχιτεκτονική Συνόλου Εντολών (ISA) Integer Java Virtual Machine (IJVM), υποσύνολο της JVM. Αρχιτεκτονική 32-bit word αλλά byte addressable.

5 Mic-1: Λειτουργία Μνήμης Δύο θύρες μνήμης: * Μια R/W 32-bit (word addressable) για δεδομένα, MDR<->mem(MAR) bytes 0, 4, 8,... Σήματα ελέγχου READ, WRITE * Μια Ro 8-bit (byte addressable) για εντολές, low-bytembr<-mem(pc) bytes 0, 1, 2... Σήμα ελέγχου FETCH. Ειδικός έλεγχος MBR (δυο βέλη): * απρόσημος (index/offset): 0x000low-byteMBR * προσημασμένος (sign extention): 0x000low-byteΜΒR ή 0x111low-byteMBR

6 Μικροεντολές Mic-1 Η μορφή μικροεντολής του Mic-1. Addr : Διεύθυνση πιθανής επόμενης μικροεντολής. JAM: Προσδιορίζει πώς επιλέγεται η επόμενη μικροεντολή. ALU : Πράξεις ALU και Ολισθητή. C : Επιλογή καταχωρητών που θα διαβάσει δεδομένα από το δίαυλο C. Mem : Λειτουργίες Μνήμης Β : Επιλογή καταχωρητή που θα γράψει δεδομένα στο δίαυλο Β.

7 Χρονισμός Mic-1 Διάγραμμα ενός πλήρους κύκλου ρολογιού.

8 Μικρο-εκτέλεση 1. Φόρτωση MIR από μικροrom(mpc). Δw. 2. Σήματα προς διαδρομή δεδομένων, λειτουργίες διαύλων Α, Β. Δx. 3. Λειτουργίες ALU, Ολισθητή και Μνήμης. Δy. 4. Λειτουργίες διαύλου C, φόρτωση Ν/Ζ, φόρτωση καταχωρητών και MDR, MBR από Μνήμη. Δz. 5. Προετοιμασία νέου MPC.

9 Μάκρο-εκτέλεση 1. MBR = mem(pc); PC = PC Αποκωδικοποίηση (MBR). 3. Ανάκληση τελεστέων 4. Εκτέλεση εντολής 5. Αποθήκευση αποτελέσματος 6. Πίσω στο βήμα 1 Κάθε ένα από τα παραπάνω βήματα εκτελείται μέσω μιας σειράς μικρο-εκτελέσων. Κάθε εντολή IJVM μπορεί να απαιτεί ένα ή περισσότερους κύκλους μηχανής (clock cylcles)

10 Το Σύνολο Εντολών της IJVM

11 Μικροπρόγραμμα Mic-1 (1)

12 Μικροπρόγραμμα Mic-1 (2)

13 Μικροπρόγραμμα Mic-1 (3)

14 Μικροπρόγραμμα Mic-1 (4)

15 Μικροπρόγραμμα Mic-1 (5) Συνολικά περίπου 125 μικροεντολές. Στατιστικά απόδοσης CPI; Με δεδομένο το προφιλ εντολών ανά πρόγραμμα ποιό είναι το μέσο κόστος εκτέλεσης σε κύκλους μηχανής για πρόγραμμα 100 εντολών;

16 Κόστος προς Απόδοση Επιλογή του συνόλου εντολών ώστε να έχουμε λιγότερες και αποδοτικές εντολές (απ ευθείας υλοποίηση εντολών στο υλικό). Βελτίωση του υλικού ώστε να μειωθεί η διάρκεια του κύκλου ρολογιού. Μείωση του αριθμού των κύκλων ρολογιού που απαιτούνται για την εκτέλεση μιας εντολής. Διάρθρωση της CPU σε υπομονάδες ώστε να είναι δυνατή η παράλληλη εκτέλεση εντολών (ILP). Μείωση των προσπελάσεων στη κύρια μνήμη (κρυφή μνήμη).

17 Βελτίωση Υλικού (παράδειγμα) Έλεγχος διαύλου Β: από 9 καταχωρητές επιλέγεται ένας. Με αποκωδικοποιητή (παρόυσα υλοποίηση): 4Χ512 bits ROM αποκωδικοποιητής 4-σε-16 καθυστέρηση διάδοσης σήματος (2 πύλες). Φθηνότερο αλλά πιο αργό. Χωρίς αποκωδικοποιητή (εναλλακτική υλοποίηση): 9X512 bits ROM δεν υπάρχει καθυστέρηση σήματος. Ταχύτερο αλλά πιο δαπανηρό. Άσκηση: υπολογίστε περίπου τη διαφορά σε πύλες (ή transistors)

18 Μειονεκτήματα Mic-1 Η είσοδος Α της ALU γίνεται μόνο μέσω του καταχωρητή Η. Απαιτείται μετακίνηση τελεστέου μέσω του διαύλου Β και της ALU. Ο δίαυλος Α είναι μη-λειτουργικός. Η ενημέρωση του PC, που εκτελείται στην αρχή κάθε εντολής, απαιτεί τη κατάληψη των διαύλων και της ALU. Η προσκόμιση και σύνθεση τελεστέων 16-bits απαιτεί πολλές μικροεντολές. Ο κύκλος ρολογιού είναι μεγάλος και σύνθετος. Απαιτεί σημαντικές καθυστερήσεις και αφήνει τμήματα της CPU αδρανή. H CPU αντιμετωπίζεται ως ενιαία μονάδα, δεν διακρίνονται υπομονάδες (τα συνδυαστικά κυκλώματα λειτουργούν διαρκώς).

19 Επικάλυψη Ανάκλησης Εντολής (1) Αρχικό μικροπρόγραμμα για την εκτέλεση της POP.

20 Επικάλυψη Ανάκλησης Εντολής (2) Βελτιωμένο μικροπρόγραμμα για την εκτέλεση της POP. Η ανάκληση εντολής γίνεται μόλις ο PC δεν είναι απαραίτητος για την εκτέλεση της εντολής (και αν 'χωρά' μέσα σε κάποιο κύκλο ρολογιού). Στο τέλος μένει μόνο το goto (MBR).

21 Αρχιτεκτονική Τριών Διαύλων Η διαδρομή δεδομένων του Mic-2. Διαφορές με Mic-1: * Πλήρης Δίαυλος Α και αντίστοιχος επιπλέον έλεγχος καταχωρητών. * Μονάδα Ανάκλησης Εντολής (IFU) και καταχωρητής MBR2.

22 Instruction Fetch Unit (IFU) Βελτιωμένη Υπομονάδα Ανάκλησης Εντολής (Instruction Fetch Unit, IFU) του Mic-1.

23 IFU (1) Μηχανή πεπερασμένων καταστάσεων για την υλοποίηση της IFU.

24 IFU (2) Παρούσα Κατάσταση Συμβάντα Word Word Word MBR1 MBR1 MBR1 MBR1 MBR1 MBR1 MBR2 MBR2 MBR2 MBR2 MBR2 Νέες Καταστάσεις Μηχανή πεπερασμένων καταστάσεων για την υλοποίηση της IFU. Μια εναλλακτική παρουσίαση.

25 Αρχιτεκτονική Τριών Διαύλων Η διαδρομή δεδομένων του Mic-2. Διαφορές με Mic-1: * Πλήρης Δίαυλος Α και αντίστοιχος επιπλέον έλεγχος καταχωρητών. * Μονάδα Ανάκλησης Εντολής (IFU) και καταχωρητής MBR2.

26 Αρχιτεκτονική Τριών Διαύλων (1) Αρχικό μικροπρόγραμμα για την εκτέλεση της ILOAD.

27 Αρχιτεκτονική Τριών Διαύλων (2) iload1 iload2 iload3 MAR=MBRU+LV;rd MAR=SP=SP+1 TOS=MDR;wr; goto(mbr) Μικροπρόγραμμα για την εκτέλεση της ILOAD σε αρχιτεκτονική τριών διαύλων (πάνω) και με επιπλέον χρήση IFU (κάτω).

28 Μικροπρόγραμμα Mic-2 (1)

29 Μικροπρόγραμμα Mic-2 (2)

30 Μικροπρόγραμμα Mic-2 (3)

31 Μικροπρόγραμμα Mic-2 (4)

32 Μικροεντολές Mic-2 4 A bus A Α,Β Η μορφή μικροεντολής του Mic-2. Addr : Διεύθυνση πιθανής επόμενης μικροεντολής. JAM: Επιλογή επόμενης μικροεντολή. ALU : Πράξεις ALU και Ολισθητή. C : Επιλογή καταχωρητών που θα διαβάσει δεδομένα από το δίαυλο C. Mem : Λειτουργίες Μνήμης Β, Α : Επιλογή καταχωρητή που θα γράψει δεδομένα στους διαύλους Β, Α.

33 Ασκήσεις 1. Μέτρηση κύκλων ρολογιού. Συγκρίνετε τα δύο σύνολα μικροπρογραμμάτων, Mic-1 και Μic-2. Ποιές εντολές βελτιώνονται; Πόσοι είναι οι συνολικοί κύκλοι που εξοικονομουνται; 2. Σε ένα απλό πρόγραμμα JAS/JVM (για παράδειγμα ένα πρόγραμμα με δύο μόνο εντολές BIPUSH, ISTORE) κάντε ανάλυση σε μικροεντολές με βάση τα μικροπρογράμματα Μic-1 και Μic-2. Πόση βελτίωση παρατηρείτε, σε απόλυτους αριθμούς και ποσοστιαία; 3. Με βάση τη μελέτη για τη ποσοστιαία συμμετοχή των εντολών επιπέδου ISA που συζητήσαμε στην εισαγωγή, υπολογίστε τη μέση ποσοστιαία βελτίωση της απόδοσης ενός υπολογιστή που διατηρεί το ίδιο επίπεδο ISA (δηλ τη IJVM) αλλά αλλάζει το επίπεδο μικροαρχιτεκτονικής του, από Mic-1 σε Mic Με βάση το σχέδιο μικροεντολών Mic-2 γράψτε ενδεικτικά σε δυαδική μορφή ορισμένες ακολουθίες μικροεντολών, για παράδειγμα της ILOAD και ISTORE. 5. Ανασχεδιάστε την μικροαρχιτεκτονική Mic-1 ώστε να εκτελεί τις μικροεντολές Mic-2. Απαιτούνται αλλαγές στο χρονισμό του συστήματος;

34 Αρχιτεκτονική Υπολογιστών Μικροαρχιτεκτονική Προκαταβολική ανάκληση εντολών (Mic-2) Διοχέτευση Ι (Mic-3 και Mic-4) Kρυφή Μνήμη Διοχέτευση ΙΙ και Υπερβαθμωτή εκτέλεση Μικροαρχιτεκτονική Pentium 4 και Υλοποίηση JVM

35 Διοχέτευση: απλό παράδειγμα α β α. Πλυντήριο χωρίς διοχέτευση β. Πλυντήριο με διοχέτευση γ. Πλυντήριο με διοχέτευση και μεταβλητή διάρκεια σταδίων γ

36 Διοχέτευση (1) Προϋποθέτει διακριτές υπο μονάδες στη CPU, σε αντιστοιχία με το κύκλο Ανάκλησης- Εκτέλεσης. Ενδεικτικές υπομονάδες: S1. Ανάκληση της εντολής, Τροποποίηση P S2. Αποκωδικοποίηση της εντολής S3. Ανάκληση των τελεστέων (Ανάγνωση από τη Μνήμη) S4. Εκτέλεση της εντολής (πιθανώς σε υπομονάδες) Ακέραιοι Πραγματικοί Ανάκληση επιπλεόν τελεστέων S5. Aποθήκευση του αποτελέσματος (Εγγραφή στη Μνήμη) Λίγοι, σχετικά μεγάλοι κύκλοι μηχανής, μεταβλητός αριθμός κύκλων ανά εντολή Χρόνο 2 S1 1 ς S2 2 1 S3 Συμβατική 2 S4 Εκτέλεση... 1 S5 1 2 Μονάδε ς Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education

37 Διοχέτευση (2) (a) Μια τυπική διοχέτευση πέντε σταδίων (υπομονάδων): Ανάκληση, Αποκωδικοποίηση, Ανάγνωση από τη Μνήμη, Εκτέλεση, Εγγραφή στη Μνήμη (b) Η κατάσταση κάθε σταδίου σε εννέα κύκλους ρολογιού. Σταθερός αριθμός (ή σταθερό πολλαπλάσιο;) κύκλων μηχανής ανά εντολή. Πολλοί μικροί κύκλοι μηχανής, με βάση τη μέγιστη διάρκεια σταδίου.

38 Διοχέτευση (3)... Διοχέτευση με βαθμίδες άνισης διάρκειας. IFU, ALU, Mem = 2ns. Reg/Bus = 1ns. Χρόνος βαθμίδων = μέγιστος χρόνος βαθμίδας. Σημειώστε τη διαφορετική οπτική: μια εντολή, όχι μια βαθμίδα ανά γραμμή. Συγκρίνετε με προηγούμενο σχήμα. 38 cslab@ntua ( )

39 Διοχέτευση (5) Διεκπεραίωση (Throughput). Η Διοχέτευση αυξάνει κυρίως το ρυθμό εκτέλεσης ακουθλιας εντολών. Ιδανικά στη μονάδα του χρόνου προσκομίζονται στον υπολογιστή Ν εντολές που εκτελούνται στα Ν στάδια της Διοχέτευσης. Μέτρηση σε Αριθμό προσκoμιζόμενων Εντολών σε μονάδα Χρόνου, συνήθως Million Instructions Per Second (MIPS). Επιτάχυνση (Speedup). Λόγος του χρόνου εκτέλεσης (ή του CPI) ενός προγράμματος χωρίς Διοχέτευση προς το χρόνο εκτέλεσης (ή του CPI) με Διοχέτευση. Ιδανικά ίση με Ν. Speedup = Tserial / Tpipelined = CPIserial/CPIpipelined. Ωφελιμότητα (Utilization). Ποσοστό του χρόνου που η Διοχέτευση είναι πλήρης. Μέγιστη Ωφελιμότητα = Ιδεατή Επιτάχυνση. Utilization = Speedup / N = Ν*Τserial/Tpipelined = N*CPIserial/CPIpipelined.

40 Διοχέτευση (6) Απώλειες. Η Διοχέτευση παρουσιάζει απώλειες στην εκκίνηση μέχρι να 'γεμίσει' και στη λήξη μέχρι να αδειάσει (filling and drainage). Αυτές ισούνται με περίπου 2N(Ν-1) άεργους κύκλους στα διάφορα στάδια, αριθμός αμελητέος όταν συνήθως η διοχέτευση λειτουργεί για βήματα πολύ περισσότερα του Ν. Ν filling Ν-1 operation drainage Κύκλοι ωφέλιμης λειτουργίας >> Ν Κίνδυνοι Διοχέτευσης (Hazards). Συνηθήκες λειτουργίας της Διοχέτευσης που μειώνουν την απόδοσή της (ιδεατή επιτάχυνση ή μέγιστη ωφελιμότητα). * Δομικοί κίνδυνοι (Structural Hazrds) * Κίνδυνοι Δεδομένων (Data Hazards) * Κίνδυνοι Ελέγχου (Control Hazards).

41 Κίνδυνοι Διοχέτευσης (Hazards) Συνθήκες του υλικού ή του λογισμικού που αποτρέπουν την επίτευξη βέλτιστης απόδοσης της διοχέτευσης. Δομικοί Κίνδυνοι (Structural Hazards). Η ταυτόχρονη εκτέλεση δύο σταδίων δύο εντολών δεν μπορεί να γίνει γιατί χρησιμοποιούν το ίδιο υλικό. (πχ χρήση ALU, προσπέλαση διάυλου, μνήμης κλπ). Κίνδυνοι Δεδομένων (Data Hazards). Η εκτέλεση ενός σταδίου μιας εντολής απαιτεί την προηγούμενη ολοκλήρωση ενός σταδίου άλλης εντολής (πχ προσκόμιση τελεστέου πριν την αποθήκευσή του). Κίνδυνοι Ελέγχου (Control Hazards). Εντολές διακλάδωσης, κλήσεις μεθόδων, απαιτούν ακύρωση ορισμένων ήδη εκτελεσθέντων σταδίων επομένων εντολών και επαναπλήρωση της διοχέτευσης.

42 Δομικός Κίνδυνος Ταυτόχρονη ανάγνωση από τη μνήμη ενώ έχουμε μια μόνο θύραμνήμης. Λύσεις: * Αναστολή (Stall) που προκαλεί κενό (Bubble). * Βελτίωση Υλικού (διαφορετικές θύρες μνήμης για την ανάγνωση δεδομένων και εντολών)

43 Κίνδυνος Δεδομένων (1) : RAW Read After Write Ανάγνωση Μετά την Εγγραφή Οι εντολές sub, and, or χρησιμοποιούν τον καταχωρητή r1 πριν αυτός προλάβει να ενημερωθεί. Η εντολή xor είναι η πρώτη που χρησιμοποιεί τον ενημερωμένο καταχωρητή. Εξάρτηση (Dependence) ή Αληθής Εξάρτηση Δεδομένων. Η συνηθέστερη περίπτωση σε τυπικές διοχετεύσεις. Δύο τύποι: R-type (Register type) - διαχειρίσιμη. M-type (Memory type) προκαλεί στάση (stall).

44 Κίνδυνος Δεδομένων (2) : WAR * Write After Read: Εγγραφή Μετά την Ανάγνωση Μια εντολή γράφει σε ένα καταχωρητή πριν μια επόμενη εντολή χρησιμοποιήσει τη παλιά τιμή του. πχ. sub add r2, r1, r3 r1, r4, r5 // r2 = r1 - r3 // r1 = r4 + r5 Αντι-Εξάρτηση (Anti-Dependence). Μπορεί να συμβεί μόνο αν * Αλλάξει η σειρά εκτέλεσης εντολών, για παράδειγμα επειδή η sub σταμάτησε (stalled) και η add τη πρόλαβε. * Επιτρέπεται εγγραφή σε διαφορετικά στάδια της διοχέτευσης.

45 Κίνδυνος Δεδομένων (3) : WAW * Write After Write: Εγγραφή Μετά την Εγγραφή Μια εντολή γράφει (η add) σε ένα καταχωρητή πριν μια προηγούμενη εντολή (η sub) γράψει. πχ. sub add r1, r2, r3 r1, r4, r5 // r1 = r2 - r3 // r1 = r4 + r5 Εξάρτηση Εξόδου (Output Dependence). Μπορεί να συμβεί μόνο αν * Αλλάξει η σειρά εκτέλεσης εντολών, για παράδειγμα επειδή η sub σταμάτησε (stalled) και η add τη πρόλαβε. * Επιτρέπεται εγγραφή σε διαφορετικά στάδια της διοχέτευσης.

46 Αρχιτεκτονική με Διοχέτευση Mic-3 * Χρήση μανδαλωτών (latches) στους διαύλους Α, Β, C. * Απομόνωση κυκλωμάτων == δημιουργία υπομονάδων IFU => Καταχωρητές (IF) Αποκωδικοποίηση+ Καταχωρητές => A, B (ID) A, B => ALU, Shift => C (EX) C = > Καταχωρητές (WB) Μνήμη <=> Καταχωρητές (MEM)

47 Απεικόνιση Διοχέτευσης Mic-3 Τυπική λειτουργία της διοχέτευσης του Mic-3. Ανάκληση (IFU=IF) Αποκωδικοποίηση Καταχωρητές (Reg=ΙD) Δίαυλοι AB (ΑΒ=EX) Δίαυλος C (C=WB) Μνήμη (MΕΜ)* * δεν φαίνεται

48 Υλοποίηση της SWAP (1) Το μικροπρόγραμμα Μic-2 της εντολής SWAP.

49 Υλοποίηση της SWAP (2) Το μικροπρόγραμμα Μic-3 της εντολής SWAP. Χρήση τεχνικών διοχέτευσης σε επίπεδο μικροπρογράμματος.

50 Υλοποίηση της SWAP (3) B=SP; C=B-1;MAR=C;rd MDR=Mem WB ID WB ID B=SP; C=B; MAR=C B=MDR;C=B;H=C;wr; Mem=MDR MEM MEM X WB ID bubble MEM WB ID MEM X B=TOS; C=B; MDR=C B=SP;C=B-1;MAR=C; wr;mem=mdr WB ID B=H; C=B; TOS=C; goto(mbr1) WB ID ΜΕΜ Χ 9 Το μικροπρόγραμμα Μic-3 της εντολής SWAP. Εναλλακτική παρουσίαση της διοχέυτευσης. 50 cslab@ntua ( ) MEM 10 11

51 Εκτέλεση δύο SWAP στο Mic-3 (2) Stall Βubble RAW Hazard Χρόνος ID EX WB MEM IF Stall Instruction Pre-fetch goto(mbr1) Τρίτη εναλλακτική παρουσίαση της διοχέτευσης για το μικροπρόγραμμα της SWAP στο Mic-3.

52 Υλοποίηση της IADD στο Mic MAR=SP=SP-1;rd H=TOS B=SP C=B-1 MAR=C;SP=C;rd MDR=mem B=TOS C=B H=C MDR=TOS=MDR+H;wr;goto(MBR1) B=MDR C=B+H MDR=C; TOS=C;wr goto(mbr1) Κύκλοι ρολογιού: 8X1/3=2.6 < 3

53 Εκτέλεση SWAP, ΙADD.. στο Mic-3 RAW Hazard Stall Stall Χρόνος ID EX WB MEM IF Stall Instruction Pre-fetch goto(mbr1) Επαναλαμβανόμενο μοτίβο εντολών. Επαναλαμβανόμενος Κίνδυνος Δεδομένων RAW. Ειδικά σε περιπτώσεις επικοινωνίας με μνήμη προκαλείται οπωσδήποτε καθυστέρηση.

54 Υλοποίηση της BIPUSH στο Mic-3 SP=MAR=SP B=SP C=B+1 MAR=C; SP=C MDR=TOS=MBR1;wr ;goto(mbr1) B=MBR1 C=B MDR=C; TOS=C;wr goto(mbr1) Κύκλοι ρολογιού: 5X1/3=1.6 < 2

55 Υλοποίηση της ΙΙΝC στο Mic-3 MAR=LV+MBR1U;rd A=LV; B=MBR1U C=A+B MAR=C; rd MDR=Mem H=MBR1 MDR=MDR+H;wr ;goto(mbr1) B=MBR1 C=B H=C A=MDR;B=H C= A+B MDR=C;wr goto(mbr1) Κύκλοι ρολογιού: 8X1/3=2.6 < 3

56 Υλοποίηση της ILOAD στο Mic MAR=LV+MBR1U;rd MAR=SP=SP+1 A=LV;B=MBR1U C=A+B MAR=C;rd MDR=mem B=SP C=B+1 MAR=C; SP=C TOS=MDR;wr;goto(MBR1) B=MDR C=B TOS=C;wr goto(mbr1) Κύκλοι ρολογιού: 8X1/3=2.6 < 3

57 Υλοποίηση της ISTORE στο Mic-3 MAR=LV+MBR1U MDR=TOS;wr MAR=SP=SP-1;rd TOS=MDR;goto(MBR1) 1 A=LV;B=MBR1U 2 C=A+B 3 MAR=C B=TOS C=B MDR=C; wr B=SP C=B-1 MAR=C;SP=C;rd MDR=mem B=MDR C=B TOS=C goto(mbr1) Κύκλοι ρολογιού: 10X1/3=3.3 < 5

58 Εκτέλεση σειράς εντολών στο Mic-3 ILOAD ΙF ILOAD IADD ISTORE Stall ID EX WB ME * To βήμα IF είναι στην ουσία ανεξάρτητο και δεν έχει κινδύνους διοχέτευσης. Μόνος περιορισμός το ρυθμός διεκπεραίωσης της κύριας διοχέτευσης. Δε λαμβάνεται υπ' όψη στους παρακάτω υπολογισμούς. * Το βήμα MEM είναι η αναφορά στη μνήμη. Στο Mic-3 το βήμα MEM επηρεάζει ιδιαίτερα επειδή σχεδόν κάθε εντολή έχει αναφορά στη μνήμη (λόγω stack). * Τα βήματα ID,EX, WB παρουσιάζουν κινδύνους διοχέτευσης (κυρίως RAW) και συνεχείς στάσεις λόγω επικοινωνίας με μνήμη (Μ-type).

59 Απόδοση Διοχέτευσης Επιτάχυνση 24Χ1/3 = 8 κύκλοι έναντι 14 κύκλων, speedup 1.75 (ιδεατό 3, για τις βαθμίδες ID, EX, WB, οι IF δεν επηρεάζει και η MEM συμμετέχει μέσω των αναφορών στη μνήμη). Σε μεγαλύτερο αριθμό εντολών η επιτάχυνση πρέπει να τείνει στο 2. Ωφελιμότητα 47 ενεργά στάδια / 4Χ24 σύνολο = 47/96~50%. Υποθέσεις Χρόνος σταδίου διοχέτευσης = 1/3 του κύκλου ρολογιού Mic-1/2. Χρόνος προσπέλασης μνήμης = χρόνος σταδίου διοχέτευσης.

60 Μειονεκτήματα Μic-3 * Η χρήση μοντέλου στοίβας προκαλεί μόνιμο κίνδυνο δεδομένων τύπου RAW, Μ-type. Σχεδόν κάθε εντολή (όχι μόνο οι απαραίτητες ILOAD, ISTORE) περιέχει ενημέρωση μνήμης. * Πολλαπλές διελεύσεις ανά εντολή (μεγάλες εντολές). Χρήση ALU για αυξήσεις-μειώσεις-διελεύσεις τιμών καταχωρητών. *Περιορισμένος αριθμός καταχωρητών με πολλαπλές εγγραφές και αναγνώσεις ανά εντολή. Έλλειψη επαρκούς αριθμού γενικών καταχωρητών. Λύσεις: Ελαχιστοποίηση προσπελάσεων στη μνήμη. Μεγάλος αριθμός καταχωρητών γενικού σκοπού. Συντομότερες, απλούστερες εντολές μιας διέλευσης. Περισσότερο υλικό.

61 Διοχέτευση Επτά Σταδίων: Mic-4 (1) + R0-R7 Ποιοί Καταχωρητές είναι περιττοί;

62 Διοχέτευση Επτά Σταδίων: Mic-4 (2) 1: Μονάδα Ανάκλησης Εντολών (IFU) 2: Αποκωδικοποίηση Εντολών (Decode) 3: Ουρά Μικροεντολών (Queue) 4: Προσκόμιση Τελεστέων (Operands) από καταχωρητές 5: Εκτέλεση (Exec) 6: Εγγραφή Αποτελέσματος (Write Back) προς καταχωρητές 7: Επικοινωνία με Μνήμη (Memory)

63 Υποσύνολο Εντολών IJVM Mic-4 (1) Αριθμητικές Πράξεις IADD dst,src1,src2 dst=src1+src2 ISUB dst,src1,src2 dst=src1-src2 IINC dst, const dst=dst +/- const const: ακέραιος 1 byte Λογικές Πράξεις IAND dst,src1,src2 IOR dst,src1,src2 dst=src1andsrc2 dst=src1orsrc2 Τα ορίσματα dst, src, src1, src2 παίρνουν τιμές από R0 έως R7.

64 Υποσύνολο Εντολών IJVM Mic-4 (2) Μνήμη ILOAD dst, varnum dst=x (x τοπική μεταβλητή) ISTORE src, varnum x=src (x τοπική μεταβλητή) BIPUSH dst, byte dst=byte μετά από μετατροπή σε προσημασμένο 32 bit LDC_W dst, index dst= x (x σταθερά) index: σχετική διεύθυνση 2 bytes (από CPP) Βοηθητικές λειτουργίες NOP καμμία ενέργεια WIDE πρόθεμα για χρήση varnum 2 bytes αντί 1 byte

65 Υποσύνολο Εντολών IJVM Mic-4 (3) Έλεγχος Ροής GOTO offset PC = PC +/- offset IFEQ src, offset if (src == 0) then PC = PC +/- offset IFLT src, offset if (src < 0) then PC = PC +/- offset IF_ICMPEQ src1, src2, offset if (src1 == src2) then PC = PC +/- offset offset: σχετική διεύθυνση 2bytes (PC) Κλήση Μεθόδου INVOKEVIRUAL disp κλήση μεθόδου disp: σχετική έμμεση διεύθυνση 2bytes (CPP, PC) IRETURN επιστροφή από μέθοδο

66 Υλοποίηση εντολών στο Mic-4 (1) A=src1;B=src2 C=A+B dst=c ID WB MEM X IADD Κύκλοι ρολογιού 3Χ1/3=1<3 1 A=src1;B=MBR1U 2 C=A+B 3 dst=c ID WB MEM X IINC Κύκλοι ρολογιού 3Χ1/3=1<3 1 A=MBR1U 2 C=A 3 dst=c ID WB MEM X BIPUSH Κύκλοι ρολογιού 3Χ1/3=1<2

67 Υλοποίηση εντολών στο Mic-4 (2) A=LV;B=MBR1U C=A+B MAR=C;rd MDR=Mem ILOAD A=MDR C=A dst=c ID WB MEM RAW bubble ID WB MEM X Κύκλοι ρολογιού 7Χ1/3=2.3<3

68 Υλοποίηση εντολών στο Mic-4 (3) A=LV;B=MBR1U C=A+B MAR=C A=src C=A MDR=C;wr Mem=MDR ISTORE Κύκλοι ρολογιού 5Χ1/3=1.6<3 ID WB MEM X ID WB MEM

69 Μερικές Πράξεις // i = 3; j = 4; n = i + j; // i = 3; j = 4; n = j i; BIPUSH R0, 3 ISTORE R0, i BIPUSH R0, 3 ISTORE R0, i BIPUSH R1, 4 ISTORE R1, j BIPUSH R1, 4 ISTORE R1, j IADD R2, R1, R0 ISTORE R2, n ISUB R2, R0, R1 ISTORE n

70 Απόφαση // if (i!= 3) k = 0; // if (i == 3) k = 0 else k = 1; ILOAD R0, i BIPUSH R1, 3 IF_ICMPEQ R0, R1, L1 BIPUSH R4, 0 ISTORE R4, k L1:... ILOAD R0, i BIPUSH R1, 3 IF_ICMPEQ R0, R1, L1 BIPUSH R4, 1 ISTORE R4, k GOTO L2 L1:BIPUSH R4, 0 ISTORE R4, k L2:..

71 Επανάληψη x = 0; while (x < n) {... x = x+1; } x = 0; L1: if ((x-n) < 0) goto L2 else goto L3 L2:... x = x+1; goto L1; L3:... // x = 1; BIPUSH R0, 0 ISTORE R0, x // if ((x-n) < 0) L1:ILOAD R1, x ILOAD R2, n ISUB R3, R2, R1 IFLT R3, L2 GOTO L3 L2:... // x = x+1; IINC R1,1 ISTORE R1,x GOTO L1 L3:...

72 Εκτέλεση σειράς εντολών στο Mic-4 ILOAD ILOAD IADD ISTORE IINC IADD ISTORE... Stall Stall Stall * Tα βήματα 1 έως 3 αντιστοιχούν σε ανάλυση των Fetch, Decode, Queue. Θεωρούμε οτι είναι ανεξάρτητα και δεν έχουν κινδύνους διοχέτευσης. Μόνος περιορισμός το μέγεθος ουράς μικροεντολών. * Τα βήματα 4 έως 7 αντιστοιχούν στα Operands, Exec, Write Back, Memory. Η εντολή ILOAD παρουσιάζει κινδύνους διοχέτευσης (RAW) λόγω επικοινωνίας με μνήμη. Η ISTORE απαιτεί διπλή διοχέτευση. Η κάτω διοχέτευση παρουσιάζει bubbles στην ILOAD. Η προσπέλαση στη μνήμη (7) πρέπει να είναι αραιή..

73 Απόδοση Διοχέτευσης Επιτάχυνση 16Χ1/3 = 6.3 κύκλοι έναντι 14 κύκλων, speedup 2.2 (ιδεατό 3, λαμβάνοντας υπ' όψη τις βαθμίδες 4, 5 και 6 και τις αναστολές λόγω 7). Σε μεγαλύτερο αριθμό εντολών καταχωρητών η επιτάχυνση πρέπει να τείνει στο 2.7 (με ~20% εντολές ILOAD ανά πρόγραμμα, με τη ILOAD να έχει ωφελιμότητα 2/5 περίπου). Ωφελιμότητα 27 ενεργά στάδια / 4Χ17 σύνολο = 33/68~50%, πολύ καλύτερα αν είχαμε εντολές καταχωρητών (πρέπει να προσεγγίζει το 70% για τα στάδια 4 έως 6, με ~ 20% εντολές ILOAD). Βελτιώσεις * Η χρήση καταχωρητών μειώνει τις αναφορές στη μνήμη αλλά μπορεί να δημιουργήσει κινδύνους δεδομένων. Αυτοί επιλύονται συχνά με Προώθηση (Forwarding) ή/και Μετονομασία (Renaming). * Δυνατότητα μετακίνησης δεδομένων απ ευθείας μεταξύ καταχωρητών (π.χ. ΙLOAD, ISTORE) χωρίς χρήση διαύλων A, B, C. * Μια διαφορετική λύση: ο stack υλοποιείται σε καταχωρητές χωρίς να μεταβληθούν οι εντολές σε επίπεδο ISA (υλοποίηση JVM)

74 Εκτέλεση εκτός σειράς στο Mic-4 LD OP STST*LD*LD OP OP OP LD*OP ST ST*OP OP OP... 1 Stall 2 Stall 3 Stall D A A' AD D' A'D' LD= ILOAD, ST=ISTORE, OP=Register Operations Η σειρά εντολών αντιστοιχεί στην βαθμίδα 4. Μπορεί να υλοποιηθεί η παραπάνω εκτέλεση εκτός σειράς; Ορισμένα ζητήματα: 1. Χρήση δεδομένων μνήμης σε επόμενα βήματα. 2. Τιμές MAR (A)και MDR (D) στο κατάλληλο χρονικό βήμα 3. Χρήση καταχωρητών γενικής χρήσης από διαδοχικές εντολές (Data Hazards)

75 Ασκήσεις (1) 1. Μέτρηση κύκλων ρολογιού (CPI). Αναπτύξτε το μικροπρόγραμμα Mic-3/4 μόνο για τις απλές εντολές (όχι WIDE, διακλάδωση, κλήση/επιστροφή μεθόδου). Συγκρίνετε τα δύο σύνολα μικροπρογραμμάτων, Mic-2 και Μic-3/4. Ποιές εντολές βελτιώνονται; Πόσοι είναι οι συνολικοί κύκλοι που εξοικονομουνται; 2. Συγκρίνετε τα αποσπάσματα προγραμμάτων που παρουσιάζονται (Mόνο Πράξεις, όχι Απόφαση και Επανάληψη) σε κύκλους μηχανής Mic-2 και Mic-3/4. 3. Σε ένα απλό πρόγραμμα JAS/JVM (για παράδειγμα ένα πρόγραμμα με επτά εντολές, 2 BIPUSH, 2 ILOAD, 1 ΙSUB, και 1 ISTORE) κάντε ανάλυση σε μικροεντολές με βάση τα μικροπρογράμματα Μic-2 και Μic-3/4. Πόση βελτίωση παρατηρείτε (CPI), σε απόλυτους αριθμούς και ποσοστιαία; 4. Με βάση τη μελέτη για τη ποσοστιαία συμμετοχή των εντολών επιπέδου ISA που συζητήσαμε στην εισαγωγή, υπολογίστε τη μέση ποσοστιαία βελτίωση της απόδοσης ενός υπολογιστή που διατηρεί το ίδιο επίπεδο ISA (δηλ τη IJVM) αλλά αλλάζει το επίπεδο μικροαρχιτεκτονικής του, από Mic-2 σε Mic-3 (χωρίς διακλαδώσεις και κλήσεις μεθόδων).

76 Ασκήσεις (2) 5. Έστω οτι οι εντολές πράξεων του Mic-4 επέτρεπαν μια προσπέλαση στη μνήμη, στo πεδίο src ή dst. Δηλαδή οι εντολές πράξεων επιτρέπουν μια προσπέλαση στη μνήμη (ανάγνωση ή εγγραφή). Υποθέτουμε οτι υπάρχει ειδικό κύκλωμα επικοινωνίας μνήμης και επεξεργαστών, χωρίς τη μεσολάβηση των διαύλων Α, Β, και C του επεξεργαστή. * Τι θα άλλαζε στις εντολές γλώσσας μηχανής; * Τι θα άλλαζε στη διοχέτευσή μας; Για να βοηθηθείτε μελετήστε τα διαγράμματα που παρουσιάζονται στο Δομικό Κίνδυνο. 6. Έστω οτι η βαθμίδα IF στο Mic-4 δεν είναι ανεξάρτητη, δηλαδή η ανάκληση εντολών δεν μπορεί να συμπέσει με ανάγνωση/εγγραφή δεδομένων στη μνήμη. Τι θα άλλαζε στη διοχέτευσή μας;

77 Αρχιτεκτονική Υπολογιστών Μικροαρχιτεκτονική Προκαταβολική ανάκληση εντολών (Mic-2) Διοχέτευση Ι (Mic-3 και Mic-4) Kρυφή Μνήμη Διοχέτευση ΙΙ και Υπερβαθμωτή εκτέλεση Μικροαρχιτεκτονική Pentium 4 και Υλοποίηση JVM

78 Ιεραρχία Μνήμης καταχωρητές Static RAM L1: 16-64K L1 Instruction/Data on chip L2: K L2 on chip package L3: 128K -8M L3 on board Dynamic RAM: ως 16G Virtual memory HDD: ως Τ Εντολές καταχωρητών * * Εντολές μνήμης * Εντολές Ι/Ο Μια ιεραρχία μνήμης με πέντε (ή εννέα) φυσικά επίπεδα. Τα λογικά επίπεδα είναι τρία (σημειώνονται με *).

79 Κρυφή Μνήμη Σύστημα με τρία επίπεδα κρυφής μνήμης (Cache L1/2/3) που βρίσκονται σε διαφορετική θέση, και έχουν διαφορετική ταχύτητα, χωρητικότητα και λειτουργικότητα (Εντολές, Δεδομένα).

80 Γενικά Χαρακτηριστικά Κόστος L1 > Kόστος L2 > Κόστος L3 > Κόστος Κύριας Μνήμης. Ταχύτητα L1 < Ταχύτητα L2 < Ταχύτητα L3 < Ταχύτητα Κ. Μνήμης Μέγεθος L1 < Μέγεθος L2 < Μέγεθος L3 < Μέγεθος Κ. Μνήμης Μέγεθος Cache < 1% Μέγεθος Κύριας Μνήμης Διαφορές με Καταχωρητές: * Η Cache είναι διαφανής στο επίπεδο συνόλου εντολών (δεν υπάρχουν δηλαδή ειδικές εντολές γλώσσας μηχανής). * Η διαχείριση της Cache γίνεται από το υλικό, όχι το λογισμικό. * Η Cache αποθηκεύει δεδομένα και εντολές.

81 Παράδειγμα Ιεραρχίας Μνήμης ( με 2 επίπεδα cache ) Μεγαλύτερη Ταχύτητα Μεγαλύτερη Χωρητικότητα Processor Main Memory (DRAM) Virtual Memory, Secondary Storage (Disk) Control Registers Datapath On-Chip Level One Cache L1 Second Level Cache (SRAM) L2 Tertiary Storage (Tape) Ταχύτητα : 1-5ns 10ns 30ns 50ns 10ms 10sec Μέγεθος : <1KB <256KB <8MB <4GB >1GB TB Bandwidth : 150GB/s 50GB/s cslab@ntua GB/s 4GB/s 10MB/s

82 Αρχή Τοπικότητας Ένα πρόγραμμα έχει τη τάση να προσπελαύνει σε κάθε χρονική στιγμή δεδομένα και εντολές σε σχετικά περιορισμένο χώρο διευθύνσεων. Δύο ειδών τοπικότητες: Χρονική Τοπικότητα: Αν μια θέση μνήμης προσπελαστεί μια φορά, τότε πιθανότατα θα ξαναχρησιμοποιηθεί τις επόμενες χρονικές στιγμές. Παράδειγμα: εντολές βρόχων επανάληψης Χωρική Τοπικότητα: Αν μια θέση μνήμης προσπελαστεί, τότε πιθανότατα σύντομα θα προσπελαστούν και οι γειτονικές θέσεις μνήμης. Παράδειγμα: πίνακες και άλλες δομές δεδομένων.

83 Οργάνωση και Λειτουργία Οργάνωση δεδομένων (Τύποι Κρυφής Μνήμης): direct-mapped (άμεση χαρτογράφηση) set-associative (συνολοσυνειρμική) fully associative (πλήρως συνειρμική) Προσπέλαση δεδομένων (Διευθυνσιοδότηση): Tag line mod (#lines, #sets, #1) Ανάγνωση/Εγγραφή δεδομένων: Read / Write Hit / Miss Μηχανισμός Aντικατάστασης: Direct (Άμεσος) Least Recently Used (LRU) Λιγότερο Πρόσφατη Χρήση FIFO (First In First Out) Random (Τυχαίος) Μηχανισμός Eνημέρωσης : write-through ή write-back write-allocate ή write-no-allocate cslab@ntua

84 Τύποι Κρυφής Μνήμης (1) Άμεσης Χαρτογράφησης (Direct Mapped Cache) Κάθε λέξη μνήμης έχει μια μόνο πιθανή θέση στη cache. Σχετικά απλή στην υλοποίηση. Συνειρμική (Associative Cache) Κάθε λέξη μνήμης μπορεί να καταλάβει οποιαδήποτε θέση της cache. Πολύ ευέλικτη αλλά δαπανηρή στην υλοποίηση. Συνολοσυνειρμική (Set-associative Cache) Κάθε λέξη μνήμης έχει ένα συγκεκριμένο σύνολο πιθανών θέσεων στη cache. Παράδειγμα: Συνολοσυνειρμική κρυφή μνήμη τεσσάρων δρόμων.

85 Τύποι Κρυφής Μνήμης (2) Γραμμή Η γραμμή 12 μπαίνει οπουδήποτε Η γραμμή 12 μπαίνει Η γραμμή 12 μπαίνει μόνο στη θέση 4 οπουδήποτε μέσα στο 4=12 mod 8) set 0 (=12 mod 4) Γραμμή Γραμμή Cache Αρ. Γραμμής διεύθυνση της γραμμής δεδομένων Μνήμη Κρυφή μνήμη με 8 γραμμές και μνήμη με 32 γραμμές δεδομένων cslab@ntua

86 Κρυφή Μνήμη Άμεσης Χαρτογράφησης (a) Κρυφή μνήμη άμεσης χαρτογράφησης 64K bytes =2K Χ 32 bytes. Στο μέγεθος δεν λαμβάνονται υπ' όψη τα bits ελέγχου (Valid, Tag). (b) Εικονική διεύθυνση των 32 bits (ίση με τη φυσική).

87 Διεθυνσιοδότηση και Μεγέθη (1) Η εικονική διεύθυνση παράγεται από τη CPU και έχει την ίδια μορφή σε όλους τους τύπους κρυφής μνήμης και το μέγεθός της είναι ίσο με αυτό της φυσικής διεύθυνσης. Καθορίζεται από το μέγεθος της κύριας μνήμης. Θεωρούμε οτι έχουμε κύρια μνήμη με 2^32 bytes, άρα διεύθυνση μεγέθους 32 bits. Η μνήμη είναι οργανωμένη σε λέξεις (words) των 4(2^2) bytes, άρα έχουμε 2^30 λέξεις των 4 bytes. Εικονική Διεύθυνση LINE TAG 16 bits 11 bits WORD BYTE 3 bits 2 bits 32 bits

88 Διεθυνσιοδότηση και Μεγέθη (2) Δεδομένα (Data) ή Line ή Block Δεδομένων 8 λέξεις ή 32 bytes δεδομένων από κύρια μνήμη που αποθηκεύονται σε μια γραμμή της κρυφής μνήμης. Το μέγεθος αυτό καθορίζεται από την αρχιτεκτονική της κρυφής μνήμης και φαίνεται στο σχετικό πεδίο της εικονικής διεύθυνσης. Byte ή Byte Select (= Word / Byte ) Δείχνει αν γίνεται αναφορά σε μεμονωμένο byte. Το μέγεθος εξερτάται από τον αριθμό bytes ανά λέξη. Αφού έχουμε 4 bytes ανά λέξη, απαιτούνται 2 bytes, όταν είναι 00 προσπελέυνουμε πλήρη λέξη. Λέξη (Word) ή Block Offset Δείχνει σε ποιά λέξη της γραμμής γίνεται αναφορά. Αφού η κάθε γραμμή αποθηκεύει 32 bytes ή 8 words, απαιτούνται 3 bits από την εικονική διεύθυνση. Άρα στη κύρια μνήμη έχουμε 2^27 γραμμές ή blocks των 32 bytes.

89 Διεθυνσιοδότηση και Μεγέθη (3) Γραμμή (Line) ή Δείκτης (Index) ή Block Δείχνει ποιά καταχώρηση κρυφής μνήμης περιέχει τα αντίστοιχα δεδομένα της κύριας μνήμης, αν υπάρχουν. Αφού η κρυφή μνήμη έχει 2K γραμμές απαιτούνται 11 bits. Άρα οι 2^27 γραμμές (blocks) της κύριας μνήμης ομαδοποιούνται σε 2^11 ομάδες γραμμών που η κάθε μια περιέχει 2^16 γραμμές. Ετικέτα (Tag) Μια μοναδική τιμή 16 bits που καθορίζει μια από τις 2^16 γραμμές κάθε ομάδας (τα bits υψηλότερης τάξης από τη θέση κύριας μνήμης από όπου προέρχονται τα δεδομένα). Επομένως στην κρυφή μνήμη άμεση χαρτογράφησης μόνο μια από τις γραμμές κάθε ομάδας μπορεί να βρίσκεται στη κρυφή μνήμη, η γραμμή Tag Line mod #lines. 'Εγκυρo (Valid) Δείχνει αν η καταχώρηση έχει έγκυρα δεδομένα (1 bit).

90 Παράδειγμα Ομαδοποίησης Κάθε χρώμα ορίζει μια ομάδα γραμμών / block δεδομένων. Κάθε ομάδα μπορεί να αποθηκευθεί μόνο σε μία γραμμή της κρυφής μνήμης άμεσης χαρτογράφησης: (διεύθυνση γραμμής block) MOD (Αριθμός γραμμών / blocks στην cache) Στο παράδειγμά μας: (διεύθυνση block address) MOD (8) cache cache γραμμές (11101) MOD (1000) = γραμμές (blocks) δεδομένων cslab@ntua Μνήμη

91 Παράδειγμα Υλοποίησης Tag field Διεύθυνση (θέση των bit) Index field 2K γραμμές / blocks, κάθε block = 8 words, κάθε word = 4 bytes byte offset Hit/Miss index 16 b i t s v data Επιλογή λέξης tag block offset 8 Χ 4 bytes = 32 bytes = 256 bits tag data K γραμμές Mux 32 cslab@ntua

92 Συνολοσυνειρμική Κρυφή Μνήμη (1) 511 Συνολοσυνειρμική μνήμη τεσσάρων δρόμων.

93 Συνολοσυνειρμική Κρυφή Μνήμη (2) Η εικονική διεύθυνση έχει την ίδια μορφή με τη κρυφή μνήμη άμεσης χαρτογράφησης. Όμως έχουμε τη Η συνολοσυσχετιστική μνήμη 4 δρόμων αποθηκεύει 4 γραμμές της ίδιας ομάδας, άρα έχουμε 4 εναλλακτικές ετικέτες για κάθε γραμμή. Επομένως το σύνολο των τετράδων κάθε ομάδας είναι ίσο με 2^9 = 2^11 / 2^2. Αντίστοιχα τα tag bits αυξάνονται κατά δύο (δηλ. 18 = ) για να επιλέγουμε μια γραμμή από τη τετράδα. Tag Line mod (#lines/#sets) Εικονική Διεύθυνση TAG 18 bits LINE 9 bits WORD BYTE 3 bits 2 bits

94 Συνολοσυνειρμική Κρυφή Μνήμη (3) Στη περίπτωση της πλήρως συνειρμικής μνήμης έχουμε στην ουσία μια συνολοσυνειρμική μνήμη με 2^27 ομάδες-γραμμές των 32 bytes η κάθε μια (2^32 = 2^27 X 2^5). Άρα #lines = #sets και η προσπέλαση γίνεται με Tag Line mod (#lines/#sets) Επομένως 1 αν #sets = 1: αμεση χαρτογράφηση αν #sets = #lines: πλήρως συνειρμική αν 1 < #sets < #lines: συνολοσυνειρμική Εικονική Διεύθυνση TAG LINE 27 bits WORD BYTE 3 bits 2 bits

95 Συνολοσυνειρμική Κρυφή Μνήμη (4) 1-way set associative (direct mapped) block Tag Data 0 2-way set associative 1 Set 2 Χωρητικότητα cache : 8 words Tag Data Tag Data way set associative Set Tag Data Tag Data Tag Data Tag Data way set associative (fully associative) Tag Data Tag Data cslab@ntua Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data

96 Συνολοσυνειρμική Κρυφή Μνήμη (5) Διεύθυνση Tag Field In d ex V Tag D a ta V Tag D a ta Word/byte Index Field 3 2 V T ag D ata V T ag D ata sets 2048 block frames 4 to 1 multiplexer Hlt/Miss cslab@ntua data 4x32

97 Άσκηση οργάνωσης και διευθυνσιοδότησης κρυφής μνήμης Έστω κρυφή μνήμη με 128 γραμμές (block frames) Κάθε γραμμή (block frame) περιέχει 4 λέξεις (16 bytes) 16-bit διευθύνσεις μνήμης στην cache (64Kbytes κύρια μνήμη ή 4096 γραμμές) Δείξτε την οργάνωση της κρυφής μνήμης και τα πεδία της εικονικής διεύθυνσης: Fully Associative cache. Direct mapped cache. 2-way set-associative cache. cslab@ntua

98 Fully Associative Valid bit V V Oι 128 tags ελέγχονται παράλληλα από το hardware κατά την τοποθέτηση ενός data block στην cache V Διεύθυνση του Block = 12bits Tag = 12bits cslab@ntua Block Offset = 4bits

99 Direct Mapped Valid bit V V V Μόνο ένα tag ελέγχεται παράλληλα από το hardware κατά την τοποθέτηση ενός data block στην cache V Διεύθυνση του Block = 12bits Tag = 5bits Index = 7bits cslab@ntua Block Offset = 4bits Κύρια Μνήμη

100 2-Way Set-Associative Cache Δύο tags σε ένα set ελέγχονται παράλληλα από το hardware κατά την τοποθέτηση ενός data block στην cache Διεύθυνση του Block = 12bits Tag = 6bits Index = 6bits cslab@ntua Block Offset = 4bits Κύρια Μνήμη

101 Αλγόριθμος Ανάγνωσης 1. Η CPU παράγει μια εικονική διεύθυνση για Read. 2. Το υλικό διαβάζει τις κατάλληλες Γραμμές της κρυφής μνήμης ανάλογα με τον τύπο οργάνωσης. 3. Συγκρίνει τα bits Ετικέτας της εικονικής διεύθυνσης με τα bits Valid/Ετικέτας της Γραμμής (ή Γραμμών). Αν δεν υπάρχει συμφωνία τότε έχουμε Αποτυχία Ανάγνωσης (Read Miss). 4. Επιτυχία Ανάγνωσης (Read Hit). Με βάση το πεδίο Λέξη (Word) και Byte προσκομίζονται τα αντίστοιχα bytes από τα Δεδομένα (Data) από τη κατάλληλη Γραμμή, γίνεται η ανάγνωση. Τέλος. 5. Αποτυχία Ανάγνωσης (Read Miss). Η αντίστοιχη γραμμή προσκομίζεται από ανώτερο επίπεδο Κρυφής Μνήμης ή τελικά από τη Κύρια Μνήμη Αν η αποτυχία οφειλόταν στο Valid bit τότε έχουμε νέα Εγγραφή, αλλιώς 5.2. έχουμε Σύγκρουση που απαιτεί Αντικατάσταση. Τελικά γίνεται η ανάγνωση. Τέλος.

102 Αλγόριθμος Εγγραφής 1. Η CPU παράγει μια εικονική διεύθυνση για Write (ή προκύπτει εγγραφή λόγω του αλγορίθμου ανάγνωσης). 2. Το υλικό διαβάζει τις κατάλληλες Γραμμές της κρυφής μνήμης ανάλογα με τον τύπο οργάνωσης. 3. Συγκρίνει τα bits Ετικέτας της εικονικής διεύθυνσης με τα bits Valid/Ετικέτας της Γραμμής (ή Γραμμών). Αν δεν υπάρχει συμφωνία τότε έχουμε Αποτυχία Κρυφής Μνήμης (Write Miss). 4. Επιτυχία Εγγραφής (Write Hit). Με βάση το πεδίο Λέξη (Word) και Byte προσκομίζονται τα αντίστοιχα bytes από τα Δεδομένα (Data) στη κατάλληλη Γραμμή, γίνεται η Ενημέρωση. Τέλος. 5. Αποτυχία Εγγραφής (Write Miss) Αν η αποτυχία οφειλόταν στο Valid bit τότε έχουμε νέα Εγγραφή, αλλιώς 5.2. έχουμε Σύγκρουση που απαιτεί Αντικατάσταση. Τελικά γίνεται η εγγραφή (Δες Write Miss παρακάτω). Τέλος.

103 Μηχανισμός Αντικατάστασης Άμεσης Χαρτογράφησης Direct (Άμεσος):μια μόνη επιλογή. Συνειρμική και Συνολοσυνειρμική Least Recently Used (LRU) Λιγότερο Πρόσφατη Χρήση FIFO (First In First Out) Σειρά Εισόδου Random (Τυχαίος) Στη συνολοσυνειρμική ο μηχανισμός εφαρμόζεται μόνο στο συγκεκριμένο υποσύνολο. Ο Τυχαίος είναι ο απλούστερος στην υλοποίηση και γι' αυτό χρησιμοποιείται πιο συχνά. O LRU είναι ο αποδοτικότερος αλλά πλέον σύνθετος. Ο FIFO είναι καλή προσέγγιση του LRU.

104 Μηχανισμός Ενημέρωσης (1) Write-through Κάθε ενημέρωση της κρυφής μνήμης 'περνά' άμεσα και στα ανώτερα επίπεδα μνήμης. Η κύρια μνήμη πάντα ενημερωμένη, δεν απαιτείται να 'σώσουμε' τη cache. Απλή διαχείριση της cache: το Valid bit αρκεί. Μεγάλη κυκλοφορία στο δίαυλο μνήμης αλλά συνέπεια (consistency) των διαφόρων επιπέδων μνήμης.

105 Μηχανισμός Ενημέρωσης (2) Write-back Τα ανωτερα επίπεδα ενημερώνονται μόνον αν υπάρξει Αντικατάσταση. Η κύρια μνήμη δεν είναι πάντα ενημερωμένη, απαιτείται να 'σώσουμε' τη cache. Πιο σύνθετη διαχείριση της cache: το Valid bit και Dirty bit αρκεί. Μικρή κυκλοφορία στο δίαυλο μνήμης.

106 Write Miss Write-allocate Ο μηχανισμός του αλγορίθμου εγγραφής. Συνήθως συνδυάζεται με Write-back. Write-no-allocate Η εγγραφή γίνεται κατ' ευθείαν στο ανώτερο επίπεδο (εκεί που υπάρχει Write Hit) και η κρυφή μνήμη δεν μεταβάλλεται. Συνήθως συνδυάζεται με Write-through.

107 Λειτουργία (1) Σύστημα με διαδρομή δεδομένων 16 bit (1 λέξη = 2 bytes), Διευθύνσεις των 16 bit, άρα 2^16 bytes ή 2^15 λέξεις. H γραμμή της κρυφής μνήμης κρατά 16 λέξεις (32 bytes). Η μνήμη ομαδοποιείται σε 2^16/2^5 = 2^15/2^4 = 2^11 blocks (lines). H κρυφή μνήμη είναι τύπου Άμεσης Χαρτογράφησης και έχει συνολικά 8 γραμμές (2^3). Σε κάθε γραμμή αντιστοιχούν 2^11/2^3 = 2^8 blocks. Άρα η διευθυνσιοδότηση έχει τη μορφή Tag Line mod 8 Tag Line Word Byte Εικονική Διεύθυνση

108 Λειτουργία (2) word/byte Line 0xXX00-0xXX1F 0xXX20-0xXX3F 0xXX40-0xXX5F xXXE0-0xXXFF Κρυφή Μνήμη, αρχική κατάσταση 0x x x x x x x x xFC xFC xFD xFD xFE xFE xFF xFF x x x x x x x x xFC xFC xFD xFD xFE xFE xFF xFF

109 Λειτουργία (3) Tag Line Y 0x0Α Word 1001 Byte 0 (0x0A60-0x0A7F) READ 0x0A72. Read Miss (Valid bit). Νέα Εγγραφή. Ανάγνωση.

110 Λειτουργία (4) Tag Line Word 0100 Y 0x0Α (0x0A60-0x0A7F) Y 0x0C (0x0CA0-0x0CBF) Byte 0 READ 0x0CA8. Read Miss (Valid bit). Νέα Εγγραφή. Ανάγνωση.

111 Λειτουργία (5) Tag Line Word 1111 Y 0x01 (0x0100-0x011F) Y 0x0Α (0x0A60-0x0A7F) Y 0x0C (0x0CA0-0x0CBF) Byte 0 READ 0x011E. Read Miss (Valid bit). Νέα Εγγραφή. Ανάγνωση.

112 Λειτουργία (6) Αποτυχία Tag Line Word 0010 Y 0x01 (0x0100-0x011F) Y 0x0Α (0x0A60-0x0A7F) Y 0x0C Byte 0 Αντικατάσταση αν έχει (0x0CA0-0x0CBF) αλλάξει και προσκόμιση των νέων δεδομένων. write-back READ 0x2464. Read Miss (Tag). Αντικατάσταση >>.

113 Λειτουργία (7) Overwrite Tag Line Word 0010 Y 0x01 (0x0100-0x011F) Y 0x24 (0x2460-0x247F) Y 0x0C (0x0CA0-0x0CBF) Byte 0 READ 0x2464. Read Miss (Tag). >> Αντικατάσταση. Ανάγνωση.

114 Λειτουργία (8) Tag Line Word 0111 Y 0x01 (0x0100-0x011F) Y 0x24 (0x2460-0x247F) Y 0x0C (0x0CA0-0x0CBF) Byte 1 READ 0x010F. Read Ηit. Ανάγνωση.

115 Λειτουργία (8) Tag Line Word x01 (0x0100-0x011F) Y 0x0Α (0x0A60-0x0A7F) Y 0x0C (0x0CA0-0x0CBF) Byte 0 writeallocate WRITE 0x0CB0. Write Hit. Εγγραφή.

116 Απόδοση Κρυφής Μνήμης (1) Επιτυχία (hit) : το block βρίσκεται σε θέση του εξεταζόμενου επιπέδου κρυφής μνήμης hit rate : hits προς συνολικές προσπελάσεις μνήμης (ποσοστό) hit time/cycles : χρόνος/κύκλοι προσπέλασης των δεδομένων Αποτυχία (miss) : το block δεν υπάρχει στο εξεταζόμενο επίπεδο μνήμης miss rate : 1 (hit rate) miss penalty : χρόνος/κύκλοι μεταφοράς των δεδομένων ενός block στο συγκεκριμένο επίπεδο μνήμης + χρόνος/κύκλοι απόκτησης των δεδομένων από την CPU χρόνος/κύλοι προσπέλασης (access time/cycles) : χρόνος/κύκλοι απόκτησης της 1ης λέξης από τη μνήμη μέσος χρόνος/κύκλοι προσπέλασης (average access time/cycles) : hit time/cycle + miss rate X miss penalty cslab@ntua

117 Απόδοση Κρυφής Μνήμης (2) Για CPU με ένα μόνο επίπεδο (L1) cache και καθόλου πρόσθετη καθυστέρηση όταν έχουμε cache hit: Χρόνος CPU = χρόνος 1 κύκλου ρολογιού Χ { κύκλοι ρολογιού ανά εντολή κατά τη λειτουργία της CPU και για cache hit + κύκλοι ρολογιού λόγω καθυστέρησης από προσπέλαση της μνήμης λόγω cache miss (Mem stalls) } Mem stalls = αναγνώσεις x miss rate αναγνώσεων x miss penalty αναγνώσεων + εγγραφές x miss rate εγγραφών x miss penalty εγγραφών Αν τα miss penalties των αναγνώσεων και των εγγραφών είναι ίδια: Mem stalls = προσπελάσεις μνήμης x miss rate x miss penalty cslab@ntua

118 Παράδειγμα Έστω μία CPU λειτουργεί cache L1 και έχει CPIexecution = 1.1 cycles Εντολές: 50% arith/logic, 30% load/store, 20% control Έστω cache miss rate = 1.5% και miss penalty = 50 cycles. CPI = CPIexecution + Mem stalls/εντολή Mem Stalls/εντολή = Mem accesses /εντολή x Miss rate x Miss penalty Mem accesses /εντολή = = 1.3 cycles Instruction fetch Load/store Mem Stalls /εντολή = 1.3 x x 50 = cycles CPI = = cycles Η ιδανική CPU χωρίς misses είναι 2.075/1.1 = 1.88 φορές γρηγορότερη Ποιοί είναι οι χρόνοι με ρολόι 200 MHz (5 ns/cycle) ; cslab@ntua

119 Ασκήσεις κρυφής μνήμης 1. Οργάνωση και Διευθυνσιοδότηση Σχεδιάστε και να δείξτε τη διευθυνσιοδότηση κρυφής μνήμης με διάφορες παραλλαγές τύπου, μεγέθους κρυφής και κύριας μνήμης, μεγέθους λέξης και γραμμής, αριθμού συνόλων κλπ. 2. Λειτουργία Εκτελέστε τις βασικές λειτουργίες προσπέλασης κρυφής μνήμης με διάφορα σενάρια: ανάγνωση (hit/miss), αντικατάσταση, εγγραφή (hit/miss), ενημέρωση (write miss). 3. Απόδοση Για τα παραδείγματα της πρώτης άσκησης και για διαφορετικά miss rates/penalties και άλλες παραμέτρους υπολογίστε την απόδοση σε CPI. Προσθέστε και L2 κρυφή μνήμη

120 Αρχιτεκτονική Υπολογιστών Μικροαρχιτεκτονική Προκαταβολική ανάκληση εντολών (Mic-2) Διοχέτευση Ι (Mic-3 και Mic-4) Kρυφή Μνήμη Διοχέτευση ΙΙ και Υπερβαθμωτή εκτέλεση Μικροαρχιτεκτονική Pentium 4 και Υλοποίηση JVM

121 Υλοποίηση της GOTO στο Mic-3 H=PC PC=H+MBR2;fetch MBR=mem(PC);goto(MBR1) A=PC C=A-1 H=C; A=H, B=MBR2 C=A+B PC=C;fetch MBR=mem goto(mbr1) Κύκλοι ρολογιού: 8X1/3=2.6 < 4

122 Υλοποίηση της IFLT στο Mic MAR=SP=SP-1;rd OPC=TOS B=SP C=B-1 MAR=C;SP=C;rd MDR=mem B=TOS C=B OPC=C TOS=MDR B=MDR C=B TOS=C N=OPC; if(n) goto T; else goto F B=OPC C=B if (N) goto T; else goto F εκτέλεση μέρους GOTO Κύκλοι ρολογιού: 8X1/3=2.6 < 4

123 Υλοποίηση της IFEQ στο Mic MAR=SP=SP-1;rd OPC=TOS B=SP C=B-1 MAR=C;SP=C;rd MDR=mem B=TOS C=B OPC=C TOS=MDR B=MDR C=B TOS=C Z=OPC; if(z) goto T; else goto F B=OPC C=B if (Z) goto T; else goto F Κύκλοι ρολογιού: 8X1/3=2.6 < 4

124 Υλοποίηση της IF_ICMPNEQ στο Mic-3 MAR=SP=SP-1;rd MAR=SP=SP-1 H=MDR;rd OPC=TOS TOS=MDR B=SP C=B-1 MAR=C;SP=C;rd MDR=mem Z=H-OPC; if(z) goto T; else goto F B=SP C=B-1 MAR=C B=MDR C=B B=TOS H=C;rd C=B MDR=mem OPC=C B=MDR C=B TOS=C A=H;B=OPC C=A-B if (Z) goto T; else goto F εκτέλεση μέρους GOTO Κύκλοι ρολογιού: 12X1/3=4 < 6

125 Κίνδυνος Ελέγχου στο Mic-3 // if (i == 3) k = 0 else k = 1; ILOAD i BIPUSH 3 IF_ICMPEQ L1 BIPUSH 1 ISTORE k GOTO L2 L1: BIPUSH 0 ISTORE k L2: BIPUSH.. ISTORE.. Πρόγραμμα i==3 TRUE i==3 FALSE ILOAD i BIPUSH 3 IF_ICMPEQ L1 BIPUSH 1 ISTORE k GOTO L2 L1: L1: BIPUSH 0 ISTORE k L2: L2: BIPUSH.. ISTORE Ροή εντολών TRUE ILOAD i BIPUSH 3 IF_ICMPEQ L1 BIPUSH 1 ISTORE k GOTO L2 BIPUSH 0 ISTORE k BIPUSH.. ISTORE Ροή εντολών FALSE Οι διαγραμμένες εντολές πρέπει να 'αφαιρεθούν' από τη διοχέτευση ανάλογα με την τιμή της συνθήκης IF_CMPEQ και λόγω της εκτέλεσης GOTO.

126 Εκτέλεση GOTO στο Mic-3 GOTO BIPUSH ΙF ISTORE GOTO BIPUSH ISTORE Stall Stall ID EX WB ME Θέση πρώτης Έγκυρης Ανάκλησης stall Νέος PC διαθέσιμος Οι εντολές BIPUSH και ILOAD που βρίσκονται αμέσως μετά το GOTO πρέπει να αναιρεθούν. Στάση (stall) Διοχέτευσης λόγω της εκτέλεσης της GOTO. Εκτελούνται οι εντολές BIPUSH και ILOAD που βρίσκονται μετά το label L2.

127 Υποσύνολο Εντολών IJVM Mic-4 Έλεγχος Ροής GOTO offset PC = PC +/- offset IFEQ src, offset if (src == 0) then PC = PC +/- offset IFLT src, offset if (src < 0) then PC = PC +/- offset IF_ICMPEQ src1, src2, offset if (src1 == src2) then PC = PC +/- offset offset: σχετική διεύθυνση 2bytes (PC) Κλήση Μεθόδου INVOKEVIRUAL disp κλήση μεθόδου disp: σχετική έμμεση διεύθυνση 2bytes (CPP, PC) IRETURN επιστροφή από μέθοδο

128 Υλοποίηση GOTO στο Mic A=PC C=A-1 H=C A=H, B=MBR2 C=A+B PC=C; fetch MBR=mem goto(mbr2) ID WB MEM X ID WB MEM goto Κύκλοι ρολογιού 8Χ1/3=2.6<4

129 Εντολές απόφασης στο Mic A=src1 C=A (N) if (N) goto T; else goto F ID WB MEM X IFLT Κύκλοι ρολογιού 3Χ1/3=1<4 1 A=src1 2 C=A (Z) 3 if (z) goto T; else goto F ID WB MEM X IFEQ Κύκλοι ρολογιού 3Χ1/3=1<4 1 A=src1; B=src2 2 C=A-B 3 if (z) goto T; else goto F ID WB MEM X IF_CMPEQ Κύκλοι ρολογιού 3Χ1/3=1<6

130 Κίνδυνος Ελέγχου στο Mic-4 // if (i == 3) k = 0 else k = 1; i==3 TRUE i==3 FALSE ILOAD R0, i ILOAD R0, i BIPUSH R1, 3 BIPUSH R1, 3 IF_ICMPEQ R0, R1 L1 IF_ICMPEQ R0, R1 L1 BIPUSH R2, 1 BIPUSH R2, 1 ISTORE R2, k ISTORE R2, k GOTO L2 GOTO L2 L1: BIPUSH R3, 0 L1: BIPUSH R3, 0 L1: ISTORE R3, k ISTORE R3, k L2: BIPUSH.. L2: BIPUSH.. L2: ISTRORE.. ISTORE.. Πρόγραμμα Ροή εντολών TRUE ILOAD R0, i BIPUSH R1, 3 IF_ICMPEQ R0, R1 L1 BIPUSH R2, 1 ISTORE R2, k GOTO L2 BIPUSH R3, 0 ISTORE R3, k BIPUSH.. ISTRORE.. Ροή εντολών FALSE Οι διαγραμμένες εντολές πρέπει να αφαιρεθούν από τη διοχέτευση ανάλογα με την τιμή της συνθήκης IF_CMPEQ και λόγω της εκτέλεσης GOTO.

131 Εντολές με GOTO στο Mic-4 WB ID GOTO MEM Χ WB ID MEM WB ID stall MEM WB ID MEM X ID 1 BIPUSH ISTORE WB MEM Εκτέλεση της ακολουθίας GOTO L2,... L2: BIPUSH, ISTORE. Εναλλακτική παρουσίαση της διοχέτευσης. 131 cslab@ntua ( )

132 Τύποι Διακλάδωσης Χωρίς συνθήκη (GOTO) Η εκτέλεση του GOTO αναιρεί την εκτέλεση ορισμένων εντολών που ακολουθούν και έχουν εισέλθει στη διοχέτευση. Προφανής λύση: πρόκληση στάσης (stall) με εντολές τύπου NOP μέχρι να η GOTO να φθάσει στη φάση εκτέλεσης, ώστε ο PC να λάβει τη σωστή τιμή. Με ειδικό υλικό η διάρκεια της στάσης μπορεί να μειωθεί (άμεση γνώση της διεύθυνσης διακλάδωσης). Με συνθήκη (απόφαση) (IFLT, IFEQ, IF_CMPEQ) Πριν την εκτέλεση της διακλάδωσης απαιτείται υπολογισμός της τιμής της συνθήκης. Αυτό επιβαρύνει ακόμη περισσότερο τη καθυστέρηση που θα επιβληθεί στη διοχέτευση γιατί απαιτείται κανονική εκτέλεση της εντολής (δε μπορεί να γίνει παράκαμψη τύπου GOTO).

133 Εναλλακτικές Λύσεις Εισαγωγή στάσης (stall) Απλή αλλά χρονοβόρα λύση, μειώνει την απόδοση της διοχέτευσης. Εκτίμηση μέσων καθυστερήσεων (CPI); Βελτίωση με ειδικό υλικό, ειδικά για GOTO. Πρόβλεψη Μη-Διακλάδωσης (IFLT, IFEQ, IF_CMPEQ) Εκτελούνται οι εντολές αμέσως μετά το IF: No Branch. Σε περίπτωση Αληθούς Συνθήκης οι εκτελεσθείσες εντολές πρέπει να αναιρεθούν (ενδεικτική συχνότητα 47%). Πρόβλεψη Διακλάδωσης (IFLT, IFEQ, IF_CMPEQ) Εκτελούνται οι εντολές αμέσως μετά το Label: Branch. Σε περίπτωση Ψευδούς Συνθήκης οι εκτελεσθείσες εντολές πρέπει να αναιρεθούν (ενδεικτική συχνότητα 53%).

134 Πρόβλεψη Διακλάδωσης Στατική Πρόβλεψη O compiler χρησιμοποιεί βοηθητικές εντολές διακλάδωσης που υποδεικνύουν Διακλάδωση ή Μη-Διακλάδωση (Branch, No Branch). Το πρόγραμμα εκτελείται με profiler για να διαπιστωθεί η συχνότητα επιλογής σε κάθε εντολή διακλάδωσης. Δυναμική Πρόβλεψη Η CPU κρατά τις διευθύνσεις και το ιστορικό των διακλαδώσεων. Εφαρμόζονται διάφοροι αλγόριθμοι πρόβλεψης με βάση το ιστορικό. Και στις δύο περιπτώσεις απαιτείται σύνθετο υλικό (στη δυναμική πρόβλεψη πιο σύνθετο).

135 Δυναμική Πρόβλεψη Διακλάδωσης (1) (a) Πίνακας ιστορικού διακλάδωσης 1-bit. (b) Πίνακας ιστορικού διακλάδωσης 2-bit. (c) Πίνακας με συσχέτιση διεύθυνσης εντολής διακλάδωσης και διεύθυνσης στόχου διακλάδωσης (νέα τιμή PC).

136 Δυναμική Πρόβλεψη Διακλάδωσης (2) Πίνακας Ιστορικού Διακλάδωσης Η CPU κρατά τις διευθύνσεις και το ιστορικό των διακλαδώσεων σε ειδική κρυφή μνήμη. Πίνακας Διευθύνσεων Στόχου Διακλάδωσης Η CPU κρατά και τη διεύθυνση στόχου της επικρατούσας επιλογής σε κάθε διακλάδωση. Ιστορικό Διακλάδωσης 1-bit Αποθηκεύει τη τελευταία επιλογή (Branch, No Branch) Αποτυγχάνει πάντα σε είσοδο και έξοδο βρόχου επανάληψης. Ιστορικό Διακλάδωσης 2-bit Αποθηκεύει Ισχυρή (Strong) και Ασθενή (Weak) Πρόβλεψη. Με δύο διαδοχικά σφάλματα επέρχεται αντιστροφή Πρόβλεψης.

137 Δυναμική Πρόβλεψη Διακλάδωσης (3) Weak No Branch Strong No Branch Weak Branch Strong Branch Μηχανή πεπερασμένων καταστάσεων για πρόβλεψη διακλάδωσης 2-bit.

138 Δυναμική Πρόβλεψη Διακλάδωσης (4) Συμβάντα Διακλάδωση 00 Ισχυρή Πρόβλεψη Μη-Διακλάδωσης 01 Ασθενής Πρόβλεψη Μη-Διακλάδωσης 10 Ασθενής Πρόβλεψη Διακλάδωσης 11 Ισχυρή Πρόβλεψη Διακλάδωσης Παρούσα Κατάσταση Μη-Διακλάδωση Νέα Κατάσταση Εναλλακτική παρουσίαση της μηχανής πεπερασμένων καταστάσεων για πρόβλεψη διακλάδωσης.

139 Υπερβαθμωτή (Superscalar) Αρχιτεκτονική (1) Υπερβαθμωτός επεξεργαστής με πέντε λειτουργικές μονάδες, τοποθετημένος σε διοχέτευση πέντε σταδίων (Pentim II).

140 Υπερβαθμωτή (Superscalar) Αρχιτεκτονική (2) 1 Α Β C D1 D2 D3 D4 D5 E Χρόνο ς Σειρά Εκτέλεσης? Ρυθμός Εκτέλεσης? Καθυστέρηση Μονάδων? Μονάδε ς Η Υπερβαθμωτή αρχιτεκτονική επιτρέπει την εκτέλεση πολλαπλών εντολών: Τα στάδια Α έως C 'αδειάζουν' γρήγορα. Η σειρά ολοκλήρωσης των εντολών μπορεί να είναι διαφορετική από τη σειρά εισαγωγής λόγω διαφορετικής καθυστέρησης μονάδων και χρήσης πολλαπλών καταχωρητών.

141 Εκτέλεση Εντός-Εκτός Σειράς Οι εντολές υποβάλονται (issue) με τη σειρά εμφάνισης στο πρόγραμμα. Οι εντολές αποχωρούν (retire) με τη σειρά εμφάνισης στο πρόγραμμα. Οι εντολές μπορεί να εκτελούνται εντός σειράς (in order) ή εκτός σειράς (out of order) Η απόδοση διοχέτευσης και υπερβαθμωτής εκτέλεσης μπορεί να μην είναι βέλτιστη λόγω εξαρτήσεων δεδομένων (data dependencies) ή κινδύνων δεδομένων (data hazards). Δεδομένα μεταγενέστερων εντολών δεν είναι έτοιμα προς χρήση έγκαιρα. Αληθής Εξάρτηση Δεδομένων Αντι-Εξάρτηση Δεδομένων Εξάρτηση Εξόδου Read After Write Write After Read Write After Write RAW WAR WAW

142 Κίνδυνος Δεδομένων (1) : RAW Read After Write Ανάγνωση Μετά την Εγγραφή Οι εντολές sub, and, or χρησιμοποιούν τον καταχωρητή r1 πριν αυτός προλάβει να ενημερωθεί. Η εντολή xor είναι η πρώτη που χρησιμοποιεί τον ενημερωμένο καταχωρητή. Εξάρτηση (Dependence) ή Αληθής Εξάρτηση Δεδομένων. Η συνηθέστερη περίπτωση σε τυπικές διοχετεύσεις. Δύο τύποι: R-type (Register type) - διαχειρίσιμη. M-type (Memory type) - προκαλεί στάση (stall).

143 Κίνδυνος Δεδομένων (2) : WAR * Write After Read: Εγγραφή Μετά την Ανάγνωση Μια εντολή γράφει σε ένα καταχωρητή πριν μια επόμενη εντολή χρησιμοποιήσει τη παλιά τιμή του. πχ. sub add r2, r1, r3 r1, r4, r5 // r2 = r1 - r3 // r1 = r4 + r5 Αντι-Εξάρτηση (Anti-Dependence). Μπορεί να συμβεί μόνο αν * Αλλάξει η σειρά εκτέλεσης εντολών, για παράδειγμα επειδή η sub σταμάτησε (stalled) και η add τη πρόλαβε. * Επιτρέπεται εγγραφή σε διαφορετικά στάδια της διοχέτευσης.

144 Κίνδυνος Δεδομένων (3) : WAW * Write After Write: Εγγραφή Μετά την Εγγραφή Μια εντολή γράφει (η add) σε ένα καταχωρητή πριν μια προηγούμενη εντολή (η sub) γράψει. πχ. sub add r1, r2, r3 r1, r4, r5 // r1 = r2 - r3 // r1 = r4 + r5 Εξάρτηση Εξόδου (Output Dependence). Μπορεί να συμβεί μόνο αν * Αλλάξει η σειρά εκτέλεσης εντολών, για παράδειγμα επειδή η sub σταμάτησε (stalled) και η add τη πρόλαβε. * Επιτρέπεται εγγραφή σε διαφορετικά στάδια της διοχέτευσης.

145 Προώθηση Καταχωρητών στο Mic-4 Switch + R0-R7 MUX Switch ΜUX MUX Έλεγχος Προώθησης Switch

146 Παράδειγμα Προώθησης Καταχωρητών Χωρίς προώθηση καταχωρητών Με προώθηση καταχωρητών

147 Υπερβαθμωτή Επεξεργασία στο Mic-4 + R0-R7 C1,C2.. A1,A2.. B1,B2.. ALU1, ALU2, MUL, DIV, SHIFT, FPU.. 5 Execution Order Control

148 Παράδειγμα Υπερβαθμωτής Επεξεργασίας Υποβολή έως δύο εντολών ανά κύκλο μηχανής: η υπερβαθμωτή μονάδα έχει διπλάσια διεκπεραιωτική ικανότητα από την υπόλοιπη διοχέτευση. Δύο διαφορετικές καθυστερήσεις (latency) στην υπερβαθμωτή μονάδα: 1 κύκλος μηχανής για ADD, SUB 2 κύκλοι μηχανής για MUL, DIV Πρώτο παράδειγμα: Εκτέλεση Εντός Σειράς (In-Order). Δεύτερο παράδειγμα: Εκτέλεση Εκτός Σειράς (Out-of-Order).

149 Κανόνες Εκτέλεσης Εντολών Αληθής Εξάρτηση Δεδομένων (Κίνδυνος RAW) Μια εντολή δεν μπορεί να εκτελεστεί αν ένας τελεστής (καταχωρητής) αναμένει να εγγραφεί. Αντι-Εξάρτηση Δεδομένων (Κίνδυνος WAR) Μια εντολή δεν μπορεί να εκτελεστεί αν ο προορισμός (καταχωρητής) αναμένει να διαβαστεί. Αντι-Εξάρτηση Δεδομένων (Κίνδυνος WAR) Μια εντολή δεν μπορεί να εκτελεστεί αν ο προορισμός (καταχωρητής) αναμένει να εγγραφεί.

150 Υπερβαθμωτή Εκτέλεση Εντός Σειράς (1) Κίνδυνος RAW: #4 και #2. Στάση λόγω R4. Εκτέλεση Εντός Σειράς: Η #2 αποχωρεί στο κύκλο 4. Αναμένει την #1. Κίνδυνος WAR: #6 και #4, #5. Στάση λόγω R1.

151 Υπερβαθμωτή Εκτέλεση Εντός Σειράς (2) Κίνδυνος WAR: #6 και #4, #5. Στάση λόγω R1. Κίνδυνος RAW: #7 και #6. Στάση λόγω R1. Κίνδυνος WAR: #8 και #7. Στάση λόγω R1.

152 Υπερβαθμωτή Εκτέλεση Εκτός Σειράς (1) Κίνδυνος RAW: #4 και #2. Στάση λόγω R4. Εκτέλεση Εκτός Σειράς: Η #5 υποβάλεται στο κύκλο 3, πρίν την #4. Κίνδυνος WAR: #6 και #4, #5 λόγω R1. Μετονομασία Καταχωρητή: R1 σε S1. Εκτέλεση Εκτός Σειράς: Η #2 αποχωρεί στο κύκλο 3, πριν την #1. Operation of a superscalar CPU with out-of-order issue and out of-order completion.

153 Υπερβαθμωτή Εκτέλεση Εκτός Σειράς (2) Κίνδυνος RAW: #7 και #6. Στάση λόγω S1 (πρώην R1). Εκτέλεση Εκτός Σειράς: Η #8 υποβάλεται στο κύκλο 4, πρίν την #7. Κίνδυνος WAR: #8 και #6, #7 λόγω S1. Μετονομασία Καταχωρητή: S1 σε S2. Εκτέλεση Εκτός Σειράς: Η #6 αποχωρεί στο κύκλο 5, πριν τις #4, #5. Η #8 αποχωρεί στο κύκλο 6, πριν την #7.

154 Εικαζόμενη Εκτέλεση (a) Απόσπασμα προγράμματος. (b) Λογικό διάγραμμα.

155 Ασκήσεις 1. Υλοποιείστε πλήρως τις εντολές απόφασης στη διοχέτευση Mic-4 (μαζί με το GOTO που ακολουθεί). 2. Σχεδιάστε το χρονοδιάγραμμα της διοχέτευσης για την εκτέλεση του ενδεικτικού προγράμματος απόφασης που παρουσιάζεται παραπάνω. 3. Έστω οτι χρησιμοποιούμε τη λογική της υπερβαθμωτής εκτέλεσης στο Mic-4, με υποβολή δύο εντολών ανά κύκλο. Καταγράφουμε τη χρήση των καταχωρητών MAR, MDR, LV, και R0-R7. Προσπαθήστε να καταγράψετε μια λειτουργική χρήση καταχωρητών στην εκτέλεση των εντολών LOAD ADD STORE LOAD SUB SUB AND LOAD OR STORE ADD IINC.. στη λογική της διοχέτευσης LD OP STST*LD*LD OP OP OP LD*OP ST ST*OP OP OP... που είχε παρουσιαστεί παραπάνω. ΟΙ LD, SΤ κάνουν χρήση MAR, MDR και ενός από τους R0-R7 για εγγραφή ή ανάγνωση. Οι OP κάνουν χρήση τριών καταχωρητών R0-R7, έναν για εγγραφή και δύο για ανάγνωση.

156 Αρχιτεκτονική Υπολογιστών Μικροαρχιτεκτονική Προκαταβολική ανάκληση εντολών (Mic-2) Διοχέτευση Ι (Mic-3 και Mic-4) Kρυφή Μνήμη Διοχέτευση ΙΙ και Υπερβαθμωτή εκτέλεση Μικροαρχιτεκτονική Pentium 4 και Υλοποίηση JVM

157 Διάγραμμα Pentium 4 Επικοινωνία με Μνήμη Μονάδα Εκτέλεσης Δεδομένα Κρυφή Μνήμη L2 Ανάκληση Αποκωδ-ση Υπερβαθμωτή Εκτέλεση Ουρά Εντολών Μικροεντολές Υποβολή Αποχώρηση Πρόβλεψη Διακλάδωσης Κύρια Μονάδα Ελέγχου Έλεγχος Σειράς Εκτέλεσης

158 Εικόνα Intel Pentium 4

159 Δίαυλος NetBurst Pentium 4

160 Υλοποίηση JVM (1) o stack σε register file

161 Σύμπτυξη εντολών (1) Κίνηση στη στοίβα για την ακολουθία ILOAD, ILOAD, IADD, ISTORE (a) Χωρίς σύμπτυξη εντολών (b) Με σύμπτυξη χωρίς σύμπτυξη εντολών

162 (a) (b) Σύμπτυξη εντολών (2) (a) Ομάδες εντολών της JVM (b) Σύμπτυξη ομάδων εντολών της JVM

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Μικροαρχιτεκτονική Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Organization, W. Robinson, CS-231,

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

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Μικροαρχιτεκτονική Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Organization, W. Robinson, CS-231,

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

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% /

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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% /

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Processor-Memory (DRAM) Διαφορά επίδοσης Performance Processor-Memory (DRAM) Διαφορά επίδοσης 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 µproc 6%/yr Processor-Memory Performance Gap: (grows 5%

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

Α. Δίνονται οι. (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 ΑΡΧΙΤΕΚΤΟΝΙΚΗ

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

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

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

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

Οργάνωση Ιεραρχίας Μνήμης - Caches

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

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

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών 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. Προσομοίωση λειτουργίας ιεραρχίας

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 015-16 Οργάνωση Υπολογιστών (ΙI) (κύρια και ) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα τυπικό υπολογιστικό

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

Οργάνωση Υπολογιστών (ΙI)

Οργάνωση Υπολογιστών (ΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (ΙI) (κύρια και κρυφή μνήμη) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5. Σχεδιάστε ένα κύκλωμα περιττής ισοτιμίας για το βασικό κώδικα ΑSCII (7 bits).

5. Σχεδιάστε ένα κύκλωμα περιττής ισοτιμίας για το βασικό κώδικα ΑSCII (7 bits). Αρχιτεκτονική Η/Υ Ασκήσεις Επανάληψης και Εξετάσεων 1. Με τη βοήθεια του διαγράμματος λειτουργίας CPU-Μνήμης (από την εισαγωγή) εξηγείστε το κύκλο Ανάκλησης Εκτέλεσης. Γράψτε τα βήματα σε μορφή ψευδοκώδικα.

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

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

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

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

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

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

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

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

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

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

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

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

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

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

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

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

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

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

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

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

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

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

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

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

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

Τεχνολογίες Κύριας Μνήμης

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

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

3. Γλώσσα μηχανής IJVM 4. Σχεδιαστικές επιλογές 5. Κρυφή μνήμη

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 κάθε «φάση»

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

Ασκήσεις Caches

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

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

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 6: Διασωλήνωση Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/mdasyg

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Mic-1 και IJVM Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Organization, W. Robinson, CS-231, Vanderbildt

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

Άσκηση 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

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

και η µονάδα ελέγχου (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

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

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Τι εννοούμε με τον όρο υπολογιστικό σύστημα και τι με τον όρο μικροϋπολογιστικό σύστημα; Υπολογιστικό

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

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

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

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

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

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

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

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

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

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

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/ Άδεια Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπερβαθμωτοι επεξεργαστές

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπερβαθμωτοι επεξεργαστές Υ- 01 Αρχιτεκτονική Υπολογιστών Υπερβαθμωτοι επεξεργαστές Αρης Ευθυμίου Το σημερινό μάθημα Υπερβαθμωτοί επεξεργαστές (superscalar) Εκτέλεση σε σειρά Εκτέλεση εκτός σειράς Alpha 21164 Scoreboard Μετονομασία

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 6: Διασωλήνωση Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/mdasyg

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

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

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

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

6. Ακολουθίες μικροεντολών 7. Συμβολισμός μικροεντολών (MAL)

6. Ακολουθίες μικροεντολών 7. Συμβολισμός μικροεντολών (MAL) ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXAIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΜΙΚΡΟΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Ι Γ. Τσιατούχας 4 ο Κεφάλαιο ιάρθρωση 1. Μικροπρογραμματιζόμενη μονάδα ελέγχου. Διαδρομή δεδομένων 3. Χρονισμός διαδρομής

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

Εικονική Μνήμη (virtual memory)

Εικονική Μνήμη (virtual memory) Εικονική Μνήμη (virtual memory) Πολλά προγράμματα εκτελούνται ταυτόχρονα σε ένα υπολογιστή Η συνολική μνήμη που απαιτείται είναι μεγαλύτερη από το μέγεθος της RAM Αρχή τοπικότητας (η μνήμη χρησιμοποιείται

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

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

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

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

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

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

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

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ Γιώργος Δημητρίου Μάθημα 6 ο ΠΜΣ Εφαρμοσμένη Πληροφορική ΕΝΤΟΛΗ ΑΠΛΟΥ ΚΥΚΛΟΥ ΜΗΧΑΝΗΣ Όλες οι φάσεις του κύκλου εντολής στον ίδιο κύκλο μηχανής: Ο χρόνος από την ανάκληση μέχρι

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

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

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Mic-1 και IJVM Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Organization, W. Robinson, CS-231, Vanderbildt

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

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 11: Κρυφή Μνήμη Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/mdasyg

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

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης! Single-cyle υλοποίηση: Διάρκεια κύκλου ίση με τη μεγαλύτερη εντολή-worst case delay (εδώ η lw) = χαμηλή απόδοση! Αντιβαίνει με αρχή: Κάνε την πιο απλή περίπτωση γρήγορη (ίσως και εις βάρος των πιο «σύνθετων»

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

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

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

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

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών Εισαγωγή Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic, CS1/2-52,

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 5. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 2. Σημείωση

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

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

Η διασύνδεση Υλικού και λογισμικού 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 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το

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