Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών

Σχετικά έγγραφα
Υ- 01 Αρχιτεκτονική Υπολογιστών Πρόβλεψη διακλάδωσης

Υπερβαθµωτή Οργάνωση Υπολογιστών

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

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

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

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

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

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

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

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

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

(Branch Prediction Mechanisms)

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές

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

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

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 8 ο Μερική Επικάλυψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

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

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

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

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

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

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

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

Εντολές Διακλάδωσης. #bubbles ~= pipeline depth X loop length. Next fetch started. Fetch. I-cache. Fetch Buffer. Decode. Issue Buffer.

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

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

Βασίλειος Κοντογιάννης ΠΕ19

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

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

Μικροαρχιτεκτονική του LC3

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

ΑΣΚΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΓΙΑ ΤΗ ΘΕΩΡΙΑ

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

Εικονική Μνήμη (Virtual Μemory)

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

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;

Παραλληλισµός Εντολών (Pipelining)

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

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

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

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

Διοχέτευση (Pipeline)

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

Μέθοδοι Πρόβλεψης Διακλαδώσεων (Branch Prediction Mechanisms)

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

Δομή Ηλεκτρονικού υπολογιστή

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

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

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

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

Transcript:

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών Αρης Ευθυμίου

Το σημερινό μάθημα Προσκόμιση (fetch) πολλαπλές εντολές ανά κύκλο Μετονομασία καταχωρητών επιλογές υλοποίησης 2

Προσκόμιση Επεξεργαστής «πλάτους» m Προσκόμιση περίπου m εντολών από τη διεύθυνση του PC σε κάθε κύκλο δηλαδή χρειάζεται μεγάλος ρυθμός προσκόμισης (fetch bandwidth) Γιατί περίπου; <m: μερικές φορές τα επόμενα στάδια δεν μπορούν να τις αποροφήσουν όλες >m: καλύτερα να υπάρχουν πολλές εντολές διαθέσιμες για εκτέλεση - > μεγαλύτερη πιθανότητα εύρεσης ανεξάρτητων εντολών 3

Προβλήματα Αστοχίες κρυφής μνήμης Πολύπλοκα instrucbon set μεταβλητό μέγεθος εντολών Ευθυγράμιση (alignment) στις γραμμές της I$ ίσως να χρειαστεί προσπέλαση σε >1 γραμμές Διακλαδώσεις και άλματα ποιές είναι οι επόμενες (m- 1) εντολές; ανάμεσα στις m εντολές θα υπάρχουν και διακλαδώσεις. 4

Οργάνωση Ι$ Μία ολόκληρη γραμμή μπορεί να προσπελαστεί σε 1 κύκλο Μερικές φορές οι γραμμές «διπλώνονται» σε 2 5

Εξαγωγή m εντολών i-0 i-1 i-2 i-3 i-0 i-1 i-2 i-3 i-0 i-1 i-2 i-3 i-0 i-1 i-2 i-3 i-0 i-1 i-2 i-3 i-0 i-1 i-2 i-3 Αν οι m εντολές έχουν τοποθετηθεί σε 2 γραμμές; Μικρή πιθανότητα αν η γραμμή είναι μεγάλη, αλλά... Εξυπνη τοποθέτηση από compiler θα ισχύει για διαφορετικό επεξεργαστή; 6

Unaligned access Προσπέλαση της γραμμής I$ που αντιστοιχεί στο PC και της επόμενης, ταυτόχρονα 2- θυρη μνήμη, 2x ρυθμός ρολογιού, interleaved banks 0000 L-0 0001 L-1 0010 L-2 0011 L-3 0100 L-4 0101 L-5 0110 L-6 0111 L-7 1000 L-8 1001 L-9 Bank 0 Bank 1 Συνεχόμενες διευθύνσεις βρίσκονται σε διαφορετικά banks Χρειάζεται ελεγχος tag σε κάθε γραμμή - Μπορεί μια γραμμή να έχει αντικατασταθεί 7

Unaligned access σε way- associabve $ IBM RS/6000 8

Περιορισμός λόγω basic block Οι m εντολές δεν είναι πάντα συνεχόμενες ειδικά αν το m είναι μεγάλο 9

Προσκόμιση ως 1 η taken branch Δυνατότητα προσκομισης m συνεχόμενων εντολών ακόμη και αν είναι unaligned Με interleaving (υποθ. m <= cache line size) Ποιές από αυτές αποτελούν το basic block; πού είναι η πρώτη taken διακλάδωση; Χρειάζεται πολλαπλή πρόβλεψη διακλάδωσης ποιές από τις εντολές στις διευθύνσεις Α ώς Α+m είναι taken; Αποτέλεσμα μία «μάσκα» με 1 σε κάθε θέση που έχει χρήσιμη (συνεχόμενη) εντολή Χρειάζεται και (πολλαπλή) προσπέλαση BTB για να είναι διαθέσιμη η διεύθυνση προσκόμισης για τον επόμενο κύκλο Κάποιου είδους collapsing buffer που δίνει μέχρι m συνεχόμενες εντολές 10

