Thread Level Parallelism & Data Level Parallelism

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

Download "Thread Level Parallelism & Data Level Parallelism"

Transcript

1 Thread Level Parallelism & Data Level Parallelism 1

2 Ο Νόμος της απόδοσης των μικροεπεξεργαστών 1 Time Instructions Cycles Time = = x x Performance Program Program Instruction Cycle (instr. count) (CPI) (cycle time) Performance = IPC x Hz instr. count Αύξηση απόδοσης clock speed ( Hz) αρχιτεκτονικές βελτιστοποιήσεις ( IPC): pipelining, superscalar execution, branch prediction, out-of-order execution, caches αλγόριθμοι ( instr.count) 2

3 Περιορισμοί Αύξησης Απόδοσης Ο ILP εκμεταλλεύεται παράλληλες λειτουργίες, συνήθως μη οριζόμενες από τον προγραμματιστή σε μια «ευθεία» ακολουθία εντολών (χωρίς branches) ανάμεσα σε διαδοχικές επαναλήψεις ενός loop Δύσκολο το να εξάγουμε ολοένα και περισσότερο ILP από ένα και μόνο νήμα εκτέλεσης εγγενώς χαμηλός ILP σε πολλές εφαρμογές ανεκμετάλλευτες πολλές από τις μονάδες ενός superscalar επεξεργαστή Συχνότητα ρολογιού: φυσικά εμπόδια στη συνεχόμενη αύξησή της μεγάλη έκλυση θερμότητας, μεγάλη κατανάλωση ισχύος, διαρροή ρεύματος Πρέπει να βρούμε άλλον τρόπο πέρα από τον ILP + συχνότητα ρολογιού για να βελτιώσουμε την απόδοση 3

4 Προσεγγίσεις Αύξησης Απόδοσης Παραλληλισμός σε επίπεδο εντολής (Instruction Level Parallelism ILP) Εξαρτάται από τις πραγματικές εξαρτήσεις δεδομένων που υφίστανται ανάμεσα στις εντολές. Παραλληλισμός σε επίπεδο νήματος (Thread-Level Parallelism TLP) Αναπαρίσταται ρητά από τον προγραμματιστή, χρησιμοποιώντας πολλαπλά νήματα εκτέλεσης τα οποία είναι εκ κατασκευής παράλληλα. Παραλληλισμός σε επίπεδο δεδομένων (Data-Level Parallelism DLP) Αναπαρίσταται ρητά από τον προγραμματιστή ή δημιουργείται αυτόματα από τον μεταγλωττιστή. Οι ίδιες εντολές επεξεργάζονται πολλαπλά δεδομένα ταυτόχρονα 4

5 Πολυνηματικές Αρχιτεκτονικές 5

6 Πολυνηματισμός Σκοπός: χρήση πολλών ανεξάρτητων instruction streams από πολλαπλά νήματα εκτέλεσης Παραλληλισμός σε επίπεδο νήματος (Thread-Level Parallelism TLP) Αναπαρίσταται ρητά από τον προγραμματιστή, χρησιμοποιώντας πολλαπλά νήματα εκτέλεσης τα οποία είναι εκ κατασκευής παράλληλα Πολλά φορτία εργασίας έχουν σαν χαρακτηριστικό τους τον TLP: TLP σε πολυπρογραμματιζόμενα φορτία (εκτέλεση ανεξάρτητων σειριακών εφαρμογών) TLP σε πολυνηματικές εφαρμογές (επιτάχυνση μιας εφαρμογής διαχωρίζοντάς την σε νήματα και εκτελώντας τα παράλληλα) Οι πολυνηματικές αρχιτεκτονικές χρησιμοποιούν τον TLP σε τέτοια φορτία εργασίας για να βελτιώσουν τα επίπεδα χρησιμοποίησης των μονάδων του επεξεργαστή βελτίωση του throughput πολυπρογραμματιζόμενων φορτίων βελτίωση του χρόνου εκτέλεσης πολυνηματικών εφαρμογών 6

7 Παράδειγμα: κίνδυνοι δεδομένων t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 LW r1, 0(r2) LW r5, 12(r1) ADDI r5, r5,#12 SW r5, 12(r1) F D X M W F D X M W F D X M W F D Οι εξαρτήσεις μεταξύ των εντολών αποτελούν περιοριστικό παράγοντα για την εξαγωγή παραλληλισμού Τι μπορεί να γίνει προς αυτή τη κατεύθυνση; 7

8 Αντιμετώπιση με πολυνηματισμό Πώς μπορούμε να μειώσουμε τις εξαρτήσεις μεταξύ των εντολών σε ένα pipeline? - Ένας τρόπος είναι να επικαλύψουμε την εκτέλεση εντολών από διαφορετικά νήματα στο ίδιο pipeline Επικάλυψη εκτέλεσης 4 νημάτων, T1-T4, στο απλό 5-stage pipeline t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 T1: LW r1,0(r2) T2: ADD r7,r1,r4 T3: XORI r5,r4,#12 T4: SW r5,0(r7) T1: LW r5,12(r1) F D X M W F D X M W F D X M W F D X M W F D X M W Η προηγούμενη εντολή στο νήμα ολοκληρώνει το WB προτού η επόμενη εντολή στο ίδιο νήμα διαβάσει το register file 8

9 Απλή μορφή πολυνηματικού pipeline PC PC PC 1 PC I$ IR GPR1 GPR1 GPR1 GPR1 X Y D$ +1 2 Thread select Το software «βλέπει» πολλαπλές CPUs Κάθε νήμα χρειάζεται να διατηρεί τη δική του αρχιτεκτονική κατάσταση program counter general purpose registers Τα νήματα μοιράζονται τις ίδιες μονάδες εκτέλεσης 2 Hardware για γρήγορη εναλλαγή των threads πρέπει να είναι πολύ πιο γρήγορη από ένα software-based process switch ( 100s s κύκλων) 9

10 Πολυνηματισμός Πλεονεκτήματα Δε χρειάζεται dependency checking μεταξύ των εντολών Δε χρειάζεται branch prediction Αποφυγή bubbles πραγματοποιώντας χρήσιμη δουλειά από άλλα threads Βελτίωση system throughput, utilization, latency tolerance Μειονεκτήματα Πολυπλοκότητα hardware (PCs, register files, thread selection logic, ) Χειρότερο single thread performance (1 instruction every N cycles) Yψηλός ανταγωνισμός για πόρους (resource contention for caches & memory) Επιπλέον υλικό και πληροφορίες: Mario Nemirovsky, Dean M. Tullsen. Multithreading Architecture. Synthesis Lectures on Computer Architecture, Morgan & Claypool Publishers 2013, ISBN

11 Για αρκετές εφαρμογές, οι περισσότερες μονάδες εκτέλεσης σε έναν OoO superscalar μένουν ανεκμετάλλευτες Αποτελέσματα για 8-way superscalar. [Tullsen, Eggers, and Levy, Simultaneous Multithreading: Maximizing On-chip Parallelism, ISCA 1995.] 11

12 ΟοΟ superscalar Time Issue slots Horizontal waste Vertical waste Horizontal waste: εξαιτίας χαμηλού ILP Vertical waste: εξαιτίας long-latency γεγονότων cache misses pipeline flushes λόγω branch mispredictions 12

13 Chip Multi-Processor Time CPU0 CPU1 τα προβλήματα εξακολουθούν να υφίστανται... 13

14 Υλοποιήσεις Πολυνηματισμού 1. Coarse-grained multithreading 2. Fine-grained multithreading 3. Simultaneous multithreading (SMT) 14

15 Coarse-grained multithreading ( switch-on-event ) Time Issue slots Εναλλαγή thread μόνο μετά από stall του thread που εκτελείται, π.χ. λόγω L2 cache miss Πλεονεκτήματα: δε χρειάζεται να έχει πολύ γρήγορο μηχανισμό εναλλαγής των threads δεν καθυστερεί την εκτέλεση ενός thread, αφού οι εντολές από άλλα threads γίνονται issue μόνο όταν το thread αντιμετωπίσει κάποιο stall Μειονεκτήματα: δεν αντιμετωπίζει το horizontal waste σε μικρά stalls, η εναλλαγή του stalled thread και η δρομολόγηση στο pipeline κάποιου έτοιμου thread μπορεί να έχει απώλειες στην απόδοση του πρώτου thread αν τελικά οι κύκλοι που stall-άρει είναι λιγότεροι από τους κόστος εκκίνησης του pipeline με το νέο thread Εξαιτίας αυτού του start-up κόστους, το coarse-grained multithreading είναι καλύτερο για την μείωση του κόστους από μεγάλα stalls, για τα οποία το stall time >> pipeline refill time e.g., IBM AS/400, DYSEAC, TX-2 15

16 Fine-grained multithreading Time Issue slots το «κίτρινο» thread είναι stalled και παρακάμπτεται Εναλλαγή μεταξύ των threads σε κάθε κύκλο, με αποτέλεσμα την επικάλυψη της εκτέλεσης των threads η CPU είναι αυτή που κάνει την εναλλαγή σε κάθε κύκλο Γίνεται με round-robin τρόπο (κυκλικά), παρακάμπτοντας threads τα οποία είναι stalled σε κάποιο long-latency γεγονός Αντιμετωπίζει το vertical waste, τόσο για μικρά όσο και για μεγάλα stalls, αφού όταν ένα thread είναι stalled το επόμενο μπορεί να γίνει issue Μειονεκτήματα: δεν αντιμετωπίζει το horizontal waste καθυστερεί την εκτέλεση ενός thread το οποίο είναι έτοιμο να εκτελεστεί, χωρίς stalls, αφού ανάμεσα σε διαδοχικούς κύκλους αυτού του thread παρεμβάλλονται κύκλοι εκτέλεσης από όλα τα υπόλοιπα threads e.g., UltraSPARC T1 ( Niagara ), Cray MTA, CDC 6600, Delco TIO 16

