Προηγμένοι Επεξεργαστές

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

Download "Προηγμένοι Επεξεργαστές"

Transcript

1 Προηγμένοι Επεξεργαστές Μετά τον Γεώργιος Κεραμίδας

2 Περιεχόμενα Αρχιτεκτονική και ο νόμος του Moore ISA Ο πόλεμος των σετ εντολών: RISC εναντίον CISC Από το μικροκώδικα στο pipelining > Σπάζοντας το φράγμα του 1 IPC: superscalar > Pentium Το επόμενο βήμα: out-of-order execution Pentium -> Pentium Pro/ΙΙ/ΙΙΙ, Pentium 4 Μνήμη Caches Κατανάλωση Ισχύος Multicore Architectures: Why? The challenges

3 Αρχιτεκτονική και ο Νόμος του Moore Νόμος του Moore Ο αριθμός των τρανζίστορ στα ολοκληρωμένα κυκλώματα διπλασιάζεται κάθε ~ 2 χρόνια Intel 4004 (1971): 2300, Pentium 4 (2001):

4 Αρχιτεκτονική και ο Νόμος του Moore Στην πραγματικότητα η απόδοση (ταχύτητα επεξεργασίας για συγκεκριμένα προγράμματα) των επεξεργαστών διπλασιάζεται σε λιγότερο από 2 χρόνια Σε λιγότερο από 2 χρόνια θα κάνουμε τόση πρόοδο όση κάναμε στα προηγούμενα 28 χρόνια... (σωστό πριν 2005) Είναι αυτό αποτέλεσμα του νόμου του Moore? Μικρότερα τρανζίστορ = πιο γρήγορα τρανζίστορ = πιο πολλά MHz = απόδοση? OXI

5 Αρχιτεκτονική και ο Νόμος του Moore Η αρχιτεκτονική είναι αυτή που μεταφράζει τα κέρδη στην πυκνότητα και ταχύτητα των τρανζίστορ σε κέρδη στην απόδοση του επεξεργαστή. Παράδειγμα 1: Το χάσμα της μνήμης (memory gap/wall) Την εποχή του Intel 8086 η μνήμη DRAM ήταν πιο γρήγορη από τον επεξεργαστή. Ένα LOAD πιο γρήγορο από ένα ADD. Σήμερα ένα LOAD ~ 200 κύκλους του επεξεργαστή, ίσως ~ 400 εντολές (ADD)! Αλλά η αναλογία των LOAD στα προγράμματα παραμένει η ίδια Λύση? Αρχιτεκτονική: Cache memories, κρυφές γρήγορες μνήμες κάνουν τη DRAM να φαίνεται γρήγορη...

6 Μνήμη Memory Bottleneck Το χάσμα της Μνήμης (Memory Wall, Memory Gap) H ταχύτητα των επεξεργαστών αυξάνεται πολύ πιο πολύ από αυτή της μνήμης (DRAM) CPU 2x/2 χρόνια DRAM 2x/10 χρόνια Το χάσμα αυξάνεται 50% το χρόνο

7 Αρχιτεκτονική και ο Νόμος του Moore Παράδειγμα 2: παραλληλισμός στην εκτέλεση εντολών Την εποχή του Intel 8086 μια εντολή χρειαζόταν πολλούς κύκλους για να εκτελεστεί Ένας Pentium 4 μπορεί να εκτελέσει ταυτόχρονα στον ίδιο κύκλο 6 εντολές Εάν δεν μπορούσαμε να εκτελέσουμε πολλές εντολές κάθε κύκλο η αύξηση της απόδοσης θα υπολείπονταν της αύξησης συχνότητας (που έτσι και αλλιώς είναι μικρότερη από 2x/2,5χρόνια). Instruction Level Parallelism or ILP Αυτά τα δύο παραδείγματα αποτελούν την ουσία της σύγχρονής αρχιτεκτονικής

8 Σετ εντολών Η αρχιτεκτονική του σετ εντολών (ISA) ενός επεξεργαστή είναι το interface με τον έξω κόσμο. Το σετ εντολών καθώς, η διαχείριση μνήμης (virtual memory) και ο χειρισμός των διακοπών (interrupts) ορίζουν την συμπεριφορά του επεξεργαστή. Έχει σημασία το σετ εντολών για το πόσο εύκολο είναι αρχιτεκτονικά να αποσπάσουμε την μέγιστη απόδοση από έναν επεξεργαστή?

9 Σετ εντολών Τη δεκαετία του 80 οι μικροεπεξεργαστές με αρχηγό την Intel αλλά και άλλους (π.χ. Moto , Nat. Semi ) ακολουθούσαν τις IBM, DEC VAX-11 και ολοένα παρουσίαζαν πιο πολύπλοκα σετ εντολών Οι εντολές γινόταν όλο και πιο σύνθετες, πλησιάζοντας τις γλώσσες υψηλού επιπέδου («semantic gap», VAX 11) Η αποκορύφωση ήταν ο Intel 432, ένας φοβερά πολύπλοκος επεξεργαστής και μια φοβερή εμπορική αποτυχία της Intel.

10 Σετ εντολών Επικρατούσα αρχιτεκτονική: αρχιτεκτονική με μικροκώδικα: ένα μικροπρόγραμμα που έτρεχε συνεχώς σε ένα υποτυπώδη κρυφό επεξεργαστή διάβαζε τις (μακρο)εντολές του προγράμματος μια-μια και ενορχήστρωνε την εκτέλεσή τους κατευθείαν πάνω στο υλικό χρησιμοποιώντας όμως πολλούς κύκλους για κάθε μακροεντολή Δεδομένου του περιορισμένου αριθμού τρανζίστορ Αύξηση της πολυπλοκότητας του σετ εντολών με μεγαλύτερο μικροκώδικα Δυνατότερες εντολές = καλύτερη απόδοση? CISC

11 Σετ εντολών RISC: Αντίδραση στην αύξηση της πολυπλοκότητας ήρθε από το Stanford (MIPS) και το Berkeley (RISC-I, RISC-II, SUN SPARC) Δεδομένου του περιορισμένου αριθμού τρανζίστορ Αύξηση της απόδοσης με απλούστερο σετ εντολών (στα βήματα των CRAY επεξεργαστών) Mικροεντολές -> σετ εντολών

12 RISC εναντίων CISC RΙSC CISC Διαφορά σε 32 bit Μεταβλητού μήκους Decode Εντολές Ομοιόμορφες Πολλές μορφές Decode Απλές Πολύπλοκες Execute Καταχωρητές Πολλοί Λίγοι Pipelining Addressing Modes Λίγα Πολλά Decode Απλά Πολύπλοκα Execute Χρήσιμα σε Αχρησιμοποίητα από compilers compilers Εκτέλεση Load-store Memory-memory Pipelining

13 RISC εναντίων CISC IA-32, x86(cisc) Εσωτερική μετάφραση σε RISC μ-ops P-PRO/II/III/4 Μεταβλητού μήκους Σταθερού μήκους 118bit Εντολές Πολλές μορφές - Πολύπλοκες Απλές Καταχωρητές Λίγοι (αρχιτεκτονικοί) Addressing Πολλά Modes Πάρα πολλοί εσωτερικοί (physical registers) Πολύπλοκα Μετάφραση σε πράξεις με διευθύνσεις Αχρησιμοποίητα από compilers Εκτέλεση Memory-memory Load-store εσωτερικα

