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

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

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

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

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

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

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

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Αρχιτεκτονικη υπολογιστων

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 2 Οργάνωση μνήμης Καταχωρητές του MIPS Εντολές του MIPS 1

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

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

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

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

Instruction Execution Times

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

-Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)

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

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

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2)

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

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

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

Εντολές του MIPS (2)

LANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 10: Επίδοση Επεξεργαστών, CPI. Μανόλης Γ.Η. Κατεβαίνης

Chapter 4 ( ή 1 στο βιβλίο σας)

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

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πέτρος Παναγή Σελ. 1

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

Απλός επεξεργαστής (Επανάληψη)

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

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

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

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

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

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

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

ΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

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

Οι τέσσερις αρχές για τον σχεδιασμό του συνόλου εντολών μιας μηχανής είναι:

Απόδοση Υπολογιστικών Συστημάτων

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

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

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

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις

Προχωρηµένα Θέµατα Αρχιτεκτονικής Η/Υ. Storage Systems.. Λιούπης

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

Λειτουργικά Συστήματα. Εισαγωγή

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

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

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

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 2. Εντολές : Η γλώσσα του υπολογιστή

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

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

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

The Simply Typed Lambda Calculus

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

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

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

Pipelined Datapath, Hazards and Forwarding

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

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

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

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

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

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

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

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

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

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

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

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

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

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

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

Homework 3 Solutions

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

Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer)

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός

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

Διάλεξη 11 Προώθηση (Forwarding)

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

ΤΠ 2108 Αρχιτεκτονική Υπολογιστών (Εργαστήριο) ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ. Σειρά Ασκήσεων 1

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

CMOS Technology for Computer Architects

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος

Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer)

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

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

Other Test Constructions: Likelihood Ratio & Bayes Tests

Transcript:

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

Το σημερινό μάθημα! Αξιοπιστία ορισμοί, μέτρα, τεχνικές βελτίωσης, παραδείγματα! Μέτρηση επίδοσης μετροπρογράμματα! Σχεδιαστικές αρχές παραλληλισμός, τοπικότητα αναφορών, βελτιστοποίηση συχνής περίπτωση νόμος Amdahl! Εξίσωση επίδοσης υπολογιστή κύκλοι ανα εντολή! Γλώσσα μηχανής MIPS 2

Dependability! Ιστορικά τα Ο.Κ. ήταν εξαιρετικά αξιόπιστα πολύ πιο πιθανό να αστοχήσει δίσκος από ότι επεξεργαστής! Από τεχνολογία 65nm, παρατηρείται αύξηση παροδικών σφαλμάτων (transient faults) μόνιμων σφαλμάτων (permanent faults)! Τα περισότερα σφάλματα επηρεάζουν ένα εξάρτημα σε διαφορετικά επίπεδα αφαίρεσης πλήρης αστοχία ενός εξαρτήματος - > σφάλμα ενός εξαρτήματος στο περιέχων δομοστοιχείο 3

Τί είναι αστοχία (failure)?! Δύσκολο να καθοριστεί! Service Level Agreement (SLA) or Service Level Objectves (SLO) εγγυήσεις ποιότητας της υπηρεσίας (guarantees of quality of service) 4

Dependability - ορισμοί! Σε σχέση με SLA/SLO τα συστήματα έχουν 2 καταστάσεις λειτουργίας : 1. Εκπληρωμένης υπηρεσίας (service accomplishment): σύφωνα με SLA 2. Διακοπή υπηρεσίας (service interrupton): όχι σύμφωνα με SLA! Αστοχία - failure(f) = μετάβαση από κατ. 1 - > 2! Αποκατάσταση - restoraton(r)= μετάβαση από 2 - > 1 5

