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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 3. Αριθμητική Υπολογιστών Review. Hardware implementation of simple ALU Multiply/Divide Real Numbers

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

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

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

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

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

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

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

Περίληψη. ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο υαδική Αφαίρεση. υαδική Αφαίρεση (συν.) Ακόµη ένα παράδειγµα Αφαίρεσης.

1. ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΩΝ. α i. (α i β i ) (1.3) όπου: η= το πλήθος ακεραίων ψηφίων του αριθμού Ν. n-1

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

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

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

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

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

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

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

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

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

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

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

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

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

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Άλλες Αριθμητικές Συναρτήσεις/Κυκλώματα

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

Σφάλματα (errors) Σε κάθε υπολογισμό μιας πραγματικής ποσότητας υπάρχει σφάλμα

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

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

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

Υπολογιστές και Πληροφορία 1

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

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

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

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

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

Ελίνα Μακρή

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

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 5 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

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

ΠΛΗΡΟΦΟΡΙΚΗ I. 4 η ΔΙΑΛΕΞΗ Αριθμητικά Συστήματα

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

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

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

Λογικός Σχεδιασµός και Σχεδιασµός Η/Υ. ΗΜΥ-210: Εαρινό Εξάµηνο Σκοπός του µαθήµατος. Ψηφιακά Συστήµατα. Περίληψη. Εύρος Τάσης (Voltage(

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

Αριθµητική υπολογιστών

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

Αριθμητικά Συστήματα Κώδικες

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Ψηφιακά Κυκλώματα Ι. Μάθημα 1: Δυαδικά συστήματα - Κώδικες. Λευτέρης Καπετανάκης

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

1. Βάσεις αριθμητικών συστημάτων 2. Μετατροπές μεταξύ ξύβάσεων 3. Αρνητικοί δυαδικοί αριθμοί 4. Αριθμητικές πράξεις δυαδικών αριθμών

Εισαγωγή στην επιστήμη των υπολογιστών. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ και Μετατροπές Αριθμών

Λογική Σχεδίαση Ψηφιακών Συστημάτων

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

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ. ΔΙΑΡΚΕΙΑ: 1 περιόδους. 22/1/ :11 Όνομα: Λεκάκης Κωνσταντίνος καθ. Τεχνολογίας

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

Transcript:

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

Αριθμοί και Υπολογιστές Μια λέξη μηχανής (computer word) αποτελείται από ένα αριθμό δυαδικών ψηφίων (bits) η λέξη αναπαρίσταται ως ένας δυαδικός αριθμός Δυαδικοί αριθμοί (βάση 2) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001... Φυσικά, το πρόβλημα της αναπαράστασης μπορεί να γίνει πολύπλοκο: Οι αριθμοί είναι πεπερασμένοι (πρόβλημα υπερχείλισης) Ποιος είναι ο μεγαλύτερος αριθμός που μπορεί να αναπαρασταθεί; Κλάσματα και πραγματικοί αριθμοί Αρνητικοί αριθμοί Π.χ., δεν υπάρχει η εντολή subi στη MIPS. Η εντολή addi μπορεί να χρησιμοποιηθεί για να προσθέσει ένα αρνητικό αριθμό Πως αναπαριστούμε αρνητικούς αριθμούς; δηλ. ποιες σχηματομορφές δυαδικών ψηφίων (bit patterns) αντιστοιχούν σε ποιους αριθμούς; 2

Επισκόπηση Σε κάθε βάση αριθμητικού συστήματος, η δεκαδική τιμή του κ ου ψηφίου δ υπολογίζεται από δ * Βάση κ π.χ., (10101) 2 = (1*2 4 ) + (0*2 3 ) + (1*2 2 ) + (0*2 1 ) + (1*2 0 ) = 16 + 0 + 4 + 0 + 1 = (21) 10 Ποιο είναι το κόστος (σε # bits) της αναπαράστασης του αριθμού 1,000,000 σε κώδικα ASCII; Ποιο το κόστος στο δυαδικό σύστημα; Υπερχείλιση (Overflow): Συμβαίνει όταν ένας αριθμός δεν μπορεί να αναπαρασταθεί με ένα συγκεκριμένο αριθμό ψηφίων (bits) και το/τα πιοσημαντικόψηφίο/ψηφία (MSBs) υπερχειλίζουν. Το O/S επιλαμβάνεται συνήθως τέτοια προβλήματα. Προσημασμένοι (Signed) και Μη-Προσημασμένοι (Unsigned) αριθμοί 3

Συστήματα Αναπαράστασης Αριθμών (1) Προσημασμένου (2) Συμπλήρωμα (3) Συμπλήρωμα Μεγέθους του Ένα του Δύο (Sign Magnitude) (One's Complement) (Two's Complement) 000 = +0 000 = +0 000 = +0 001 = +1 001 = +1 001 = +1 010 = +2 010 = +2 010 = +2 011 = +3 011 = +3 011 = +3 100 = -0 100 = -3 100 = -4 101 = -1 1 01 = -2 101 = -3 110 = -2 110 = -1 110 = -2 111 = -3 111 = -0 111 = -1 Το (1) έχει πολλά προβλήματα: που βρίσκεται το πρόσημο, πολύπλοκη υλοποίηση σε υλικό για πρόσθεση/αφαίρεση, υπάρχει το +0 και το -0 Το (2) επίσης έχει το πρόβλημα με τα διπλά μηδενικά (+0 και -0) Ποιο είναι το καλύτερο και γιατί; 4

Αριθμοί στη MIPS (Singed 2 s Complement) Προσημασμένοι αριθμοί 32-bit : 0000 0000 0000 0000 0000 0000 0000 0000 2 = 0 10 0000 0000 0000 0000 0000 0000 0000 0001 2 = + 1 10 0000 0000 0000 0000 0000 0000 0000 0010 2 = + 2 10... 0111 1111 1111 1111 1111 1111 1111 1110 2 = + 2,147,483,6 10 0111 1111 1111 1111 1111 1111 1111 1111 2 = + 2,147,483,7 10 1000 0000 0000 0000 0000 0000 0000 0000 2 = 2,147,483,8 10 1000 0000 0000 0000 0000 0000 0000 0001 2 = 2,147,483,7 10 1000 0000 0000 0000 0000 0000 0000 0010 2 = 2,147,483,6 10... 1111 1111 1111 1111 1111 1111 1111 1101 2 = 3 10 1111 1111 1111 1111 1111 1111 1111 1110 2 = 2 10 1111 1111 1111 1111 1111 1111 1111 1111 2 = 1 10 maxint minint Γενικά, ο αριθμός δ 31 δ 30 δ 29 δ 28 δ 1 δ 0 υπολογίζεται από: (δ 31 x(-2 31 )) + (δ 30 x2 30 ) + (δ 29 x2 29 ) + + (δ 1 x2 1 ) + (δ 0 x2 0 ) 5

Λειτουργία του Two's Complement Για αλλαγή πρόσημου (negate) ενός αριθμού σε συμπλήρωμα του 2: αντιστρέφουμε (invert) όλα τα bits και προσθέτουμε 1 ( negate invert ) Θυμάστε άλλο ευκολότερο τρόπο για αυτή την πράξη; Μετατροπή αριθμού με n bits σε αριθμό με κ > n bits: Ο 16-μπιτος σταθερός (immediate) στη MIPS μετατρέπεται σε 32-bits για αριθμητικές πράξεις Αντιγράφουμε το MSB (bit προσήμου) στα κ-n bits αυτό ονομάζεται «επέκταση προσήμου» (sign extension) 0010 -> 0000 0010 1010 -> 1111 1010 lbu # φόρτωση μη-προσημασμένου byte (χρησιμοποιείται κυρίως για φόρτωση χαρακτήρων), lb # χρησιμοποιεί προσημασμένη αριθμητική 6

Προσημασμένοι vs Μη-Προσημασμένοι Αριθμοί Ένας μικροεπεξεργαστής πρέπει να μπορεί να χειρίζεται προσημασμένους ΚΑΙ μη-προσημασμένους αριθμούς. Π.χ., προσημασμένους για αριθμούς, μη-προσημασμένους για διευθύνσεις Η C έχει τον τύπο δεδομένων int (για προσημασμένους αριθμούς) και τον τύπο unsigned int (για θετικούς μόνο = μηπροσηνασμένους αριθμούς) Θεωρήστε: $s0 = 1111 1111 1111 1111 1111 1111 1111 1111 $s1 = 0000 0000 0000 0000 0000 0000 0000 0001 slt $t0, $s0, $s1 sltu $t1, $s0, $s1 $t0 = ; $t1 = ; 7

Πρόσθεση και Αφαίρεση Τη διαδικασία την γνωρίζεται από το δημοτικό! 1 για κρατούμενο (carry) ή δανειζόμενο (borrow) 0111 0111 0101 + 0110-0110 - 0110 1101(=13 10 ) 0001 (=1 10 ) 1111 (=-1 10 ) Οι λειτουργίες για 2 s complement γίνονται εύκολα: Αφαίρεση με χρήση πρόσθεσης αρνητικών αριθμών 0111 + 1010 (=-6 10 ) 0001 Υπερχείλιση (το αποτέλεσμα είναι μεγάλο για την πεπερασμένη λέξη του υπολογιστή): Π.χ., πρόσθεση 2 αριθμών των n-bits δεν έχει ως αποτέλεσμα ένα αριθμό των n-bits 111 + 001 1000 8

Ανίχνευση Υπερχείλισης (Overflow Detection) ΔΕΝ υπάρχει υπερχείλιση όταν προσθέτουμε ένα θετικό με ένα αρνητικό αριθμό ΔΕΝ υπάρχει υπερχείλιση όταν τα πρόσημα είναι τα ίδια στην αφαίρεση Υπερχείλιση ΜΠΟΡΕΙ ΝΑ ΥΠΑΡΞΕΙ όταν το μέγεθος (magnitude) του αριθμού επηρεάζει την τιμή του πρόσημου: Πρόσθεση 2 θετικών μπορεί να δώσει αρνητικό αποτέλεσμα ή, πρόσθεση 2 αρνητικών μπορεί να δώσει θετικό αποτέλεσμα ή, αφαίρεση αρνητικού από θετικό δίνει αρνητικό ή, αφαίρεση θετικού από αρνητικό δίνει θετικό Επομένως, το τελικό κρατούμενο (carry out) ήτοτελικόδανειζόμενο (borrow bit) υπερεγγράφει το bit του προσήμου! Θεωρήστε τις πράξεις A + B και A B Υπάρχει υπερχείλιση αν το B είναι 0? Υπάρχει υπερχείλιση αν το A είναι 0? 9

Επιπτώσεις Υπερχείλισης Για αναγνώριση υπερχείλισης: Εμφανίζεται μια εξαίρεση(exception)/διακοπή(interrupt), από τις εντολές add, addi, ή sub Η κανονική ροή του προγράμματος διακόπτεται και προχωρεί σε μια προκαθορισμένη διεύθυνση για να εκτελέσει το «exception routine» Η διεύθυνση της εντολής που ανίχνευσε την διακοπή φυλάγεται για πιθανή επανάληψη των εντολών που διακόπηκαν Καταχωρητής $epc (exception program counter) κρατά την πιο πάνω διεύθυνση move from system control mfco $t0, $epc # αντιγράφει τον $epc στον $t0 Οι λεπτομέρειες εξαρτώνται από το λογισμικό / γλώσσα προγραμματισμού / κλπ Δεν είναι πάντα επιθυμητή/απαραίτητη η ανίχνευση υπερχείλισης π.χ., για μη-προσημασμένους αριθμούς (χρησιμοποιούνται για διευθύνσεις μνήμης) η υπερχείλιση αγνοείται Καινούριες εντολές MIPS addu, addiu, subu σημείωση: addiu sign-extends! σημείωση: sltu, sltiu για μη-προσημασμένες συγκρίσεις 10

Πολλαπλασιασμός Πιο πολύπλοκος από πρόσθεση ή αφαίρεση Υλοποιείται με ολίσθηση και πρόσθεση (shift-and-add) Προϋποθέτει περισσότερο χρόνο και χώρο Θυμηθείτε τον αλγόριθμο από το δημοτικό: 0010 (πολλαπλασιαστέος / multiplicand) (πολλαπλασιαστής / multiplier) x 1011 0010 0010 0000 + 0010 0010110 (αποτέλεσμα / product) Αρνητικοί αριθμοί: μετατροπή πρώτα και μετά πολ/σμός Υπάρχουν καλύτεροι αλγόριθμοι/υλοποιήσεις (δεν θα τους εξετάσουμε σε αυτό το σημείο) 11

Ακολουθιακή Υλοποίηση Πολλαπλασιαστή Ο πολλαπλασιασμός εκτελείται με μια σειρά από ολισθήσεις και προσθέσεις των -bit Απλό αλλά αργό! Ποιο μέρος είναι το Datapath? Multiplier[0]=1 Add Multiplicand to Product, save result in Product Start Test Multiplier[0] Multiplier[0]=0 Multiplicand -bit ALU Product Shift left Shift right Multiplier Controller 32 Shift Multiplicand left Shift Multiplier right 32 nd iteration? Done Yes No Control Flow (Ροή Μονάδας Ελέγχου) 12

Ακολουθιακή Υλοποίηση Πολλαπλασιαστή (Θεωρήστε 4-μπιτο πολλαπλασιασμό) 0010 (multiplicand) x 1001 0010 0000 0000 + 0010 0010010 (product) (multiplier) Multiplier[0]=1 Add Multiplicand to Product, save result in Product Start Test Multiplier[0] Multiplier[0]=0 0010 -bit ALU 1001 0 Controller Shift left Shift right 32 Shift Multiplicand left Shift Multiplier right 32 nd iteration? Done Yes No Control Flow (Ροή Μονάδας Ελέγχου) 13

Ακολουθιακή Υλοποίηση Πολλαπλασιαστή (Θεωρήστε 4-μπιτο πολλαπλασιασμό) (συν.) 0010 (multiplicand) x 1001 0010 0000 0000 + 0010 0010010 (product) (multiplier) Multiplier[0]=1 Add Multiplicand to Product, save result in Product Start Test Multiplier[0] Multiplier[0]=0 00100 -bit ALU 100 0010 Controller Shift left Shift right 32 Shift Multiplicand left Shift Multiplier right 32 nd iteration? Done Yes No Control Flow (Ροή Μονάδας Ελέγχου) 14

Ακολουθιακή Υλοποίηση Πολλαπλασιαστή (Θεωρήστε 4-μπιτο πολλαπλασιασμό) (συν.) 0010 (multiplicand) x 1001 0010 0000 0000 + 0010 0010010 (product) (multiplier) Multiplier[0]=1 Add Multiplicand to Product, save result in Product Start Test Multiplier[0] Multiplier[0]=0 001000 -bit ALU 10 0010 Controller Shift left Shift right 32 Shift Multiplicand left Shift Multiplier right 32 nd iteration? Done Yes No Control Flow (Ροή Μονάδας Ελέγχου) 15

Ακολουθιακή Υλοποίηση Πολλαπλασιαστή (Θεωρήστε 4-μπιτο πολλαπλασιασμό) (συν.) 0010 (multiplicand) x 1001 0010 0000 0000 + 0010 0010010 (product) (multiplier) Multiplier[0]=1 Add Multiplicand to Product, save result in Product Start Test Multiplier[0] Multiplier[0]=0 0010000 -bit ALU 0010 Controller Shift left Shift right 1 32 Shift Multiplicand left Shift Multiplier right 32 nd iteration? Done Yes No Control Flow (Ροή Μονάδας Ελέγχου) 16

Ακολουθιακή Υλοποίηση Πολλαπλασιαστή (Θεωρήστε 4-μπιτο πολλαπλασιασμό) (συν.) 0010 (multiplicand) x 1001 0010 0000 0000 + 0010000 0010010 (product) (multiplier) Multiplier[0]=1 Add Multiplicand to Product, save result in Product Start Test Multiplier[0] Multiplier[0]=0 Shift left 00100000 Shift right Shift Multiplicand left Shift Multiplier right -bit ALU 0010010 Controller 32 32 nd iteration? Done Yes No Control Flow (Ροή Μονάδας Ελέγχου) 17

Υλοποίηση για καλύτερη απόδοση Απαιτεί 1 κύκλο ρολογιού για κάθε βήμα αύξηση απόδοσης Οι πράξεις εκτελούνται παράλληλα: ολίσθηση για τον πολ/στη και τον πολ/στέο, ενώ ο πολ/στέος προστίθεται στο αποτέλεσμα. Οπολ/στής (Multiplier) ξεκινά στο δεξί μισό του αποτελέσματος (Product) Άλλα θέματα: Product[0]=1 έλεγχος ορθού bit του πολ/στη (πριν την ολίσθηση) χρήση του περιεχόμενου του πολ/στέου πριν την ολίσθηση Start Test Product[0] Product[0]=0 Multiplicand? 32 32-bit ALU Shift Product right 32 Product Multiplier shift right write Controller 32 nd iteration? No Yes Done Control Flow (Ροή Μονάδας Ελέγχου) 18

Πολλαπλασιασμός Προσημασμένων Αριθμών Μπορεί αυτό να χρησιμοποιηθεί για προσημασμένους αριθμούς; Ποιες αλλαγές χρειάζονται; Shift left Multiplicand -bit ALU Product Shift right Multiplier 32 Controller 19

Διαίρεση Πιο πολύπλοκη και από πολ/σμό Πρέπει να χειρίζεται διαίρεση δια 0 Και πάλι, θυμηθείτε τον αλγόριθμο του δημοτικού: 54 1001 Quotient (Πηλίκο) Divisor 3 163 1000 1001010 Dividend (Διαιρετέος) (Διαιρέτης) -15-1000 13 10-12 101 1 1010-1000 10 Remainder(Υπόλοιπο) Dividend = Quotient x Divisor + Remainder 163 / 3 = 54x3 +1, 1,001,010 / 1000 = 1001x1000 + 10 20

Αλγόριθμος Διαίρεσης και Υλοποίηση Start Το Πηλίκο αρχικοποιείται σε 0 Το Υπόλοιπο αρχικοποιείται στην τιμή του Διαιρετέου Subtract Divisor from Remainder, place result in Remainder Check if divisor < dividend Remainder >= 0 Test Remainder < 0 Quotient bit 1 Remainder Quotient bit 0 Shift right Divisor Shift Quotient left, set rightmost bit to 1 Shift left Restore original value by adding Divisor to Remainder, place sum in Remainder. Shift Quotient left, set its LSB to 0 -bit ALU Quotient 32 bits Shift Divisor right Remainder Controller 33 rd iteration? No Done Yes 21

Υλοποίηση καλύτερης απόδοσης Ολισθήσεις και αφαιρέσεις εκτελούνται παράλληλα ΑπαιτείτομισόμέγεθοςγιαDivisor και ALU Το Quotient φυλάγεται στο λιγότερο σημαντικό μισό του Remainder, << (αριστερά) Remainder στο περισσότερο σημαντικό του Remainder, >> (δεξιά) Divisor 32 32-bit ALU 32 Quotient shift right Remainder shift left write Controller 22

Πολλαπλασιασμός και Διαίρεση στη MIPS Η MIPS παρέχει ένα ξεχωριστό ζευγάρι καταχωρητών για το -μπιτο Product ή Remainder, και 2 καινούριες εντολές Καταχωρητές $Hi και $Lo mflo $s1 # $s1 = $Lo, get a copy of Lo mfhi $s1 # $s1 = $Hi, get a copy of Hi 4 νέες εντολές για πολ/σμό και διαίρεση: mult $s2, $s3 # εντολή για προσημασμένο πολ/σμό # $Hi,$Lo=$s2 x $s3, -bit Product στους $Hi,$Lo multu $s2, $s3 # εντολή για μη-προσημασμένο πολ/σμό # -bit product στους $Hi,$Lo=$s2 x $s3 div $s2, $s3 # εντολή για προσημασμένη διαίρεση # Quotient στον $Lo = $s2 / $s3, Remainder στον $Hi = $s2 mod $s3 divu $s2, $s3 # εντολή για μη-προσημασμένη διαίρεση # Quotient στον $Lo = $s2 / $s3, Remainder στον $Hi = $s2 mod $s3 23

Αριθμητική Κινητής Υποδιαστολής (Floating Point Arithmetic) Χρειαζόμαστε ένα τρόπο για αναπαράσταση: κλασματικών αριθμών, π.χ., 3.14159265 πολύ μικρών αριθμών, π.χ., 0.000000001 ή 1.0 10-9 πολύ μεγάλων αριθμών, π.χ., 3,155,760,000 ή 3.15576 10 9 Επιστημονικός Συμβολισμός (Scientific Notation) Μόνο ένα ψηφίο αριστερά της υποδιαστολής Τα τελευταία δύο παραδείγματα πιο πάνω φαίνονται και σε μορφή επιστημονικού συμβολισμού Κανονικοποιημένη Tιμή (Normalized Value) Ένας αριθμός σε μορφή επιστημονικού συμβολισμού, αλλά χωρίς μηδενικά (0) στην αρχή Π.χ., 1.0 10-9 είναι κανονικοποιημένο ενώ 0.10 10-8 δεν είναι 24

Περιγραφή Δυαδικών με Κινητή Υποδιαστολή 3 μέρη: Πρόσημο (S), Κλάσμα (F) και Εκθέτης (Ε) Γενική Μορφή: (-1) S x F x 2 E Το μέγεθος του F καθορίζει την ακρίβεια (ή προσέγγιση) (accuracy or precision) Το μέγεθος του E καθορίζει το εύρος (range) των τιμών F+E είναι σταθερό, άρα πρέπει να αποφασίσουμε μεταξύ F και Ε! 25

Κινητή Υποδιαστολή στη MIPS Αναπαράσταση sign-and-magnitude (όχι 2 s complement) Μονής Ακριβείας Μπορεί να αναπαραστήσει κλάσματα μεταξύ 2 x 10-38 2 x 10 38 Διπλής Ακριβείας Μπορεί να αναπαραστήσει κλάσματα μεταξύ 2 x 10-308 2 x 100 308 26

Κινητή Υποδιαστολή στη MIPS (συν.) Υπερχείλιση για κινητή υποδιαστολή (Overflow) Θετικός Εκθέτης πολύ μεγάλος για να χωρέσει στο πεδίο E E > 2 7-1 (=127) για μονή ακρίβεια E > 2 10-1 (=1023) για διπλή ακρίβεια Υπορροή για κινητή υποδιαστολή (Underflow) Αρνητικός Εκθέτης πολύ μεγάλος για να χωρέσει στο πεδίο E E < -2-7 - 2 (= -126) για μονή ακρίβεια E < -2-10 - 2 (= -1022) για διπλή ακρίβεια 27

Πρότυπο IEEE 754 για αριθμητική κινητής υποδιαστολής Χρησιμοποιείται σχεδόν από όλους του υπολογιστές που σχεδιάστηκαν μετά το 1980, ως πρότυπο αριθμητικής για κινητή υποδιαστολή Το αρχικό 1 ενός κανονικοποιημένου αριθμού εννοείται (δεν χρειάζεται ρητή αναπαράσταση) Το πεδίο του κλάσματος (F) περιέχει ΜΟΝΟ το κλασματικό μέρος Το νέο πεδίο F αυξάνεται κατά 1 bit (23-bits για μονή ακρίβεια και 52-bits για διπλή ακρίβεια) Ορίζει: Significand = 1 + Fraction Το 0 αναπαρίσταται ως 00.002 (ΟΧΙ σε μορφή κανονικοποιημένου επιστημονικού συμβολισμού!) Οι υπόλοιποι αριθμοί αναπαρίστανται από: (-1) Sign (1+Fraction) 2 Exponent 28

Πρότυπο IEEE 754 για αριθμητική κινητής υποδιαστολής (συν.) Μονής Ακρίβειας Εκθέτης (Ε) Κλάσμα (F) Διπλής Ακρίβειας Εκθέτης (Ε) Κλάσμα (F) Τρόπος Αναπαράστασης 0 0 0 0 0 0 0 0 0 ± μη-κανονικοποιημένος αριθμός 1-254 οτιδήποτε 1-2046 οτιδήποτε ± αριθμός κινητής υποδιαστολής 255 0 2047 0 ± άπειρο 255 0 2047 0 ΝaΝ (Not-a-Number) Όχι αριθμός Η κωδικοποίηση αριθμών με το πρότυπα IEEE 754. - Ένα ξεχωριστό bit καθορίζει το πρόσημο. - Μη κανονικοποιημένοι αριθμοί αναφέρονται σε αριθμούς μεγαλύτερης ακρίβειας. - Ο εκθέτης είναι BIASED (βλέπει επόμενες διαφάνειες) 29

Αρνητικοί Εκθέτες Αρνητικός Εκθέτης σε 2 s complement Θετικός Εκθέτης 30

Αρνητικοί Εκθέτες (συν.) Μπορούμε να έχουμε κάποιον τρόπο αναπαράστασης αριθμών κινητής υποδιαστολής που να ευκολύνει συγκρίσεις μεταξύ ακεραίων, π.χ., για ταξινόμηση ακεραίων; Η προηγούμενη αναπαράσταση κάνει αυτό το πρόβλημα πολύπλοκο Λύση: Χρησιμοποιούμε το E = 00000000 2 ως τον «πιο» αρνητικό εκθέτη Χρησιμοποιούμε το E = 11111111 2 ως τον «πιο» θετικό εκθέτη Πολωμένος Συμβολισμός (Biased Notation) Η Πόλωση (Bias) είναι ο αριθμός που αφαιρούμε από την 8-μπιτη, μη-προσημασμένη αναπαράσταση του εκθέτη για να υπολογίσουμε τον πραγματικό εκθέτη Το IEEE 754 χρησιμοποιεί Bias = 127 για αναπαραστάσεις μονής ακριβείας (1023 για διπλή ακρίβεια): -1-1+127 = 126 = 011111102 +1 1+127 = 128 = 100000002 Τελική γενική μορφή: (-1) Sign (1+Fraction) 2 (Exponent Bias) 31

Αντιπροσώπευση κινητής υποδιαστολής Παράδειγμα 1 Θεωρήστε τον αριθμό -0.75 10 = -0.11 2 και μονή ακρίβεια: -0.11 2 2 0 -- σε επιστημονικό συμβολισμό -1.1 2 2-1 -- κανονικοποιημένος Για IEEE 754, έχουμε (-1) Sign (1+Fraction) 2 Biased_Exponent Πρόσημο S = 1 Κλάσμα F = 10000000000000000000000 Εκθέτης E = -1 Bias = 127 Biased_Exponent = Εκθέτης + Bias = -1 + 127 = 126 = 01111110 32

Αντιπροσώπευση κινητής υποδιαστολής Παράδειγμα 2 Θεωρήστε τον αριθμό +1.25 10 = +1.01 2 και μονή ακρίβεια: 1.01 2 2 0 -- σε επιστημονικό συμβολισμό 1.10 2 2 0 -- κανονικοποιημένος Για IEEE 754, έχουμε (-1) Sign (1+Fraction) 2 Biased_Exponent Πρόσημο S = 0 Κλάσμα F = 01000000000000000000000 Εκθέτης E = 0 Bias = 127 Biased_Exponent = Εκθέτης + Bias = 0 + 127 = 01111111 33

Αντιπροσώπευση κινητής υποδιαστολής Παράδειγμα 3 Ποια είναι η δεκαδική τιμή των πιο κάτω αριθμών; 34

Πρόσθεση Κινητής Υποδιαστολής Παράδειγμα (σε δεκαδικό): Θεωρήστε μόνο 4 δεκαδικά ψηφία για το significand και 2 για τον εκθέτη Προσθέστε 9.999 10 x 10 1 και 1.610 10 x 10-1 1 ο Βήμα: Ο 1.610 10 x 10-1 έχει τον μικρότερο εκθέτη, άρα ολίσθηση 2 φορές δεξιά για να πάρουμε 0.01610 10 x 10 1. Αφού έχουμε μόνο 4 ψηφία για το significand, παίρνουμε 0.016 10 x 10 1 2 ο Βήμα: Υπολογίζουμε 9.999 10 + 0.016 10 = 10.015 10 3 ο Βήμα: Κανονικοποίηση αποτελέσματος ολίσθηση 1 φορά δεξιά και αύξηση του εκθέτη κατά ένα 1.0015 10 x 10 2 4 ο Βήμα: Στρογγυλοποίηση αριθμού σε 4 ψηφία 1.002 10 x 10 2 35

Υλοποίηση Σύγκριση εκθέτων, υπολογισμός διαφοράς ΜUXes για κατάλληλη επιλογή Ολίσθηση μικρότερου εκθέτη δεξιά Πρόσθεση Κανονικοποίηση, αύξηση/μείωση εκθέτη Στρογγυλοποίηση, κανονικοποίηση αν χρειάζεται 36

Πολλαπλασιασμός Κινητής Υποδιαστολής Παράδειγμα (σε δεκαδικό): Θεωρήστε μόνο 4 δεκαδικά ψηφία για το significand και 2 για τον εκθέτη Πολ/στε 1.110 10 x 10 10 επί 9.200 10 x 10-5 1 ο Βήμα: Υπολογισμός εκθέτη αποτελέσματος με πρόσθεση: Νέος Εκθέτης = 10 + (-5) = 5 (Θυμηθείτε να υπολογίσετε το Bias) 2 ο Βήμα: Πολ/σμός significands: 1.100 10 x9.200 10 =10212000 10 Βρείτε τη θέση της υποδιαστολής 10.212000 10 x10 5 3 ο Βήμα: Κανονικοποίηση αποτελέσματος ολίσθηση 1 φορά δεξιά και αύξηση του εκθέτη κατά ένα 1.212000 10 x 10 6 4 ο Βήμα: Στρογγυλοποίηση αριθμού σε 4 ψηφία 1.212 10 x 10 6 5 ο Βήμα: Υπολογισμός προσήμου (ίδιο) +1.212 10 x 10 6 37

Εντολές Κινητής Υποδιαστολής για MIPS 32 νέοι καταχωρητές για πράξεις αριθμητικής με κινητή υποδιαστολή: $f0, $f1, $f2,, $f31 (χρησιμοποιούνται σε ζευγάρια για διπλή ακρίβεια) Πρόσθεση / Αφαίρεση / Πολ/σμός / Διαίρεση add.s $f0, $f4, $f6 # πρόσθεση, μονής ακρίβειας add.d $f0, $f4, $f6 # πρόσθεση, διπλής ακρίβειας sub.s $f0, $f4, $f6 # αφαίρεση, μονής ακρίβειας sub.d $f0, $f4, $f6 # αφαίρεση, διπλής ακρίβειας mul.s $f0, $f4, $f6 # πολ/σμός, μονής ακρίβειας mul.d $f0, $f4, $f6 # πολ/σμός, διπλής ακρίβειας div.s $f0, $f4, $f6 # διαίρεση, μονής ακρίβειας div.d $f0, $f4, $f6 # διαίρεση, διπλής ακρίβειας Καταχωρητές διπλής ακρίβειας: αποτελούνται από ένα ζευγάρι άρτιων-περιττών καραχωρητών μονής ακρίβειας, όπου το όνομα του άρτιου καταχωρητή καθορίζει το όνομα του διπλού καταχωρητή, π.χ. ο καταταχωρητής διπλής ακρίβειας ($f2,$f3) ορίζεται ως $f2. Πόσοι καταχωρητές διπλής ακρίβειας υπάρχουν; 38

Εντολές Κινητής Υποδιαστολής για MIPS (συν.) Σύγκριση c.eq.s $f2, $f4 # σύγκριση ισότητας, μονής ακρίβειας # θέτει cond=1 εάν True, cond=0 εαν False c.eq.d $f2, $f4 # σύγκριση ισότητας, διπλής ακρίβειας c.neq.s $f2, $f4 # σύγκριση ανισότητας, μονής ακρίβειας c.neq.d $f2, $f4 # σύγκριση ανισότητας, διπλής ακρίβειας c.lt.s $f2, $f4 # σύγκριση για λιγότερο από, μονής ακρίβειας c.lt.d $f2, $f4 # σύγκριση για λιγότερο από, διπλής ακρίβειας c.le.s $f2, $f4 # σύγκριση για λιγότερο από ή ίσα, μονής ακρίβειας c.le.d $f2, $f4 # σύγκριση για λιγότερο από ή ίσα, διπλής ακρίβειας c.gt.s $f2, $f4 # σύγκριση για μεγαλύτερο από, μονής ακρίβειας c.gt.d $f2, $f4 # σύγκριση για μεγαλύτερο από, διπλής ακρίβειας c.ge.s $f2, $f4 # σύγκριση για μεγαλύτερο από ή ίσα, μονής ακρίβειας c.ge.d $f2, $f4 # σύγκριση για μεγαλύτερο από ή ίσα, διπλής ακρίβειας 39

Εντολές Κινητής Υποδιαστολής για MIPS (συν.) Διακλαδώσεις $bc1t 25 # Εάν cond==1 (True) branch στη διεύθυνση $bc1f 25 # Εάν cond==0 (False) branch στη διεύθυνση Χρησιμοποιείται με εντολές συγκρίσεως Φόρτωση / Αποθήκευση $lwc1 $f1, 100($s2) # f1 = Memory[s2+100] $swc1 $f1, 100($s2) # Memory[s2+100] = f1 Καραχωρητής βάσεως (base register) μένει ακέραιος! Παράδειγμα για φόρτωση 2 αριθμών μονής ακρίβειας, πρόσθεση και αποθήκευση του αποτελέσματος στη μνήμη: $lwc1 $f4, x($sp) # f4 = Memory[sp+ x] $lwc1 $f6, y($sp) # f6 = Memory[sp+ y] $add.s $f2, $f4, $f6 # f2 = f4 + f6 $swc1 $f2, z($sp) # Memory[sp+ z] = f2 40

Παράδειγμα: C MIPS Απλό πρόγραμμα για την μετατροπή της θερμοκρασίας από Fahrenheit σε Celsius: float f2c (float fahr) { return ( (5.0/9.0) * (fahr 32.0) ); } fahr $f12, result $f0 lwc1 $f16, const5($gp) # f16 = 5 lwc1 $f18, const9($gp) # f18 = 9 div.s $f16, $f16, $f18 # f16 = 5/9 lwc1 $f18, const32($gp) # f18 = 32 sub.s $f18, $f12, $f18 # f18 = fahr-32 mul.s $f0, $f16, $f18 # f0 = (5/9)*(fahr 32) jr $ra # επιστρέφει 41

Αριθμητική Ακριβείας Σε αναπαραστάσεις κινητής υποδιαστολής, ο αριθμόςδίνεται κατά προσέγγιση του πραγματικού αριθμού. Αυτό συμβαίνει λόγω της περιορισμένης/πεπερασμένης ακρίβειας. Χρειαζόμαστε μεθόδους για ακριβή στρογγυλοποίηση! Στο IEEE 754, κρατούνται δύο επιπλέον bits, τα guard και round, για κάθε ενδιάμεση αναπαράσταση (αλλιώς δεν μπορεί να γίνει η στρογγυλοποίηση) 4 τρόποι στρογγυλοποίησης θετικό δια 0 δίνει άπειρο 0 δια 0 δίνει ΝaΝ Υλοποίηση του προτύπου IEEE 754 μπορεί να γίνει πολύπλοκη Εάν δεν χρησιμοποιηθεί το πρότυπο, είναι ακόμη χειρότερο βλέπε βιβλίο μαθήματος για περιγραφή του σφάλματος (bug) στους 80x86 και Pentium μικροεπεξεργαστές! 42

Περίληψη 3 ου Κεφαλαίου Κύρια Σημεία Η αριθμητική των υπολογιστών έχει περιορισμένη ακρίβεια Οι στοιχειοσειρές (bit patterns) δεν έχουν καμία ενυπάρχουσα έννοια Χρησιμοποιούμε πρότυπα αναπαράστασης Συμπλήρωμα του 2 (2 s complement) IEEE 754 floating point Οι εντολές ορίζουν πώς να «διαβαστούν» οι στοιχειοσειρές: - add ακέραιοι αριθμοί 2 s complement - add.s πραγματικοί αριθμοί ΙΕΕΕ 754, μονή ακρίβεια - add.d πραγματικοί αριθμοί ΙΕΕΕ 754, διπλή ακρίβεια Η απόδοση και η ακρίβεια είναι σημαντικές και γι αυτό και υπάρχουν πολλές περιπλοκές σε πραγματικές μηχανές Η επιλογή κατάλληλου αλγορίθμου είναι εξίσου σημαντική αφού μπορεί να οδηγήσει σε βελτιστοποιήσεις του υλικού, από άποψη χρόνου (συχνότητα ρολογιού) και χώρου (βλέπε πολ/σμό) 43