14 Η κατάληξη Παρόλο που το RISC ήταν πολύ επιτυχημένο την εποχή που παρουσιάστηκε (2,6x RISC advantage), το CISC κατόρθωσε να επιζήσει και να επικρατήσει Το CISC μπόρεσε να εκμεταλλευτεί όλες τις καινοτομίες του RISC, κυρίως ΟΟΟ, caches Η αρχιτεκτονική όπως εκφράζεται σήμερα αναφέρεται στο εσωτερικό RISC πυρήνα των επεξεργαστών (είτε είναι Pentium 4 είτε οτιδήποτε άλλο) Το εξωτερικό σετ εντολών δεν καθορίζει πια την εσωτερική αρχιτεκτονική ενός επεξεργαστή Itanium: μεταφράζει το ΙΑ-32(x86) στο δικό του σετ εντολών (VLIW) και μετά το εκτελεί!

15 Περιεχόμενα Αρχιτεκτονική και ο νόμος του Moore Σετ εντολών Ο πόλεμος των σετ εντολών: RISC εναντίον CISC Από το μικροκώδικα στο pipelining > Σπάζοντας το φράγμα του 1 IPC: superscalar > Pentium Το επόμενο βήμα: OOO, Εκτέλεση Εκτός Σειράς Pentium -> Pentium Pro/2/3, Pentium IV Μνήμη Caches Κατανάλωση Ισχύος

16 Από τον μικροπρογραμματισμό στο pipelining: > (1986), IA-32, x86 8 registers Αρχιτεκτονική μικροκώδικα ένα μικροπρόγραμμα τρέχει συνεχώς σε ένα υποτυπώδη κρυφό επεξεργαστή, διαβάζει τις x86 εντολές του προγράμματος μια-μια και ενορχηστρώνει την εκτέλεσή τους κατευθείαν πάνω στο υλικό, χρησιμοποιώντας όμως πολλούς κύκλους για κάθε x86 εντολή π.χ. fetch - decode - execute

17 80386 sum=0 for i=0 to 10 sum+=a[i] i1 r1=0 /* index */ i2 r0=0 /* sum */ i3 loop:r2=mem[a+r1] /* a[i] */ i4 r0=r0+r2 i5 r1=r1+1 i6 r3=(r1!= 10) i7 if(r3==true) goto loop r2=mem[a+r1] r0 = r0 + r2 r1 = r1 + 1 r3 = r1!=10 fetch i4 decode i4 r0=r0+r2 fetch i5 decode i5 r1=r1 + r

18 Πως εκτελούμαι ένα πρόγραμμα Τα προγράμματα είναι στην μνήμη Τα προγράμματα περιέχουν εντολές (instructions) και δεδομένα (data) Βασικά βήματα: instruction fetch και instruction execution 18

19 How to Execute a Stored Program Εντολές γίνονται fetched και αποθηκεύονται σε special registers Εντολές γίνονται decoded και αποφασίζονται τα επόμενα βήματα Η επόμενη εντολή γίνεται fetched 19

20 Το Pipeline Τι είναι τελικά ένα παράλληλο σύστημα? A, B, C something C, B, A

21 Το Pipeline Τι είναι τελικά ένα παράλληλο σύστημα? 1 ms A, B, C something C, B, A Το target frequency? 0.1MHz ή 100KHz

22 Pipeline Basics Τι είναι τελικά ένα παράλληλο σύστημα? 0.2 ms 0.3 ms 0.5 ms A, B, C C1 C2 C3 C, B, A Πόσο είναι το target frequency τώρα? Είναι το σύστημα παράλληλο? Είναι πιο γρήγορο? Ποια είναι η διαφορά ανάμεσα στο latency και throughput? Είναι ιδανικό σενάριο: χρειαζόμαστε και pipeline registers.

23 Pipelining Pipelining increases throughput and not latency Each instruction is executed slower in the pipeline compared to the non-pipeline architecture (e.g., 3 cycles) 1000 instructions 1002 cycles (no pipelining 3000 cycles). Limit: 1 instruction per cycle 1 ms A, B, C something C, B, A 0.2 ms 0.3 ms 0.5 ms A, B, C C1 C2 C3 C, B, A

24 Instruction Execution Time Γιατί υπάρχουν τα κενά? -Ένας απλός λόγος: μία εντολή μπορεί να χρειάζεται τα αποτελέσματα μιας προηγούμενης εντολής

25 Κενά (Bubbles) Instruction 1 Παράδειγμα: Instruction 1: ADD R1,R2, R3 (R1 R2 + R3) Instruction 2: ADD R5,R2, R4 (R5 R2 + R4) Εντολές σε pipelined Example 2 Instruction 1: ADD R1,R2, R3 (R1 R2 + R3) Instruction 2: ADD R5,R1, R4 (R5 R1 + R4) Εντολές ΌΧΙ σε pipelined Instruction 2 Instruction 3 Instruction 4 Instruction 5 Instruction 6 Instruction 7 Instruction 8 25

26 Instruction Execution Time Γιατί υπάρχουν τα κενά? -Ένας απλός λόγος: μία εντολή μπορεί να χρειάζεται τα αποτελέσματα μιας προηγούμενης εντολής

27 Superscalar Issue Time Το Superscalar είναι πιο γρήγορο (μικρότερος χρόνος εκτέλεσης), αλλά χαμηλότερο utilization. Μεγάλο θέμα: Τι γίνεται με το power?

28 Ποιο είναι πιο γρήγορο, Ποιο πιο low power? Time 1GHz 0.5 GHz 0.8 GHz

29 Από τον μικροπρογραμματισμό στο pipelining: > (1989) τρανζίστορ, 2ο chip με > 1M τρανζίστορ (πρώτο με διαφορά μηνών το i860) Αρχιτεκτονική Pipeline/μικροκώδικα Pipeline: επικάλυψη των σταδίων εκτέλεσης των εντολών (π.χ. Fetch, decode, execute) Σαν τις αλυσίδες παραγωγής αυτοκινήτων (π.χ., αμάξωμα, σαλόνι, μηχανή, βάψιμο) Ποιες εντολές εκτελούνται στο pipleline του 80486? Απλές, RISC-like, οι υπόλοιπες με μικροκώδικα Pipeline παράδειγμα fetch - decode - execute (στον στάδια)

30 80486 sum=0 for i=0 to 10 sum+=a[i] i1 r1=0 /* index */ i2 r0=0 /* sum */ i3 loop:r2=mem[a+r1] /* a[i] */ i4 r0=r0+r2 i5 r1=r1+1 i6 r3=(r1!= 10) i7 if(r3==true) goto loop r2=mem[a+r1] r0 = r0 + r2 r1 = r1 + 1 r3 = r1!=10 fetch i4 decode i4 r0=r0+r2 fetch i5 decode i5 r1=r1+1 fetch i6 decode i6 r3=r1!=

31 Pipelining Το pipelining βελτιώνει μόνο το Ρυθμό (throughput) ΟΧΙ την καθυστέρηση (latency) η κάθε εντολή είναι όσο αργή ήταν και πριν (π.χ. 3κ.) 1000 εντολές 1002 κύκλους (χωρίς pipelining 3000 κύκλους). ΟΡΙΟ 1 εντολή ανά κύκλο. Απαράβατος Κανόνας: διατηρούνται τα Sequential Semantics, εντολές εκτελούνται με τη σειρά που εμφανίζονται στο πρόγραμμα