17 Simultaneous Multithreading (SMT) Time Issue slots Γίνονται issue εντολές από πολλαπλά νήματα ταυτόχρονα αντιμετωπίζεται το horizontal waste Όταν ένα νήμα stall-άρει λόγω ενός long-latency γεγονότος, τα υπόλοιπα νήματα μπορούν να δρομολογηθούν και να χρησιμοποιήσουν τις διαθέσιμες μονάδες εκτέλεσης αντιμετωπίζεται το vertical waste Μέγιστη χρησιμοποίηση των επεξεργαστικών πόρων από ανεξάρτητες λειτουργίες 17

18 Προσαρμοστικότητα του SMT στο είδος του διαθέσιμου παραλληλισμού Για περιοχές με υψηλά επίπεδα TLP, ολόκληρο το έυρος του επεξεργαστή μοιράζεται από όλα τα threads Για περιοχές με χαμηλά επίπεδα TLP, ολόκληρο το εύρος του επεξεργαστή είναι διαθέσιμο για την εκμετάλλευση του (όποιου) ILP Issue width Issue width Time Time 18

19 Αρχιτεκτονική SMT Βασικές επεκτάσεις σε σχέση με μια συμβατική superscalar αρχιτεκτονική πολλαπλοί program counters και κατάλληλος μηχανισμός μέσω του οποίου η fetch unit επιλέγει κάποιον από αυτούς σε κάθε κύκλο (π.χ. με βάση κάποια συγκεκριμένη πολιτική) thread-id σε κάθε ΒΤΒ entry για την αποφυγή πρόβλεψης branches που ανήκουν σε άλλα threads ξεχωριστή RAS για κάθε thread για την πρόβλεψη της διεύθυνσης επιστροφής μετά από κλήση υπορουτίνας σε κάθε thread ξεχωριστός ROB για κάθε thread προκειμένου το commit και η διαχείριση των mispredicted branches + των exceptions να γίνεται ανεξάρτητα για κάθε thread μεγαλύτερο register file, για να υποστηρίζει λογικούς καταχωρητές για όλα τα threads + επιπλέον καταχωρητές για register renaming ξεχωριστό renaming table για κάθε thread» εφόσον οι λογικοί καταχωρητές για όλα τα threads απεικονίζονται όλοι σε διαφορετικούς φυσικούς καταχωρητές, οι εντολές από διαφορετικά threads μπορούν να αναμιχθούν μετά το renaming χωρίς να συγχέονται οι source και target operands ανάμεσα στα threads 19

20 Case Studies 1. Pentium 4 2. Power5 3. UltraSPARC T1 20

21 Case-study 1: Pentium 4 SMT in Hyperthreading technology (~2002) 2-way SMT το λειτουργικό «βλέπει» 2 CPUs εκτελεί δύο διεργασίες ταυτόχρονα» πολυπρογραμματιζόμενα φορτία» πολυνηματικές εφαρμογές Ο φυσικός επεξεργαστής διατηρεί την αρχιτεκτονική για 2 λογικούς επεξεργαστές Επιπλέον κόστος για υποστήριξη 2 ταυτόχρονων νημάτων εκτέλεσης < 5% του αρχικού hardware 21

22 Τι προστέθηκε... 22

23 Επεξεργαστικοί πόροι: πολλαπλά αντίγραφα vs. διαμοιρασμός Multiprocessor Hyperthreading Architectural State Architectural State Architectural State Architectural State D-TLB D-TLB D-TLB L2 U-cache L3 U-cache L1 D-cache L2 U-cache L3 U-cache L1 D-cache L2 U-cache L3 U-cache L1 D-cache BTB, I-TLB Cache control Decode BTB Trace cache Rename / Alloc ucode ROM uop queues Schedulers Integer reg. file FP reg. file Load AGU Store AGU ALU ALU ALU FP Load FP Store FP Add FP Mul FP Div MMX,SSE Reorder / Retire BTB, I-TLB Cache control Decode BTB Trace cache Rename / Alloc ucode ROM uop queues Schedulers Integer reg. file FP reg. file Load AGU Store AGU ALU ALU ALU FP Load FP Store FP Add FP Mul FP Div MMX,SSE Reorder / Retire BTB, I-TLB Cache control Decode BTB Trace cache Rename / Alloc ucode ROM uop queues Schedulers Integer reg. file FP reg. file Load AGU Store AGU ALU ALU ALU FP Load FP Store FP Add FP Mul FP Div MMX,SSE Reorder / Retire στους πολυεπεξεργαστές τα resources βρίσκονται σε πολλαπλά αντίγραφα στο Hyper-threading τα resources διαμοιράζονται 23

24 Διαχείριση επεξεργαστικών πόρων Πόροι σε πολλαπλά αντίγραφα: αρχιτεκτονική κατάσταση: GPRs, control registers, APICs instruction pointers, renaming hardware smaller resources: ITLBs, branch target buffer, return address stack Στατικά διαχωρισμένοι πόροι: ROB, Load/Store queues, instruction queues κάθε νήμα μπορεί να χρησιμοποιήσει έως τα μισά (το πολύ) entries κάθε τέτοιου πόρου» ένα νήμα δεν μπορεί να οικειοποιηθεί το σύνολο των entries, στερώντας τη δυνατότητα από το άλλο νήμα να συνεχίσει την εκτέλεσή του» εξασφαλίζεται η απρόσκοπτη πρόοδος ενός νήματος, ανεξάρτητα από την πρόοδο του άλλου νήματος Δυναμικά διαμοιραζόμενοι πόροι (κατ απαίτηση): out-of-order execution engine, caches 24

25 Pentium 4 w/ Hyper-Threading: Front End I-Fetch Uop queue Rename Queue Schedulers Register Read Execute L1 Cache Register Write Retire IP IP general Store Buffer Re-Order Buffer ITLB Register Rename Trace Cache ITLB Allocator memory Registers L1 D-Cache Registers In-Order Out-Of-Order In-Order 25

26 Pentium 4 w/ Hyper-Threading: Front End trace cache hit Trace cache «ειδική» instruction cache που κρατάει αποκωδικοποιημένες μικρο-εντολές σε κάθε cache line αποθηκεύονται οι μικροεντολές στη σειρά με την οποία εκτελούνται (π.χ. εντολή άλματος μαζί με την ακολουθία εντολών στην προβλεφθείσα κατεύθυνση) Σε ταυτόχρονη ζήτηση από τους 2 LPs (Logical Processors), η πρόσβαση εναλλάσσεται κύκλο-ανά-κύκλο Όταν μόνο 1 LP ζητάει πρόσβαση, μπορεί να χρησιμοποιήσει την TC στο μέγιστo δυνατό fetch bandwidth (3 μipc) I-Fetch IP IP Trace Cache Uop queue 26

27 Pentium 4 w/ Hyper-Threading: Front End trace cache miss L2 Access Queue Decode Queue Trace Cache fill Uop queue IP ITLB ITLB IP L2 Access Decode Trace Cache L2 cache η πρόσβαση γίνεται με FCFS τρόπο Decode σε ταυτόχρονη ζήτηση από τους 2 LPs, η πρόσβαση εναλλάσσεται, αλλά με πιο coarsegrained τρόπο (δηλ. όχι κύκλο-ανά-κύκλο, αλλά k κύκλους-ανά-k κύκλους) 27

28 Pentium 4 w/ Hyper-Threading: Execution engine I-Fetch Uop queue Rename Queue Schedulers Register Read Execute L1 Cache Register Write Retire IP IP general Store Buffer Re-Order Buffer ITLB Register Rename Trace Cache ITLB Allocator memory Registers L1 D-Cache Registers Allocator: εκχωρεί entries σε κάθε LP 63/126 ROB entries 24/48 Load buffer entries 12/24 Store buffer entries 128/128 Integer physical registers 128/128 FP physical registers In-Order Out-Of-Order In-Order Σε ταυτόχρονη ζήτηση από τους 2 LPs, η πρόσβαση εναλλάσσεται κύκλο-ανά-κύκλο stall-άρει έναν LP όταν επιχειρεί να χρησιμοποιήσει περισσότερα από τα μισά entries των στατικά διαχωρισμένων πόρων 28

29 Pentium 4 w/ Hyper-Threading: Execution engine I-Fetch Uop queue Rename Queue Schedulers Register Read Execute L1 Cache Register Write Retire IP IP general Store Buffer Re-Order Buffer ITLB Register Rename Trace Cache ITLB Allocator memory Registers L1 D-Cache Registers In-Order Out-Of-Order In-Order Register renaming unit επεκτείνει δυναμικά τους architectural registers απεικονίζοντάς τους σε ένα μεγαλύτερο σύνολο από physical registers ξεχωριστό register map table για κάθε LP 29

30 Pentium 4 w/ Hyper-Threading: Execution engine I-Fetch Uop queue Rename Queue Schedulers Register Read Execute L1 Cache Register Write Retire IP IP general Store Buffer Re-Order Buffer ITLB Register Rename Trace Cache ITLB Allocator memory Registers L1 D-Cache Registers In-Order Out-Of-Order In-Order Schedulers / Execution units στην πραγματικότητα δε (χρειάζεται να) ξέρουν σε ποιον LP ανήκει η εντολή που εκτελούν general+memory queues στέλνουν μικρο-εντολές στους δρομολογητές, με την πρόσβαση να εναλλάσσεται κύκλο-ανά-κύκλο ανάμεσα στους 2 LPs 6 μipc dispatch/execute bandwidth ( 3 μipc per-lp effective bandwidth, όταν και οι 2 LPs είναι ενεργοί) 30

31 Pentium 4 w/ Hyper-Threading: Retirement I-Fetch Uop queue Rename Queue Schedulers Register Read Execute L1 Cache Register Write Retire IP IP general Store Buffer Re-Order Buffer ITLB Register Rename Trace Cache ITLB Allocator memory Registers L1 D-Cache Registers In-Order Out-Of-Order In-Order H αρχιτεκτονική κατάσταση κάθε LP γίνεται commit με τη σειρά προγράμματος, εναλλάσσοντας την πρόσβαση στον ROB ανάμεσα στους 2 LPs κύκλο-ανά-κύκλο 3 μipc retirement bandwidth 31