Πολλαπλή πρόβλ. διακλάδωσης 1 st Level PHT 2 nd Level GHR 3 rd Branch Prediction 2 nd Branch Prediction 1 st Branch Prediction 11

Σχέδιο υλοποίησης BTB 12

Intra- block branches Με σχετικά μεγάλες γραμμές κρυφής μνήμης και κοντινές διακλαδώσεις, ο στόχος μπορεί να βρίσκεται στην ίδια γραμμή Θα πρέπει το BTB logic να τις ανιχνεύει σύγκριση του, κάθε, target με τα όρια της τρέχουσας γραμμής 13

Fetch beyond 1 taken branch Πρέπει να έχουμε το στόχο της πρώτης διακλάδωσης, πρίν την προσπέλαση στην I$! Στάδιο πρίν το IF, για ΒΤΒ και να μην είναι στο ίδιο bank Κύκλος 1: (πολλαπλή) προσπέλαση ΒΤΒ (και direcbon predictor) από διεύθυνση Α και εύρεση στόχου 1 ης taken branch (έστω Β) Κύκλος 2: προσπέλαση I$ στις διευθύνσεις Α και Β (υποθ. σε διαφ. banks) προσπέλαση BTB (και dir. pred) από τη διεύθυνση Β για να μας δώσει: την τελευταία εντολή του basic block και την επόμενη διεύθυνση προσκόμισης 14

Σχέδιο υλοποίησης Bit Vectors 1 st cache line Branch 2 nd cache line Collapse Aligned and collapsed instruction buffer 15

Trace cache βασική ιδέα Η συμβατική I$ αποθηκεύει εντολές με τη σειρά που διάλεξε ο compiler ευνοεί κώδικα που δεν ακολουθεί διακλαδώσεις συχνά Trace cache: Αποθηκεύει εντολές με τη σειρά που εκτελέστηκαν αν η σειρά είναι ίδια στο μέλλον, οι εντολές είναι συνεχόμενες Trace: σύνολο εντολών οργανωμένο με τη σειρά που «εκτελούνται» Το «κλασικό» υλικό προσκόμισης, υπάρχει και χρησιμοποιείται μόνο για να παρέχει traces στην trace cache όταν αυτή αστοχεί 16

Τι είναι trace Αποτελείται από το πολύ n εντολές και το πολύ m basic blocks Οριο n από το μέγεθος της γραμμής trace cache Οριο m από τον αριθμό των ταυτόχρονων προβλέψεων διακλάδωσης Ενα trace καθορίζεται πλήρως από 1. την αρχική του διεύθυνση 2. τα αποτελέσματα των (m- 1) διακλαδώσεων που περιγράφουν το μονοπάτι που ακολουθήθηκε Η τελευταία εντολή του trace είναι διακλάδωση 17

Οργάνωση I- fetch με trace- cache 18

Θέματα trace- cache Basic blocks εμφανίζονται >1 φορές σε διαφορετικά traces Path associabvity πολλαπλά μονοπάτια που ξεκινούν από την ίδια διεύθυνση parbal- matches αν ένα μέρος των branch flags ταιριάζουν, μπορεί να χρησιμοποιηθεί μέρος του trace; Replacement περιορισμένη χωρητικότητα. Ποιά είναι τα καλύτερα traces; αλγόριθμος αντικατάστασης,... 19

Register rename Τρεις πιθανές επιλογές: Reorder buffer ο ROB κρατά τις τιμές αποτελεσμάτων υπάρχει χωριστός architecture register file (ARF) Monolithic/Unified/Merged register file ένα ενιαίο, μεγάλο αρχείο καταχωρητών οποιοσδήποτε καταχωρητής μπορεί να είναι/αντιστοιχεί σε αρχιτεκτονικό καταχωρητή Extended/Split/Renamed register file χωριστό ARF Ξεχωριστό ή κοινό αρχείο καταχωρητών για floabng point 20

Ανάγνωση τελεσταίων Νωρίς, στο στάδιο dispatch μετά/μαζί με την αποκωδικοποίηση, μετονομασία αν δεν είναι έτοιμη μια τιμή, κρατάμε το «όνομα» (tag) του καταχωρητή που θα πάρει την τιμή συνήθως με reservabon stabons Αργά, στο στάδιο issue αφού γνωρίζουμε ότι η εντολή είναι έτοιμη για εκτέλεση δε χρειάζεται να αποθηκευθούν οι τιμές, μόνο τα «ονόματα» (tags) των καταχωρητών που τις κρατούν συνήθως με instrucbon window 21