Μέτρα αξιοπιστίας! Μέτρα αξιοπιστίας: Mean tme to failure (MTTF) Failures in tme (FIT) = 1/MTTF! εκφράζονται σε δισεκατομμύρια ώρες! Μέτρο διακοπής (Service interrupton): Mean tme to repair (MTTR)! Συχνά χρησιμοποιούμενο μέτρο αξιοπιστίας: Mean tme between failures (MTBF) = MTTF + MTTR! Μέτρο διαθεσιμότητας (Availability): MTTF / MTBF 6

Παράδειγμα! Υποσύστημα δίσκων (όχι RAID): 10 disks, each rated at 1,000,000- hour MTTF 1 ATA controller, 500,000- hour MTTF 1 power supply, 200,000- hour MTTF 1 fan, 200,000- hour MTTF 1 ATA cable, 1,000,000- hour MTTF! Υπολογισμός του MTTF του συστήματος υποθέτωντας ότι οι αστοχίες είναι ανεξάρτητες υποθέτωντας ότι η ηλικία ενός εξαρτήματος δεν επηρεάζει την πιθανότητα αστοχίας του (εκθετική κατανομή διάρκειας ζωής) 7

! Αστοχία ενός εξαρτήματος = αστοχία του συστήματος! Συνολικό ποσοστό αστοχίας = άθροισμα των ποσοστών των εξαρτημάτων System failure rate = 10*(1/1,000,000) + 1/500,000 + 1/200,000 + 1/200,000 + 1/1,000,000 = 23/1,000,000 or 23,000 FIT! Το MTTF είναι το αντίστροφο του ποσοστού αστοχίας MTTF system = 1/(23/1,000,000) = 43,500 hours 5 years 8

Βελτίωση αξιοπιστίας! Προσθήκη πλεονασμού (redundancy) στο σύστημα σε χρόνο: επανάλληψη της δουλειάς σε πόρους: έτοιμα εφεδρικά εξαρτήματα 9

Συνέχεια παραδείγματος! Διπλό τροφοδοτικό, κάθε ένα με MTTF = 200,000- ώρες! MTTF του διπλού τροφοδοτικού = μέσος χρόνος έως την αστοχία ενός τροφοδοτικού / πιθανότητα αστοχίας του 2 ου πριν το πρώτο επισκευαστεί! Με υπόθεση εκθετικής κατανομής, μέσος χρόνος έως αστοχία ενός τροφοδοτικού = MTTF pwr / 2! Εκτίμηση πιθανότητας αστοχίας = χρόνος επισκευής / μέσος χρόνος αστοχίας 2 ου τροφοδοτικού. MTTF pwr / 2 MTTR pwr = 2 MTTF pwr 2 MTTR pwr MTTF pwr Αν MTTR=24h, 830Μ = 4150* αρχικό MTTF 10

Measuring Performance! Typical performance metrics: Executon/Response tme Throughput! Speedup of X relatve to Y Executon tme Y / Executon tme X! Performance = 1/Executon tme! Speedup of X relatve to Y Performance X / Performance Y 11

Executon tme! Wall clock tme: includes all system overheads response tme, elapsed tme! CPU tme: only computaton tme no I/O, running other processes 12

Benchmarks! Benchmarks Kernels (e.g. matrix multply) Toy programs (e.g. sortng) Synthetc benchmarks (e.g. Dhrystone) Benchmark suites (e.g. SPEC06fp, TPC- C)! Suites more chance of covering more users needs understand variability in performance! SPEC CPU benchmarks SPEC2006: CINT integer benchmarks, CFP floatng point Real programs modified for portability and minimized I/O! Server benchmarks TPC, SPECWeb, 13

Summarizing results! Need to report a single number! Arithmetc mean? some programs take much longer than others! Weighted mean? Hard to pick weights. SPEC consortum of competng companies! Normalize executon tmes to a reference computer i.e. Executon tme reference / Executon tme SPEC calls this SPECrato 14

