Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf ·...

Post on 11-Oct-2020

8 views 0 download

Transcript of Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf ·...

Υ-­‐01  Αρχιτεκτονική  Υπολογιστών    Εισαγωγή  

Αρης  Ευθυμίου  

Το  σημερινό  μάθημα  

  Οργανωτικά/διαδικαστικά  του  μαθήματος  –  θέματα  που  θα  καλύψουμε  –  οργάνωση/βαθμολογία  

  Εισαγωγή  –  μέτρα  επίδοσης  υπολογιστών  –  χρόνος  εκτέλεσης  –  CPI,IPC  –  Νόμος  του  Amdhal  

–  Μετροπρογράμματα  

–  Προσομοίωση  

2

Θέματα  που  θα  καλύψουμε  

  Σύντομη  επισκόπιση  των  βασικών  –  διοχέτευση,  κρυφές  μνήμες  

  Superscalar  processors  –  instruc`on  level  parallelism  

  Front-­‐end  design  –  Branch  predic`on  –  Register  renaming  

  Back-­‐end  design  –  Instruc`on  issue  and  scheduling  –  Memory  access  instruc`ons  

  Cache  hierarchy    Mul`processors/mul`threading  

3

 Reading  list  

Βιβλία:  

  Jean-­‐Loup  Baer,  “Microprocessor  Architecture,  from  simple  pipelines  to  chip  mul`processors”,  Cambridge  Un.  Press,  2010  

  John  Hennessy,  David  Payerson  “Computer  Architecture,  a  quan`ta`ve  approach”,  4th/5th  edi`on,  MKP  

Αρθρα:  

  για  παρουσίαση,  prooject.  θα  δοθούν  αργότερα  

4

Οργάνωση  μαθήματος  

  Διδάσκοντας:  Αρης  Ευθυμίου  (Β.29,  e�hym  AT  cs…)  

  Διαλέξεις  –  Αιθ.  B2,  Πέμπτη  10.00  -­‐  13.00    –  Ως    μεταπτυχιακοί    φοιτητές,    δεν    επιτρέπεται    καμία    απουσία,    

χωρίς    συνεννόηση    με      το    διδάσκοντα    ΑΠΟ    ΠΡΙΝ  

  Μελέτη    papers,    προετοιμασία    παρουσίασης    και    συζήτηση    στην    τάξη  –  Μετράει    η    συμμετοχή  

  Project  –  Υλοποίηση  και  μέτρηση  αρχιτεκτονικών  τεχνικών  σε/με  

προσομοιωτή  

–  Θα    πούμε    παραπάνω    πράγματα    σε    λίγο    καιρό  

5

Οργάνωση  μαθήματος  

  Πρόοδος    /    τελικές    εξετάσεις    (???)  –  Θα    εξαρτηθούν    από    τον    αριθμό    των    φοιτητών  –  Πολλοί:    εξετάσεις    και    (αναγκαστικά)    ομαδικά    project  –  Λίγοι:    project    και    παρουσιάσεις  

  Βαθμολογία  –  Πάλι,    θα    εξαρτηθεί    από    τον    αριθμό    των    φοιτητών  

  Σε    2    εβδομάδες    θα    καθοριστούν    τα    παραπάνω  

6

Μοντέλο  von  Neumann  

  Ακολουθείται  από  τη  δεκαετία  του  40  –  Παρόμοιο  με  αυτό  του  Babbage  (19ο  αιώνα)  

7

Βελτίωση  επίδοσης  

  nn  

8

RISC

Move to multi-processor

Ορισμός  Επίδοσης    Ποιό  αεροπλάνο  έχει  καλύτερη  επίδοση;  

9