32 Pipelining Το pipeline πρέπει να είναι ΠΑΝΤΑ γεμάτο Data hazzards RAW: read after write δεν μπορούμε να εκτελέσουμε αν το αποτέλεσμα δεν είναι έτοιμο load X; A=A+X; Control Hazzards Δεν μπορούμε να αποφασίσουμε γρήγορα από που θα κάνουμε fetch Βλέπε branch prediction

33 80486: RAW pipeline bubble sum=0 for i=0 to 10 sum+=a[i] i1 r1=0 /* index */ i2 r0=0 /* sum */ i3 loop:r2=mem[a+r1] /* a[i] */ i4 r0=r0+r2 i5 r1=r1+1 i6 r3=(r1!= 10) i7 if(r3==true) goto loop r2=mem[a+r1] r0 = r0 + r2 r1 = r1 + 1 r3 = r1!=10 fetch i3 decode i3 r2=[a+r1] fetch i4 decode i4 STALL r0=r0+r2 fetch i5 decode i5 STALL

34 80486: JMP pipeline bubble sum=0 for i=0 to 10 sum+=a[i] i1 r1=0 /* index */ i2 r0=0 /* sum */ i3 loop:r2=mem[a+r1] /* a[i] */ i4 r0=r0+r2 i5 r1=r1+1 i6 r3=(r1!= 10) i7 if(r3==true) goto loop fetch i7 decode i7 jmp i3 fetch i8 decode i8 KILL fetch i9 KILL KILL fetch 4 i3 decode 5 i3

35 Superscalar: > Pentium Pentium 1993, τρανζίστορ με 16KB cache Ορισμός του superscalar: διαδοχικές εντολές παράλληλα Εκτέλεση σε σειρά, μέχρι 2 εντολές τον κύκλο Δύο pipelines, 5-στάδια το κάθε ένα Ασύμμετρα pipelines: το ένα πιο ικανό από το άλλο Εύκολες, ανεξάρτητες διαδοχικές εντολές παράλληλα, διαφορετικά μία-μία στο κύριο pipeline

36 Inorder Pipelines IF IF IF D1 D1 D1 D2 D2 D2 EX EX EX WB WB WB Intel i486 U - Pipe V - Pipe Intel Pentium (2 i486 pipelines)

37 Pentium sum=0 for i=0 to 10 sum+=a[i] i1 r1=0 /* index */ i2 r0=0 /* sum */ i3 loop:r2=mem[a+r1] /* a[i] */ i4 r0=r0+r2 i5 r1=r1+1 i6 r3=(r1!= 10) i7 if(r3==true) goto loop r2=mem[a+r1] r0 = r0 + r2 r1 = r1 + 1 r3 = r1!=10 fetch i3 decode i3 r2=m[a+r1] fetch i4 fetch i5 decode i4 decode i5 r0=r0+r2 r1=r1+1 fetch i6 decode i6 r3=r1!=

38 Superscalar: > Pentium Τι υλικό χρειάζεται για superscalar? Στο decode πρέπει να αποφασίσουμε αν οι εντολές μπορούν να εκτελεστούν παράλληλα Ανεξαρτησία εντολών: Εξάρτηση των εντολών εκδηλώνεται μέσα από την εγγραφή/ανάγνωση καταχωρητών: RAW: Μια εντολή χρειάζεται το αποτέλεσμα μιας άλλης WAR, WAW hazards (κίνδυνοι) resource hazards: αν οι εντολές χρειάζονται τους ίδιους πόρους για την εκτέλεσή τους Control Hazzards

39 Data Dependacies Η J είναι data dependent από την I: H J προσπαθεί να διαβάσει τον source operand πριν τον γράψει η I I: add r1,r2,r3 J: sub r4,r1,r3 η J είναι data dependent από την Κ, η οποία είναι data dependent από την I (αλυσίδα εξαρτήσεων) Πραγματικές εξαρτήσεις (True Dependences) Προκαλούν Read After Write (RAW) hazards στο pipeline

40 Name Dependences (1): Anti-dependences Name dependences: όταν 2 εντολές χρησιμοποιούν τον ίδιο καταχωρητή ή θέση μνήμης ( name ), χωρίς όμως να υπάρχει πραγματική ροή δεδομένων μεταξύ τους Anti-dependence: η J γράφει τον r1 πριν τον διαβάσει η I I: sub r4,r1,r3 J: add r1,r2,r3 K: mul r6,r1,r7 Προκαλούν Write After Read (WAR) data hazards στο pipeline

41 Name Dependences (2): Output dependences Output dependence: η J γράφει τον r1 πριν τον γράψει η I I: sub r1,r4,r3 J: add r1,r2,r3 K: mul r6,r1,r7 Προκαλούν Write After Write (WAW) data hazards στο pipeline

42 Data Dependacies Δύο εντολές χρησιμοποιούν τον ίδιο register add R1, R2, R3 add R1, R2, R3 add R1, R2, R3 sub R2, R4, R1 sub R2, R4, R1 sub R2, R4, R1 or R1, R6, R3 or R1, R6, R3 or R1, R6, R3 read-after-write (RAW) True dependence (real) write-after-read (WAR) anti dependence (artificial false) write-after-write (WAW) output dependence (artificial - false) Πότε και Που συμβαίνουν τα WAR και WAW hazards? 42

43 OOO: Pentium->Pentium Pro/II/III Pentium Pro (1995) 5,5M τρανζίστορ (2x8KB L1) Pentium II (1997) 7,5M - 27,4M (2x16KB L1, 256KB L2) Pentium III (1999) 9,5M - 44M (2x16KB L1, 512KB L2) O πρώτος OOO επεξεργαστής. Dynamic Execution (Intel), Out-of-Order, Εκτέλεση εκτός σειράς προγράμματος ΟΟΟ? Σαν το SUPERSCALAR αλλά οι εντολές που εκτελούνται παράλληλα ΔΕΝ χρειάζεται να είναι διαδοχικές Μετάφραση των x86 εντολών σε RISC μ-ops 14 στάδια pipeline (12 σε σειρά 2 εκτός σειράς) μέχρι 5 μ-ops παράλληλα σε 5 FUs: 2 x ALU, LOAD, STORE, FPU

44 OOO: Pentium->Pentium Pro/II/III Γιατί χρειάζεται το ΟΟΟ? Δεν φτάνει μόνο το SUPERSCALAR? Ας πούμε ότι έχουμε 2 pipelines διαθέσιμα /* C =((A+1)/2)-((B+1)/2) */ i1 r1 = MEM[A] i2 r2 = r1+1 i3 r3 = r1/2 i4 r4 = MEM[B] i5 r5 = r4+1 i6 r6 = r5/2 i7 r7 = r3-r6 i8 MEM[C] = r7 SUPERSCALAR i1 i2 i3 i4 i5 i6 i7 i8 OOO i1 i4 i2 i5 i3 i6 i7 i8 Ο παραλληλισμός ΔΕΝ βρίσκεται σε διαδοχικές εντολές (που συνήθως εξαρτώνται η μια από την άλλη) ΑΛΛΑ ΠΙΟ ΜΑΚΡΥΑ