Comparing normalised tmes ExecutionTime ref SPECRatio A SPECRatio B = ExecutionTime A ExecutionTime ref = ExecutionTime B ExecutionTime A = Performance A Performance B ExecutionTime B! Choice of reference computer is irrelevant! For ratos geometric rather than arithmetc mean is used Gmean = n n i=1 ratio i 15

Παράδειγμα 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 Ποιό σύστημα είναι καλύτερο; 16

Κανονικοποίηση και μέσος όρος 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 ως προς Α ως προς Β 17

Principles of Computer Design! Take Advantage of Parallelism e.g. multple processors, disks, memory banks, pipelining, multple functonal units! Principle of Locality Reuse of data and instructons temporal and spatal! Focus on the Common Case 18

Amdahl s Law! Fracton enhanced Fracton of tme (in original machine) that can be converted to take advantage of enhancement! Speedup enhanced How much faster the task would run if the enhancement was applied for the entre program 19

Dirty Laundry Washing Machine Drying Machine Clean Laundry 30 minutes washing 90 minutes drying Total Execution Time: 30+90 = 120 minutes Washing Portion: 30/120 = ¼ Drying Portion: 90/120 = ¾ 20

Dirty Laundry Washing Machine Drying Machine 2x fast Clean Laundry 30 minutes washing 90/2 = 45 minutes drying Speedup = (30+90)/(30+45)=1.6 Fraction enhanced = 90/120= ¾ Speedup enhanced = 2 Speedup = 1 / (0.25+0.75/2) = 1/0.625 = 1.6 21

Law of diminishing returns! Incremental improvement in speedup gained by just a porton of the computaton diminishes as improvements are added! If an enhancement is useable only for a fracton of a task, we can t speed up the task by more than 1 that fracton 22

If we can have super- fast drying machines Dirty Laundry Washing Machine Drying Machine Clean Laundry 30 minutes washing 90/ 0 minutes drying Speedup = (30+90)/(30+0)=4 23

Principles of Computer Design! The Processor Performance Equaton 24

Αριθμός εντολών, CPI CPU Time = Instruction Count CPI Clock Cycle Time = Instruction Count CPI Clock Rate! Αριθμός (δυναμικών) εντολών προγράμματος Καθορίζονται από το πρόγραμμα, ISA, μεταφραστή! Μέσος όρος κύκλων ανά εντολή (CPI) Καθορίζεται από το υλικό Αν το CPI είναι διαφορετικό για κάθε εντολή! Το μέσο CPI επηρεάζεται από το «μίγμα εντολών» του προγράμματος 25

CPI Παράδειγμα! Computer A: Cycle Time = 250ps, CPI = 2.0! Computer B: Cycle Time = 500ps, CPI = 1.2! Ιδια ISA! Ποιός είναι ταχύτερος και κατα πόσο; 26

Λεπτομέρειες CPI Αν οι διάφορες κατηγορίες εντολών έχουν διαφορετικό αριθμό κύκλων εκτέλεσης: Το μέσο CPI πρέπει να χρησιμοποιεί τη σχετική συχνότητα εμφάνισης εντολών Σχετική συχνότητα 27

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 28

Που ξοδεύει χρόνο το δικό σου πρόγραμμα;! Ανάλυση χαρακτηριστικών (profiling) ενός προγράμματος (με gprof) δείχνει που ξοδεύεται ο χρόνος ανά συνάρτηση έτσι μπορεί να δεί κανείς πιο είναι το αργότερο κομμάτι και να το βελτιώσει! Συνήθως βλέπουμε ένα 90/10 ή 80/20: το 10% του κώδικα ευθύνεται για το 90% του χρόνου! Μετάφραση και σύνδεση με κατάλληλες οδηγίες gcc pg progr.c! Εκτέλεση κανονικά (λίγο πιο αργά) δημιουργεί ένα αρχείο gmon.out! Τρέχουμε gprof για να δούμε τα αποτελέσματα 29

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