Σημαντικά θέματα Register allocate: στο στάδιο Rename/dispatch Register release Πώς γίνεται η αντιστοίχιση Πώς ανακτούμε την παλιά αντιστοίχιση αν έχει γίνει λάθος πρόβλεψη διακλάδωσης ή διακοπή (excepbon); Θύρες ανάγνωσης 2 x dispatch, αναγν. τελεσταίων όταν dispatch 2 x issue, αναγν. τελεσταίων όταν issue + ανάγν. για εντολές που κάνουν commit, για χωριστό ARF Θύρες εγγραφής όσες οι λειτουργικές μονάδες όσες οι εντολές που κάνουν commit για ARF, αν είναι χωριστό 22

Αριθμός καταχωρητών Οσοι το άθροισμα των εντολών που έχουν γίνει dispatch, εκτελούνται, περιμένουν να κάνουν commit δηλαδή ίσο με το μέγεθος του ROB Αρκετά είδη εντολών δεν παράγουν αποτέλεσμα δε χρειάζονται καταχωτητή αποτελέσματος διακλαδώσεις, άλματα, εγγραφές στη μνήμη Συμπέρασμα: το πολύ μέχρι τον αριθμό των θέσεων του ROB 23

Καταστάσεις καταχωρητή Δεν χρειάζεται αντιγραφή αποτελεσμάτων στο ARF 24

Register release i1: R1_a <- R2 / R3 i2: R4_a <- R1_a + R5 i3: R5_a <- R6 + R7 i4: R1_b <- R8 + R9 Πότε ο R1_a θα μπορεί να θεωρηθεί ελεύθερος; Πρέπει όλες οι επόμενες εντολές που τον αναφέρουν ως όρισμα πηγής, να έχουν διαβάσει την τιμή του μετρητής (για κάθε καταχωρητή): αυξάνεται όταν στο στάδιο rename/dispatch αναφέρεται, μειώνεται όταν η εντολή γίνει issue Πώς γνωρίζουμε ότι δεν θα εμφανιστεί εντολή που τον αναφέρει και δεν έχει φτάσει ακόμη στο στάδιο rename Αν ξαναμετονομαστεί ο αρχιτεκτονικός καταχωρητής, δεν μπορεί να υπάρχει εντολή που να χρειάζεται την προηγούμενη τιμή 25

Register release 2 Οι προηγούμενες συνθήκες είναι δύσκολο να υλοποιηθούν ιδιαίτερα οι μετρητές Στη πράξη χρησιμοποιούνται πιο εύκολα υλοποιήσιμες λύσεις όπως: ο καταχωρητής είναι ελεύθερος όταν η εντολή που ξαναμετονόμασε τον ίδιο αρχιτεκτονικό καταχωρητή (Ra), κάνει commit στο παράδειγμα: όταν η i4 κάνει commit, ο R1_a είναι ελεύθερος Χρειάζεται ένας δείκτης στην εντολή που προηγουμένως άλλαξε τον ίδιο αρχ. καταχωρητή από την τρέχουσα αντιστοίχιση του Ra όταν η εντολή είναι στο στάδιο rename 26

Αντιστοίχιση Ξεχωριστό map table (RAM) βολικό για αργή ανάγνωση τελεσταίων Ενσωματομένο με την αποθήκευση τιμών (CAM) 27

Recovering old mapping Σε λάθη πρόβλεψης ή διακοπές, η αντιστοίχιση πρέπει να είναι ακριβής (precise) ROB: ακύρωση όλων των αντιστοιχήσεων Monolithic Single map. rollback Το ROB πρέπει να κρατάει αρκετή πληροφορία Dual map. (Future, Architectural). Αντιγραφή του Architectural στο Future Checkpoinbng. Καταγραφή του map σε κάθε διακλάδωση 28

Προβλήματα ROB- based rename Αρκετή επιπλέον πληροφορία σε κάθε καταχώρηση ακόμη και αν η εντολή δεν έχει αποτελέσματα Στο στάδιο commit χρειάζεται 2 κύκλους ανάγνωση τιμών και εγγραφή στο ARF Πολλές θύρες ανάγνωσης και εγγραφής ο ROB είναι κοινός για integer και floabng- point 29

Αποκωδικοποίηση Δυσκολίες για RISC: υπολογισμός στόχου διακλάδωσης εύρεση εξαρτήσεων εντολών μεταξύ του «πακέτου εντολών» που προσκομίζονται μαζί μετονομασία καταχωρητών «πακέτου εντολών» Δυσκολίες για CISC: μεταβλητό μέγεθος εντολών πολύπλοκες, μικροπρογραμματιζόμενες εντολές 30