32 Multithreaded speedup SPLASH2 Benchmarks: NAS Parallel Benchmarks: From: Tuck and Tullsen, Initial Observations of the Simultaneous Multithreading Pentium 4 Processor, PACT

33 Case-study 2: Power5 Eπέκταση του Power4 για υποστήριξη SMT (2004) Power4: Single-threaded «προκάτοχος» του Power5 8 execution units 2 Float. Point, 2 Load/Store, 2 Fixed Point, 1 Branch, 1 Conditional Reg. unit κάθε μία μπορεί να κάνει issue 1 εντολή ανά κύκλο Execution bandwidth: 8 operations ανά κύκλο (1 fpadd + 1 fpmult) x 2FP + 1 load/store x 2 LD/ST + 1 integer x 2 FX 33

34 Power4 Power5 2 commits (architected register sets) 2 fetch (PC), 2 initial decodes 34

35 SMT resource management 35

36 Αλλαγές στον Power5 για να υποστηρίζεται το SMT Aύξηση συσχετιστικότητας της L1 instruction cache και των ITLBs Ξεχωριστές Load/Store queues για κάθε νήμα Αύξηση μεγέθους των L2 (1.92 vs MB) και L3 caches Ξεχωριστό instruction prefetch hardware και instruction buffers για κάθε νήμα Αύξηση των registers από 152 σε 240 Αύξηση του μεγέθους των issue queues Αύξηση μεγέθους κατά 24% σε σχέση με τον Power4 εξαιτίας της προσθήκης hardware για υποστήριξη SMT 36

37 Power 5 datapath Στο IF στάδιο η πρόσβαση εναλλάσσεται κύκλο-ανά-κύκλο ανάμεσα στα 2 threads 2 instruction fetch address registers, 1 για κάθε νήμα Μπορούν να φορτωθούν 8 instructions σε κάθε κύκλο (στάδιο IC) από την I-Cache σε έναν συγκεκριμένο κύκλο, οι εντολές που φορτώνονται προέρχονται όλες από το ίδιο thread και τοποθετούνται στο instruction buffer του thread αυτού (στάδιο D0) 37

38 Power 5 datapath Στα στάδια D1-D3, ανάλογα με την προτεραιότητα κάθε thread, ο επεξεργαστής διαλέγει εντολές από έναν από τους δύο instruction buffers και σχηματίζει ένα group Όλες οι εντολές σε ένα group προέρχονται από το ίδιο thread και αποκωδικοποιούνται παράλληλα Κάθε group μπορεί να περιέχει το πολύ 5 εντολές 38

39 Power 5 datapath Όταν όλοι οι απαιτούμενοι πόροι γίνονται διαθέσιμοι για τις εντολές ενός group, τότε το group μπορεί να γίνει dispatch (στάδιο GD) το group τοποθετείται στο Global Completion Table (ROB) τα entries στο GCT εκχωρούνται με τη σειρά προγράμματος για κάθε thread, και απελευθερώνονται (πάλι με τη σειρά προγράμματος) μόλις το group γίνει commit Μετά το dispatch, κάθε εντολή του group διέρχεται μέσα από το register renaming στάδιο (MP) 120 physical GPRs, 120 physical FPRs τα 2 νήματα διαμοιράζονται δυναμικά registers 39

40 Power 5 datapath Issue, execute, write-back δε γίνεται διάκριση ανάμεσα στα 2 threads Group completion (στάδιο CP) 1 group commit ανά κύκλο για κάθε thread στη σειρά προγράμματος του κάθε thread 40

41 Δυναμική εξισορρόπηση επεξεργαστικών πόρων Πρέπει να εξασφαλιστεί η απρόσκοπτη και ομαλή ροή των threads στο pipeline, ανεξάρτητα από τις απαιτήσεις του καθενός σε επεξεργαστικούς πόρους Μηχανισμοί περιορισμού ενός πολύ απαιτητικού thread: μείωση προτεραιότητας του thread, όταν διαπιστώνεται ότι τα GCT entries που χρησιμοποιεί ξεπερνούν ένα καθορισμένο όριο όταν ένα thread έχει πολλά L2 misses, τότε οι μεταγενέστερες εξαρτώμενες εντολές του μπορούν να γεμίσουν τις issue queues, εμποδίζοντας να γίνουν dispatch εντολές από το άλλο thread» παρακολούθηση της Load Miss Queue ενός thread έτσι ώστε όταν τα misses του υπερβαίνουν κάποιο όριο, η αποκωδικοποίηση εντολών του να σταματάει μέχρι να αποσυμφορηθούν οι issue queues συμφόρηση στις issue queues μπορεί να συμβεί και όταν ένα thread εκτελεί μια εντολή που απαιτεί πολύ χρόνο» flushing των εντολών του thread που περιμένουν να γίνουν dispatch και προσωρινή διακοπή της αποκωδικοποίησης εντολών του μέχρι να αποσυμφορηθούν οι issue queues 41

42 Ρυθμιζόμενη προτεραιότητα threads Επιτρέπει στο software να καθορίσει πότε ένα thread θα πρέπει να έχει μεγαλύτερο ή μικρότερο μερίδιο επεξεργαστικών πόρων Πιθανές αιτίες για διαφορετικές προτεραιότητες: ένα thread εκτελεί ένα spin-loop περιμένοντας να πάρει κάποιο lock δεν κάνει χρήσιμη δουλειά όσο spin-άρει ένα thread δεν έχει δουλειά να εκτελέσει και περιμένει να του ανατεθεί δουλειά σε ένα idle loop μία εφαρμογή πρέπει να τρέχει πιο γρήγορα σε σχέση με μία άλλη (π.χ. real-time application vs. background application) 8 software-controlled επίπεδα προτεραιότητας για κάθε thread Ο επεξεργαστής παρατηρεί τη διαφορά των επιπέδων προτεραιότητας των threads, και δίνει στο thread με τη μεγαλύτερη προτεραιότητα περισσότερους διαδοχικούς κύκλους για αποκωδικοποίηση εντολών του 42

43 Επίδραση προτεραιότητας στην απόδοση κάθε thread Όταν τα threads έχουν ίδιες προτεραιτότητες, εκτελούνται πιο αργά απ ό,τι αν κάθε thread είχε διαθέσιμα όλα τα resources του επεξεργαστή (single-thread mode) 43

44 Large vs. Small Cores Large Core Out-of-order Wide fetch e.g. 4-wide Deeper pipeline Aggressive branch predictor (e.g. hybrid) Multiple functional units Trace cache Memory dependence speculation Small Core In-order Narrow Fetch e.g. 2-wide Shallow pipeline Simple branch predictor (e.g. Gshare) Few functional units Large Cores are power inefficient: e.g., 2x performance for 4x area (power) 44

45 Large vs. Small Cores Grochowski et al., Best of both Latency and Throughput, ICCD

46 Case-study 3: UltraSPARC T1 ( Niagara ) (2005) Συμπεριφορά επεξεργαστών βελτιστοποιημένων για TLP και ILP σε server workloads: server workloads:» υψηλός TLP (μεγάλος αριθμός παράλληλων client requests)» χαμηλός ILP (υψηλά miss rates, πολλά unpredictable branches, συχνές load-load εξαρτήσεις)» το memory access time κυριαρχεί στο συνολικό χρόνο εκτέλεσης Ο ILP επεξεργαστής μειώνει μόνο το computation time το memory access time κυριαρχεί σε ακόμα μεγαλύτερο ποσοστό Στον TLP επεξεργαστή, το memory access ενός thread επικαλύπτεται από computations από άλλα threads η απόδοση αυξάνεται για μια memory-bound multithreaded εφαρμογή 46

47 UltraSPARC T1 in-order, single-issue επικεντρώνεται πλήρως στην εκμετάλλευση του TLP 4-8 cores, 4 threads ανά core max 32 threads fine-grained multithreading L1D + L1I μοιραζόμενες από τα 4 threads L2 cache + FPU μοιραζόμενη από όλα τα threads ξεχωριστό register set + instruction buffers + store buffers για κάθε thread 47

48 UltraSPARC T1 pipeline Όπως το κλασικό 5-stage pipeline + thread select stage Fetch stage: o thread select mux επιλέγει ποιος από τους 4 PCs θα πρέπει να προσπελάσει την ICache και το ITLB Thread select stage: αποφασίζει σε κάθε κύκλο ποιος από τους 4 instruction buffers θα τροφοδοτήσει με εντολές τα επόμενα στάδια αν το thread-select στάδιο επιλέξει ένα νήμα από το οποίο θα στείλει εντολές, το fetch στάδιο θα επιλέξει το ίδιο thread για να προσπελάσει την ICache 48

49 UltraSPARC T1 pipeline Πολιτική επιλογής thread: εναλλαγή μεταξύ διαθέσιμων threads σε κάθε κύκλο προτεραιότητα στο least recently used thread (round-robin) Λόγοι μη διαθεσιμότητας (και μη επιλογής) ενός thread long-latency εντολές (π.χ. branches, mult/div) οδηγούν στη μη-επιλογή του αντίστοιχου thread για όσους κύκλους διαρκούν stalls λόγω cache misses stalls λόγω structural hazards για μια non-pipelined δομή που χρησιμοποιείται ήδη από κάποιο άλλο thread (π.χ. divider) 49

50 UltraSPARC T1 pipeline 50

51 UltraSPARC T1 performance Fine-grained multithreading μεταξύ 4 threads ιδανικό per-thread CPI = 4 Ιδανικό per-core CPI = 1 Effective CPI = per-core CPI / #cores Effective throughput: μεταξύ 56% και 71% του ιδανικού 51

52 Προφίλ εκτέλεσης ενός μέσου thread 52

53 Λόγοι για τη μη διαθεσιμότητα ενός thread Pipeline delay: long-latency εντολές όπως branches, loads, fp, int mult/div 53