Αριθμός εντολών - υπολογισμός! Οι σύγχρονοι επεξεργαστές έχουν μετρητές απόδοσης μετρούν διάφορα γεγονότα (π.χ. cache miss, ) Συνήθως χρειάζεται ειδική έκδοση του πυρήνα του Λ.Σ. και κάποια ειδική βιβλιοθήκη! ψάξτε για perfmon2, Intel performance counter monitor, Δεν μπορούν να μετρήσουν οτιδήποτε θέλει ένας αρχιτέκτονας! Εναλλακτικά τρέχουμε το πρόγραμμα σε έναν γρήγορο προσομοιωτή ή εργαλείο dynamic binary instrumentaton PIN h p://www.pintool.org 31

Παράδειγμα αριθμός εντολών! Θα χρησιμοποιήσουμε το μετροπρόγραμμα 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 32

Υπολογισμός 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/instructon count! = 0.7526 στο παράδειγμα! Ο επεξεργαστής εκτελεί πάνω από μία εντολή (1.33) ανά κύκλο 33

MIPS Instructons! All instructons exactly 32 bits wide! Different formats for different purposes! Similarites in formats ease implementaton 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits op rs rt rd shamt funct R-Format! 6 bits 5 bits 5 bits 16 bits op rs rt offset I-Format! 6 bits 26 bits op address J-Format! 34

MIPS registers 35

MIPS Instructon Types! Arithmetc & Logical - manipulate data in registers add $s1, $s2, $s3 $s1 = $s2 + $s3 or $s3, $s4, $s5 $s3 = $s4 OR $s5! Data Transfer - move register data to/from memory: load & store lw $s1, 100($s2) $s1 = Memory[$s2 + 100] sw $s1, 100($s2) Memory[$s2 + 100] = $s1! Branch - alter program flow beq $s1, $s2, 25 if ($s1==$s1) PC = PC + 4 + 4*25 else PC = PC + 4 36

MIPS Arithmetc & Logical Instructons! Instructon usage (assembly) add dest, src1, src2 sub dest, src1, src2 and dest, src1, src2 dest=src1 + src2 dest=src1 - src2 dest=src1 AND src2! Instructon characteristcs Always 3 operands: destnaton + 2 sources Operand order is fixed Operands are always general purpose registers! Design Principles: Design Principle 1: Simplicity favors regularity Design Principle 2: Smaller is faster 37

Instr. Binary Representaton 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 31 op rs rt rd shamt funct 0! Used for arithmetc, logical, shi instructons op: Basic operaton of the instructon (opcode) rs: first register source operand rt: second register source operand rd: register destnaton operand shamt: shi amount (more about this later) funct: functon - specific type of operaton! Also called R- Format or R- Type Instructons 38

Example! Machine language for add $8, $17, $18! See reference card for op, funct values 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 31 op rs rt rd shamt funct 0 39

Immediate Operands! Constant data specified in an instructon addi $s3, $s3, 4! No subtract immediate instructon Just use a negatve constant addi $s2, $s1, -1! Design Principle 3: Make the common case fast Small constants are common Immediate operand avoids a load instructon 40

Conditonal Operatons! Branch to a labeled instructon if a conditon is true Otherwise, contnue sequentally! beq rs, rt, L1 if (rs == rt) branch to instructon labeled L1;! bne rs, rt, L1 if (rs!= rt) branch to instructon labeled L1;! j L1 unconditonal jump to instructon labeled L1 41

More Conditonal Operatons! Set result to 1 if a conditon is true Otherwise, set to 0! slt rd, rs, rt if (rs < rt) rd = 1; else rd = 0;! slti rt, rs, constant if (rs < constant) rt = 1; else rt = 0;! Use in combinaton with beq, bne slt $t0, $s1, $s2 # if ($s1 < $s2) bne $t0, $zero, L # branch to L 42

ΠΛΕ 074 Αρχιτεκτονική ΙΙ 43