45 OOO: Pentium Pro/II/III sum=0 for i=0 to 10 sum+=a[i] i1 r1=0 /* index */ i2 r0=0 /* sum */ i3 loop:r2=mem[a+r1] /* a[i] */ i4 r0=r0+r2 i5 r1=r1+1 i6 r3=(r1!= 10) i7 if(r3==true) goto loop fetch i3 decode i3 r2=m[a+r1] fetch i4 decode i4 Stall fetch i5 decode i5 r1=r1+1 fetch i6 decode i6 Stall Commit r0=r0+r2 r3=r1!=10 Commit Commit Commit

46 Pentium Pro Pipeline (Conceptual) FRONT END EXEC FETCH DECODE DISPATCH EXECUTE Decoupled (διαφορετικός ρυθμός εκτέλεσης) Decoupled BACK END RETIRE (COMMIT)

47 Instruction Decode Μετατροπή x86 instructions σε μops (uops) Uops: 2-operand RISC instructions x86 (IA-32): add (eax), (ebx) MEM(eax) <- MEM(eax) + MEM(ebx) UOPS: ld guop0, (eax) ld guop1, (ebx) add guop0, guop1 sta eax std guop0 guop0 <- MEM(eax) guop1 <- MEM(ebx) guop0 <- guop0 + guop1 MEM(eax) <- guop0

48 AMD Instruction Decode X86 -> RiscOPs (πιο ισχυρά από τα uops) 2 ισχυρούς decoders vs. 3 της Intel

49 Multi2Sim Simulator Multi2Sim: multicore and multithreaded X86 binary compatibility Free simulator: Open source project Χρησιμοποιείται από: Πανεπιστήμια Industry (π.χ. AMD)

50 x86 Timing Simulator

51 Memory Hierarchy

52 Memory Hierarchy

53 Το pipeline του Multi2Sim

54 CISC Decoding στο Multi2Sim Κάθε x86 εντολή είναι 1 μέχρι 15 bytes Περίπλοκες εντολές μετατρέπονται εσωτερικά σε micro-instructions (uops). Το Multi2Sim έχει το δικό του uop set Κάθε uop έχει το πολύ 4 output dependences (logical registers and status flags) Το πολύ ένας logical register σε αυτό το set

55 CISC Decoding στο Multi2Sim Το Multi2Sim έχει το δικό του uop set Ο μέγιστος αριθμός των input dependences για κάθε uop είναι 3 και μπορεί να αποτελείται από logical registers και status flags με το πολύ 2 logical registers.

56 Παράδειγμα 1 mov edx, DWORD [ebx-0x4] Διαβάζει ένα 32-bit αριθμό από την διεύθυνση ebx-4 και την αποθηκεύει στον edx 3 βήματα: Υπολογισμός του effective memory address Φόρτωση της τιμής Αποθήκευση του αποτελέσματος στον edx Τα βήματα ii και iii γίνονται παράλληλα

57 Παράδειγμα 1 (συνέχεια) mov edx, DWORD PTR [ebx-0x4] effaddr ea/ebx load edx/ea [0x ,4] // for debugging // Memory location // & size Ορολογία: odep1,odep2,.../idep1,idep2,... όπου idepxx input και odepyy output. Ο ea είναι εσωτερικός (μη-αρχιτεκτονικός) register

58 Παράδειγμα 2 add DWORD [ebx+0x8], eax Βήματα: Διαβάζει από την θέση μνήμης ebx+8 Προσθέτει με τον eax Αποθηκεύει πίσω στην μνήμη effaddr ea/ebx load data/ea [0x ,4] add data,eax store data,ea [0x800430,4]

59 Παράδειγμα 3 rep movsb Κάνει copy 1 byte από την θέση μνήμης που δείχνει ο esi στην θέση μνήμης που δείχνει ο edi. Το prefix rep επαναλαμβάνει την εντολή τόσες φορές όσο η τιμή του ecx. Σε κάθε επανάληψη ο esi και edi αυξάνονται ή μειώνονται κατά 1 (εξαρτάται από την τιμή του flag DF).

60 Παράδειγμα 3 (συνέχεια) rep movsb load aux/esi [0x80d789f,1] store edi,aux [0x80d789c,1] add edi,df add esi,df sub ecx ibranch ecx

61 Χρονισμός της rep movsb εντολής X86 -> RiscOPs (πιο ισχυρά από τα uops) 2 ισχυρούς decoders vs. 3 της Intel

62 Pentium Pro/II/III block diagram (απλοποιημένο) Register file 40 RRF IA-32 x86 x86 εντολές I-Cache ALU1Jmp 4C IFC fetch Decode Decode Decode 2C Dispatch 2C RS 20 2C ALU0 AGU1 LD AGU2 ST FPU ROB 40 1-n C 2C FRONT END EXEC 10 στάδια 1-n στάδια BACK END (COMMIT)

63 Pentium Pro/II/III Instruction flow Register file 40 RRF IA-32 x86 x86 εντολές I-Cache ALU1Jmp IFC fetch short short long Dispatch RS 20 ALU0 AGU1 LD AGU2 ST ROB x86 instructions 16b instr. buffer 1 uop 1 uop 4 uops 6 uop buffer 3 uop rename & dispatch Up to 5 uops issue/c FPU Up to 5 uops exec/c 3 uop retire commit/c

64 Το πρόβλημα με τα branch (JUMP) fetch i3 fetch i4 fetch i5 fetch i6 decode i3 r2=m[a+r1] decode i4 decode i5 r1=r1+1 decode i6 Stall Stall Commit r0=r0+r2 Commit Commit r3=r1!=10 Commit fetch i7 decode i7 Stall Stall if r3 loop Commit fetch i3 fetch i4 fetch i5 fetch i6 fetch i7

65 Branch prediction Pipeline Πάντα γεμάτο Pentium Pro: 10 pipeline στάδια πριν από την εκτέλεση = 10 * 3 εντολές μετά από ένα branch (JUMP) Πού θα τις βρούμε όλες αυτές τις εντολές? Πρόβλεψη branch i1 r1=0 /* index */ i2 r0=0 /* sum */ i3 loop:r2=mem[a+r1] /* a[i] */ i4 r0=r0+r2 i5 r1=r1+1 i6 r3=(r1!= 10) i7 if(r3==true) goto loop i8 continue:... Ποντάρουμε στο ότι το i7 μάλλον θα πάει στο i3 και όχι στο i8

66 Branch prediction fetch i3 fetch i4 fetch i5 fetch i6 decode i3 r2=m[a+r1] decode i4 decode i5 r1=r1+1 decode i6 Stall Stall Commit r0=r0+r2 Commit Commit r3=r1!=10 Commit fetch i7 decode i7 Stall Stall if r3 loop Commit Πρόβλεψη fetch i3 fetch i4 fetch i5 fetch i6 decode i3 r2=m[a+r1] decode i4 decode i5 r1=r1+1 decode i6 Stall Stall r0=r0+r2 Commit Commit Commit r3=r1!=10 Commit fetch i7 decode i7 Stall Stall if r3 loop Πρόβλεψη

67 Pentium Pro branch prediction Register file 40 RRF IA-32 x86 x86 εντολές I-Cache ALU1Jmp IFC fetch Decode Decode Decode Dispatch RS 20 ALU0 AGU1 LD AGU2 ST ROB 40 Branch Predict FPU BACK END FRONT END (COMMIT) 10 στάδια 1-n στάδια 2 σ.