54 «Crash-test» multicore επεξεργαστών (~2005) Βασικές διαφορές: εκμετάλλευση ILP vs. TLP (Power5 Opteron, Pentium D T1) floating point performance (Power5 Opteron, Pentium D T1) memory bandwidth (T1 Power5 Opteron Pentium D)» επηρεάζει την απόδοση εφαρμογών με μεγάλο miss rate 54

55 «Crash-test» multicore επεξεργαστών 55

56 «Crash-test» multicore επεξεργαστών (~2010) AMD Opteron 8439 IBM Power 7 Intel Xenon 7560 Sun T2 Transistors (M) Power (W) Max cores/chip Mutlithreading No SMT SMT Fine-grained Threads/ core Instr. issue/clock 3 from 1 thread 6 from 1 thread 4 from 1 thread 2 from 2 threads Clock rate (GHz) Outermost cache L3, 6MB, shared L3, 32MB, shared or private/core L3, 24MB shared L2, 4MB, shared Inclusion No Yes Yes Yes Coherence protocol MOESI Extended MESI MESIF MOESI Coherence implementation Extended coherence support Snooping L3 Directory L3 Directory L2 Directory Up to 8 processor chips (NUMA) Up to 32 processor chips (UMA) Up to 8 processor cores Up to 2/4 chips (directly/external ASICs) 56

57 Tile-Large Approach Large core Large core Large core Large core Tile-Large Tile a few large cores IBM Power 5, AMD Barcelona, Intel Core2Quad, Intel Nehalem + High performance on single thread, serial code sections - Low throughput on parallel program portions 57

58 Tile-Small Approach Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Tile-Small Tile many small cores Sun Niagara, Intel Larrabee, Tilera TILE (tile ultra-small) + High throughput on the parallel part (16 units) - Low performance on the serial part, single thread (1 unit) 58 58

59 Asymmetric Chip Multiprocessor (ACMP) Large core Large core Small core Small core Small core Small core Small core Small core Small core Small core Large core Small core Small core Small core Small core Large core Large core Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Small core Tile-Large Tile-Small ACMP Provide one large core and many small cores ARM big.little + Accelerate serial part using the large core + Execute parallel part on small cores and large core for high throughput 59

60 Today: Many Cores on Chip Simpler and lower power than a single large core Large scale parallelism on chip AMD Barcelona 4 cores Intel Core i7 8 cores IBM Cell BE 8+1 cores IBM POWER7 8 cores Sun Niagara II 8 cores Nvidia Fermi 448 cores Intel SCC 48 cores, networked Tilera TILE Gx 100 cores, networked 60

61 Chips Today ( ) Intel Nehalem (~2010) slides by Krste Asanovic (Berkeley, CS152 - link) HotChips 2012 (HC24 ) Intel s 3 rd generation processors Ivy Bridge (link) AMD s Jaguar next generation low power x86 core (link) Knight s Corner - Intel s MIC (link) Power 7+ (link) HotChips 2013 (HC25 ) Power 8 (link) Intel s 4 th generation processors Haswell (link) HotChips 2014 (HC26 ) AMD s Kaveri APU (link) AMD s Opteron A1100 (link) Next generation SPARC Processor Cache Hierarchy (link) Intel C2000 Atom Microserver (link) NVIDIA s Denver Processor (link) MIT Scorpio (link) Powering the IoT (link) 61

