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

Σχετικά έγγραφα
Κεφάλαιο 3. Αριθμητική για υπολογιστές

Αριθμητική για υπολογιστές

Κεφάλαιο 3. Αριθμητική για υπολογιστές

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

Chapter 3 Αριθμητική Υπολογιστών

Chapter 3. Αριθμητική Υπολογιστών. (συνέχεια)

Chapter 3. Αριθμητική Υπολογιστών. Έβδομη (7 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Chapter 3. Αριθμητική Υπολογιστών. (συνέχεια)

Chapter 3. Αριθμητική Υπολογιστών. Όγδοη (8 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Αριθμητική Υπολογιστών

Αριθμητική Κινητής Υποδιαστολής Πρόσθεση Αριθμών Κινητής Υποδιαστολής

Κεφάλαιο 3 Αριθμητική Υπολογιστών (Arithmetic for Computers)

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

ΑΡΙΘΜΗΤΙΚΗ ΓΙΑ ΥΠΟΛΟΓΙΣΤΕΣ

Αριθμητική Υπολογιστών (Κεφάλαιο 3)

Πολλαπλασιασμός και Διαίρεση Ακεραίων

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

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Νεκτάριος Κοζύρης ΑΡΙΘΜΗΤΙΚΕΣ ΠΡΑΞΕΙΣ

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

1. Το σύστημα κινητής υποδιαστολής 2. Αναπαράσταση πραγματικών δυαδικών αριθμών 3. Το πρότυπο 754 της ΙΕΕΕ

Εισαγωγή στην επιστήμη των υπολογιστών

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

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

Σύστημα Πλεονάσματος. Αναπαράσταση Πραγματικών Αριθμών. Αριθμητικές Πράξεις σε Αριθμούς Κινητής Υποδιαστολής

Σύστημα Πλεονάσματος και Αναπαράσταση Αριθμών Κινητής Υποδιαστολής

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

Πράξεις με δυαδικούς αριθμούς

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

Ενδιάμεση Β205. Κεφ. 1-2, Παράρτημα Α Εργαστήρια Εργασίες Ενδιάμεση του 2014 Όχι διάλεξη την Τρίτη (Προετοιμασία)

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

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

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

Αρχιτεκτονική Υπολογιστών. Data. Κείμενο. Βίντεο. Αριθμοί Εικόνες. Ήχοι

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

Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers. Σ. Τσιτµηδέλης ΤΕΙ ΧΑΛΚΙΔΑΣ

3. Πρόσθεση Πολλαπλασιασμός 4. Πρόσθεση στο πρότυπο ΙΕΕΕ Πολλαπλασιασμός στο πρότυπο ΙΕΕΕ

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

Στοιχεία από Assembly Γιώργος Μανής

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 3 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 2 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

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

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

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

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

3.1 εκαδικό και υαδικό

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

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

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

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

Λύσεις Ασκήσεων ΣΕΙΡΑ 1 η. Πρόσημο και μέγεθος

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 11 ο και 12 ο

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

1.4 Αριθμητική υπολογιστών και σφάλματα

Εισαγωγή στους Υπολογιστές

Εντολές γλώσσας μηχανής

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

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Αναπαράσταση Αριθμών

Κεφάλαιο 2. Οργάνωση και διαχείριση της Πληροφορίας στον. Υπολογιστή

Εισαγωγή στην Επιστήμη των Υπολογιστών

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

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

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

Ελίνα Μακρή

Ψηφιακά Συστήματα. 1. Συστήματα Αριθμών

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ

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

Αξηζκεηηθή γηα ππνινγηζηέο

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

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

Κεφάλαιο 3 Η Αριθμητική των Υπολογιστών

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

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

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n;

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

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

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

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

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

Δυαδικό Σύστημα Αρίθμησης

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 3 : Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-Ι. Ενότητα 1: Εισαγωγή στην Αρχιτεκτονική -Ι

Αριθμητικά Συστήματα

Δυαδικη παρασταση αριθμων και συμβολων

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ

Transcript:

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση Κεφάλαιο 3 Αριθµητική για υπολογιστές ιαφάνειες διδασκαλίας του πρωτότυπου βιβλίου µεταφρασµένες στα ελληνικά και εµπλουτισµένες (µετάφραση, επιµέλεια, προσθήκες: ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών)

Αριθµητική για υπολογιστές Ακέραιοι αριθµοί: λειτουργίες (πράξεις) Πρόσθεση και αφαίρεση Πολλαπλασιασµός και διαίρεση Χειρισµός της υπερχείλισης Πραγµατικοί αριθµοί κινητής υποδιαστολής (floating-point) Αναπαράσταση και λειτουργίες (πράξεις) 3.1 Εισαγωγή Κεφάλαιο 3 Αριθµητική για υπολογιστές 2

Ακέραια πρόσθεση Παράδειγµα: 7 + 6 3.2 Πρόσθεση και αφαίρεση Υπερχείλιση (overflow) αν το αποτέλεσµα είναι εκτός του εύρους των τιµών Πρόσθεση ετερόσηµων τελεστέων, όχι υπερχείλιση Πρόσθεση θετικών τελεστέων Υπερχείλιση αν το πρόσηµο του αποτελέσµατος είναι 1 Πρόσθεση αρνητικών τελεστέων Υπερχείλιση αν το πρόσηµο του αποτελέσµατος είναι 0 Κεφάλαιο 3 Αριθµητική για υπολογιστές 3

Ακέραια αφαίρεση Πρόσθεση του αντιθέτου του δεύτερου τελεστέου Παράδειγµα: 7 6 = 7 + ( 6) +7: 0000 0000 0000 0111 6: 1111 1111 1111 1010 +1: 0000 0000 0000 0001 Υπερχείλιση αν το αποτέλεσµα είναι εκτός του εύρους των τιµών Αφαίρεση δύο θετικών ή δύο αρνητικών, όχι υπερχείλιση Αφαίρεση θετικού από αρνητικό τελεστέο Υπερχείλιση αν το πρόσηµο του αποτελέσµατος είναι 0 Αφαίρεση αρνητικού από θετικό τελεστέο Υπερχείλιση αν το πρόσηµο του αποτελέσµατος είναι 1 Κεφάλαιο 3 Αριθµητική για υπολογιστές 4

Χειρισµός της υπερχείλισης Μερικές γλώσσες (π.χ., C) αγνοούν την υπερχείλιση Χρησιµοποιούν τις εντολές του MIPS addu, addui, subu Άλλες γλώσσες (π.χ., Ada, Fortran) απαιτούν τη δηµιουργία µιας εξαίρεσης (exception) Χρησιµοποιούν τις εντολές του MIPS add, addi, sub Στην υπερχείλιση, καλείται ο χειριστής εξαιρέσεων Αποθήκευση του PC στο µετρητή προγράµµατος εξαιρέσεων (exception program counter EPC) Άλµα στην προκαθορισµένη διεύθυνση του χειριστή Η εντολή mfc0 (move from coprocessor reg) µπορεί να ανακτήσει την τιµή του EPC, για να γίνει επιστροφή µετά τη διορθωτική ενέργεια Κεφάλαιο 3 Αριθµητική για υπολογιστές 5

Ανίχνευση υπερχείλισης Μόνο µε επιπλέον κώδικα (δεν την ανιχνεύει το υλικό του MIPS) Υπερχείλιση σε πρόσθεση προσηµασµένων: addu $t0, $t1, $t2 # $t0 = άθροισµα, αλλά όχι παγίδευση xor $t3, $t1, $t2 # Έλεγχος αν διαφέρουν τα πρόσηµα slt $t3, $t3, $zero # $t3 = 1 αν διαφέρουν τα πρόσηµα bne $t3, $zero, No_overflow # πρόσηµα $t1,$t2 διάφορα, # άρα όχι υπερχείλιση xor $t3, $t0, $t1 # πρόσηµα ίσα πρόσηµο αθροίσµατος # ταιριάζει επίσης; $t3 αρνητικός αν # πρόσηµο αθροίσµατος διαφέρει slt $t3, $t3, $zero # $t3 = 1 αν πρόσηµο αθροίσµατος # διαφορετικό bne $t3, $zero, Overflow # Αν πρόσηµο αθροίσµατος διαφέρει # µετάβαση στην ετικέτα Overflow Κεφάλαιο 3 Αριθµητική για υπολογιστές 6

Οι καταχωρητές $k1, $k0 Είπαµε ότι αντιγράφουµε τον EPC σε έναν καταχωρητή µέσω της εντολής mfc0, και στη συνέχεια επιστρέφουµε στον κώδικα που διακόπηκε µέσω µιας εντολής jump register. Αφού πρέπει πρώτα να µεταφερθεί ο EPC σε έναν καταχωρητή για να χρησιµοποιηθεί στην jump register, µε ποιο τρόπο µπορεί η jump register να επιστρέψει στον κώδικα που διακόπηκε αλλά και να επαναφέρει τις αρχικές τιµές σε όλους τους καταχωρητές; Φυσικά αυτό δε γίνεται. Οι καταχωρητές $k0 και $k1 δεσµεύονται για το λειτουργικό σύστηµα και δεν επαναφέρονται κατά τις εξαιρέσεις. Οι ρουτίνες χειρισµού εξαιρέσεων τοποθετούν τη διεύθυνση επιστροφής σε έναν από αυτούς τους καταχωρητές. Κεφάλαιο 3 Αριθµητική για υπολογιστές 7

Αριθµητική για πολυµέσα Η επεξεργασία γραφικών και πολυµέσων επενεργεί σε διανύσµατα (vectors) των 8 ή16 bit Χρήση ενός αθροιστή των 64 bit, µε διαµερισµένη αλυσίδα κρατουµένων Επενεργεί σε διανύσµατα 8 8 bit, 4 16 bit, ή 2 32 bit SIMD (single-instruction, multiple-data) Λειτουργίες «κορεσµού» (saturation) Σε υπερχείλιση, το αποτέλεσµα είναι η µεγαλύτερη τιµή που µπορεί να αναπαρασταθεί σύγκριση µε την αριθµητική υπολοίπου (modulo arithmetic) σε συµπλήρωµα ως προς 2 π.χ., «ψαλιδισµός» (clipping) στην επεξεργασία ήχου, «κορεσµός» στην επεξεργασία βίντεο Κεφάλαιο 3 Αριθµητική για υπολογιστές 8

Πολλαπλασιασµός Ξεκινάµε µε τον πολ/σµό µεγάλου µήκους πολλαπλασιαστέος πολλαπλασιαστής γινόµενο 1000 1001 1000 0000 0000 1000 1001000 3.3 Πολλαπλασιασµός Το µήκος του γινοµένου είναι το άθροισµα των µηκών των τελεστέων Κεφάλαιο 3 Αριθµητική για υπολογιστές 9

Υλικό πολλαπλασιασµού Αρχικά 0 Κεφάλαιο 3 Αριθµητική για υπολογιστές 10

Βελτιστοποιηµένος πολλαπλασιαστής Εκτέλεση βηµάτων παράλληλα: πρόσθεση/ολίσθηση Ένας κύκλος ανά πρόσθεση µερικού γινοµένου Είναι εντάξει, αν η συχνότητα εµφάνισης του πολλαπλασιασµού είναι χαµηλή Κεφάλαιο 3 Αριθµητική για υπολογιστές 11

Ταχύτερος πολλαπλασιαστής Χρησιµοποιεί πολλούς αθροιστές Συµβιβασµός κόστους/απόδοσης Μπορεί να υλοποιηθεί µε διοχέτευση (pipeline) Πολλοί πολλαπλασιασµοί εκτελούνται παράλληλα Κεφάλαιο 3 Αριθµητική για υπολογιστές 12

Πολλαπλασιασµός στο MIPS ύο καταχωρητές των 32 bit για το γινόµενο HI: τα περισσότερο σηµαντικά 32 bit LO: τα λιγότερο σηµαντικά 32 bit Εντολές mult rs, rt multu rs, rt γινόµενο των 64 bit στους HI/LO mfhi rd (move from HI) mflo rd (move from LO) Μεταφορά από (move from) του HI/LO στον rd Μπορούµε να ελέγξουµε τη τιµή του HI για να δούµε αν το γινόµενο ξεπερνά τα 32 bit mul rd, rs, rt (ψευδοεντολή) Τα λιγότερο σηµαντικά 32 bit του γινοµένου > rd Κεφάλαιο 3 Αριθµητική για υπολογιστές 13

ιαίρεση διαιρέτης πηλίκο διαιρετέος υπόλοιπο 1001 1000 1001010-1000 10 101 1010-1000 10 τελεστέοι των n bit δίνουν πηλίκο και υπόλοιπο των n bit Έλεγχος για µηδενικό διαιρέτη ιαίρεση µεγάλου µήκους Αν διαιρέτης από τα bit του διαιρετέου 1 bit στο πηλίκο, αφαίρεση Αλλιώς 0 bit στο πηλίκο, κατέβασµα του επόµενου bit του διαιρετέου ιαίρεση µε επαναφορά (restoring division) Κάνε την αφαίρεση και αν το υπόλοιπο γίνει < 0, πρόσθεσε πίσω το διαιρέτη Προσηµασµένη διαίρεση Κάνε τη διαίρεση µε τις απόλυτες τιµές Ρύθµισε το πρόσηµο του πηλίκου και του υπολοίπου όπως απαιτείται 3.4 ιαίρεση Κεφάλαιο 3 Αριθµητική για υπολογιστές 14

Υλικό διαίρεσης Αρχικά ο διαιρέτης στο αριστερό µισό Αρχικά περιέχει το διαιρετέο Κεφάλαιο 3 Αριθµητική για υπολογιστές 15

Βελτιστοποιηµένος διαιρέτης Ένας κύκλος για κάθε αφαίρεση µερικού υπολοίπου Μοιάζει πολύ µε πολλαπλασιαστή! Το ίδιο υλικό µπορεί να χρησιµοποιηθεί και για τις δύο πράξεις Κεφάλαιο 3 Αριθµητική για υπολογιστές 16

Ταχύτερη διαίρεση εν µπορεί να χρησιµοποιηθεί παράλληλο υλικό όπως στον πολλαπλασιαστή Η αφαίρεση εκτελείται υπό συνθήκη, ανάλογα µε το πρόσηµο του υπολοίπου Ταχύτεροι διαιρέτες (π.χ. διαίρεση SRT) δηµιουργούν πολλά bit του πηλίκου σε κάθε βήµα Και πάλι απαιτούνται πολλά βήµατα Κεφάλαιο 3 Αριθµητική για υπολογιστές 17

ιαίρεση στο MIPS Χρήση των καταχωρητών HI/LO για το αποτέλεσµα HI: υπόλοιπο 32 bit LO: πηλίκο 32 bit Εντολές div rs, rt divu rs, rt Όχι έλεγχος για υπερχείλιση ή διαίρεση µε το 0 Το λογισµικό πρέπει να εκτελεί τους ελέγχους αν αυτό απαιτείται Χρήση των mfhi, mflo για προσπέλαση του αποτελέσµατος Κεφάλαιο 3 Αριθµητική για υπολογιστές 18

Κινητή υποδιαστολή Αναπαράσταση για µη ακεραίους αριθµούς Περιλαµβάνει και πολύ µικρούς και πολύ µεγάλους αριθµούς Όπως η επιστηµονική σηµειογραφία (scientific notation) 2.34 10 56 +0.002 10 4 +987.02 10 9 Σε δυαδικό ±1.xxxxxxx 2 2 yyyy κανονικοποιηµένος µη κανονικοποιηµένος Οι τύποι float καιdouble της C 3.5 Κινητή υποδιαστολή Κεφάλαιο 3 Αριθµητική για υπολογιστές 19

Πρότυπο κινητής υποδιαστολής Ορίζεται από το IEEE Std 754-1985 Αναπτύχθηκε ως λύση στην απόκλιση των αναπαραστάσεων Ζητήµατα φορητότητας (portability) για τον κώδικα επιστηµονικών εφαρµογών Πλέον είναι σχεδόν οικουµενικά αποδεκτό ύο αναπαραστάσεις κινητής υποδιαστολής (floating point) Απλή ακρίβεια single precision (32 bit) ιπλή ακρίβεια double precision (64 bit) Κεφάλαιο 3 Αριθµητική για υπολογιστές 20

Μορφή κινητής υποδιαστολής IEEE single: 8 bit double: 11 bit single: 23 bit double: 52 bit S Εκθέτης Κλάσµα x = ( 1) S (1+ Κλάσµα) 2 (Εκθέτης Πόλωση) Εκθέτης (exponent) Κλάσµα (fraction) S: bit προσήµου (0 µη αρνητικός, 1 αρνητικός) Κανονικοποίηση του σηµαντικού (significand): 1.0 significand < 2.0 Έχει πάντα ένα αρχικό bit 1 πριν την υποδιαστολή, και συνεπώς δε χρειάζεται ρητή αναπαράστασή του («κρυµµένο» bit) Το σηµαντικό (significand) είναι το κλάσµα (fraction) µαζί µε το κρυµµένο 1 Εκθέτης: αναπαράσταση «µε υπέρβαση» (excess): πραγµατικός εκθέτης + πόλωση (bias) Εγγυάται ότι ο εκθέτης είναι απρόσηµος Απλή ακρίβεια: Πόλωση = 127 ιπλή ακρίβεια: Πόλωση = 1023 Κεφάλαιο 3 Αριθµητική για υπολογιστές 21

Εύρος απλής ακρίβειας Οι εκθέτες 00000000 και 11111111 δεσµεύονται Μικρότερη τιµή Εκθέτης: 00000001 πραγµατικός εκθέτης = 1 127 = 126 Κλάσµα: 000 00 σηµαντικό = 1.0 ±1.0 2 126 ±1.2 10 38 Μεγαλύτερη τιµή Εκθέτης: 11111110 πραγµατικός εκθέτης = 254 127 = +127 Κλάσµα: 111 11 σηµαντικό 2.0 ±2.0 2 +127 ±3.4 10 +38 Κεφάλαιο 3 Αριθµητική για υπολογιστές 22

Εύρος διπλής ακρίβειας Οι εκθέτες 0000 00 και 1111 11 δεσµεύονται Μικρότερη τιµή Εκθέτης: 00000000001 πραγµατικός = 1 1023 = 1022 Κλάσµα: 000 00 σηµαντικό = 1.0 ±1.0 2 1022 ±2.2 10 308 Μεγαλύτερη τιµή Εκθέτης: 11111111110 πραγµατικός εκθέτης = 2046 1023 = +1023 Κλάσµα: 111 11 σηµαντικό 2.0 ±2.0 2 +1023 ±1.8 10 +308 Κεφάλαιο 3 Αριθµητική για υπολογιστές 23

Ακρίβεια κινητής υποδιαστολής Σχετική ακρίβεια Όλα τα bit του κλάσµατος είναι σηµαντικά Απλή: περίπου 2 23 Ισοδύναµο µε 23 log 10 2 23 0.3 6 δεκαδικά ψηφία ακρίβειας ιπλή: περίπου 2 52 Ισοδύναµο µε 52 log 10 2 52 0.3 16 δεκαδικά ψηφία ακρίβειας Κεφάλαιο 3 Αριθµητική για υπολογιστές 24

Παράδειγµα κινητής υποδιαστολής Αναπαράσταση του 0.75 0.75 = ( 1) 1 1.1 2 2 1 S = 1 Κλάσµα = 1000 00 2 Εκθέτης = 1 + Πόλωση Απλή: 1 + 127 = 126 = 01111110 2 ιπλή: 1 + 1023 = 1022 = 01111111110 2 Απλή: 1011111101000 00 ιπλή: 1011111111101000 00 Κεφάλαιο 3 Αριθµητική για υπολογιστές 25

Παράδειγµα κινητής υποδιαστολής Ποιος αριθµός αναπαρίσταται από τον απλής ακρίβειας κινητής υποδιαστολής αριθµό; 11000000101000 00 S = 1 Κλάσµα = 01000 00 2 Εκθέτης = 10000001 2 = 129 x = ( 1) 1 (1 + 01 2 ) 2 (129 127) = ( 1) 1.25 2 2 = 5.0 Κεφάλαιο 3 Αριθµητική για υπολογιστές 26

Μη κανονικοποιηµένοι (denormals) Εκθέτης = 000...0 το «κρυµµένο» bit είναι 0 x = ( 1) S (0+ Κλάσµα) 2 Μικρότεροι από τους κανονικοποιηµένους επιτρέπουν βαθµιαία ανεπάρκεια (gradual underflow), µε µειούµενη ακρίβεια Denormal µε κλάσµα = 000...0 x= ( 1) S (0+ 0) 2 ύο αναπαραστάσεις του 0.0! Πόλωση Πόλωση =± 0.0 Κεφάλαιο 3 Αριθµητική για υπολογιστές 27

Άπειρα και όχι αριθµοί (NaN) Εκθέτης = 111...1, Κλάσµα = 000...0 ±Άπειρο Μπορεί να χρησιµοποιηθεί σε επόµενους υπολογισµούς, για αποφυγή της ανάγκης του ελέγχου υπερχείλισης Εκθέτης = 111...1, Κλάσµα 000...0 Όχι αριθµός (Not-a-Number NaN) είχνει ένα άκυρο ή απροσδιόριστο αποτέλεσµα π.χ., 0.0 / 0.0 Μπορεί να χρησιµοποιηθεί σε επόµενους υπολογισµούς Κεφάλαιο 3 Αριθµητική για υπολογιστές 28

Πρόσθεση κινητής υποδιαστολής Ένα δεκαδικό παράδειγµα µε 4 ψηφία 9.999 10 1 + 1.610 10 1 1. Ευθυγράµµιση υποδιαστολών Ολίσθηση αριθµού µε το µικρότερο εκθέτη 9.999 10 1 + 0.016 10 1 2. Πρόσθεση σηµαντικών 9.999 10 1 + 0.016 10 1 = 10.015 10 1 3. Κανονικοποίηση αποτελέσµατος & έλεγχος υπερχείλισης/ανεπάρκειας 1.0015 10 2 4. Στρογγυλοποίηση και επανακανονικοποιήση αν είναι απαραίτητο 1.002 10 2 Κεφάλαιο 3 Αριθµητική για υπολογιστές 29

Πρόσθεση κινητής υποδιαστολής Τώρα ένα δυαδικό παράδειγµα µε 4 ψηφία 1.000 2 2 1 + 1.110 2 2 2 (0.5 + 0.4375) 1. Ευθυγράµµιση υποδιαστολών Ολίσθηση αριθµού µε το µικρότερο εκθέτη 1.000 2 2 1 + 0.111 2 2 1 2. Πρόσθεση σηµαντικών 1.000 2 2 1 + 0.111 2 2 1 = 0.001 2 2 1 3. Κανονικοποίηση αποτελέσµατος και έλεγχος υπερχείλισης/ανεπάρκειας 1.000 2 2 4, χωρίς υπερχείλιση/ανεπάρκεια 4. Στρογγυλοποίηση και επανακανονικοποιήση αν είναι απαραίτητο 1.000 2 2 4 (καµία αλλαγή) = 0.0625 Κεφάλαιο 3 Αριθµητική για υπολογιστές 30

Υλικό αθροιστή κιν. υποδ. Πολύ πιο πολύπλοκο από του ακέραιου αθροιστή Για να γίνει σε έναν κύκλο πρέπει να έχει πολύ µεγάλη διάρκεια Πολύ µεγαλύτερη από τις ακέραιες λειτουργίες Το πιο αργό ρολόι θα επιβάρυνε όλες τις εντολές Ο αθροιστής κινητής υποδιαστολής συνήθως παίρνει πολλούς κύκλους Μπορεί να υπολοποιηθεί µε διοχέτευση Κεφάλαιο 3 Αριθµητική για υπολογιστές 31

Υλικό αθροιστή κιν.υποδ. Βήµα 1 Βήµα 2 Βήµα 3 Βήµα 4 Κεφάλαιο 3 Αριθµητική για υπολογιστές 32

Πολλαπλασιασµός κιν.υποδ. Ένα δεκαδικό παράδειγµα µε 4 ψηφία 1.110 10 10 9.200 10 5 1. Πρόσθεση εκθετών Για πολωµένους εκθέτες, αφαίρεση της πόλωσης από το άθροισµα Νέος εκθέτης = 10 + 5 = 5 2. Πολλαπλασιασµός σηµαντικών 1.110 9.200 = 10.212 10.212 10 5 3. Κανονικοποίηση αποτελέσµατος & έλεγχος υπερχείλισης/ανεπάρκειας 1.0212 10 6 4. Στρογγυλοποίηση και επανακανονικοποίηση αν είναι απαραίτητο 1.021 10 6 5. Καθορισµός του προσήµου του αποτελέσµατος από τα πρόσηµα των τελεστέων +1.021 10 6 Κεφάλαιο 3 Αριθµητική για υπολογιστές 33

Πολλαπλασιασµός κιν.υποδ. Τώρα ένα δυαδικό παράδειγµα µε 4 ψηφία 1.000 2 2 1 1.110 2 2 2 (0.5 0.4375) 1. Πρόσθεση εκθετών Χωρίς πόλωση: 1 + 2 = 3 Με πόλωση: ( 1 + 127) + ( 2 + 127) = 3 + 254 127 = 3 + 127 2. Πολλαπλασιασµός σηµαντικών 1.000 2 1.110 2 = 1.1102 1.110 2 2 3 3. Κανονικοποίηση αποτελέσµατος και έλεγχος υπερχείλισης/ανεπάρκειας 1.110 2 2 3 (καµία αλλαγή) χωρίς υπερχείλιση/ανεπάρκεια 4. Στρογγυλοποίηση και επανακανονικοποίηση αν είναι απαραίτητο 1.110 2 2 3 (καµία αλλαγή) 5. Καθορισµός προσήµου: +ve ve ve 1.110 2 2 3 = 0.21875 Κεφάλαιο 3 Αριθµητική για υπολογιστές 34

Υλικό αριθµητικής κιν. υποδ. Ο πολλαπλασιαστής ΚΥ έχει παρόµοια πολυπλοκότητα µε τον αθροιστή ΚΥ Αλλά χρησιµοποιεί πολλαπλασιαστή για τα σηµαντικά αντί για αθροιστή Το υλικό αριθµητικής κιν. υποδ. συνήθως εκτελεί Πρόσθεση, αφαίρεση, πολλαπλασιασµό, διαίρεση, αντίστροφο, τετραγωνική ρίζα Μετατροπή ΚΥ ακέραιο Οι λειτουργίες συνήθως διαρκούν πολλούς κύκλους Μπορούν να υπολοποιηθούν µε διοχέτευση Κεφάλαιο 3 Αριθµητική για υπολογιστές 35

Εντολές ΚΥ στο MIPS Το υλικό ΚΥ είναι ο συνεπεξεργαστής (coprocessor) 1 Επιπρόσθετος επεξεργαστής που επεκτείνει την αρχιτεκτονική συνόλου εντολών Ξεχωριστοί καταχωρητές ΚΥ 32 απλής ακρίβειας: $f0, $f1, $f31 Ζευγάρια για διπλή ακρίβεια: $f0/$f1, $f2/$f3, Η έκδοση 2 του συνόλου εντολών MIPS υποστηρίζει 32 64 bit καταχωρητές ΚΥ Εντολές ΚΥ επενεργούν µόνο σε καταχωρητές ΚΥ Γενικά τα προγράµµατα δεν εκτελούν ακέραιες πράξεις σε δεδοµένα ΚΥ, ή αντίστροφα Περισσότεροι καταχωρητές µε ελάχιστη επίδραση στο µέγεθος του κώδικα Εντολές φόρτωσης και αποθήκευσης ΚΥ lwc1, ldc1, swc1, sdc1 π.χ., ldc1 $f8, 32($sp) Κεφάλαιο 3 Αριθµητική για υπολογιστές 36

Εντολές ΚΥ στον MIPS Αριθµητική απλής ακρίβειας add.s, sub.s, mul.s, div.s π.χ., add.s $f0, $f1, $f6 Αριθµητική διπλής ακρίβειας add.d, sub.d, mul.d, div.d π.χ., mul.d $f4, $f4, $f6 Σύγκριση απλής και διπλής ακρίβειας c.xx.s, c.xx.d (xx είναιeq, lt, le, ) ίνει τη τιµή 1 ή 0 σε bit κωδικών συνθήκης ΚΥ (FP conditioncode bit) π.χ. c.lt.s $f3, $f4 ιακλάδωση σε αληθή ή ψευδή κωδικό συνθήκης ΚΥ bc1t, bc1f π.χ., bc1t TargetLabel Κεφάλαιο 3 Αριθµητική για υπολογιστές 37

Παραδειγµα ΚΥ: βαθµοί F σε C Κώδικας C: float f2c (float fahr) { return ((5.0/9.0)*(fahr - 32.0)); } fahr στον $f12, αποτέλεσµα στον $f0, οι σταθερές στο χώρο της καθολικής µνήµης Μεταγλωττισµένος κώδικας MIPS: f2c: lwc1 $f16, const5($gp) lwc2 $f18, const9($gp) div.s $f16, $f16, $f18 lwc1 $f18, const32($gp) sub.s $f18, $f12, $f18 mul.s $f0, $f16, $f18 jr $ra Κεφάλαιο 3 Αριθµητική για υπολογιστές 38

Παράδειγµα ΚΥ: Πολλαπλασιασµός πινάκων X = X + Y Z Όλοι πίνακες 32 32, µε στοιχεία 64 bit διπλής ακρίβειας Κώδικας C: void mm (double x[][], double y[][], double z[][]) { int i, j, k; for (i = 0; i! = 32; i = i + 1) for (j = 0; j! = 32; j = j + 1) for (k = 0; k! = 32; k = k + 1) x[i][j] = x[i][j] + y[i][k] * z[k][j]; } ιευθύνσεις τωνx, y, z στους $a0, $a1, $a2, και των i, j, k στους $s0, $s1, $s2 Κεφάλαιο 3 Αριθµητική για υπολογιστές 39

Παράδειγµα ΚΥ: Πολλαπλασιασµός πινάκων Κώδικας MIPS: li $t1, 32 # $t1 = 32 (row size/loop end) li $s0, 0 # i = 0; initialize 1st for loop L1: li $s1, 0 # j = 0; restart 2nd for loop L2: li $s2, 0 # k = 0; restart 3rd for loop sll $t2, $s0, 5 # $t2 = i * 32 (size of row of x) addu $t2, $t2, $s1 # $t2 = i * size(row) + j sll $t2, $t2, 3 # $t2 = byte offset of [i][j] addu $t2, $a0, $t2 # $t2 = byte address of x[i][j] l.d $f4, 0($t2) # $f4 = 8 bytes of x[i][j] L3: sll $t0, $s2, 5 # $t0 = k * 32 (size of row of z) addu $t0, $t0, $s1 # $t0 = k * size(row) + j sll $t0, $t0, 3 # $t0 = byte offset of [k][j] addu $t0, $a2, $t0 # $t0 = byte address of z[k][j] l.d $f16, 0($t0) # $f16 = 8 bytes of z[k][j] Κεφάλαιο 3 Αριθµητική για υπολογιστές 40

Παράδειγµα ΚΥ: Πολλαπλασιασµός πινάκων sll $t0, $s0, 5 # $t0 = i*32 (size of row of y) addu $t0, $t0, $s2 # $t0 = i*size(row) + k sll $t0, $t0, 3 # $t0 = byte offset of [i][k] addu $t0, $a1, $t0 # $t0 = byte address of y[i][k] l.d $f18, 0($t0) # $f18 = 8 bytes of y[i][k] mul.d $f16, $f18, $f16 # $f16 = y[i][k] * z[k][j] add.d $f4, $f4, $f16 # f4=x[i][j] + y[i][k]*z[k][j] addiu $s2, $s2, 1 # $k k + 1 bne $s2, $t1, L3 # if (k!= 32) go to L3 s.d $f4, 0($t2) # x[i][j] = $f4 addiu $s1, $s1, 1 # $j = j + 1 bne $s1, $t1, L2 # if (j!= 32) go to L2 addiu $s0, $s0, 1 # $i = i + 1 bne $s0, $t1, L1 # if (i!= 32) go to L1 Κεφάλαιο 3 Αριθµητική για υπολογιστές 41

Ακριβής αριθµητική Το IEEE Std 754 καθορίζει πρόσθετο έλεγχο της στρογγυλοποίησης Επιπλέον bit ακρίβειας (guard, round, sticky) Επιλογή τρόπων στρογγυλοποίησης (rounding modes) Επιτρέπει στον προγραµµατιστή να ρυθµίσει µε λεπτοµέρεια την αριθµητική συµπεριφορά ενός υπολογισµού εν υλοποιούν όλες τις επιλογές όλες οι µονάδες ΚΥ Οι περισσότερες γλώσσες προγραµµατισµού και βιβλιοθήκες ΚΥ χρησιµοποιούν απλώς τις προκαθορισµένες λειτουργίες Συµβιβασµός µεταξύ πολυπλοκότητας του υλικού, απόδοσης, και απαιτήσεων της αγοράς Κεφάλαιο 3 Αριθµητική για υπολογιστές 42

ιερµηνεία των δεδοµένων ΓΕΝΙΚΗ εικόνα Τα bit δεν έχουν έµφυτη σηµασία Η διερµηνεία εξαρτάται από τις εντολές που εφαρµόζονται Αναπαράσταση των αριθµών στους υπολογιστές Πεπερασµένο εύρος και ακρίβεια Πρέπει να λαµβάνονται υπόψη στα προγράµµατα Κεφάλαιο 3 Αριθµητική για υπολογιστές 43

Προσεταιριστικότητα Τα παράλληλα προγράµµατα µπορεί να «πλέκουν» τις λειτουργίες µε µη αναµενόµενη σειρά υποθέσεις προσεταιριστικότητας µπορεί να αποτύχουν (x+y)+z x -1.50E+38 y 1.50E+38 0.00E+00 z 1.0 1.0 1.00E+00 x+(y+z) -1.50E+38 1.50E+38 0.00E+00 Πρέπει να επιβεβαιώνεται η λειτουργία των παράλληλων προγραµµάτων σε διαφορετικούς βαθµούς παραλληλίας Κεφάλαιο 3 Αριθµητική για υπολογιστές 44 3.6 Παραλληλία και αριθµητική υπολ/στών: προσεταιριστικότητα

Αρχιτεκτονική ΚΥ του x86 Αρχικά βασίζονταν στο συνεπεξεργαστή ΚΥ 8087 8 80 bit καταχωρητές επεκτεταµένης ακρίβειας (extendedprecision) Χρησιµοποιούνται ως στοίβα Καταχωρητές δεικτοδοτούνται από την κορυφή της στοίβας (TOS) ως: ST(0), ST(1), Οι τιµές ΚΥ είναι 32 ή 64 bit στη µνήµη Μετατρέπονται κατά τη φόρτωση/αποθήκευση τελεστέων µνήµης Οι ακέραιοι τελεστέοι µπορούν επίσης να µετατραπούν σε µια φόρτωση/αποθήκευση Πολύ δύσκολη δηµιουργία και βελτιστοποίηση κώδικα Αποτέλεσµα: φτωχή απόδοση ΚΥ 3.7 Πραγµατικότητα: κινητή υποδιαστολή στην x86 Κεφάλαιο 3 Αριθµητική για υπολογιστές 45

Εντολές ΚΥ του x86 Μεταφορά δεδοµένων Αριθµητικές Σύγκρισης Υπερβατικές FILD mem/st(i) FIADDP mem/st(i) FICOMP FPATAN FISTP mem/st(i) FLDPI FLD1 FLDZ FISUBRP mem/st(i) FIMULP mem/st(i) FIDIVRP mem/st(i) FSQRT FABS FRNDINT FIUCOMP FSTSW AX/mem F2XMI FCOS FPTAN FPREM FPSIN FYL2X Προαιρετικές παραλλαγές I: ακέραιος τελεστέος P: εξαγωγή (pop) τελεστέου από τη στοίβα R: αντίστροφη σειρά τελεστέων Αλλά δεν επιτρέπονται όλοι οι συνδυασµοί Κεφάλαιο 3 Αριθµητική για υπολογιστές 46

Streaming SIMD Extension 2 (SSE2) Επέκταση συνεχούς ροής SIMD 2 (SSE2) Προσθέτει 4 128 bit καταχωρητές Επεκτάθηκε σε 8 καταχωρητές στην AMD64/EM64T Μπορεί να χρησιµοποιηθεί για πολλούς τελεστέους ΚΥ 2 64 bit διπλής ακρίβειας 4 32 bit απλής ακρίβειας Οι εντολές επενεργούν σε αυτά ταυτόχρονα Μία εντολή πολλά δεδοµένα (Single-Instruction Multiple-Data) Κεφάλαιο 3 Αριθµητική για υπολογιστές 47

εξιά ολίσθηση και διαίρεση Η αριστερή ολίσθηση κατά i θέσεις πολλαπλασιάζει έναν ακέραιο µε 2 i Η δεξιά ολίσθηση διαιρεί µε το 2 i ; Μόνο σε απρόσηµους ακεραίους Για προσηµασµένους ακεραίους Αριθµητική δεξιά ολίσθηση: επανάληψη του προσήµου π.χ., 5 / 4 11111011 2 >> 2 = 11111110 2 = 2 Στρογγυλοποιεί προς το σύγκριση 11111011 2 >>> 2 = 00111110 2 = +62 3.8 Πλάνες και παγίδες Κεφάλαιο 3 Αριθµητική για υπολογιστές 48

Ποιος νοιάζεται για την ακρίβεια ΚΥ; Σηµαντική για επιστηµονικό κώδικα Αλλά για καθηµερινή χρήση; Το υπόλοιπό µου στη τράπεζα διαφέρει κατά 0.0002 σεντ! Το σφάλµα της διαίρεσης ΚΥ του Intel Pentium (FDIV bug) Η αγορά αναµένει ακρίβεια είτε Colwell, The Pentium Chronicles Κεφάλαιο 3 Αριθµητική για υπολογιστές 49

Συµπερασµατικές παρατηρήσεις Οι αρχιτεκτονικές συνόλου εντολών υποστηρίζουν αριθµητική Προσηµασµένων και απρόσηµων ακεραίων Προσεγγίσεων κινητής υποδιαστολής για τους πραγµατικούς Πεπερασµένο εύρος και ακρίβεια Οι λειτουργίες µπορεί να οδηγήσουν σε υπερχείλιση (overflow) και ανεπάρκεια (underflow) Αρχιτεκτονική συνόλου εντολών MIPS Εντολές πυρήνα: οι 54 πιο συχνά χρησιµοποιούµενες 100% του SPECINT, 97% του SPECFP Άλλες εντολές: λιγότερο συχνές 3.9 Συµπερασµατικές παρατηρήσεις Κεφάλαιο 3 Αριθµητική για υπολογιστές 50