Implicitly Multithreaded Processors Νίκος Ιωάννου EΠΛ605 Παρουσίαση άρθρου “IMT processors”

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Εισαγωγή στις Τεχνολογίες της Πληροφορικής και των Επικοινωνιών
Advertisements

1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
Το υλικο του Υπολογιστη
Handling Local Variables General Purpose Registers
Δυναμική Δρομολόγηση Εντολών (Dynamic Scheduling)
ΠΡΟΣΟΜΟΙΩΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ
Πολυνηματικές Αρχιτεκτονικές & «Μη-Παραδοσιακός» Παραλληλισμός.
Πολυνηματικές Αρχιτεκτονικές
29/11/2004Εισαγωγή στο OpenMP1 OpenMP Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
1/12/2003Εισαγωγή στο OpenMP1 OpenMP Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
Υποθετική Εκτέλεση Εντολών (Hardware-Based Speculation)‏
Υποθετικός Πολυνηματισμός. Τα προβλήματα του παράλληλου προγραμματισμού  Εντοπισμός παραλληλισμού – χειροκίνητα (επισκόπηση) – αυτόματα (compiler) 
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) Σχεδίαση datapath 4 κατηγορίες εντολών: Αριθμητικές-λογικές.
Ανίχνευση κίνδυνου Επίλυση με προώθηση. Μπλέ: Εξαρτήσεις. Εξαρτήσεις προς προηγούμενα CC είναι κίνδυνοι δεδομένων Kόκκινο: Προώθηση IF/ID ID/EX EX/MEM.
Λύση: Multicycle υλοποίηση Single-cyle υλοποίηση: Διάρκεια κύκλου ίση με τη μεγαλύτερη εντολή-worst case delay (εδώ η lw) = χαμηλή.
NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4 1.  Ένα thread έχει: ID, program counter, register set, stack  Μοιράζεται με τα άλλα threads της ίδιας διεργασίας.
Δυναμική Δρομολόγηση Εντολών (Dynamic Scheduling)
ΠΡΟΣΟΜΟΙΩΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ. Εισαγωγή Έρευνα στην Αρχιτεκτονική Υπολογιστών – Σχεδίαση επεξεργαστή για την εκτέλεση 1 thread (pipeline, branch prediction)
Πολυνηματικές Αρχιτεκτονικές. Εισαγωγή  Η ενσωμάτωση πολλαπλών ροών εκτέλεσης αποτελεί πλέον μονόδρομο στην τεχνολογία των επεξεργαστών –Ελάχιστη ανταπόδοση.
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
Πολυνηματικές Αρχιτεκτονικές.
Memory Cloaking & Bypassing Εργασία στο μάθημα: Προηγμένες Αρχιτεκτονικές Υπολογιστών Κατσαρής Αριστοτέλης Μ473 Τσαγκάρης Γιώργος Μ479.
© Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών ακ. έτος Νεκτάριος Κοζύρης Νίκος Αναστόπουλος
Multi-threading Κορομηνάς Κωνσταντίνος – Μ437
Υπερβαθμωτή Οργάνωση Υπολογιστών. Περιορισμοί των βαθμωτών αρχιτεκτονικών Μέγιστο throughput: 1 εντολή/κύκλο ρολογιού (IPC≤1) Υποχρεωτική ροή όλων των.
Multi-threading Κορομηνάς Κωνσταντίνος – Μ437 Χατζηανδρέου Ελένη - Μ400 Χήνου Διονυσία – Μ364.
© Υπερβαθμωτή Οργάνωση Υπολογιστών Από τις βαθμωτές στις υπερβαθμωτές αρχιτεκτονικές αγωγού…
Ανασκόπηση Σχεδιασμού στο CAN Διονύσης Αθανασόπουλος Βασιλική Δεβελέγκα.
Σύγχρονες Προκλήσεις. Εισαγωγή Οι CMP είναι πια πραγματικότητα – Intel Core 2, Quad, Nehalem – IBM Power5, Power6 – Sun Niagara, Niagara2, Rock –
Μικροεπεξεργαστές Λειτουργία - Εξέλιξη
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
1 EPIC Νάνου Σπυριδούλα Α.Μ Explicitly Parallel Instruction Computing Ένα νέο στυλ αρχιτεκτονικής που σκοπό έχει: Τη δυνατότητα υψηλότερου επιπέδου.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
© Processor-Memory (DRAM) Διαφορά επίδοσης Performance
1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Οι κίνδυνοι της.
1 REPUTATION & TRUST MANAGEMENT IN P2P Γεωργούλας Κώστας Σταθοπούλου Ευγενία.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών.
Translation Lookaside Buffers Φροντιστήριο του μαθήματος “Προηγμένοι Μικροεπεξεργαστές”
Πολυνηματικές Αρχιτεκτονικές.
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Υποθετική Εκτέλεση Εντολών (Hardware-Based Speculation)‏
Πολυνηματικές Αρχιτεκτονικές
Single-cyle υλοποίηση:
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
Παράγοντες που επηρεάζουν την επίδοση της CPU
Διπλωματική Εργασία για το Μεταπτυχιακό Δίπλωμα Ειδίκευσης
Pipeline: Ένα παράδειγμα από ….τη καθημερινή ζωή
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Α.Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Επιβλέπων: Καθηγητής Εφαρμογών Δρ. Δημήτριος Βαρσάμης
Πολυνηματικές Αρχιτεκτονικές
Single-cyle υλοποίηση:
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
Εργαστήριο Διαχείρισης Έργων (MS Project)
Vector Αρχιτεκτονικές,
Advanced Computer Architectures Cache Memories
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
Single-cyle υλοποίηση:
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Single-cyle υλοποίηση:
Single-cyle υλοποίηση:
Memory Cloaking & Bypassing
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
Thread Level Parallelism Data Level Parallelism
Ανίχνευση Προσωρινών Σφαλμάτων μέσω Ταυτόχρονης Πολυνηματικής Εκτέλεσης (Transient Fault Detection via Simultaneous Multithreading) «Προχωρημένα Θέματα.
Μεταγράφημα παρουσίασης:

Implicitly Multithreaded Processors Νίκος Ιωάννου EΠΛ605 Παρουσίαση άρθρου “IMT processors”

Εισαγωγή (1)  Οι έρευνες για καλύτερη επίδοση στην αρχιτεκτονική των επεξεργαστών εστιάζονται στον παραλληλισμό σε επίπεδο threads (TLP)  Το Simultaneous Multithreading (SMT) είναι μια τεχνική η οποία επιτρέπει πολλαπλά ανεξάρτητα threads να εκδώσουν πολλαπλές εντολές στα functional units του επεξεργαστή superscalar σε κάθε κύκλο ρολογιού.  Οι επεξεργαστές SMT συνδυάζουν τα χαρακτηριστικά πολλαπλής έκδοσης εντολών των μοντέρνων superscalar αρχιτεκτονικών και την ικανότητα απόκρυψης των latency των multithreaded αρχιτεκτονικών  Παραδείγματα SMT επεξεργαστών: Pentium4 Hyperthreaded, IBM Power5, Alpha 21464

Εισαγωγή (2)  Τελευταία οι έρευνες επικεντρώνονται στην χρήση της αρχιτεκτονικής SMT σε συνδυασμό με άλλες τεχνικές για βελτίωση του χρόνου εκτέλεσης ενός συνεχούς προγράμματος.  Κάποιες από τις τεχνικές αυτές είναι: Threaded Multipath Execution (TME) Dynamically Multithreaded (DMT) Implicitly Multithreaded (IMT)

Threaded Multipath Execution(TME)  Τεχνική επεξεργασίας για speculative threading in SMT  Εκμεταλλεύεται τους υφιστάμενους πόρους του επεξεργαστή SMT για να πετύχει ψηλότερο παραλληλισμό με multipath execution  Ακολουθεί και τις δύο πιθανές πορείες των conditional branches (multipath) για την παράλληλη επεξεργασία των threads  Αποτέλεσμα αυτού οι πόροι του SMT να χρησιμοποιούνται πιο αποδοτικά και οι πιθανότητες επεξεργασίας του σωστού path αυξάνονται  Εκτελεί multiple threads in the uncommon case of branch misprediction

Dynamically Multithreaded (DMT)  Χρησιμοποιεί το hardware για την αυτόματη δημιουργία threads όταν υπάρχουν procedure και loop boundaries  Επεξεργάζεται τα threads speculatively σε simultaneous multithreaded διασωλήνωση  Βελτιώνει την παράλληλη εκτέλεση εντολών και επιτρέπει πολύ μεγάλα παράθυρα εντολών για fetch εντολών από διαφορετικά locations ταυτόχρονα ( out of order)  Cache misses και branch mispredictions μειώνονται. Χρησιμοποιεί μεγάλα trace buffers. Δύσκολη η επαναφορά σε περιπτώσεις misspeculation  Εκτελεί threads στην συχνή περίπτωση των ορθών predictions αυξάνοντας τον παραλληλισμό

Implicitly Multithreaded (IMT)  Οι explicit multithreaded επεξεργαστές μπορούν να επεξεργαστούν threads πολλών εφαρμογών ταυτόχρονα  Οι implicit multithreaded επεξεργαστές εκτελούν compiler-specified speculative threads ταυτόχρονα ενός σειριακού προγράμματος στην διασωλήνωση του SMT  Στο άρθρο παρουσιάζονται δύο μορφές του IMT: Naïve IMT (N-IMT): Επεξεργασία εντολών από τα threads χωρίς να υπολογίζονται οι πόροι και οι εξαρτήσεις. Performs poorly Optimized IMT (O-IMT): Για βελτίωση της επίδοσης του N-IMT προτείνονται τρεις καινούργιες τεχνικές μικροαρχιτεκτονικής