68 Speculative execution Η πρόβλεψη branch (JUMP) οδηγεί σε ΥΠΟΘΕΤΙΚΗ ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ (Speculative Execution) υποθέτουμε ότι θα εκτελεστούν Αν όμως κάνουμε λάθος? Θα πρέπει τα αποτελέσματα της υποθετικής εκτέλεσης να είναι αναστρέψιμα Οι βασικοί μηχανισμοί υπάρχουν ήδη για το OOO Το ROB κρατάει τις υποθετικές εντολές ώσπου να επαληθευτεί η ροή του προγράμματος ROB (40) > RS (20)

69 Κάπως έτσι Pipeline CPI = Ideal pipeline CPI + superscalar register renaming Dynamic execution loop unrolling static scheduling, software pipelining Structural Stalls + Data Hazard Stalls + Control Stalls Branch prediction forwarding speculation delayed branches, branch scheduling

70 Branch prediction Branch (JUMP) ορολογία: i-x loop: i JUMP loop i+1 continue i+2... τaken (αλλαγή ροής) not taken/fall-through συνέχεια ροής Πως γίνεται το branch prediction? Στατικά (π.χ. branch προς τα πίσω είναι taken ) Με τη βοήθεια του compiler Δυναμικά (κατά την εκτέλεση του προγράμματος)

71 Branch prediction i-x loop: i JUMP loop i+1 continue i+2... τaken (αλλαγή ροής) not taken/fall-through συνέχεια ροής Δυναμικό branch prediction Απλοϊκό: για κάθε branch κάνε ότι έκανε την προηγούμενη φορά loop: 10 φορές σωστό, λάθος, λάθος, 9 φορές σωστό, λάθος, λάθος για κάθε branch κάνε ότι έτεινε να κάνει πιο πολύ τις 2-3 πιο πρόσφατες φορές που το είδαμε (Jim Smith, UW, βραβείο Mauchley-Eckert), Pentium branch prediction loop: 10 φορές σωστό, λάθος, 10 φορές σωστό, λάθος...

72 Deep Pipelines και Branch Misprediction Περισσότερα στάδια στο pipeline Μεγαλύτερο το penalty από branch miss predictions Μεγαλύτερη ανάγκη για καλύτερους branch predictors MIPS based pipeline 1 instruction issued per cycle, branch hazard of 1 cycle. Delayed branch Pentium Pro 3 instructions issued per cycle, 12+ cycle misfetch penalty Θυμηθείτε: τον Pentium 4 δεν μπορούσαμε να τον κάνουμε καλύτερο CMPs (ILP wall)

73 Εντολές Διακλάδωσης Περίπου 20% των εντολών είναι εντολές διακλάδωσης Next fetch started PC I-cache Fetch Πολλά στάδια μεταξύ υπολογισμού του επόμενου PC και εκτέλεσης του branch (για σύγχρονους επεξεργαστές μπορεί και >10!) Εισαγωγή stalls και επομένως μείωση του ρυθμού ανάγνωσης και εκτέλεσης εντολών Branch executed Fetch Buffer Issue Buffer Func. Units Result Buffer Arch. State Decode Execute Commit

74 Branch prediction Σύγχρονο branch prediction στον Pentium Pro/II/III Δύο επιπέδων, με ιστορία (two-level, history-based), Yeh & Patt, UM Η συμπεριφορά του branch εξαρτάται από το τι έγινε με τα άλλα branch πριν από αυτό Με άλλα λόγια από πιο δρόμο φτάσαμε σε αυτό το branch Ιστορία: τι έγινε με τα ν προηγούμενα branches π.χ. taken,fall-through,taken,taken (1,0,1,1) Πρόβλεψη: τι έτεινε να κάνει το branch (πιο πολύ) τις προηγούμενες 2-3 φορές που το είδαμε με την ίδια ιστορία Pentium Pro: 4 προηγούμενα branch ιστορία (πχ. 1011), προβλέπει 512 συνδιασμούς ιστορίας/branch 95% ακρίβεια πρόβλεψης

75 Βranch prediction Πολύ προσοδοφόρο πεδίο (πολλές δημοσιεύσεις) Γιατί? 90-95% επιτυχία πρόβλεψης δεν είναι αρκετή Π.x.: καθημερινή πρόβλεψη σεισμών: σήμερα δεν θα γίνει σεισμός: 99% επιτυχία Το θέμα είναι όμως πόσο κοστίζει η 1 (στις 100) λάθος πρόβλεψη Στους επεξεργαστές το κόστος λάθος πρόβλεψης αυξάνει διαρκώς (Pentium 4, 20-στάδια pipeline, 6 εντολές παράλληλα ) Παραμένει ένα από τα δύσκολα προβλήματα που οδήγησε την Intel σε άλλες αρχιτεκτονικές : IA-64, Itanium που αποφεύγουν την πρόβλεψη

76 Πρόβλεψη Τεχνικές Μείωσης Control Stalls Software/Compiler Μείωση των εντολών άλματος (loop unrolling) Υπολογισμός της συνθήκης εκτέλεσης διακλάδωσης όσο πιο νωρίς Hardware Αντικατάσταση των bubbles με χρήσιμη δουλειά Παράλληλη εκτέλεση και των 2 ροών προγράμματος μέχρι να αποσαφηνιστεί ποιο κομμάτι της διακλάδωσης θα εκτελεστεί (predication Itanium)

77 Εντολές Άλματος Χρειαζόμαστε 2 πληροφορίες Αν θα εκτελεστεί το άλμα ή όχι (taken or not taken) Αν εκτελεστεί ποιος είναι ο προορισμός (target PC) Είδος Άλματος Direct Jumps Function Calls Conditional Branches Indirect Jumps Function returns Απόφαση Always Taken??? Always Taken Προορισμός Υπολογίζεται εύκολα Υπολογίζεται εύκολα Υπολογίζεται δύσκολα

78 Πρόβλεψη Απόφασης Απαιτείται για εντολές διακλάδωσης υπό συνθήκη Η πλειοψηφία των εντολών διακλάδωσης είναι υπό συνθήκη 2 είδη τεχνικών πρόβλεψης Στατικές Δυναμικές Απαιτείται extra hardware Αποθήκευση χρήσιμων πληροφοριών για βελτίωση της ακρίβειας των προβλέψεων (branch history tables, branch target buffers, etc) Μηχανισμός ανάνηψης σε περίπτωση λανθασμένης πρόβλεψης FLASH THE PIPELINE

79 Στατικές Τεχνικές Πρόβλεψης Branch not taken (NT) Misprediction rate ~60%-70% Branch taken (T) Σε ένα loop λάθος πρόβλεψη μόνο στην τελευταία εκτέλεση Average misprediction rate 34% (SPEC benchmarks) BTFNT Άλματα προς τα πίσω (αρνητικό offset ως προς το PC) προβλέπεται ότι θα εκτελεστούν (Backwards taken) Άλματα προς τα εμπρός (θετικό offset ως προς το PC) προβλέπεται ότι δε θα εκτελεστούν (Forwards not taken) χρησιμοποιείται στον Intel Pentium 4 σε περίπτωση που αποτύχει ο μηχανισμός δυναμικής πρόβλεψης