Επίδοση  υπολογιστή    

  Χρόνος  απόκρισης  ή  λανθάνον  χρόνος  (response  `me,  latency)  –  Ο  χρόνος  που  χρειάζεται  για  να  γίνει  μια  «δουλειά»  

  Ρυθμός  εκτέλεσης  (Throughput,  Bandwidth)  –  Δουλειές  ανά  μονάδα  χρόνου  

  e.g.,  tasks/transac`ons/…  per  hour    Αλλα  μέτρα  επίδοσης  

–  Κατανάλωση  ενέργειας  –  Αξιοπιστία  

10

Η  ferrari  και  το  αστικό  

  Ferrari:  2  επιβάτες,  100km/h  (στην  πόλη)  

  Αστικό:  70  επιβάτες,  10km/h  (με  τις  στάσεις)  

  Σπίτι/στάση-­‐  Πανεπιστήμιο  10km  

  Με  ποιό  μέσο  ένας  επιβάτης  θα  πάει  πιο  γρήγορα  στο  Πανεπιστήμιο?  

  Ποιό  μέσο  μεταφέρει  περισσότερους  επιβάτες  ανα  ώρα?  

  Επικεντρώνουμε  στο  χρόνο  απόκρισης  

11

Μέτρηση  χρόνου  εκτέλεσης  

  Πραγματικός  χρόνος  που  πέρασε  (Elapsed  `me)  –  Πλήρης  χρόνος  απόκρισης,  περιλαμβάνει  

  επεξεργασία,  είσοδο-­‐έξοδο,  χρόνο  Λ.Σ.,  άλλες  διεργασίες,  ...  –  Καθορίζει  την  επίδοση  του  συστήματος  

  Χρόνος  CPU  –  Χρόνος  επεξεργασίας  μιας  δουλειάς  

  Αγνοεί  χρόνο  εισόδου-­‐εξόδου,  άλλες  διεργασίες  –  Αποτελείται  από  το  χρόνο  CPU    χρήστη  και  συστήματος  (user,  

system  CPU  `me)  

12

CPU  Time  

  Η  επίδοση  βελτιώνεται:  –  μειώνοντας  τον  αριθμό  κύκλων  ρολογιού  –  αυξάνοντας  το  ρυθμό  (συχνότητα)  ρολογιού  

  Δυστυχώς  συχνά  ο  σχεδιαστής  πρέπει  να  «ζυγίσει»  το  ρυθμό  ρολογιού  με  τον  αριθμό  κύκλων  

13

CPU  Time,  Παράδειγμα    Computer  A:  ρολόι  2GHz,  10s  CPU  `me  

  Σχεδιάζουμε  Computer  B  –  Προσπαθούμε  για  6s  CPU  `me  

–  Μπορούμε  να  αυξήσουμε  το  ρυθμό  ρολογιού,  αλλά  αυτό  προκαλεί  αύξηση  κύκλων  ρολογιού  ×1.2  

  Πόση  πρέπει  να  είναι  η  συχνότητα  ρολογιού  του  Computer  B;  

14

Αριθμός  εντολών,  CPI  

  Αριθμός  (δυναμικών)  εντολών  προγράμματος  –  Καθορίζονται  από  το  πρόγραμμα,  ISA,  μεταφραστή  

  Μέσος  όρος  κύκλων  ανά  εντολή  (CPI)  –  Καθορίζεται  από  το  υλικό  

15

Instruc`ons  per  Cycle  (IPC)  

Το  αντίστροφο  του  CPI  

  Οι  συγχρονοι  υπολογιστές  που  εκτελούν  πολλές  εντολές  ταυτόχρονα  

  Εκφράζει  ρυθμό  εκτέλεσης  (throughput)      Ψυχολογικά  καλύτερο  να  προσπαθεί  κανείς  να  αυξήσει  

το  CPI  αντί  να  μειώσει  το  IPC  

16

Συνιστώσες  του  CPI  

  Σε  ένα  ιδανικό  επεξεργαστή  που  εκτελεί  1  εντολή  ανά  κύκλο,  CPI  =  1  

  Οποιοδήποτε  «πρόβλημα»  αυξάνει  το  CPI  

17

CPI =1+CPIcache +CPIbranches +CPIstalls + ...

  CPIx  είναι  ο  αριθμός  των  επιπλέον  κύκλων  που  προκαλεί  το  στοιχείο  x  

  Αντίστοιχα:  

IPC =1

1+ CPIxx∑

Παράγοντες  επίδοσης  

  Αλγόριθμος  –  Καθορίζει  αριθμό  πράξεων  

  Γλώσσα,  μεταφραστής,  αρχιτεκτονική  –  Καθορίζουν  αριθμό  εντολών  μηχανής  ανά  πράξη  (γλώσσας)  

  Επεξεργαστής  και  σύστημα  μνήμης  –  Καθορίζουν  ταχύτητα  εκτέλεσης  εντολών  

  Σύστημα  εισόδου-­‐εξόδου  (και  Λ.Σ.)  –  Καθορίζει  ταχύτητα  I/O  

18

CPU Time = Instruction Count ×CPI×Clock Cycle Time

Λεπτομέρειες  CPI  Αν  οι  διάφορες  κατηγορίες  εντολών  έχουν  διαφορετικό  αριθμό  

κύκλων  εκτέλεσης:  

Το  μέσο  CPI  πρέπει  να  χρησιμοποιεί  τη  σχετική  συχνότητα  εμφάνισης  εντολών  

Σχετική  συχνότητα  

19

CPI  Παράδειγμα    2  εναλλακτικά  προγράμματα  με  εντολές  κατηγοριών  A,  B,  C  

Κατηγορία A B C CPI κατηγορίας 1 2 3 IC πρόγραµµα 1 2 1 2 IC πρόγραµµα 2 4 1 1

  Πρόγραμμα  1:  IC  =  5    Κύκλοι  =  2×1  +  1×2  +  2×3  =  10  

  μέσο  CPI  =  10/5  =  2.0  

  Πρόγραμμα  2:  IC  =  6    Κύκλοι  =  4×1  +  1×2  +  1×3  =  9  

  μέσο  CPI  =  9/6  =  1.5  

20

Σχετική  επίδοση    Ορίζουμε  Performance  =  1/Execu`on  Time  

  “X  είναι  n  φορές  ταχύτερος  από  τον  Y”  

PerformanceX PerformanceY

= Execution timeY Execution timeX = n  Παράδειγμα:  χρόνος  εκτέλεσης  προγράμματος  

  10s  στον  A,  15s  στον  B    Execu`on  TimeB  /  Execu`on  TimeA  =  15s  /  10s  =  1.5  

  Ο  A  είναι  1.5  φορές  ταχύτερος  από  τον  B  

21

Speedup =Performanceenhanced Performanceoriginal

= Execution timeoriginal Execution timeenhanced

O  νόμος  του  Amdahl  

  Συχνά  αλλαγές  στην  αρχιτεκτονική  βελτιώνουν  ένα  μέρος  του  χρόνου  εκτέλεσης  

22

Speedup =Tunaffected + Taffected

Tunaffected + Taffected/improvement factor

  Αν  το  ποσοστό  του  χρόνου  που  βελτιστοποιεί  μία  τεχνική  είναι  p,  το  μέγιστο  speedup  που  μπορούμε  να  πάρουμε  είναι  1/(1-­‐p)  

Παγίδα:  ο  Νόμος  του  Amdahl    Βελτιώνοντας  ένα  τμήμα  του  υπολογιστή  περιμένουμε  η  συνολική  επίδοση  να  βελτιωθεί  κατά  το  ίδιο  μέγεθος  

  Είναι  αδύνατο!  

  Παράδειγμα:  ο  πολ/σμος  ευθύνεται  για  80s/100s    Πόσο  πρέπει  να  βελτιώσουμε  το  πολ/σμο  για  να  έχουμε  5×  μεγαλύτερη  επίδοση  συνολικά;  

23

Φόρτος  εργασίας  υπολογιστή  

  Αν  το  σύστημα  τρέχει  μία  εφαρμογή,  τελείωσαμε  –  απλά  μετράμε  το  χρόνο  απόκρισης  –  ή  το  ρυθμό  (π.χ.  για  ένα  διακομιστή)  

  Αλλά  οι  υπολογιστές  είναι  γενικού  σκοπού:  τρέχουν  πολλές  εφαρμογές  –  και  οι  εφαρμογές  είναι  διαφορετικές  

  Υπάρχει  τρόπος  να  συγκρίνουμε  υπολογιστές  με  αυτές  τις  συνθήκες;  

24

Προγράμματα  αναφοράς  

  Φόρτος  εργασίας  (Workload):  Σύνολο  προγραμμάτων  που  τρέχουν    –  Σύνολο  πραγματικών  εφαρμογών  (για  κάποια  χρήση,  π.χ.  σχεδίαση  

κυκλωμάτων)  ή  προγραμμάτων  που  μοιάζουν  με  τις  εφαρμογές  

–  Καθορίζει  τα  προγράμματα  και  τις  σχετικές  συχνότητες  χρήσης  –  Τα  προγράμματα  περιλαμβάνουν  και  τυπικά  δεδομένα  

  Μετροπρόγραμμα  (Benchmark):  επιλεγμένο  πρόγραμμα  για  σύγκριση  επίδοσης  υπολογιστών  –  Συνήθως  «τυποποιημένα»  ώστε  να  μπορούν  να  χρησιμοποιηθούν  από  

πολλούς  

25

Αξιολόγηση  επίδοσης  

  Αναλυτικά  μοντέλα  –  μαθηματικές  συναρτήσεις  με  πολλές  παραμέτρους  –  συχνά  στηρίζονται  σε  θεωρία  ουράς  (queuing  theory)  

  Mετρήσεις  σε  πραγματικά  μηχανήματα  –  πρέπει  να  υπάρχουν!  –  δύσκολο  να  εξαχθεί  λεπτομερής  πληροφορία  

  Προσομοίωση  –  πρόγραμμα  που  διερμηνεύει  μετροπρογράμματα  στη  γλώσσα  

μηχανής  του,  προς  μελέτη,  επεξεργαστή  

–  χρειάζεται  πολύ  χρόνο  

26

Μετροπρογράμματα  SPEC  CPU    Standard  Performance  Evalua`on  Corp  (SPEC)  

–  Αναπτύσει  μετροπρογράμματα  για  CPU,  I/O,  Web,  …    Θεωρούνται  αντιπροσωπευτικά  αληθινού  φόρτου  εργασίας  

  SPEC  CPU2006  –  Πραγματικός  χρόνος  (elapsed)  εκτέλεσης  συλλογής  προγραμμάτων    Ελάχιστο  I/O,  για  να  μην  επηρεάζεται  η  επίδοση  της  CPU  

–  Κανονικοποιημένος  ως  προς  μηχανή  αναφοράς    SPECRa`o  

–  Χωριστές  κατηγορίες  για  προγράμματα  κινητής  υποδιαστολής  (SPECFp)  και  ακεραίων  (SPECInt)  

27

CINT2006  for  Opteron  X4  2356  

Name Description IC×109 CPI Tc (ns) Exec time Ref time SPECratio

perl Interpreted string processing 2,118 0.75 0.40 637 9,777 15.3

bzip2 Block-sorting compression 2,389 0.85 0.40 817 9,650 11.8

gcc GNU C Compiler 1,050 1.72 0.47 24 8,050 11.1

mcf Combinatorial optimization 336 10.00 0.40 1,345 9,120 6.8

go Go game (AI) 1,658 1.09 0.40 721 10,490 14.6

hmmer Search gene sequence 2,783 0.80 0.40 890 9,330 10.5

sjeng Chess game (AI) 2,176 0.96 0.48 37 12,100 14.5

libquantum Quantum computer simulation 1,623 1.61 0.40 1,047 20,720 19.8

h264avc Video compression 3,102 0.80 0.40 993 22,130 22.3

omnetpp Discrete event simulation 587 2.94 0.40 690 6,250 9.1

astar Games/path finding 1,082 1.79 0.40 773 7,020 9.1

xalancbmk XML parsing 1,058 2.70 0.40 1,143 6,900 6.0

Geometric mean 11.7

High  cache  miss  rates  

28

Συνόψιση  αποτελεσμάτων  

29

Χρειαζόμαστε  κάποιο  είδος  μέσου  όρου  

  Αριθμητικός  μ.ο.  (arithme`c  mean)    Ο  χρόνος  εκτέλεσης  μερικών  προγραμμάτων  διαφέρει  

πολύ  (56  φορές  gcc    mcf  στον  Opteron)  

  Σταθμισμένος  αριθμητικός  μ.ο.  (weighted  arithme`c  mean)  

  ποιός  καθορίζει  τους  συντελεστές;  

Συνόψιση  αποτελεσμάτων  (2)  

  Η  SPEC  απαιτεί  κανονικοποίηση  ως  προς  μηχανή  αναφοράς  

  Συνόψιση  όλων  των  μετροπρογραμμάτων  χρησιμοποιώντας  γεωμετρικό  μέσο  (geometric  mean)  

G =Ti

Refii=1

n

∏n =

Tii=1

n

∏n

Refii=1

n

∏n

30

  Για  σύγκριση  2  μηχανών  δεν  χρειάζονται  οι  χρόνοι  εκτέλεσης  της  μηχανής  αναφοράς  

Οι  κανονικοποιημένες  τιμές  θέλουν  προσοχή!  

Ποιό  σύστημα  είναι  καλύτερο;  

31

Computer  A   Computer  B   Computer  C  

Program  1   1   10   20  

Program  2   1000   100   20  

Arithm  mean   500.5   55   20  

Geom  mean   31.622   31.622   20  

Κανονικοποίηση  και  μέσος  όρος  

32

Computer  A   Computer  B   Computer  C  

Program  1   1   10   20  

Program  2   1   0.1   0.02  

Arithm  mean   1   5.05   10.01  

Geom  mean   1   1   0.632  

ως  πρ

ος  Α  

Computer  A   Computer  B   Computer  C  

Program  1   0.1   1   2  

Program  2   10   1   0.2  

Arithm  mean   5.05   1   1.1  

Geom  mean   1   1   0.632  

ως  πρ

ος  Β  

Αριθμητικός  vs  Γεωμετρικός  μέσος  όρος  

Ποιό  σύστημα  είναι  καλύτερο;  

33

Computer  A   Computer  B   Computer  C  

Program  1   1   5   10  

Program  2   1   5   2  

Arithm  mean   1   5   6  

Geom  mean   1   5   4.5  

  Αν  οι  τιμές  διαφέρουν  πολύ,  ο  γεωμετρικός  μ.ο.  μπορεί  να  δώσει  παραπλανητικό  αποτέλεσμα!  

  Αν  το  2  γίνει  3,  το  B  βγαίνει  καλύτερο    Δε  συμβαίνει  στο  SPEC  γιατί  οι  χρόνοι  εκτέλεσης  είναι  της  

ίδιας  τάξης  μεγέθους.  

Προσομοιωτές  

  Διαφορετικά  επίπεδα  λεπτομέρειας  –  διαφορετική  ταχύτητα  –  αναλογικά  κυκλώματα  (τάσεις,  ρεύματα,  ...)  –  ψηφιακά  κυκλωματα  (λογικές  τιμές)  –  Register  transfer  level  (RTL)  –  γλώσσες  περιγραφής  υλικού  –  επίπεδο  κύκλου  ρολογιού  –  επίπεδο  εντολής  

  Trace  vs  execu`on-­‐driven    –  επίπεδο  κύκλου:  προσομοίωση  μεταβολών  μικροαρχιτεκτονικής  

ανά  κύκλο  ρολογιού  

–  trace:  η  σειρά  εντολών  είναι  προκαθορισμένη  –  execu`on-­‐driven:  διερμηνευτής  εντολών  

34

Προβλήματα  προσομοιωτών  

  Προσομοίωση  I/O,  κώδικα  Λ.Σ.  –  υπάρχουν  full-­‐system  simulators  που  προσομοιώνουν  όλο  το  

υλικό  (κάρτες  δικτύου,  κτλ)  και  τρέχουν  Λ.Σ  χωρίς  αλλαγές  

–  μοιάζουν  με  εικονικές  μηχανές  (τύπου  VMware)  

  Χρόνος  προσομοίωσης  –  τάξεις  μεγέθους  πιο  αργή  εκτέλεση  σε  σχέση  με  πραγματική  

μηχανή  

–  υπάρχουν  μέχρι  και  επιταχυντές  σε  υλικό,  αλλά  ο  χρόνος  ανάπτυξής  τους  προσεγγίζει  το  χρόνο  πραγματικής  σχεδίασης  του  προσομοιούμενου  επεξεργαστή  

35

Πρακτική  χρήση  προσομοιωτών  1  

  Fast-­‐forwarding  –  func`onal  simula`on  (fast)  –  για  ένα  αριθμό  εντολών  ώστε  να  

περάσει  η  αρχικοποίηση  της  εφαρμογής    μόνο  οι  τιμές  καταχωρητών,  μνήμης  υπολογίζονται  

–  detailed  simula`on  για  ένα  μεγάλο  αριθμό  εντολών    προσομοίωση  όλων  των  λεπτομερειών  αρχιτεκτονικής  

  Phase-­‐detec`on  –  εύρεση  των  τμημάτων  εκτέλεσης  που  έχουν  ενδιαφέρον  με  

func`onal  simula`on  

–  αποθήκευση  της  κατάστασης  στην  αρχή  κάθε  φάσης  –  λεπτομερής  προσομοίωση  των  εντολών  της  φάσης  

36

Πρακτική  χρήση  προσομοιωτών  2  

Κατά  τη  λεπτομερή  προσομοίωση  συχνά  υπάρχουν  2  φάσεις  

1.  Warm-­‐up  –  Γίνεται  λεπτομερής  προσομοίωση,  αλλά  δεν  γίνονται  μετρήσεις  

επίδοσης  (π.χ.  αστοχίες  κρυφής  μνήμης)  

–  Ο  σκοπός  είναι  να  ενημερωθούν  (warm-­‐up)  διάφοροι  «πίνακες»  της  μικροαρχιτεκτονικής:  caches,  branch  predictors,  …  

2.  Measurement  –  Κρατούνται  δεδομένα  επίδοσης  (τα  τελικά  αποτελέσματα)  

37

38

Που  ξοδεύει  χρόνο  το  δικό  σου  πρόγραμμα;  

  Ανάλυση  χαρακτηριστικών  (profiling)  ενός  προγράμματος  (με  gprof)  δείχνει  που  ξοδεύεται  ο  χρόνος  ανά  συνάρτηση  –  έτσι  μπορεί  να  δεί  κανείς  πιο  είναι  το  αργότερο  κομμάτι  και  να  το  

βελτιώσει  

  Συνήθως  βλέπουμε  ένα  90/10  ή  80/20:  –  το  10%  του  κώδικα  ευθύνεται  για  το  90%  του  χρόνου  

  Μετάφραση  και  σύνδεση  με  κατάλληλες  οδηγίες  –  gcc  –pg  progr.c  

  Εκτέλεση  κανονικά  (λίγο  πιο  αργά)  –  δημιουργεί  ένα  αρχείο  gmon.out  

  Τρέχουμε    gprof  για  να  δούμε  τα  αποτελέσματα  39

Βελτιστοποίηση  μετάφρασης  

  Ο  gcc  και  άλλοι  μεταφραστές,  έχει  διάφορες  επιλογές  βελτιστοποίησης  –  Συνήθως  -­‐Ο[1-­‐3].  Οσο  μεγαλύτερος  αριθμός  τόσο  περισσότερο  

προσπαθεί  να  βελτιστοποιήσει  τον  κώδικα  

  Μετά  το  debugging  καλό  είναι  κανείς  να  κάνει  μια  τελική  μετάφραση  με  μια  από  τις  -­‐Ο  επιλογές  

40

Αριθμός  εντολών  -­‐  υπολογισμός  

  Οι  σύγχρονοι  επεξεργαστές  έχουν  μετρητές  επίδοσης  –  μετρούν  διάφορα  γεγονότα  (π.χ.  cache  miss,  …)  

–  Συνήθως  χρειάζεται  ειδική  έκδοση  του  πυρήνα  του  Λ.Σ.  και  κάποια  ειδική  βιβλιοθήκη      ψάξτε  για  perfmon2,  Intel  performance  counter  monitor,  …  

–  Δεν  μπορούν  να  μετρήσουν  οτιδήποτε  θέλει  ένας  αρχιτέκτονας    Εναλλακτικά  τρέχουμε  το  πρόγραμμα  σε  έναν  γρήγορο  

προσομοιωτή  ή  εργαλείο  dynamic  binary  instrumenta`on  –  PIN  hyp://www.pintool.org      

41

Παράδειγμα  αριθμός  εντολών  

  Θα  χρησιμοποιήσουμε  το  μετροπρόγραμμα  gzip  (SPEC  Int  2000)  και  το  pin  

~efthym/pin/pin*/pin \ -t ~efthym/pin/pin*/source/tools/ManualExamples/obj-ia32/inscount2.so \

-- ~efthym/icarus/spec/gzip \ ~efthym/icarus/spec/input.source 60

  Αποτέλεσματα  στο  αρχείο:  inscount.out  –  περίπου  70.5  εκατομύρια  εντολές  IA-­‐32  

42

Υπολογισμός  CPI  (χονδρικά)  

  Χώρις  το  pin,  τρέχει  σε  19.95sec  στο  hp6000ws12  –  /usr/bin/time --verbose ~efthym/…/gzip \ ~efthym/…/input.source 60

  Κύκλος  ρολογιού  376ps  –  2.66GHz  –  more  /proc/cpuinfo  

  19.95*10^12/376  =  53  εκατομύρια  κύκλοι    CPI  =  cycles/instruc`on  count    =  0.7526  στο  παράδειγμα    Ο  επεξεργαστής  εκτελεί  πάνω  από  μία  εντολή  (1.33)  ανά  

κύκλο  

43