Βελτιστοποιήσεις στον O-IMT  Οι νέοι αυτοί μηχανισμοί είναι οι ακόλουθοι: Resource and dependence based fetch policy to fetch and execute suitable instrs (use highly accurate DRP and ITDH) in contrast with TME, DMT and N-IMT that use ICOUNT variations fetch policy (thread with the least number of instrs is fetched) Context multiplexing to improve utilization and map as many threads in program order to a single context as allowed by availability of resources. TME, DMT and N- IMT assign a single thread to each SMT context Hiding thread start up delay (from register renaming) by invocating threads early and overlapping one thread’s invocation with other’s thread execution. TME and N-IMT incur extra start up delay prior to thread invocation

Compiler-specified speculative threads  Οι speculatively threaded αρχιτεκτονικές χρησιμοποιούν το hardware ή τον μεταγλωττιστή για τον διαμελισμό ενός σειριακού προγράμματος σε threads  Το hardware προσφέρει binary compatibility με τον superscalar αλλά με ψηλό thread speculation overhead  To IMT χρησιμοποιεί τον μεταγλωττιστή για τον διαμελισμό σε threads  Με την μέθοδο αυτή τα control flow mispredictions και register dependencies μειώνονται. Ακόμα η ανάγκη για περισσότερους πόρους όπως και τα overhead per thread βελτιώνονται σε σχέση με τη μέθοδο hardware

Λειτουργία ΙΜΤ επεξεργαστών (1)  Register tables για register renaming  Issue queue για out of order scheduling  Load/store queue (LSQ) και active list για memory dependencies  All contexts share FUs, Regs, issue queue and Mem  Inter-Thread Dependence Heuristic (ITDH) για αναγνώριση των επαναλήψεων βρόγχων τα οποία είναι ανεξάρτητα μεταξύ τους  Dynamic Resource Predictor (DRP) για μείωση της συμφόρησης πόρων μεταξύ των threads (invoke threads as soon as resources become available)

Λειτουργία ΙΜΤ επεξεργαστών (2)  IMT exploits implicit parallelism  IMT predicts threads in succession and maps them to execution resources  IMT invoke threads in program order by predicting next thread (Descriptor cache) but fetching of instrs may be out of order  Instruction reordering prior to commit

Αποτελέσματα προσομοιώσεων (1)  Ο προσομοιωτής που κατασκευάστηκε είναι ένας out of order SMT pipeline με επεκτάσεις για αξιολόγηση κανονικού superscalar επεξεργαστή και για αξιολόγηση των speculatively threaded επεξεργαστών ΙΜΤ, DMT και TME  Χρήση μεταγλωττιστή Multiscalar  8-wide issue out of order SMT, 8 hw contexts, 2-port icache, for O-IMT:64-entry DRP, 3-entry ITDH etc  Benchmarks SPEC2000 applications

Αποτελέσματα προσομοιώσεων (2)  Σύγκριση επίδοσης του N-IMT και O-IMT με βάση τον SuperScalar (SS)  To Ν-ΙΜΤ μειώνει την επίδοση του συστήματος σε σύγκριση με τον SS  To Ο-ΙΜΤ βελτιώνει κατά πολύ την επίδοση του συστήματος

Αποτελέσματα προσομοιώσεων (3)  Σύγκριση των overhead από την επεξεργασία των εφαρμογών στον N-IMT και Ο-ΙΜΤ με βάση τον SS  Σε αρκετά από τα benchmarks o N-IMT παρουσιάζει μεγαλύτερο o/h από τον SS μειώνοντας την επίδοση  Από την άλλη το Ο-ΙΜΤ μειώνει τα o/h σε σχέση με τον Ν- ΙΜΤ. Αυτό οφείλεται στο fetch policy, στο context multiplexing, στο resource allocation του Ο-ΙΜΤ τα οποία μειώνουν τα data dependencies και τα memory stalls

Αποτελέσματα προσομοιώσεων (4)  Σύγκριση επίδοσης των μηχανών TME και DMT σε σχέση με τον O-IMT  Κατά μέσο όρο TME και DMT μειώνουν την επίδοση σε σχέση με τον SS. Αυτό οφείλεται στις διαφορετικές τεχνικές που χρησιμοποιούν.

Συμπεράσματα  Μέχρι τώρα η τεχνική ΙΜΤ χρησιμοποιείται μόνο για έρευνα  Δύσκολο να εφαρμοστεί αν και παρουσιάζει συγκριτικά καλά αποτελέσματα για βελτίωση της επίδοσης  Χρήση Simultaneous multithreading και chip multiprocessor techniques στους μικροεπεξεργαστές επόμενης γενιάς  Αναμένονται νέες τεχνικές multithreading στο μέλλον για signal processors, microcontrollers για εφαρμογές πραγματικού χρόνου και για power management