62 Chips Today ( ) HotChips 2015 (HC27 ) ARM Mali-T880GPU (link) Intel s Knight Landing: 2 nd Generation Xeon Phi Processor (link) AMD s Carrizo APU (link) Oracle s Sonoma Processor (link) HotChips 2016 (HC28 ) ARM v8-a (link) Samsung Exynos-M1 (link) NVIDIA Tegra SoC (link) Oracle SPARC M7 (link) Intel Skylake (link) POWER9 (link) HotChips 2017 (HC29 Knights Mill: Intel Xeon Phi Processor for Machine Learning (link) Celerity: An Open Source RISC-V Tiered Accelerator Fabric (link) Graph Streaming Processor (GSP) A Next-Generation Computing Arch. (link) The New Intel Xeon Processor Scalable Family (link) And many more.. 62

63 Chips Today (2018-) HotChips 2018 (HC30 Samsung M3 processor (link) BROOM open-source OoO processor (link) NVIDIA Xavier SoC (link) ARM ML processor (link) IBM Power9 Scale Up processor (link) Xilinx DNN processor (link) Vector Engine Processor of NEC s Aurora (link) And many more 63

64 Vector Αρχιτεκτονικές, SIMD Extensions & GPUs 64

65 Πηγές/Βιβλιογραφία Computer Architecture: A Quantitative Approach, J. L. Hennessy, D. A. Patterson, Morgan Kaufmann Publishers, INC. 6 th Edition, 2017 Krste Asanovic, Vectors & GPUs, CS 152 Computer Architecture and Engineering, EECS Berkeley, Onur Mutlu, SIMD Processors & GPUs, Computer Architecture ETH Zurich, 2017 (slides)

66 Προσεγγίσεις Αύξησης Απόδοσης Παραλληλισμός σε επίπεδο εντολής (Instruction Level Parallelism ILP) Εξαρτάται από τις πραγματικές εξαρτήσεις δεδομένων που υφίστανται ανάμεσα στις εντολές. Παραλληλισμός σε επίπεδο νήματος (Thread-Level Parallelism TLP) Αναπαρίσταται ρητά από τον προγραμματιστή, χρησιμοποιώντας πολλαπλά νήματα εκτέλεσης τα οποία είναι εκ κατασκευής παράλληλα. Παραλληλισμός σε επίπεδο δεδομένων (Data-Level Parallelism DLP) Αναπαρίσταται ρητά από τον προγραμματιστή ή δημιουργείται αυτόματα από τον μεταγλωττιστή. Οι ίδιες εντολές επεξεργάζονται πολλαπλά δεδομένα ταυτόχρονα 66

67 Ταξινόμηση Παράλληλων Αρχιτεκτονικών Single Instruction stream, Single Data stream (SISD) Uniprocessor. Single Instruction stream, Multiple Data streams (SIMD) Πολλαπλοί επεξεργαστές, ίδιες εντολές, διαφορετικά δεδομένα (data-level parallelism). Multiple Instruction streams, Single Data stream (MISD) Μέχρι σήμερα δεν έχει εμφανιστεί στην αγορά κάποιο τέτοιο σύστημα (είναι κυρίως για fault tolerance, π.χ. υπολογιστές που ελέγχουν πτήση αεροσκαφών). Multiple Instruction streams, Multiple Data streams (MIMD) O κάθε επεξεργαστής εκτελεί τις δικές του εντολές και επεξεργάζεται τα δικά του δεδομένα. Πολλαπλά παράλληλα νήματα (thread-level parallelism). [Mike Flynn, Very high-speed computing systems. Proc. of IEEE 54, 1966] 67

68 Παραλληλισμός σε επίπεδο Δεδομένων Προκύπτει από το γεγονός ότι οι ίδιες εντολές επεξεργάζονται πολλαπλά διαφορετικά δεδομένα ταυτόχρονα. Πολλαπλές «επεξεργαστικές» μονάδες Παραδείγματα εφαρμογών με σημαντικό παραλληλισμό δεδομένων: Επιστημονικές εφαρμογές (πράξεις με πίνακες) Επεξεργασία εικόνας και ήχου Αλγόριθμοι μηχανικής μάθησης 68

69 Παραλληλισμός σε επίπεδο Δεδομένων Γιατί Single Instruction Multiple Data (SIMD) αρχιτεκτονική? Mια εντολή πολλαπλά δεδομένα Καλύτερο energyefficiency Όταν υπάρχει DLP εξαρτάται από την εφαρμογή, τον αλγόριθμο, προγραμματιστή, τον μεταγλωττιστή Mobile devices Ο προγραμματιστής συνεχίζει να σκέφτεται (περίπου) ακολουθιακά 69

70 DLP Αρχιτεκτονικές 1. Vector 2. SIMD Extensions 3. GPUs 70

71 Vector Architecture Πρόκεται για αρχιτεκτονική που υποστηρίζει στο υλικό την εκτέλεση διανυσμάτων ή αλλιώς vectors Ένας vector (διάνυσμα) είναι ένας μονοδιάστατος πίνακας αριθμών Εμφανίζονται σε πολλές εφαρμογές for (i=0; i<n; i++) C[i] = A[i] + B[i]; Ιστορικά Εμφανίστηκαν στην δεκαετία του 1970 Κυριάρχησαν στον χώρο του supercomputing ( ) Σημαντικά πλεονεκτήματα για συγκεκριμένες εφαρμογές επανέρχονται δυναμικά 71

72 Vector Architecture Γενική Ιδέα 1. Φέρνει από την μνήμη ένα σύνολο δεδομένων και τα αποθηκεύει σε μεγάλα register files Vector registers 2. Εκτελεί μία πράξη στο σύνολο όλων αυτών των δεδομένων 3. Γράφει τα αποτελέσματα πίσω στην μνήμη Οι καταχωρητές ελέγχονται από τον compiler και χρησιμοποιούντια για να: Κρύψουν τον χρόνο πρόσβασης στην μνήμη Εκμεταλλευτούν το memory bandwidth Vector Instructions & Architecture Support 72

73 Vector Architecture Functionality Μια εντολή vector πραγματοποιεί μία πράξη σε κάθε στοιχείο του vector σε διαδοχικούς κύκλους Pipelined functional units Κάθε στάδιο του pipeline επεξεργάζεται ένα διαφορετικό στοιχείο Οι vector εντολές επιτρέπουν την υλοποίηση pipelines με περισσότερα στάδια (deep pipelines) Δεν υπάρχουν εξαρτήσεις μέσα στους vectors Δεν υπάρχει έλεγχος ροής μέσα στους vectors H γνώση των strides σχετικά με τις προσβάσεις στην μνήμη επιτρέπει αποτελεσματικό prefetching 73

74 Vector Architecture Functionality for (i=0; i<n; i++) C[i] = A[i] * B[i]; V 1 V 2 V 3 } Six stage multiply pipeline V1 * V2 V3 74

75 Vector Architecture Cray-1 (1978) Scalar Unit Load/Store Architecture Vector Extensions Vector Registers Vector Instructions Highly pipelined functional units Interleaved memory system Memory banks No data caches No virtual memory 75

76 Vector Architecture Πλεονεκτήματα Όταν δεν υπάρχουν εξαρτήσεις μέσα στους vectors H pipeline τεχνική δουλεύει πολύ καλά Επιτρέπει την ύπαρξη deep pipelines Κάθε εντολή αντιπροσωπεύει πολλή δουλειά Απλούστερη λογική για instruction fetch και ανάγκη για λιγότερο memory bandwidth λόγω instructions Οι προσβάσεις στην μνήμη γίνονται με regular patterns Λιγότερα branch instructions 76

77 Vector Architecture Μειονεκτήματα Δουλεύει καλά μόνο όταν υπάρχει διαθέσιμος παραλληλισμός δεδομένων στην εφαρμογή Μπορεί να δημιουργηθεί πρόβλημα λόγω memory bandwidth όταν: Ο λόγος των εντολών υπολογισμού προς τις εντολές μνήμης δεν καλύπτει το κόστος της ανάγνωσης/εγγραφής των vectors από την μνήμη Τα δεδομένα δεν είναι κατάλληλα αποθηκευμένα στην μνήμη (memory banks) 77

78 Vector Architecture VMIPS RV64V (RISC-V base instructions + vector extensions) Αρχιτεκτονική βασισμένη στον Cray-1 Vector data registers 32 registers, 64-bits wide each element 16 read ports & 8 write ports Vector functional units Fully pipelined Data and control hazard detection Vector load/store unit Fully pipelined One word per clock cycle after initial latency Scalar registers 31 general purpose registers + 32 floating point registers 78

79 Vector data registers Vector Architecture Registers Vector control registers VLEN, VMASK, VSTR VLEN (Vector Length Register) Δηλώνει το μέγεθος του vector Η μέγιστη τιμή του καθορίζεται από την αρχιτεκτονική MVL Maximum Vector Length VMASK (Vector Mask Register) Δηλώνει τα στοιχεία του vector στα οποία εφαρμόζονται οι vector instructions VSTR (Vector Stride Register) Δηλώνει την απόσταση των στοιχείων στην μνήμη για την δημιουργία ενός vector 79

80 DAXPY Παράδειγμα Scalar Code double a, X[N], Y[N]; for (i=0; i<32; i++) { Y[i] = a*x[i] + Y[i]; } fld f0,a # Load scalar a addi x28,x5,#256 # Last address to load Loop: fld f1,0(x5) # load X[i] fmul.d f1,f1,f0 # a * X[i] fld f2,0(x6) # load Y[i] fadd.d f2,f2,f1 # a * X[i] + Y[i] fsd f2,0(x6) # store into Y[i] addi x5,x5,#8 # Increment index to X addi x6,x6,#8 # Increment index to Y bne x28,x5,loop # check if done 80

81 DAXPY Παράδειγμα Vector Code double a, X[N], Y[N]; for (i=0; i<32; i++) { Y[i] = a*x[i] + Y[i]; } vsetdcfg 4*FP64 # Enable 4 DP FP vregs fld f0,a # Load scalar a vld v0,x5 # Load vector X vmul v1,v0,f0 # Vector-scalar mult vld v2,x6 # Load vector Y vadd v3,v1,v2 # Vector-vector add vst v3,x6 # Store the sum vdisable # Disable vector regs 8 instructions for RV64V (vector code) vs. 258 instructions for RV64G (scalar code) 81

82 Vector Execution Time Η επίδοση εξαρτάται από τρεις παράγοντες: Μέγεθος των vectors Δομικοί κίνδυνοι (structural hazards) Εξαρτήσεις δεδομένων (data dependencies) Lanes Πολλαπλά παράλληλα pipelines που παράγουν δύο ή περισσότερα αποτελέσματα σε κάθε κύκλο Convoy Vector instructions που θα μπορούσαν να εκτελεστούν ταυτόχρονα Χωρίς δομικούς κινδύνους 82

83 Vector Chaining & Chimes Ακολουθίες από read-after-write εξαρτήσεις δεδομένων τοποθετούνται στο ίδιο convoy και εκτελούνται μέσω της τεχνικής του chaining LV v1 MULV v3,v1,v2 ADDV v5, v3, v4 V 1 V 2 V 3 V 4 V 5 Load Unit Memory Chain Mult. Chain Add 83

84 Chaining Vector Chaining & Chimes Μια vector εντολή ξεκινάει να εκτελείται καθώς στοιχεία του vector source operand γίνονται διαθέσιμα Chime Μονάδα χρόνου για την εκτέλεση ενός convoy m convoys εκτελούνται σε m chimes για vector length n Χρειάζεται (m x n) κύκλους για vector length n 84

85 Vector Chaining & Chimes Παράδειγμα vld v0,x5 # Load vector X vmul v1,v0,f0 # Vector-scalar multiply vld v2,x6 # Load vector Y vadd v3,v1,v2 # Vector-vector add vst v3,x6 # Store the sum Convoys: 1 st chime: vld vmul 2 nd chime: vld vadd 3 rd chime: vst 3 chimes, 2 FP ops per result, cycles per FLOP = 1.5 For 32 element vectors, requires 32 x 3 = 96 clock cycles 85

86 Vector Architecture Challenges Start up time Καθυστέρηση μέχρι να γεμίσει το pipeline Execute more than vector elements per cycle? Multiple lanes execution Vector length!= Maximum Vector Length (MVL)? Vector Length Register + Strip mining If statements + vector operations? Vector Mask Register + Predication Memory system? Memory banks Multiple dimensional matrices? Vector Stride Register Sparse matrices? Scatter/gather operations Programming a vector computer? 86

87 Multiple Lanes Execution VADD A,B C Execution using one pipelined functional unit Execution using four pipelined functional units A[6] B[6] A[24] B[24] A[25] B[25] A[26] B[26] A[27] B[27] A[5] B[5] A[20] B[20] A[21] B[21] A[22] B[22] A[23] B[23] A[4] B[4] A[16] B[16] A[17] B[17] A[18] B[18] A[19] B[19] A[3] B[3] A[12] B[12] A[13] B[13] A[14] B[14] A[15] B[15] C[2] C[8] C[9] C[10] C[11] C[1] C[4] C[5] C[6] C[7] C[0] C[0] C[1] C[2] C[3] 87

88 Multiple Lanes Execution Το στοιχείο n του vector register A είναι hardwired στο στοιχείο n του vector register Β multiple HW lanes Functional Unit Vector Registers Elements 0, 4, 8, Elements 1, 5, 9, Elements 2, 6, 10, Elements 3, 7, 11, Lane Memory Subsystem 88

89 Vector Instruction Parallelism Can overlap execution of multiple vector instructions example machine has 32 elements per vector register and 8 lanes time load load Load Unit Multiply Unit Add Unit mul add mul add Instruction issue Complete 24 operations/cycle while issuing 1 short instruction/cycle 89

90 Vector Length Register Strip-Mining Technique vsetdcfg 2 DP FP # Enable 2 64b Fl.Pt. regs fld f0,a # Load scalar a loop: setvl t0,a0 # vl = t0 = min(mvl,n) vld v0,x5 # Load vector X for (i=0; i<n; i++) { slli t1,t0,3 # t1 = vl * 8 (in bytes) Y[i] = a*x[i] + Y[i]; add x5,x5,t1 # Increment pointer to X by vl*8 } vmul v0,v0,f0 # Vector-scalar mult vld v1,x6 # Load vector Y vadd v1,v0,v1 # Vector-vector add sub a0,a0,t0 # n -= vl (t0) vst v1,x6 # Store the sum into Y add x6,x6,t1 # Increment pointer to Y by vl*8 bnez a0,loop # Repeat if n!= 0 vdisable # Disable vector regs} 90

91 Vector Mask Registers Disable elements through predication for (i = 0; i < 64; i=i+1) { if (X[i]!= 0) X[i] = X[i] Y[i]; } vsetdcfg 2*FP64 # Enable 2 64b FP vector regs vsetpcfgi 1 # Enable 1 predicate register vld v0,x5 # Load vector X into v0 vld v1,x6 # Load vector Y into v1 fmv.d.x f0,x0 # Put (FP) zero into f0 vpne p0,v0,f0 # Set p0(i) to 1 if v0(i)!=f0 vsub v0,v0,v1 # Subtract under vector mask vst v0,x5 # Store the result in X vdisable # Disable vector registers vpdisable # Disable predicate registers 91

92 Memory Banks Το σύστημα μνήμης πρέπει να υποστηρίζει υψηλό bandwidth για vector loads & stores Προσέγγιση: Διαμοιρασμός των προσβάσεων μνήμης σε πολλαπλά banks H μνήμη χωρίζεται σε banks τα οποία προσπελαύνονται ανεξάρτητα Control bank addresses independently Load or store non sequential words Support multiple vector processors sharing the same memory Μπορεί να εξυπηρετήσει Ν παράλληλες προσπελάσεις αν όλες πηγαίνουν σε διαφορετικά banks 92

93 Memory Banks Bank 0 Bank 1 Bank 2 Bank 15 MDR MAR MDR MAR MDR MAR MDR MAR Data bus Address bus CPU 93

94 Memory Banks Vector Registers Base Stride Address Generator A B C D E F Memory Banks 94

95 Παράδειγμα: Stride Accesses for (i = 0; i < 100; i=i+1) for (j = 0; j < 100; j=j+1) { A[i][j] = 0.0; for (k = 0; k < 100; k=k+1) A[i][j] = A[i][j] + B[i][k] * D[k][j]; } Vector Stride Register Stride: απόσταση μεταξύ δύο στοιχείων για τον σχηματισμό vector Ίσως προκύψουν bank conflicts 95

96 Παράδειγμα: for (i = 0; i < n; i=i+1) A[K[i]] = A[K[i]] + C[M[i]]; Scatter-Gather Index vector instructions vsetdcfg 4*FP64 # 4 64b FP vector registers vld v0, x7 # Load K[] vldx v1, x5, v0 # Load A[K[]] vld v2, x28 # Load M[] vldx v3, x6, v2 # Load C[M[]] vadd v1, v1, v3 # Add them vstx v1, x5, v0 # Store A[K[]] vdisable # Disable vector registers 96

97 Programming a Vector computer Ο compiler μπορεί να δώσει feedback στον προγραμματιστή Για να εφαρμόσει vector optimizations Ο πρoγραμματιστής μπορεί να δώσει hints στον compiler Ποια κομμάτια κώδικα να γίνουν vectorized 97

98 DLP Αρχιτεκτονικές 1. Vector 2. SIMD Extensions 3. GPUs 98

99 SIMD Extensions Πολλές εφαρμογές πολυμέσων επεξεργάζονται δεδομένα που έχουν μέγεθος μικρότερο από το μέγεθος λέξης (π.χ. 32 bits) για το οποίο ο επεξεργαστής είναι βελτιστοποιημένος Παραδείγματα: Τα pixels γραφικών αναπαριστώνται συνήθως με 8 bits για κάθε κύριο χρώμα + 8 bits για transparency Τα δείγματα ήχου αναπαριστώνται συνήθως με 8 ή 16 bits SIMD Extensions Διαμοιρασμός των functional units για την ταυτόχρονη επεξεργασία στοιχείων μικρών vectors Παράδειγμα: partitioned adder 99

100 SIMD Extensions vs. Vectors SIMD extensions operate on small vectors Πολύ μικρότερα register files Λιγότερη ανάγκη για υψηλό memory bandwidth Περιορισμοί των SIMD Extensions: Ο αριθμός των data operands αντικατοπτρίζεται στο op-code Το instruction set γίνεται περισσότερο περίπλοκο Δεν υπάρχει Vector Length Register Δεν υποστηρίζονται περίπλοκοι τρόποι διευθυνσιοδότησης (strided, scatter/gather) Δεν υπάρχει Vector Mask Register 100

101 Intel MMX (1996) SIMD Extensions Υλοποιήσεις Eight 8-bit integer ops or four 16-bit integer ops Peleg and Weiser, MMX Technology Extension to the Intel Architecture, IEEE Micro, 1996 Streaming SIMD Extensions (SSE) (1999) Eight 16-bit integer ops Four 32-bit integer/fp ops or two 64-bit integer/fp ops Advanced Vector Extensions (2010) Four 64-bit integer/fp ops AVX-512 (2017) Eight 64-bit integer/fp ops Operands must be consecutive and aligned memory locations 101

102 SIMD Extensions Παράδειγμα for (i=0; i<n; i++) { Y[i] = a*x[i] + Y[i]; } fld f0,a # Load scalar a splat.4d f0,f0 # Make 4 copies of a addi x28,x5,#256 # Last addr. to load Loop: fld.4d f1,0(x5) # Load X[i]... X[i+3] fmul.4d f1,f1,f0 # a x X[i]... a x X[i+3] fld.4d f2,0(x6) # Load Y[i]... Y[i+3] fadd.4d f2,f2,f1 # a x X[i]+Y[i] # a x X[i+3]+Y[i+3] fsd.4d f2,0(x6) # Store Y[i]... Y[i+3] addi x5,x5,#32 # Increment index to X addi x6,x6,#32 # Increment index to Y bne x28,x5,loop # Check if done 102

103 DLP Αρχιτεκτονικές 1. Vector 2. SIMD Extensions 3. GPUs 103

104 Graphical Processing Units Επιταχυντές για την επεξεργασία γραφικών Υψηλός παραλληλισμός σε εφαρμογές γραφικών GP-GPUs General-Purpose computation on Graphics Processing Units Χρησιμοποιούνται ευρέως για την επιτάχυνση data και compute intensive εφαρμογών Εφαρμογές ιδανικές για GPGPUs Υψηλός παραλληλισμός Υψηλό arithmetic intensity Μεγάλα data sets 104

105 Graphical Processing Units Ετερογενές μοντέλο εκτέλεσης H CPU είναι ο Host H GPU είναι το device Επικοινωνία μέσω PCIe bus Μοντέλο προγραμματισμού C-like γλώσσα προγραμματισμού για GPU Βασίζεται στην έννοια των threads Single Instruction, Multiple threads (SIMT) Multi-threaded προγραμματιστικό μοντέλο Διαφορετικό από SIMD που χρησιμοποιεί data parallel προγραμματιστικό μοντέλο Συνδυάζει SIMD και Multithreading 105

106 GPUs & Flynn s Taxonomy Οι GPUs αποτελούνται από πολλαπλούς επεξεργαστές Κάθε ένας επεξεργαστής αποτελείται από ένα multithreaded SIMD pipeline To pipeline εκτέλεσης των εντολών λειτουργεί σαν ένα SIMD pipeline Όμως, ο προγραμματισμός γίνεται με την έννοια των threads Όχι με την έννοια των SIMD εντολών Κάθε thread εκτελεί την ίδια εντολή αλλά επεξεργάζεται διαφορετικά δεδομένα Κάθε thread έχει το δική του κατάσταση και μπορεί να εκτελεστεί ανεξάρτητα 106

107 SIMD Extensions GPUs & Flynn s Taxonomy (2) To SIMD υλικό αξιοποιείται μέσα από: GPUs data parallel προγραμματιστικό μοντέλο Ο προγραμματιστής (ή ο μεταγλωττιστής) χρησιμοποιεί τις SIMD εντολές για να εκτελέσει την ίδια εντολή σε πολλά δεδομένα Το οποίο εκτελείται μέσα από ένα SIMD μοντέλο εκτέλεσης To SIMD υλικό αξιοποιείται μέσα από: Multithreaded προγραμματιστικό μοντέλο Ο προγραμματιστής (ή ο μεταγλωττιστής) παράγει σειριακό κώδικα και δημιουργεί νήματα για να εκτελέσει τον ίδιο κώδικα σε πολλά δεδομένα Το οποίο εκτελείται μέσα από ένα SIMD μοντέλο εκτέλεσης 107

108 SIMD vs. SIMT Μοντέλο Εκτέλεσης Υλικού Μοντέλο Εκτέλεσης Υλικού Καθορίζει πως εκτελείται ένας κώδικας στο υλικό SIMD Single Instruction Multiple Data Μία ροή από διαδοχικές SIMD εντολές Κάθε SIMD εντολή καθορίζει πολλά δεδομένα προς επεξεργασία SIMT Single Instruction Multiple Threads Πολλές ροές από scalar εντολές (μία για κάθε νήμα εκτέλεσης) Πολλά νήματα ομαδοποιούνται δυναμικά από το hardware για να εκτελέσουν την ίδια ροή σε διαφορετικά δεδομένα 108

109 Πλεονεκτήματα SIMT Μοντέλου Εκτέλεσης To υλικό μεταχειρίζεται κάθε thread σαν ανεξάρτητη οντότητα Μπορεί να εκτελέσει κάθε thread ανεξάρτητα Κερδίζοντας τα οφέλη του ΜIMD μοντέλου εκτέλεσης Το υλικό μπορεί να σχηματίσει δυναμικά groups από threads Που εκτελούν την ίδια εντολή Κερδίζοντας τα οφέλη του SIMD μοντέλου εκτέλεσης 109

110 GPU Αρχιτεκτονική 110

111 Threads and Blocks Ένα thread συνδέεται με την επεξεργασία ενός υποσυνόλου του data set (data elements) Τα threads οργανώνονται σε blocks Τα blocks οργανώνονται σε ένα grid To υλικό (hardware) της GPU διαχειρίζεται τα νήματα Όχι οι εφαρμογές ή το λειτουργικό σύστημα Multithreading SIMD execution 111

112 Παράδειγμα CPU code for (i = 0; i < 8192; ++i) { A[i] = B[i] * C[i]; } CUDA code // there are 8192 threads global void KernelFunction( ) { int tid = blockdim.x * blockidx.x + threadidx.x; int varb = B[tid]; int varc = C[tid]; A[tid] = varb + varc; } 112

113 Παράδειγμα Threads and Blocks Code that works over all elements is the grid Thread blocks break this down into manageable sizes 512 threads per block (defined by the programmer) Groups of 32 threads combined into a SIMD thread or warp Grid size = 16 thread blocks 8192 elements / 512 threads per block Block is analogous to a strip-mined vector loop with vector length of 32 A thread block is assigned to a multithreaded SIMD processor by the thread block scheduler Current-generation GPUs have tens of multithreaded SIMD processors 113

114 Παράδειγμα Threads and Blocks 114

115 Παράδειγμα GPU αρχιτεκτονική Groups of 32 threads combined into a SIMD thread or warp Mapped to 16 (or 32) physical lanes Up to 32 warps are scheduled on a single SIMD processor Each warp has its own PC Each thread in a warp has its own register set (depends on the architecture & limits the number of warps per SIMD processor) Thread scheduler uses scoreboard to dispatch warps By definition, no data dependencies between warps Dispatch warps into pipeline, hide memory latency Thread block scheduler schedules blocks to SIMD processors Within each SIMD processor: Wide and shallow pipelined functional units compared to vector processors 115

116 Παράδειγμα GPU αρχιτεκτονική 116

117 Warps are multithreaded on the SIMD core Warp == SIMD thread One warp is a single thread in the hardware Multiple warps are interleaved in execution on a single SIMD processor to hide latencies (memory and functional unit) A single thread block can contain multiple warps, all mapped to single SIMD processor Can have multiple thread blocks executing on one SIMD processor 117

118 NVIDIA Instruction Set Architecture ISA is an abstraction of the hardware instruction set Parallel Thread Execution (PTX) opcode.type d,a,b,c; Χρησιμοποιεί virtual registers Η μετάφραση σε κώδικα μηχανής πραγματοποιείται από το software Παράδειγμα: shl.s32 R8, blockidx, 9 ; Thread Block ID * Block size (512 or 29) add.s32 R8, R8, threadidx ; R8 = i = my CUDA thread ID ld.global.f64 RD0, [X+R8] ; RD0 = X[i] ld.global.f64 RD2, [Y+R8] ; RD2 = Y[i] mul.f64 R0D, RD0, RD4 ; Product in RD0 = RD0 * RD4 (scalar a) add.f64 R0D, RD0, RD2 ; Sum in RD0 = RD0 + RD2 (Y[i]) st.global.f64 [Y+R8], RD0 ; Y[i] = sum (X[i]*a + Y[i]) 118

119 Conditional Branching Like vector architectures, GPU branch hardware uses internal masks Also uses Branch synchronization stack Entries consist of masks for each SIMD lane I.e. which threads commit their results (all threads execute) Instruction markers to manage when a branch diverges into multiple execution paths Push on divergent branch and when paths converge Act as barriers Pops stack Per-thread-lane 1-bit predicate register, specified by programmer 119

120 Shallow memory hierarchy GPU Memory Structures Multithreading hides memory latency Each SIMD Lane has private section of off-chip DRAM Private memory ( local memory in NVIDIA s terminology) Contains stack frame, spilling registers, and private variables Each multithreaded SIMD processor also has local memory local memory ( shared memory in NVIDIA s terminology) Scratchpad memory managed explicitly by the programmer Shared by SIMD lanes / threads within a block Memory shared by SIMD processors is GPU Memory GPU memory ( global memory in NVIDIA s terminology) Host can read and write GPU memory 120

121 NVIDIA s Pascal Architecture Innovations Each SIMD processor has: Two SIMD thread (warp) schedulers, two instruction dispatch units Two sets of: 16 SIMD lanes (SIMD width=32, chime=2 cycles) 16 load-store units, 8 special function units Two threads of SIMD instructions (warps) are scheduled every two clock cycles simultaneously Fast single-, double-, and half-precision High Bandwidth Memory 2 (HBM2) at 732 GB/s NVLink between multiple GPUs (20 GB/s in each direction) Unified virtual memory and paging support 121

122 NVIDIA s Pascal SIMD Processor 122

123 GPUs vs. Vector Architectures Ομοιότητες με vector αρχιτεκτονικές Δουλεύει επίσης καλά για data-level parallel προβλήματα Scatter-gather transfers Mask registers Large register files Διαφορές με vector αρχιτεκτονικές Δεν υπάρχει scalar επεξεργαστής Χρησιμοποιεί multithreading για να κρύψει την καθυστέρηση στην πρόσβαση της μνήμης Έχει πολλαπλά functional units, σε αντίθεση με τα λίγα deeply pipelined functional units που έχουν οι vector αρχιτεκτονικές 123

124 GPUs vs. Vector Architectures Vector Architecture GPU Architecture 124

125 SIMD Extensions vs. GPUs Οι GPUs έχουν περισσότερα SIMD lanes Οι GPUs υποστηρίζουν στο υλικό περισσότερα threads Και οι δύο έχουν 2:1 αναλογία μεταξύ double- and singleprecision performance Και οι δύο έχουν 64-bit διευθύνσεις, αλλά οι GPUs έχουν μικρότερη μνήμη Τα SIMD extensions δεν υποστηρίζουν scatter-gather εντολές 125

126 Προσεγγίσεις Αύξησης Απόδοσης Παραλληλισμός σε επίπεδο εντολής (Instruction Level Parallelism ILP) Εξαρτάται από τις πραγματικές εξαρτήσεις δεδομένων που υφίστανται ανάμεσα στις εντολές. Παραλληλισμός σε επίπεδο νήματος (Thread-Level Parallelism TLP) Αναπαρίσταται ρητά από τον προγραμματιστή, χρησιμοποιώντας πολλαπλά νήματα εκτέλεσης τα οποία είναι εκ κατασκευής παράλληλα. Παραλληλισμός σε επίπεδο δεδομένων (Data-Level Parallelism DLP) Αναπαρίσταται ρητά από τον προγραμματιστή ή δημιουργείται αυτόματα από τον μεταγλωττιστή. Οι ίδιες εντολές επεξεργάζονται πολλαπλά δεδομένα ταυτόχρονα 126

Πολυνηματικές Αρχιτεκτονικές

Πολυνηματικές Αρχιτεκτονικές Πολυνηματικές Αρχιτεκτονικές 1 Ο Νόμος της απόδοσης των μικροεπεξεργαστών 1 Time Instructions Cycles Time = = x x Performance Program Program Instruction Cycle (instr. count) (CPI) (cycle time) Performance

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

Πολυνηματικές Αρχιτεκτονικές

Πολυνηματικές Αρχιτεκτονικές Πολυνηματικές Αρχιτεκτονικές 1 Ο Νόμος της απόδοσης των μικροεπεξεργαστών 1 Time Instructions Cycles Time = = x x Performance Program Program Instruction Cycle (instr. count) (CPI) (cycle time) Performance

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

Πολυνηματικές Αρχιτεκτονικές

Πολυνηματικές Αρχιτεκτονικές Πολυνηματικές Αρχιτεκτονικές Όρια του ILP Θεωρούμε ένα ιδανικό επεξεργαστή Register Renaming : Άπειροι καταχωρητές Branch Prediction : Όλες οι διακλαδώσεις προβλέπονται σωστά Memory Analysis : Οι διευθύνσεις

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

Πολυνηματικές Αρχιτεκτονικές

Πολυνηματικές Αρχιτεκτονικές Πολυνηματικές Αρχιτεκτονικές 1 Ο Νόμος της απόδοσης των μικροεπεξεργαστών 1 Time Instructions Cycles Time = = x x Performance Program Program Instruction Cycle (instr. count) (CPI) (cycle time) Performance

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

Vector Αρχιτεκτονικές, SIMD Extensions & GPUs

Vector Αρχιτεκτονικές, SIMD Extensions & GPUs Vector Αρχιτεκτονικές, SIMD Extensions & GPUs 1 Πηγές/Βιβλιογραφία Computer Architecture: A Quantitative Approach, J. L. Hennessy, D. A. Patterson, Morgan Kaufmann Publishers, INC. 6 th Edition, 2017 Krste

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

Εισαγωγή. SMT 6 IPC, δυναμικά διαμοιραζόμενο. Superscalar 6 IPC. CMP 4x2 IPC

Εισαγωγή. SMT 6 IPC, δυναμικά διαμοιραζόμενο. Superscalar 6 IPC. CMP 4x2 IPC Πολυνηματικές Αρχιτεκτονικές Εισαγωγή Η ενσωμάτωση πολλαπλών ροών εκτέλεσης αποτελεί πλέον μονόδρομο στην τεχνολογία των επεξεργαστών Ελάχιστη ανταπόδοση από την εκμετάλλευση περισσότερου παραλληλισμού

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

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

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

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

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

Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών 1 Περιορισμοί των βαθμωτών αρχιτεκτονικών Μέγιστο throughput: 1 εντολή/κύκλο ρολογιού (IPC 1) Υποχρεωτική ροή όλων των (διαφορετικών) τύπων εντολών μέσα από

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

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

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

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

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 10ο μάθημα: Ορια παραλληλίας επιπέδου εντολής και πολυνηματικοί επεξεργαστές Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Ορια

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

Περιορισμοί των βαθμωτών αρχιτεκτονικών

Περιορισμοί των βαθμωτών αρχιτεκτονικών Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Περιορισμοί

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

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

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

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

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

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

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

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

Υπερβαθµωτή Οργάνωση Υπολογιστών Υπερβαθµωτή Οργάνωση Υπολογιστών Από τις βαθµωτές στις υπερβαθµωτές αρχιτεκτονικές αγωγού Τα όρια του Παραλληλισµού σε επίπεδο εντολών (Instruction Level Parallelism - ILP) Weiss and Smith [1984] Sohi

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

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 3 η : Παράλληλη Επεξεργασία. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 3 η : Παράλληλη Επεξεργασία. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Ενότητα 3 η : Παράλληλη Επεξεργασία Παράλληλες Αρχιτεκτονικές Παράλληλο σύστημα είναι ένα σύνολο από επεξεργαστικά στοιχεία (processing elements) τα οποία: συνεργάζονται για γρήγορη επίλυση

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

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

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

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

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

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

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Μαθηµα 2 ηµήτρης Λιούπης 1 Intel SA-1110 µc StrongARM core. System-on-Chip. Εξέλιξη των SA-110 και SA-1100. 2 ARM cores ARM: IP (intellectual

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

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

Εικονική Μνήμη (Virtual Μemory) ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

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

Δυναμική Δρομολόγηση Εντολών (Dynamic Scheduling)

Δυναμική Δρομολόγηση Εντολών (Dynamic Scheduling) Δυναμική Δρομολόγηση Εντολών (Dynamic Scheduling) Απόδοση pipeline Pipeline CPI = Ideal pipeline CPI + Structural Stalls + Data Hazard Stalls + Control Stalls Ideal pipeline CPI: μέτρο της μέγιστης απόδοσης

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

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

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

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

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

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

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

Τέτοιες λειτουργίες γίνονται διαμέσου του

Τέτοιες λειτουργίες γίνονται διαμέσου του Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: Προσκόμιση της εντολής (fetch) από τη θέση που δείχνει ο PC Ανάγνωση των περιεχομένων ενός ή δύο καταχωρητών Τέτοιες λειτουργίες γίνονται διαμέσου

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

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

Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών 1 Περιορισμοί των βαθμωτών αρχιτεκτονικών Μέγιστο throughput: 1 εντολή/κύκλο ρολογιού (IPC 1) Υποχρεωτική ροή όλων των (διαφορετικών) τύπων εντολών μέσα από

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

(Branch Prediction Mechanisms)

(Branch Prediction Mechanisms) Μέθοδοι Πρόβλεψης Διακλαδώσεων (Branch Prediction Mechanisms) 1 Εντολές Διακλάδωσης Περίπου 20% των εντολών είναι εντολές διακλάδωσης Πολλά στάδια μεταξύ υπολογισμού του επόμενου PC και εκτέλεσης του branch

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εικονική Μνήμη (Virtual Μemory) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

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

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

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

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

Προχωρηµένα Θέµατα Αρχιτεκτονικής

Προχωρηµένα Θέµατα Αρχιτεκτονικής Προχωρηµένα Θέµατα Αρχιτεκτονικής Μάθηµα 2 ο : Instruction Set Principles and Examples Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 1 Σχεδιασµός Συνόλου Εντολών Θέµατα που θα συζητηθούν ιαφορετικές επιλογές

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

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Static Scheduling. Ιάκωβος Μαυροειδής

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Static Scheduling. Ιάκωβος Μαυροειδής ΗΥ425 Αρχιτεκτονική Υπολογιστών Static Scheduling Ιάκωβος Μαυροειδής Τεχνικές ελάττωσης stalls. CPI = Ideal CPI + Structural stalls + RAW stalls + WAR stalls + WAW stalls + Control stalls Θα μελετήσουμε

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

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Προχωρημένες Τεχνικές Pipelining. Ιάκωβος Μαυροειδής

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Προχωρημένες Τεχνικές Pipelining. Ιάκωβος Μαυροειδής ΗΥ425 Αρχιτεκτονική Υπολογιστών Προχωρημένες Τεχνικές Pipelining. Ιάκωβος Μαυροειδής WB Data Imm Επεξεργαστής DLX Instruction Fetch Instr. Decode Reg. Fetch Execute Addr. Calc Memory Access Write Back

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

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

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

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

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

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

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

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

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

Πολυπύρηνοι επεξεργαστές Multicore processors

Πολυπύρηνοι επεξεργαστές Multicore processors Πολυπύρηνοι επεξεργαστές Multicore processors 1 Μετάβαση στους πολυπύρηνους(1) Απόδοση των µονοεπεξεργαστών 25% ετήσια βελτίωση της απόδοσης από το 1978 έως το 1986 Κυρίως από την εξέλιξη της τεχνολογίας

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

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

Εντολές Διακλάδωσης. #bubbles ~= pipeline depth X loop length. Next fetch started. Fetch. I-cache. Fetch Buffer. Decode. Issue Buffer. Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Εντολές

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

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

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

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

Instruction-Level Parallelism and its Dynamic Exploitation. Μάθηµα 3ο Computer Architecture-A Quantitative Approach

Instruction-Level Parallelism and its Dynamic Exploitation. Μάθηµα 3ο Computer Architecture-A Quantitative Approach Instruction-Level Parallelism and its Dynamic Exploitation Μάθηµα 3ο Computer Architecture-A Quantitative Approach Instruction-Level Parallelism (ILP) Επικάλυψη εντολών στοχεύοντας στην παράλληλη εκτέλεσή

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

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

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

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

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

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

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

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

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

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

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

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

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

CS425 Computer Systems Architecture

CS425 Computer Systems Architecture CS425 Computer Systems Architecture Fall 2017 Dynamic Instruction Scheduling: Scoreboard CS425 - Vassilis Papaefstathiou 1 DLX Processor Instruction Fetch Instr. Decode Reg. Fetch Execute Addr. Calc Memory

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

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

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

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

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

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

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

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

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

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

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

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

Υποθετική Εκτέλεση Εντολών

Υποθετική Εκτέλεση Εντολών Υποθετική Εκτέλεση Εντολών ( Speculation (Hardware-Based Τεχνικές βελτίωσης του CPI register renaming δυναμική εκτέλεση Pipeline CPI = Ideal pipeline CPI + Structural Stalls + Data Hazard Stalls + υπερβαθμωτή

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

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

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

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

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

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

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

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

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

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

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

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

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

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Static Scheduling. Βασίλης Παπαευσταθίου Ιάκωβος Μαυροειδής

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Static Scheduling. Βασίλης Παπαευσταθίου Ιάκωβος Μαυροειδής ΗΥ425 Αρχιτεκτονική Υπολογιστών Static Scheduling Βασίλης Παπαευσταθίου Ιάκωβος Μαυροειδής Τεχνικές ελάττωσης stalls. CPI = Ideal CPI + Structural stalls + RAW stalls + WAR stalls + WAW stalls + Control

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

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

Υπερβαθµωτή Οργάνωση Υπολογιστών Υπερβαθµωτή Οργάνωση Υπολογιστών Από τις βαθµωτές στις υπερβαθµωτές αρχιτεκτονικές αγωγού Ανάγνωση εντολής (Instruction Fetch) Σε µία αρχιτεκτονική πλάτους s, πρέπει διαβάζονται s εντολές σε κάθε κύκλο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://www.cslab.ece.ntua.gr/diplom/

http://www.cslab.ece.ntua.gr/diplom/ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr/ ιπλωµατική

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

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 3: Διασωλήνωση, Clusters, Στοιχεία Παράλληλου Προγραμματισμού Δρ. Μηνάς Δασυγένης mdasyg@ieee.org

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

Αρχιτεκτονικές Συνόλου Εντολών

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

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

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

Μέθοδοι Πρόβλεψης Διακλαδώσεων (Branch Prediction Mechanisms) Μέθοδοι Πρόβλεψης Διακλαδώσεων (Branch Prediction Mechanisms) 1 Εντολές Διακλάδωσης Περίπου 20% των εντολών είναι εντολές διακλάδωσης Πολλά στάδια μεταξύ υπολογισμού του επόμενου PC και εκτέλεσης του branch

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

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Γ ) Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών

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

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

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

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

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

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 3: Διασωλήνωση, Clusters, Στοιχεία Παράλληλου Προγραμματισμού Δρ. Μηνάς Δασυγένης mdasyg@ieee.org

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

Instruction Execution Times

Instruction Execution Times 1 C Execution Times InThisAppendix... Introduction DL330 Execution Times DL330P Execution Times DL340 Execution Times C-2 Execution Times Introduction Data Registers This appendix contains several tables

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

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

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

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

Εισαγωγή. Σύνοψη βασικών εννοιών, 5-stage pipeline, επεκτάσεις για λειτουργίες πολλαπλών κύκλων

Εισαγωγή. Σύνοψη βασικών εννοιών, 5-stage pipeline, επεκτάσεις για λειτουργίες πολλαπλών κύκλων Εισαγωγή Σύνοψη βασικών εννοιών, 5-stage pipeline, επεκτάσεις για λειτουργίες πολλαπλών κύκλων 1 Παράγοντες που επηρεάζουν την επίδοση της CPU CPU time = Seconds = Instructions Cycles Seconds --------------

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

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

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

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

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

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

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

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

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

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

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

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

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

Προχωρηµένα Θέµατα Αρχιτεκτονικής

Προχωρηµένα Θέµατα Αρχιτεκτονικής Προχωρηµένα Θέµατα Αρχιτεκτονικής Memory Hierarchy Design. Λιούπης Ιεραρχία Μνήµης Τα προγράµµατα απαιτούν όλο και περισσότερη και πιο γρήγορη µνήµη Γρήγορη και µεγάλη µνήµη -> ακριβή Αυτό οδηγεί σε ιεραρχία

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

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

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

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

ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων

ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράμματος 2.4 Αριθμητικές και λογικές εντολές 2.5 Επικοινωνία με άλλες συσκευές 2.6 Άλλες αρχιτεκτονικές

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

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

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

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

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

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

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

Προγραμματισμός GPUs μέσω του περιβάλλοντος CUDA

Προγραμματισμός GPUs μέσω του περιβάλλοντος CUDA Προγραμματισμός GPUs μέσω του περιβάλλοντος CUDA Κωνσταντινίδης Ηλίας Υποψήφιος Διδάκτωρ Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Νόμος Moore density doubles/18m

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

ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων

ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων Εισαγωγή στην Αρχιτεκτονική Υπολογιστών Γλώσσα Μηχανής Εκτέλεση προγράμματος Αριθμητικές και λογικές εντολές Παράδειγμα: μια απλή Γλώσσα Μηχανής Επικοινωνία με άλλες συσκευές

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές

Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές Αρης Ευθυμίου Το σημερινό μάθημα! Εισαγωγή σε παράλληλα συστήματα Ταξινόμιση κατά Flynn Μέθοδοι επικοινωνίας: shared memory, message passing Δίκτυα διασύνδεσης!

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

CMOS Technology for Computer Architects

CMOS Technology for Computer Architects CMOS Technology for Computer Architects Iakovos Mavroidis Giorgos Passas Manolis Katevenis Lecture 13: On chip SRAM Technology FORTH ICS / EURECCA & UoC GREECE ABC A A E F A BCDAECF A AB C DE ABCDAECF

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

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

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

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

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 Πολυπύρηνοι επεξεργαστές, μέρος 2 Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Cache coherence & scalability! Τα πρωτόκολλα

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές, 2ο μέρος

Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές, 2ο μέρος Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές, 2ο μέρος Αρης Ευθυμίου Το σημερινό μάθημα! Cache coherence directory protocols! Memory consistency! MulG- threading 2 Cache coherence & scalability! Τα

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

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

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

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

Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών

Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Νοέμβριος 2017 1 Εισαγωγικά 2 Compute Unified Device

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

Υλοποίηση Mικροεπεξεργαστή MIPS -16

Υλοποίηση Mικροεπεξεργαστή MIPS -16 Υλοποίηση Mικροεπεξεργαστή MIPS -16 Διάδρομος Δεδομένων και Μονάδα Ελέγχου 1 Περίληψη Μνήμη RAM Εκτέλεση εντολών με πολλαπλούς κύκλους Σχεδιασμός Διαδρόμου Δεδομένων (Data Path) Καταχωρητής Εντολών (Instruction

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

Ενσωματωμένα Συστήματα

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Γιώργος Δημητρίου Ενότητα 11 η : Εισαγωγή σε Παράλληλες Αρχιτεκτονικές Παράλληλη Επεξεργασία Επίπεδο Παραλληλισμού Από εντολές έως ανεξάρτητες διεργασίες Οργανώσεις Παράλληλων Αρχιτεκτονικών Συμμετρικοί,

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

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

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

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

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

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

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