Γιώργος ηµητρίου Μάθηµα 2 ο Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων
Αναπαράσταση Πληροφορίας Η/Υ Αριθµητικά δεδοµένα n Σταθερής υποδιαστολής n Κινητής υποδιαστολής Μη αριθµητικά δεδοµένα n Χαρακτήρες n Ειδικοί κώδικες Εντολές n Γλώσσα µηχανής n Συµβολική γλώσσα
Αναπαράσταση Αριθµών: 1. Σταθερής Υποδιαστολής Ν α ν-1 α ν-2 α 1 α 0.α -1 α -µ(b) µε τιµή: Τ(Ν) = T(α ν-1 ) Β ν-1 + +T(α 1 ) Β+T(α 0 )+ +T(α -1 ) B -1 + +T(α -µ ) Β -µ όπου 0 T(α i ) < B ΣυνήθωςγιατουςΗ/ΥΒ=2, 8ή16 Τα δύο τελευταία αποτελούν ουσιαστικά σύµπτυξη του δυαδικού
Εύρος/Ακρίβεια Αναπαράστασης ΕύροςαναπαράστασηςΝ max : ο αριθµός όπου T(α i ) = B-1, -µ i < ν, µετιµή:τ(ν max ) =Β ν -Β -µ ΑκρίβειααναπαράστασηςΝ min : ο µικρότερος µη µηδενικός αριθµός της αναπαράστασης,µετιµή:τ(ν min ) =Β -µ
Μετατροπή Αναπαράστασης Αλγόριθµος µετατροπής ακεραίου N σε αναπαράσταση βάσης Β n ψηφίων: x := T(N); i := 0; repeat a i := x mod B; x := x div B; i := i + 1; until x = 0 or i = n;
Μετατροπή Αναπαράστασης Αλγόριθµος µετατροπής κλασµατικού N σε αναπαράσταση βάσης Β n ψηφίων: x := T(N); i := 1; repeat a -i := int (x * B); x := x * B - a -i ; i := i + 1; until x = 0 or i = n;
Προσηµασµένοι Αριθµοί Έστω ο µη προσηµασµένος αριθµός: Πρόσηµο / Μέτρο: Συµπλήρωµα ως προς ελαττωµένη βάση: -Ν Ν 01100100 (2), Τ(Ν) = 100 Ν1 01100100 (2), Τ(Ν1) = 100 = Τ(Ν) Ν2 11100100 (2), Τ(Ν2) = -100 = -Τ(Ν) -100 (10) = (1 1)10011011 (2) Συµπλήρωµα ως προς βάση: -Ν + 1-100 (10) = (1 1)10011100 (2)
Αναπαράσταση Αριθµών: 2. Κινητής Υποδιαστολής Q = εσή Q = σε, όπου: n σ : συντελεστής (σταθερής υποδιαστολής) nε : εκθέτης (ακέραιος) Τ(Q) = σ B ε Κανονικοποίηση: nσ = 0.α -1 α -2 α -µ µε α -1 > 0 ή σ = 0 είτε nσ = α 0.α -1 α -2 α -µ µε α 0 > 0 ή σ = 0 όταν Β = 2, το πιο σηµαντικό µη µηδενικό ψηφίο µπορεί να υπονοείται
Εύρος/Ακρίβεια Αναπαράστασης Εύρος: καθορίζεται από το εύρος του εκθέτη. nδυαδικόσύστηµα,εκθέτης 8 bitsσεπαράσταση συµπληρώµατος του 2: Τ(Q max ) = (2-ακρίβεια) 2 (27-1) Ακρίβεια: καθορίζεται από το µέγεθος του συντελεστή. n δυαδικό σύστηµα, συντελεστής 23 bits: ακρίβεια = 2-23 n ακρίβεια και διακριτότητα τιµών
Τυποποίηση ΙΕΕΕ 754 Q =πεσ nπ: 0 αν Q 0, 1 αν Q<0 n ε,σ: µη προσηµασµένοι ακέραιοι Τ(Q) = (-1) π (1.σ) 2 (ε -β) nλέξη 32 bits: 8 εκθέτης, 23 συντελεστής nλέξη 64 bits: 11 εκθέτης, 52 συντελεστής Τεχνική πόλωσης: nε ε + β n αναπαράσταση του 0 n σύγκριση αριθµών 1.0 2-1 και 1.0 2 +1
Χαρακτήρες και Άλλοι Κώδικες ASCII (American Standard Code for Information Interchange): n κάθε χαρακτήρας απαιτεί 7 bits για την αναπαράστασή του (χρησιµοποιούµε 8) εκαδικοί κώδικες (BCD): n κάθε δεκαδικό ψηφίο αναπαριστάνεται µε µια ακολουθία 4 bits. Κώδικας Gray: n διαδοχικά δεκαδικά ψηφία διαφέρουν σε 1 και µόνο bit.
Κώδικες Ελέγχου & ιόρθωσης Λαθών Έλεγχος και ανίχνευση λάθους n ψηφίο ισοτιµίας: δηλώνει ότι ο αριθµός των 1 στην πληροφορία είναι περιττός/άρτιος. περιττή, άρτια ισοτιµία ελέγχεται µε απλά συνδυαστικά κυκλώµατα ιόρθωση λάθους (κώδικες Hamming) n απόσταση Hamming του κώδικα: ελάχιστος αριθµός ψηφίων η αλλαγή των οποίων οδηγεί από έγκυρη πληροφορία σε µια άλλη. απόσταση k: ανιχνεύει k-1, διορθώνει k-2 λάθη
Γλώσσα Μηχανής ενός Η/Υ Το σύνολο των δυαδικών αριθµών που ο επεξεργαστής αντιλαµβάνεται ως εντολές για: n την εκτέλεση κάποιων πράξεων, nτη µεταφορά πληροφορίας µεταξύ υπο- µονάδων του, ή µεταξύ αυτού και του συστήµατος µνήµης ή των συσκευών Ε/Ε, n την εκτέλεση άλλων λειτουργιών ιαφορετική για κάθε επεξεργαστή n συµβατότητα µεταξύ επεξεργαστών
Εντολές και Κωδικοποίησή τους Κάθε εντολή της γλώσσας µηχανής είναι κωδικοποιηµένη µε συγκεκριµένο τρόπο µέσα σε ένα δυαδικό αριθµό Παράδειγµα εντολής MIPS (32 bits): 00000010001100100100000000100000 αποτέλεσµα τελούµενο 2 τελούµενο 1 κωδικός λειτουργίας κωδικός τελεστή
Πεδία Εντολών Κωδικός λειτουργίας n καθορίζει το είδος της λειτουργίας Κωδικός τελεστή n καθορίζει τον τελεστή της πράξης Τελούµενα n εισόδου ή τελεστέοι και εξόδου n η µέθοδος αναφοράς στα τελούµενα ονο- µάζεται διευθυνσιοδότηση
Συµβολική Γλώσσα Ανάγκη κατανόησης της γλώσσας µηχανής του Η/Υ Τα πεδία της εντολής απεικονίζονται συµβολικά Το προηγούµενο παράδειγµα: 00000010001100100100000000100000 γράφεται: add $8, $17, $18
Κατηγορίες Εντολών Εντολές αριθµητικών πράξεων n συµπεριλαµβάνονται πράξεις σύγκρισης Εντολές λογικών πράξεων n άλγεβρα Boole και ολισθήσεις Εντολές µεταφοράς δεδοµένων n αντιγραφή δεδοµένων από/προς τη µνήµη n µεταφορά µεταξύ καταχωρητών Εντολές ελέγχου ροής προγράµµατος n άλµατα µε/χωρίς συνθήκη Εντολές Ε/Ε ή συνεπεξεργαστή
Μέθοδοι ιευθυνσιοδότησης Άµεση διευθυνσιοδότηση n χρήση σταθερών τιµών addi $6, $17, -102 Κατ ευθείαν διευθυνσιοδότηση καταχωρητή (MIPS) nµεαριθµόήόνοµακαταχωρητή sub $6, $17, $10 (MIPS) n υπονοούµενη διευθυνσιοδότηση pushl %eax (esp) (IA-32) jal Func100 ($31) (MIPS)
ιευθυνσιοδότηση Μνήµης Κατ ευθείαν διευθυνσιοδότηση n διεύθυνση µνήµης Έµµεση διευθυνσιοδότηση n δείκτης προς τη διεύθυνση µνήµης Σχετική διευθυνσιοδότηση n έµµεση µε µετατόπιση εικτοδοτούµενη διευθυνσιοδότηση n µε χρήση καταχωρητή-δείκτη ιευθυνσιοδότηση στοίβας Συνδυασµός των παραπάνω
Κατ ευθείαν ιευθυνσιοδότηση Εντολές µεταφοράς δεδοµένων lda $34f7 (6502) nε/ε µε απεικόνιση στη µνήµη Εντολές άλµατος j 0x3d901f00 (MIPS) n συµβολικές διευθύνσεις: ετικέτες j Next_Iteration (MIPS)
Έµµεση ιευθυνσιοδότηση Μέσω καταχωρητή add ($4),$2 (68000) lw $17,0($5) (MIPS) Μέσω µνήµης lda ($5f04) (6502) Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων
Σχετική ιευθυνσιοδότηση Μετατόπιση στην προσπέλαση µνήµης n αναφορά σχετική µε καταχωρητή lw $5, -204($22) (MIPS) Μετατόπιση σε εντολή διακλάδωσης n αναφορά σχετική µε µετρητή προγράµµατος beq $2, $12, L100 (MIPS) bne $16, $30, -5 (MIPS)
Χρήση Καταχωρητή- είκτη Καταχωρητής που περιέχει µέρος ή όλη τη µετατόπιση µιας διευθυνσιοδότησης lda $250c,X (6502) move ($5,$8), ($10,$12) (68000) lwx $10, -8($5,$8) (PowerPC) n πολλές φορές ο καταχωρητής-δείκτης αυξάνεται ή µειώνεται αυτόµατα πχ σε άλµατα υπό συνθήκη (68000, PowerPC) dbra $8, L (68000)
ιευθυνσιοδότηση Στοίβας στοίβας Υλοποίηση ελέγχου µε υλικό n στον επεξεργαστή (αρχιτεκτονικές στοίβας) n στην µνήµη - ειδικές εντολές ελέγχου pushl %ebx Υλοποίηση στη µνήµη Υλοποίηση ελέγχου µε λογισµικό lw $6, 104($sp) στοίβας (IA-32) (MIPS)
Παραδείγµατα Εντολών Εντολές αριθµητικών/λογικών πράξεων andi $8,$2,0x1c (MIPS) adc $2ac0 (6502) sub ($4),$2 (68000) Εντολές µεταφοράς δεδοµένων lw $5,-384($10) (MIPS) stmda R1!,{R2-R5,R10} (ARM) pushx (6502) Εντολές ελέγχου ροής προγράµµατος jr $16 mov PC,LR (MIPS) (ARM)
Παραδείγµατα Εντολών Εντολές σχετικές µε τον καταχωρητή κατάστασης της ΚΜΕ bcs Lnext Ειδικές εντολής ελέγχου ροής call Func101 (IA-32) trap 7 (MIPS) rts (6502) Εντολές Ε/Ε - καταχωρητές ελεγκτών btst 3, $ioctrl (68000) move $datain, $4 (68000) Εντολές συνεπεξεργαστή div.d $f1, $f5, $f6 (6502,68000,ARM) (MIPS)
Αρχιτεκτονικές Συνόλου Εντολών Αρχιτεκτονικές συσσωρευτή n Αρχιτεκτονικές επέκτασης συσσωρευτή Αρχιτεκτονικές στοίβας Αρχιτεκτονικές καταχωρητών γενικού σκοπού (ΚΓΣ) n Αρχιτεκτονικές καταχωρητή-µνήµης n Αρχιτεκτονικές φόρτωσης-αποθήκευσης ή καταχωρητή-καταχωρητή
Αρχιτεκτονικές Συσσωρευτή Κώδικας πρόσθεσης διανυσµάτων ldx #0 ; X 0 Loop: load V1,X ; A V1[X] add V2,X ; A A + V2[X] store V3,X ; V3[X] A incx ; X X + 1 incx incx incx cmpx #400 ; S cmp (X == 400) bne Loop ; if (!S cmp ) goto Loop όπου V1, V2, V3 οι διευθύνσεις βάσης τριών διανυσµάτων 100 32-bit ακεραίων, Α ο συσσωρευτής, Χ καταχωρητήςδείκτηςκαι S cmp ψηφίοκατάστασηςγιασυγκρίσεις
Αρχιτεκτονικές Στοίβας Κώδικας υπολογισµού παράστασης push A push B push C add push D mult sub pop E ; MEM[A] S[sp++] ; MEM[B] S[sp++] ; MEM[C] S[sp++] ; S[--sp] + S[--sp] S[sp++] ; MEM[D] S[sp++] ; S[--sp] * S[--sp] S[sp++] ; S[--sp] - S[--sp] S[sp++] ; S[--sp] MEM[E] όπου A,B,C,D,E οι διευθύνσεις πέντε ακέραιων µεταβλητών, S ηστοίβακαι spοδείκτηςκορυφήςτηςστοίβας Ποια παράσταση υπολογίζεται;
Αρχιτεκτονικές ΚΓΣ Καταχωρητή-µνήµης n ΙΑ-32, 68000 και άλλοι παλαιότεροι επεξεργαστές Φόρτωσης-αποθήκευσης n MIPS, ARM, POWERPC, SPARC και οι περισσότεροι σύγχρονοι επεξεργαστές Για παραδείγµατα κώδικα, κοιτάξτε συµβολική γλώσσα IA-32, MIPS
Αρχιτεκτονικές RISC/CISC Απλού συνόλου εντολών (RISC): n Απλές εντολές n Ένας τρόπος διευθυνσιοδότησης µνήµης n Σταθερό µήκος λέξης εντολής Πολύπλοκου συνόλου εντολών (CISC): n Πολύπλοκες εντολές n Πολλοί τρόποι διευθυνσιοδότησης µνήµης n Μεταβλητό µήκος λέξης εντολής