80 Profiling Στατικές Τεχνικές Πρόβλεψης Εκτέλεση προγράμματος και καταγραφή στατιστικών Ο compiler τα χρησιμοποιεί για να βοηθήσει το hardware να κάνει σωστή πρόβλεψη (π.χ. αν μια εντολή διακλάδωσης εκτελείται πάνω από τις μισές φορές κατά τη διάρκεια του profiling τότε η πρόβλεψη είναι T) Εύκολη υλοποίηση Τα δεδομένα του profiling και της κανονικής εκτέλεσης μπορεί να είναι πολύ διαφορετικά. Επομένως λάθος προβλέψεις`

81 Στατικές Τεχνικές Πρόβλεψης Profiling ή compile-time analysis Οι compilers έχουν περιορισμούς. Δεν μπορούν να πιάσουν την δυναμική εκτέλεση του προγραμματος π.χ. Interactive εφαρμογές

82 4 static ways to reduce control hazards #4: Delayed Branches branch instruction sequential successor 1 sequential successor 2... sequential successor n branch target if taken Branch delay of length Those instruction are a executed delay of one slot: allows the branch outcome and the target address to happen without stalls

83 «Routing» of a branch delay slot (a) and (c) are the best cases: fills the delay slot and does not increase the number of instructions

84 Δυναμικές Τεχνικές Πρόβλεψης Branch History Branch Predictor Branch History Φανταστείτε ένα loop -> τα ίδια πράγματα σε iteration Τι είδους ιστορία??? 84

85 Δύο Κώδικες Παράδειγμα 1 (global) (If b1 & b2 is not taken, b3 will be taken) if (aa==2) // branch b1 a = 0; if (bb==2) // branch b2 bb = 0; if(aa!=bb) { // branch b3 Clearly depends on the results of b1 and b2 Παράδειγμα 2 (local) for (i=0; i<100; i ++) { } // branch b1 clearly depends on the branch history 85

86 Δυναμικές Τεχνικές Πρόβλεψης 1-bit predictor Η πρόβλεψη βασίζεται στο τι έγινε την προηγούμενη φορά που εκτελέστηκε αυτή η εντολή διακλάδωσης Χρήση πίνακα για την αποθήκευση της απόφασης Προσπέλαση του πίνακα χρησιμοποιώντας k bits του PC Aliasing 0x x x x40010A04 0x40010A08 k bits 1-bit Branch History Table addi r10, r0, 100 addi r1, r1, r0 L1: addi r1, r1, 1 bne r1, r10, L1 NT T T NT T... T NT NT 2 k

87 Παράδειγμα 1-bit predictor 0x108: for(i=0; i < ; i++) {... 0x144: if( ( i % 100) == 0 ) calla( ); 0x150: if( (i & 1) == 1) } Πρόβλεψη (108): 0 Απόφαση (108): T callb( );

88 Παράδειγμα 1-bit predictor 0x108: for(i=0; i < ; i++) {... 0x144: if( ( i % 100) == 0 ) calla( ); 0x150: if( (i & 1) == 1) } Πρόβλεψη (108): Απόφαση (108): callb( ); 0 TTTTTTTT...TTTΤ T TTTTTTTT...TTTN

89 Παράδειγμα 1-bit predictor 0x108: for(i=0; i < ; i++) {... 0x144: if( ( i % 100) == 0 ) calla( ); 0x150: if( (i & 1) == 1) } Πρόβλεψη (108): Απόφαση (108): callb( ); 0 TTTTTTTT...TTTΤ T TTTTTTTT...TTTN N T

90 Παράδειγμα 1-bit predictor 0x108: for(i=0; i < ; i++) {... 0x144: if( ( i % 100) == 0 ) calla( ); 0x150: if( (i & 1) == 1) callb( ); } Πρόβλεψη (108): Misprediction = 2/ Prediction Rate = % 0 TTTTTTTT...TTTΤ N TTTTTTTT...TTTΤ Απόφαση (108): T TTTTTTTT...TTTN T TTTTTTTT...TTTN

91 Παράδειγμα 1-bit predictor 0x108: for(i=0; i < ; i++) {... 0x144: if( ( i % 100) == 0 ) calla( ); 0x150: if( (i & 1) == 1) } Πρόβλεψη (144): 0 Απόφαση (144): N callb( );

92 Παράδειγμα 1-bit predictor 0x108: for(i=0; i < ; i++) {... 0x144: if( ( i % 100) == 0 ) calla( ); 0x150: if( (i & 1) == 1) } Πρόβλεψη (144): Απόφαση (144): callb( ); 0 NTTTTTTT...TTTΤ 100 N TTTTTTTT...TTTN

93 Παράδειγμα 1-bit predictor 0x108: for(i=0; i < ; i++) {... 0x144: if( ( i % 100) == 0 ) calla( ); 0x150: if( (i & 1) == 1) } Πρόβλεψη (144): Απόφαση (144): callb( ); 0 NTTTTTTT...TTTΤ 100 N TTTTTTTT...TTTN N T

94 Παράδειγμα 1-bit predictor 0x108: for(i=0; i < ; i++) {... 0x144: if( ( i % 100) == 0 ) calla( ); 0x150: if( (i & 1) == 1) callb( ); } Πρόβλεψη (144): Misprediction = 2/100 Prediction Rate = 98% 0 NTTTTTTT...TTTΤ 100 N TTTTTTTT...TTTΤ Απόφαση (144): N TTTTTTTT...TTTN T TTTTTTTT...TTTN

95 Παράδειγμα 1-bit predictor 0x108: for(i=0; i < ; i++) {... 0x144: if( ( i % 100) == 0 ) calla( ); 0x150: if( (i & 1) == 1) } Πρόβλεψη (150): 0 Απόφαση (150): T callb( );

96 Παράδειγμα 1-bit predictor 0x108: for(i=0; i < ; i++) {... 0x144: if( ( i % 100) == 0 ) calla( ); 0x150: if( (i & 1) == 1) } Πρόβλεψη (150): callb( ); 0 T Απόφαση (150): T N

97 Παράδειγμα 1-bit predictor 0x108: for(i=0; i < ; i++) {... 0x144: if( ( i % 100) == 0 ) calla( ); 0x150: if( (i & 1) == 1) } Πρόβλεψη (150): callb( ); 0 T N Απόφαση (150): T N T

98 Παράδειγμα 1-bit predictor 0x108: for(i=0; i < ; i++) {... 0x144: if( ( i % 100) == 0 ) calla( ); 0x150: if( (i & 1) == 1) callb( ); } Απόφαση (150): Πρόβλεψη (150): 0 T Misprediction = 1/1 Prediction Rate = 0% T N N T T N N T T N N T T N N T T N N T T N N T T N N T T N N T T N N T T N N T T N N T T N N T

99 gshare Predictor

100 Tournament Hybrid Predictor (Pentium 4) meta-predictor 2-bit μετρητές 0,1 χρησιμοποιείται ο P 0 Branch PC Meta- Predictor Pred 0 Pred 1 2,3 χρησιμοποιείται ο P 1 Η τιμή του meta-predictor ενημερώνεται μόνο όταν οι δυο predictors κάνουν διαφορετική πρόβλεψη Pred 0, Pred 1 Συνδυασμοί των προηγουμένων συστημάτων Pred 0 Λάθος Λάθος Σωστή Σωστή Final Prediction Pred 1 Λάθος Σωστή Λάθος Σωστή Meta Update

101 Data Dependacies Δύο εντoλές χρησιμοποιούν τον ίδιο register add R1, R2, R3 add R1, R2, R3 add R1, R2, R3 sub R2, R4, R1 sub R2, R4, R1 sub R2, R4, R1 or R1, R6, R3 or R1, R6, R3 or R1, R6, R3 read-after-write (RAW) True dependence (real) write-after-read (WAR) anti dependence (artificial false) write-after-write (WAW) output dependence (artificial - false) Where (How) do WAR and WAW hazards occur? 101

102 Register renaming Ο παραλληλισμός δεσμεύεται από τις αλληλεξαρτήσεις των εντολών Αληθινές εξαρτήσεις: δεν μπορεί να εκτελεστεί μια εντολή πριν από τις εντολές που παράγουν τα ορίσματά της. RAW (Read-After-Write) εξαρτήσεις. Πλασματικές εξαρτήσεις: αποτροπή εκτέλεσης λόγω ανακύκλωσης των καταχωρητών WAW (Write-After-Write) αντι-εξάρτηση WAR (Write-After-Read) output εξάρτηση Αντι-εξάρτηση WAW i1 r1 = r2 * 10 i2 r3 = r1 * 10 i3 r1 = r4 * 20 i4 r5 = r1 * 20 output-εξάρτηση WAR

103 Register renaming Για τις αληθινές εξαρτήσεις χρειάζεται να περάσουμε σε εξελιγμένα είδη πρόβλεψης για να τις υπερβούμε (Value Prediction, dataflow barrier). Θεωρητικά μιλώντας... Οι πλασματικές εξαρτήσεις μειώνουν τον παραλληλισμό στο επίπεδο εντολών (ILP) χωρίς να έχουν ουσιαστικό λόγο ύπαρξης. Απαλείφονται εύκολα αρκεί να είχαμε πάρα πολλούς καταχωρητές. Αλλά το Σετ Εντολών ποτέ δεν αλλάζει (συμβατότητα λογισμικού). (μόνο επεκτείνεται ) Λύση? Μετονομασία Καταχωρητών (Register Renaming): Αντιστοίχισε τους καταχωρητές σε ένα πολύ μεγαλύτερο σετ, κατά την εκτέλεση του προγράμματος, αυτόματα και αόρατα στον εξωτερικό κόσμο. Εξαλείφει το πλεονέκτημα των RISC που πάντα υποστήριζαν πολλούς καταχωρητές για τους ίδιους λόγους

104 Register renaming Οι 8 αρχιτεκτονικοί καταχωρητές των x86 αντιστοιχίζονται σε 40 φυσικούς (physical) καταχωρητές Ένας πίνακας (RAT, Register Alias Table) κρατά τις αντιστοιχίες Κάθε φορά που γράφεται ένας αρχιτεκτονικός καταχωρητής αντιστοιχίζεται σε νέο φυσικό καταχωρητή i1 r1 = r2 * 10 i2 r3 = r1 * 10 i3 r1 = r4 * 20 i4 r5 = r1 * 20 i1 ra = r2 * 10 i2 r3 = ra * 10 i3 r1 = r4 * 20 i4 r5 = r1 * 20 i1 ra = r2 * 10 i2 rb = ra * 10 i3 rc = r4 * 20 i4 r5 = rc * 20 Με αυτό τον τρόπο εξαλείφουμε τις πλασματικές εξαρτήσεις (WAW, WAR) αλλά αφήνουμε ανέπαφες τις πραγματικές εξαρτήσεις (RAW)

105 Pentium Pro/II/III block diagram, register renaming Register Alias Table Register file 40 RRF IA-32 x86 x86 εντολές I-Cache ALU/Jmp fetch Decode Decode rename RS 20 ALU LOAD ROB 40 Decode STORE Branch Predict FPU 10 στάδια 2 στάδια 2 σ.

106 Register renaming στο Multi2Sim

107 Σύνοψη: OOO Για να μεγιστοποιήσουμε τον παραλληλισμό στην εκτέλεση εντολών πρέπει να καταφύγουμε σε εκτέλεση εκτός σειράς προγράμματος (OOO). Το OOO υποβοηθείται από: Πρόβλεψη ροής (Branch prediction) και υποθετική εκτέλεση (speculative execution) επιτρέπει (1) να βρούμε αρκετές εντολές ώστε να κρατάμε όλα τα pipelines γεμάτα, (2) να εκτελούμε εντολές υποθετικά ώσπου να επαληθεύσουμε τη ροή του προγράμματος Μετονομασία καταχωρητών (Register Renaming) αφαιρεί τις πλασματικές εξαρτήσεις μεταξύ εντολών που προέρχονται από την ανακύκλωση καταχωρητών

108 Pentium 4 Microarchitecture 108

109 Top 10 80x86 Instructions Rank instruction Integer Average Percent total executed 1 load 22% 2 conditional branch 20% 3 compare 16% 4 store 12% 5 add 8% 6 and 6% 7 sub 5% 8 move register-register 4% 9 call 1% 10 return 1% Total 96% Simple instructions dominate instruction frequency 109

110 Τι άλλο υπάρχει? 110

111 Instruction Issue Time Χαμηλό utilization των μονάδων λόγω εξαρτήσεων

112 Superscalar Issue Time Το Superscalar αυξάνει το performance, αλλά όχι το utilization. Συνήθως αυξάνει και το power

113 Chip Multiprocessor Time Limited utilization when only running one thread

114 Fine Grained Multithreading Time Intra-thread dependencies still limit performance

115 Simultaneous Multithreading Time Maximum utilization of function units by independent operations

116 Basic Out-of-order Pipeline Fetch Decod e/map Queue Reg Read Execu te Dcach e/sto re Buffe r Reg Write Retir e PC Register Map Icache Regs Dcache Regs Threadblind

117 SMT Pipeline Fetch Decod e/map Queue Reg Read Execu te Dcach e/sto re Buffe r Reg Write Retir e PC Register Map Icache Regs Dcache Regs

118 Το Hyperthreading Παραδείγματα: Pentium 4, Xeon (Intel) με ονομασια Hyperthreading, Netburst Ο προγραμματιστής έβλεπε τον επεξεργαστή διπλό 5% αύξηση στο chip area, 25% αύξηση στην απόδοση

119 Changes for SMT Basic pipeline unchanged Replicated resources Program counters Register maps Shared resources Register file (size increased) Instruction queue First and second level caches Translation buffers Branch predictor

120 Multiprogrammed workload 250% 200% 150% 100% 1T 2T 3T 4T 50% 0% SpecInt SpecFP Mixed Int/FP

121 Multithreaded Applications 300% 250% 200% 150% 100% 1T 2T 4T 50% 0% Barnes Chess Sort TP

122 VLIW Αρχές ILP (Instruction-Level Parallelism) Superscalar, OoO: hardware finds it VLIW: let the Software, COMPILER, find it! No need for DYNAMIC EXECUTION Register renaming out Reservation Stations out Reorder Buffer out Out-of-order issue out

123 VLIW: Very Long Instruction Word

124 VLIW architetcure

125 VLIW Execution Semantics

126 VLIW Execution Semantics

127 Προβλήματα VLIW Compiler δεμένος με implementation Scheduler must know operation latencies Cannot run binaries in another implementation Dynamically scheduled VLIW Αποσύνδεση operation latencies από τον compiler

128 Intel/HP EPIC Intel/HP IA-64 Explicitly Parallel Instruction Computer (EPIC) IA-64: instruction set architecture; EPIC is type EPIC = 2nd generation VLIW? Itanium is name of first implementation (2001)

129 Intel EPIC VLIW Instructions IA-64 instructions are encoded in bundles, which are 128 bits wide. Each bundle consists of a 5-bit template field and 3 instructions, each 41 bits in length 3 Instructions in 128 bit groups ; field determines if instructions dependent or independent Smaller code size than old VLIW, larger than x86/risc Groups can be linked to show independence > 3 instr

130 Intel EPIC VLIW Instructions

131 Itanium

132 Instruction group/bundle

133 Itanium (or Itanic as in Titanic) Highly parallel and deeply pipelined hardware at 800Mhz (2000) 6-wide, 10-stage pipeline at 800Mhz on 0.18 µ process Hardware checks dependencies (interlocks => binary compatibility over time) DYNAMICALLY SCHEDULED VLIW Predicated execution (select 1 out of 64 1-bit flags) => 40% fewer mispredictions?

134 Itanium IA-64 Registers The integer registers are configured to help accelerate procedure calls using a register stack 8 64-bit Branch registers used to hold branch destination addresses for indirect branches 64 1-bit predication registers

135 IA-64/Itanium registers

136 Itanium

(Branch Prediction Mechanisms)

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

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

Εντολές Διακλάδωσης. #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. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Εντολές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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) Επικάλυψη εντολών στοχεύοντας στην παράλληλη εκτέλεσή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Επανάληψη Σύστημα Διασωλήνωσης (Pipelining) Κεφάλαιο 4 - Σύστημα ιασωλήνωσης

Επανάληψη Σύστημα Διασωλήνωσης (Pipelining) Κεφάλαιο 4 - Σύστημα ιασωλήνωσης Επανάληψη Σύστημα Διασωλήνωσης (Pipelining) 1 ιασωλήνωση 2 Pipelining Παραλληλισμός + Pipelining 3 Χρόνος Εκτέλεσης = I x CPI x Cycle Time Με ή χωρις pipeline το Ι είναι το ίδιο όπως και τo CPI = 1. Το

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (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

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

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

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

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

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

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

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

Instruction-Level Parallelism and its Dynamic Exploitation. Κεφάλαια 4o Computer Architecture-A Quantitative Approach 3 rd Edition

Instruction-Level Parallelism and its Dynamic Exploitation. Κεφάλαια 4o Computer Architecture-A Quantitative Approach 3 rd Edition Instruction-Level Parallelism and its Dynamic Exploitation Κεφάλαια 4o Computer Architecture-A Quantitative Approach 3 rd Edition Basic Pipeline Για την αποφυγή ενός pipeline stall πρέπει µια εξαρτώµενη

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

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

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

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

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

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Πρόβλεψη διακλάδωσης Υ- 01 Αρχιτεκτονική Υπολογιστών Πρόβλεψη διακλάδωσης Αρης Ευθυμίου Το σημερινό μάθημα Πρόβλεψη διακλάδωσης (branch predicfon) ποιο είναι το πρόβλημα και τι προκαλεί πρόβλεψη κατεύθυνσης πρόβλεψη στόχου

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

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

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

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

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

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

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

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

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

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 4: O επεξεργαστής Σύστημα Διασωλήνωσης (Pipelining)

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 4: O επεξεργαστής Σύστημα Διασωλήνωσης (Pipelining) ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 4: O επεξεργαστής Σύστημα Διασωλήνωσης (Pipelining) 1 ιασωλήνωση 2 Διασωλήνωση και Παραλληλισμός (Parallelism) Διασωλήνωση (Pipelining):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 Αρης Ευθυμίου Το σημερινό μάθημα! Λυση του lab02! Αρχιτεκτονική ARM σε τι μοιάζει και σε τι διαφέρει από τον MIPS! Αρχιτεκτονική x86 μια γρήγορη ματιά στη

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

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

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

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

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

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

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

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

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

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

Application Operating System. Datapath & Control/Memory. Digital Design Circuit Design. Layout

Application Operating System. Datapath & Control/Memory. Digital Design Circuit Design. Layout Application Operating System Λογισμικό Oργάνωση Μικρο- Αρχιτεκτονική Compiler Firmware Instr. Set Proc. I/O system Datapath & Control/Memory Digital Design Circuit Design Layout Instruction Set Architecture

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

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

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

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

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

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

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

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pipelined Datapath, Hazards and Forwarding

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. Τεχνολογία επεξεργαστών

2. Τεχνολογία επεξεργαστών Κεφάλαιο 2: Τεχνολογία επεξεργαστών 21 2. Τεχνολογία επεξεργαστών 2.1 Επιλογές στη σχεδίαση επεξεργαστών Η κεντρική μονάδα επεξεργασίας (Central Processing Unit CPU) ή επεξεργαστής αποτελεί την καρδιά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΑΚΑ ΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture-ISA) 1 Ένας υπολογιστής

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

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

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

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

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

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

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

ΔΙΑΛΕΞΗ 16: ΠΑΡΑΛΛΗΛΙΣΜΟΣ ΣΤΗΝ ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ

ΔΙΑΛΕΞΗ 16: ΠΑΡΑΛΛΗΛΙΣΜΟΣ ΣΤΗΝ ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ ΗΜΥ 312 -- ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΑΛΕΞΗ 16: ΠΑΡΑΛΛΗΛΙΣΜΟΣ ΣΤΗΝ ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ Διδάσκουσα: ΜΑΡΙΑ Κ. ΜΙΧΑΗΛ Επίκουρη Καθηγήτρια, ΗΜΜΥ (mmichael@ucy.ac.cy) [Προσαρμογή από Computer Architecture:

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι

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

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

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

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

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

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

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

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

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

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

CS-425 Mid-term exam

CS-425 Mid-term exam CS-425 Mid-term exam Tuesday November 8th, 2005, 5-8 p.m. Aids: Non-programmable pocket calculator Only ONE problem solution PER PAGE! Put your NAME on each sheet. NUMBER each sheet. Mobile phones are

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

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

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

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

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Intel x86 ISA. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Intel x86 ISA Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ RISC vs. CISC Η assembly των επεξεργαστών ARM, SPARC (Sun), και Power (IBM) είναι όμοιες

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

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation Προηγμένοι Μικροεπεξεργαστές Paging & Segmentation Segmentation Τεχνική για σπάσουμε την μνήμη σε λογικά κομμάτια Κάθε κομμάτι αποθηκεύει πληροφορία σχετική με data segments for each process code segments

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

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 9 Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική

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

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

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

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

Εισαγωγή στην πληροφορική -4

Εισαγωγή στην πληροφορική -4 Εισαγωγή στην πληροφορική 6 (, 64) bits Μνήµη Θέση (κύτταρο cell) µνήµης, χωράει λέξεις (words) εντολές (πρόγραµµα), αριθµοί (δεδοµένα) Αριθµοί: δυαδική (binary) αναπαράσταση = = = 4 = 4 = 5 = 7 Εισαγωγή

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

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

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

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