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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

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

2 Ανακοινώσεις Ιστοσελίδα μαθήματος ΗΜΥ 212, ενημερώνεται συχνά: Ιστοσελίδα εργαστηρίου ΗΜΥ 213: Αλλαγές στο συμβόλαιο μαθήματος (δείτε ιστοσελίδα) ΗΜΥ 213: Ακυρώνεται η πρώτη συνάντηση τη Δευτέρα 29/01 και μεταφέρεται την Πέμπτη 01/02 στις 8:00 π.μ. Λατσιά ΛΑ130, η παρουσίαόλωνείναι υποχρεωτική Πρόγραμμα εξετάσεων (δείτε ιστοσελίδα) Πρόγραμμα κατ οίκον ασκήσεων (δείτε ιστοσελίδα) Αλλαγή στις ώρες γραφείου (δείτε ιστοσελίδα) 2

3 Τι θα μάθουμε σε αυτό το Κεφάλαιο: Εντολές (Instructions): οι λέξεις της γλώσσας του υπολογιστή Ανθρώπινη μορφή: Συμβολική γλώσσα (Assembly language) Μορφή υπολογιστή: Γλώσσα μηχανής (Machine language), σε δυαδικό Σύνολο απλών εντολών (simple instruction set) Σχέση με γλώσσα προγραμματισμού ψηλού επιπέδου (γλώσσα C) Υλοποίηση υλικού Αρχιτεκτονική MIPS Δημοφιλής αρχιτεκτονική Θα μελετήσουμε το MIPS ISA, βήμα-προς-βήμα Έννοια αποθηκεμένου προγράμματος Εντολές και δεδομένα διαφορετικών τύπων αποθηκεύονται στη μνήμη σε δυαδική μορφή 3

4 Αρχιτεκτονική MIPS Αναπτύχθηκε στο Πανεπιστήμιο του Stanford από τον Καθ. John Hennessy και μια ομάδα μεταπτυχιακών φοιτητών Παρόμοια με τις άλλες αρχιτεκτονικές μικροεπεξεργαστών που αναπτύχθηκαν από τη δεκαετία του 1980 Το 1984 δημιουργήθηκε η MIPS Computer Systems Corp., για την κατασκευή υπολογιστών Unix υψηλής απόδοσης με MIPS μικροεπεξεργαστές Other SPARC Hitachi SH PowerPC Motorola 68K MIPS IA-32 ARM Πωλήσεις μικροεπεξεργαστών ανά ISA Σχεδόν 100 εκατομμύρια επεξεργαστών MIPS κατασκευάστηκαν το 2002 Χρησιμοποιούνται από τις εταιρίες DEC, NEC, Nintendo, Cisco, Silicon Graphics, Sony, Siemens, LSI Logic, 4

5 Αριθμητική MIPS Όλες οι εντολές έχουν 3 τελεστές (operands) και μπορούν να εκτελέσουν μία μόνο πράξη κάθε φορά Η διάταξη των τελεστών είναι σταθερή (πρώτα ο τελεστής του αποτελέσματος) Παράδειγμα: Κώδικας C: a = b + c; Κώδικας MIPS: add $a, $b, $c (Assembly) a, b, c είναι καταχωρητές (θα δούμε περισσότερα σε λίγο) The natural number of operands for an operation like addition is three requiring every instruction to have exactly three operands, no more and no less, conforms to the philosophy of keeping the hardware simple 5

6 Αριθμητική MIPS (συν.) Ηπρόσθεση2 ή περισσότερων αριθμών εκτελείται από μία σειρά εντολών πρόσθεσης 2 αριθμών Παράδειγμα: Κώδικας C: a = b + c + d + e; Κώδικας MIPS: add $a, $b, $c # a=b+c add $a, $a, $d # a=b+c+d add $a, $a, $e # a=b+c+d+e # -- το σύμβολο για τα σχόλια, ισχύει μέχρι το τέλος της γραμμής Σε αντίθεση με άλλες γλώσσες προγραμματισμού, η assembly επιτρέπει μόνο 1 εντολή ανά γραμμή 6

7 Αριθμητική MIPS (συν.) 1 η Αρχή Σχεδιασμού: «Η απλότητα ευνοεί την κανονικότητα» (simplicity favors regularity) Αυτό μπορεί και να περιπλέξει ορισμένα θέματα... Απαιτεί μεγαλύτερο αριθμό εντολών (π.χ. n εντολές για την πρόσθεση n+1 αριθμών) Οι τελεστές πρέπει να είναι καταχωρητές, όχι διευθύνσεις μνήμης (σε αντίθεση με τους μικροεπεξεργαστές της Ιntel που επιτρέπουν σε αριθμητικές εντολές να έχουν κάποιους τελεστές στη μνήμη) Η MIPS παρέχει μόνο 32 καταχωρητές Ο κάθε καταχωρητής έχει 32 bits Τα πιο πάνω ισχύουν για τη MIPS-32. Υπάρχει και η MIPS-64, με 32 καταχωρητές των 64 ων bit. 7

8 Αριθμητική MIPS (συν.) Πιο είναι το αποτέλεσμα του μεταγλωττιστή για τα 2 πιο κάτω C προγράμματα; Εντολές C Μεταγλωττιστής C Εντολές MIPS a = b + c; d = a e; f = (g + h) (j + j); 8

9 Αριθμητική MIPS (συν.) Πιο είναι το αποτέλεσμα του μεταγλωττιστή για τα 2 πιο κάτω C προγράμματα; Εντολές C Μεταγλωττιστής C Εντολές MIPS a = b + c; add $a, $b, $c d = a e; sub $d, $a, $e f = (g + h) (i + j); add $t0,$g,$h add $t1,$i,$j sub $f,$t0,$t1 9

10 Καταχωρητές (Registers) Οι τελεστές αριθμητικών εντολών πρέπει να είναι καταχωρητές, παρέχονται μόνο 32 καταχωρητές των 32-bit (= 1 λέξη) 2 η Αρχή Σχεδιασμού: «Τομικρότεροείναικαιτογρηγορότερο»(Smaller is faster) Γιατί; Σύμβαση MIPS για ονόματα καταχωρητών: $s0, $s1, $s2, για καταχωρητές που αντιστοιχούν σε μεταβλητές στο πρόγραμμα υψηλού επιπέδου $t0, $t1, $t2, για προσωρινές μεταβλητές απαραίτητες για το μεταγλωττισμό σε κώδικα MIPS Παράδειγμα: f = (g + h) (i + j); add $t0, $s1, $s2 add $t1, $s3, $s4 sub $s0, $t0, $t1 # καταχωρητής $t0 = g+h # καταχωρητής $t1 = i+j # καταχωρητής $s0 = f 10

11 Καταχωρητές vs. Μνήμη Ο μεταγλωττιστής συσχετίζει μεταβλητές (variables) με καταχωρητές (registers) Τι συμβαίνει με προγράμματα που έχουν μεγάλο αριθμό μεταβλητών; Βασική δομή ενός υπολογιστή Control Input Memory Datapath Output Processor I/O Η μνήμη (memory) χρησιμοποιείται για αποθήκευση των εντολών, δεδομένων και αποτελεσμάτων ενός προγράμματος Τα δεδομένα μεταφέρονται από την μνήμη στους καταχωρητές Χρειαζόμαστε εντολές για μεταφορά δεδομένων (data transfer instructions) για φόρτωση από και αποθήκευση στη μνήμη, όπως lw ( = load word) και sw ( = store word) 11

12 Οργάνωση Μνήμης Εντολή Φόρτωσης (lw) Η μνήμη θεωρείται ως ένας μεγάλος, μονοδιάστατος πίνακας λέξεων/bytes/bits με συγκεκριμένη αρχική διεύθυνση (base address) Γιαναέχειπρόσβασηστημνήμημιαεντολήπρέπειναμπορείναπαρέχειτη «διεύθυνση» των ζητούμενων δεδομένων Μια διεύθυνση μνήμης (memory address) καθορίζεται με ένα δείκτη στον πίνακα (0, 1, 2, ) «Διευθυνσιοδότηση με Byte» (Byte addressing) υπονοεί ότι ο δείκτης δείχνει σε ένα byte (= 8 συνεχόμενα bits) του πίνακα Διεύθυνση byte 0 byte 1 byte 2 byte 3 byte 4 byte 5 byte 6 Μνήμη 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data Θεωρήστε ένα πίνακα A με 100 λέξεις (όπου 1 λέξη = 1 byte), με g $s1, h $s2, και ο καταχωρητής αρχικής διεύθυνσης (base register) $s3 g = h + A[5]; lw $t0, 5($s3) #lw = load word add $s1, $s2, $t0 base register: έχει την αρχική διεύθυνση του πίνακα, δηλ. τη διεύθυνση του 1 ου στοιχείου (λέξης) του πίνακα offset: ο δείκτης στον πίνακα, σταθερός στην εντολή διεύθυνση = base register + offset 12

13 Οργάνωση Μνήμης για ΜΙPS Συνήθως μια «λέξη» (word) είναι μεγαλύτερη από 1 byte Στη MIPS, οι καταχωρητές μπορούν να κρατήσουν μέχρι και 32 bits, άρα, μια λέξη έχει 32 bits ή 4 bytes Διεύθυνση byte 0 byte 4 byte 8 byte Μνήμη 32 bits of data 32 bits of data 32 bits of data 32 bits of data Byte address της 0 ης λέξης = 0 (= 0 x 4) Byte address της 1 ης λέξης = 4 (= 1 x 4) Byte address της 2 ης λέξης = 8 (= 2 x 4) Byte address της n ης λέξης = n x 4 Έχουμε 2 32 bytes σε byte addresses: 0, 1, 2,, Έχουμε 2 30 λέξεις σε byte addresses: 0, 4, 8,..., (Big Endian) Για το παράδειγμα της προηγούμενης διαφάνειας (g = h + A[5];): lw $t0, 20($s3) # byte address του offset είναι 5x4=20 add $s1, $s2, $t0 13

14 Εντολές Φόρτωσης και Αποθήκευσης - Παράδειγμα Κώδικας C: A[12] = h + A[8]; Κώδικας MIPS: lw $t0, 32($s3) # 32 = 8x4 add $t0, $s2, $t0 sw $t0, 48($s3) # store word Ο μεταγλωττιστής συσχετίζει: base register σε $s3 (έχει τη διεύθυνση της 1 ης λέξης του πίνακα A) μεταβλητή h στον καταχωρητή $s2 Η εντολή sw έχει τον τελεστή αποτελέσματος τελευταίο Θυμηθείτε ότι για αριθμητικές εντολές, όλοι οι τελεστές πρέπει να είναι καταχωρητές, όχι διευθύνσεις μνήμης! add 48($s3), $s2, 32($s3) -- Άκυρο 14

15 Αριθμητικές Εντολές με Σταθερούς -- Άμεσες Εντολές Θεωρήστε ότι ο αριθμός 4 είναι ένας σταθερός στη γλώσσα C και έχει αποθηκευτεί στην διεύθυνση της μνήμης AddrConstant4. Η αρχική διεύθυνση στη μνήμη που έχει τα δεδομένα του προγράμματος βρίσκεται στον καταχωρητή $s1. Για να προσθέσουμε το 4 στον $s3: lw $t0, AddrConstant4($s1) # $t0 = constant 4 add $s3, $s3, $t0 # $s3 = $s3 + $t0 ή addi $s3, $s3, 4 # $s3 = $s3 + 4 Ηεντολήaddi ονομάζεται «άμεση εντολή» (immediate instruction). Επιτρέπει ένας τελεστής να είναι σταθερός. 3 η Αρχή Σχεδιασμού: «Η συνήθης πράξη πρέπει να είναι γρήγορη» (Make the common case fast) 15

16 Άμεσες Εντολές MIPS (συν.) Δεν υπάρχει εντολή subi Λιγότερο κοινή στη C, Java Η εντολή addi μπορεί να χρησιμοποιηθεί αφού ο σταθερός μπορεί να είναι και αρνητικός αριθμός 16

17 Μέχρι στιγμής έχουμε μάθει: MIPS ηφόρτωση/αποθήκευση γίνεται με λέξεις (1 λέξη μεταφέρεται από/προς τη μνήμη) η διευθυνσιοδότηση γίνεται με bytes (byte addressing) αριθμητική μόνο με καταχωρητές Εντολή MIPS Πράξη που εκτελείται add $s1, $s2, $s3 $s1 = $s2 + $s3 addi $s1, $s2, 100 $s1 = $s sub $s1, $s2, $s3 $s1 = $s2 $s3 lw $s1, 100($s2) $s1 = Memory[$s2+100] sw $s1, 100($s2) Memory[$s2+100] = $s1 17

18 Γλώσσα Μηχανής Διάταξη Εντολών Οι εντολές κρατούνται στον υπολογιστή ως μια σειρά από ηλεκτρικά σήματα ψηλής ή χαμηλής τάσης δυαδικά ψηφία Οι εντολές, όπως και οι καταχωρητές και οι λέξεις δεδομένων, αποτελούνται από 32 bits Ο κάθε καταχωρητής έχει ένα αριθμό, από 1 σε 32. Π.χ. $t1=9, $s1=17, $s2=18 (θα δούμε ολοκληρωμένη λίστα σύντομα) Μορφή Εντολής (Instruction Format): καθορίζεται από τη διάταξη της εντολής Παράδειγμα: Θεωρήστε την αριθμητική εντολή add $t1, $s1, $s2 op rs rt rd shamt funct Διάταξη Αριθμητικής Εντολής Γλώσσα Μηχανής (Δεκαδικό) Γλώσσα Μηχανής (Δυαδικό) Μπορείτε να μαντέψετε τι σημαίνει το όνομα του κάθε πεδίου (field); 18

19 Διάταξη Εντολών Μηχανής (συν.) Κάθε πεδίο έχει αμετάβλητο μέγεθος και παρέχει στον υπολογιστή συγκεκριμένη πληροφορία: op (6 bits): opcode -- βασική πράξη της εντολής rs (5 bits): καταχωρητής για 1 ο τελεστή rt (5 bits): καταχωρητή για 2 ο τελεστή rd (5 bits): καταχωρητής αποτελέσματος shamt (5 bits): ποσόν ολίσθησης funct (6 bits): function code -- συγκεκριμένη αριθμητική λειτουργία Γιατί αναθέτουμε 5-bits για την αναπαράσταση των καταχωρητών; Ποιος είναι ο μεγαλύτερος αριθμός πράξεων που μπορούν να εκτελεστούν; 19

20 Διάταξη Εντολών Μηχανής (συν.) Για λόγους απλότητας και καλύτερης/ευκολότερης αναγνωσιμότητας, οι εντολές της μηχανής γράφονται στο δεκαεξαδικό (Hex) σύστημα, αντί στο δυαδικό. Ηεντολή ( ) 2 γίνεται ( ) 16 20

21 Είδη Διατάξεων Εντολών (συν.) Τι συμβαίνει αν μια εντολή απαιτεί μεγαλύτερα πεδία; Θεωρήστε τις εντολές load-word (lw) και store-word (sw), όπου πρέπει να καθοριστούν 2 καταχωρητές και 1 σταθερός Τι πρέπει να γίνει, βάση της Αρχής της Κανονικότητας; Καινούρια Αρχή: «Ο καλός σχεδιασμό απαιτεί συμβιβασμό» Εισάγουμε ένα νέο τύπο διάταξης εντολής I-type για άμεσες εντολές και εντολές μεταφοράς δεδομένων Ο προηγούμενος τύπος ονομάζεται R-type για εντολές με 3 καταχωρητές Παράδειγμα: lw $t0, 32($s2) bits 5 bits 5 bits 16 bits op rs rt 16 bit number Ποιος είναι ο συμβιβασμός; Πως θα ξεχωρίζουμε μεταξύ των 2 τύπων; 21

22 Κωδικοποίηση (Encoding) Εντολών MIPS Εντολή Τύπος op rs rt rd shamt funct Διεύθυνση add R 0 Reg Reg Reg sub R 0 Reg Reg Reg addi I 8 Reg Reg address lw I 35 Reg Reg address sw I 43 Reg Reg address Μέγεθος πεδίων (σε # bits): Πεδίο op rs rt rd shamt funct Διεύθυνση Μέγεθος 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 16 bits Οι εντολές add και sub έχουν το ίδιο πεδίο op Το πεδίο funct καθορίζει την αριθμητική εντολή (sub, add) που θα εκτελεστεί 22

23 Η έννοια του Αποθηκεμένου Προγράμματος Μια εντολή είναι ουσιαστικά μια στοιχειοσειρά δυαδικών ψηφίων (string of bits) Τα προγράμματα (εντολές) φυλάγονται στην μνήμη για γρήγορη ανάγνωση και γραφή, όπως γίνεται για τα δεδομένα Μνήμη Μικροεπεξεργαστής (Processor) Πρόγραμμα Επεξεργασίας Κειμένου (σε γλώσσα μηχανής) Μεταγλωττιστής C (σε γλώσσα μηχανής) Κείμενο Βιβλίου Πηγαίος Κώδικας C για Πρόγραμμα Επεξ. Κειμένου Κύκλος Προσκόμισης και Εκτέλεσης (Fetch & Execute Cycle) Η κάθε εντολή προσκομίζεται και τοποθετείται σε ειδικό καταχωρητή Κάποια bits του καταχωρητή «ελέγχουν» την ακόλουθη δραστηριότητα Προσκομίζεται η «επόμενη» εντολή Ο μετρητής προγράμματος (program counter) είναι ειδικός καταχωρητής που διατηρεί την διεύθυνση της επόμενης εντολής προς εκτέλεση 23

24 Εντολές Λογικής (Logic Instructions) Λογικές Πράξεις Τελεστής C ΤελεστήςJava Εντολή MIPS Ολίσθηση αριστερά << << sll Ολίσθηση δεξιά >> >>> srl Bit-by-bit AND & & and, andi Bit-by-bit OR or, ori Bit-by-bit NOT ~ ~ nor Το not υλοποιείται με nor και ένα τελεστή ίσο με μηδέν Για λειτουργίες ολίσθησης (sll, srl), πλήρωση με μηδέν and/or/not είναι πράξεις 3 ων -τελεστών/καταχωρητών, π.χ. and $t0, $t1, $t2 # $t0 = $t1 & $t2 nor $t0, $t1, $t2 # $t0 = ~( $t1 $t2 ) Ποιος τύπος διάταξης εντολής μπορεί να χρησιμοποιηθεί για αυτές τις εντολές λογικής (I-type of R-type); 24

25 Εντολές Λογικής (συν.) Υπάρχουν επίσης και οι εντολές andi και ori για άμεσες εντολές λογικής με σταθερό andi $s1, $s2, 100 # $s1 = $s2 & 100 ori $s1, $s2, 100 # $s1 = $s2 100 Ποιος τύπος διάταξης εντολής μπορεί να χρησιμοποιηθεί για αυτές τις εντολές λογικής (I-type of R-type); Εντολές Ολίσθησης (Shift): sll $t2, $s0, 4 # $t2 = $s0 << 4 Το περιεχόμενο του $s0 μετακινείται 4 bits αριστερά, τα 4 bits στα δεξιά παίρνουν την τιμή 0 και το αποτέλεσμα αποθηκεύεται στον $t2 Το 4 ονομάζεται το «ποσό ολίσθησης» (shift amount) και δηλώνεται στο πεδίο shamt της διάταξης εντολής R-type Ολίσθηση αριστερά κατά i bits δίνει πολλαπλασιασμό επί 2 i 25

26 Εντολές Ελέγχου (Control Instructions) Εντολές Λήψεως Αποφάσεων ή Εντολές Ελέγχου Αλλάζουν την ροή εκτέλεσης των εντολών Απαραίτητες αφού η σειρά εκτέλεσης των εντολών μπορεί να εξαρτάται από τις τιμές δεδομένων που πιθανόν να αλλάζουν κατά τη διάρκεια ενός προγράμματος Δηλ., καθορίζουν την «επόμενη» εντολή προς εκτέλεση Εντολές MIPS με διακλάδωση υπό συνθήκη (conditional branch): bne $t0, $t1, L1 # Εάν $t0 $t1 η επόμενη εντολή # βρίσκεται στη διεύθυνση L1 beq $t0, $t1, L1 # Εάν $t0 = $t1 η επόμενη εντολή # βρίσκεται στη διεύθυνση L1 Παράδειγμα: if (i==j) h = i + j; (i $s0, j $s1, h $s3)... bne $s0, $s1, L1 add $s3, $s0, $s1 L1:... 26

27 Εντολές Ελέγχου (συν.) Εντολές MIPS με διακλάδωση χωρίς συνθήκη (unconditional branch): j label Ονομάζεται και εντολή άλματος (jump instruction) Παράδειγμα: if (i!=j) beq $s4, $s5, Else h=i+j; add $s3, $s4, $s5 else j Exit h=i-j; Else: sub $s3, $s4, $s5 Exit:... Μπορείτε να υλοποιήσετε ένα απλό βρόγχο (for loop); 27

28 Εντολές Ελέγχου (συν.) Γλώσσα C While (save[i] == k) i += 1; i $s3 k $s5 Βάση/αρχική διεύθυνση του save[ ] στο $s6 save[ ] n k k k j x Assembly (ΜΙPS) 28

29 Μέχρι στιγμής έχουμε εξετάσει: Εντολή Πράξη που εκτελείται add $s1,$s2,$s3 $s1 = $s2 + $s3 sub $s1,$s2,$s3 $s1 = $s2 $s3 lw $s1,100($s2) $s1 = Memory[$s2+100] sw $s1,100($s2) Memory[$s2+100] = $s1 bne $s4,$s5,l Επόμενη εντολή στο L εάν $s4 $s5 beq $s4,$s5,l Επόμενη εντολή στο L εάν $s4 = $s5 j Label Επόμενη εντολή στο Label Εντολές Λογικής (and, or, nor, sll, srl) Άμεσες Εντολές (addi, andi, ori) Διατάξεις Εντολών: R I J op rs rt rd shamt funct op rs rt 16 bit address op 26 bit address 29

30 Ροή Ελέγχου Μέχρι στιγμής έχουμε τις εντολές ελέγχου beq και bne Υπάρχει και η λειτουργία branch-if-less-than (blt), συχνά χρήσιμη! Νέα εντολή (ανάθεση σε 0/1 εάν μικρότερο από): slt $t0, $s1, $s2 #$t0=1 εάν $s1<$s2, αλλιώς $t0=0 slti $t0, $s2, 10 #$t0=1 εάν $s2<10, αλλιώς $t0=0 Η MIPS δεν περιλαμβάνει την εντολή blt (branch-if-else) Αυτό γίνεται για λόγους απλότητας, για να διατηρηθεί ο κύκλος του ρολογιού μικρότερος Εναλλακτικά, στη MIPS χρησιμοποιούνται οι εντολές beq, bne, slt, slti και ο καταχωρητής $zero (πάντα περιέχει την τιμή 0) για την υλοποίηση της πράξης blt. Πως μπορεί να γίνει αυτή η υλοποίηση? 30

31 Μέχρι στιγμής έχουμε μάθει για τη ΜΙPS: Τελεστές (operands) MIPS Κατηγορία Τελεστών Παράδειγμα Σχόλια 32 καταχωρητές $s0, $s1, $s7 $t0, $t1, $t7 $zero -- Γρήγορος εντοπισμός δεδομένων. Τα δεδομένα πρέπει να βρίσκονται σε καταχωρητή για εκτέλεση αριθμητικής εντολής. -- Ο καταχωρητής $zero έχει πάντα την τιμή Οι καταχωρητές $s0--$s7 αντιστοιχούν σε και οι καταχωρητές $t0--$t7 σε μπιτες λέξεις στη μνήμη Memory[0], Memory[4], Memory[ ] -- Πρόσβαση μόνο από εντολές μεταφοράς δεδομένων. -- Η διεύθυνση δίνεται σε bytes, δηλ. δύο συνεχόμενες λέξεις διαφέρουν κατά Στη μνήμη αποθηκεύονται δομές δεδομένων όπως πίνακες, στοίβες, περιεχόμενα καταχωρητών. 31

32 Μέχρι στιγμής έχουμε μάθει για τη ΜΙPS (συν.): Γλώσσα MIPS Assembly (Εντολές) Κατηγορία Αριθμητικές Μεταφοράς Δεδομένων Εντολές Παράδειγμα Πράξη Σχόλια Πρόσθεση add $s1, $s2, $s3 $s1 = $s2 + $s3 3 τελεστές, δεδομένα σε καταχωρητές Αφαίρεση sub $s1, $s2, $s3 $s1 = $s2 - $s3 3 τελεστές, δεδομένα σε καταχωρητές Άμεση addi $s1, $s2, 100 $s1 = $s Πρόσθεση με σταθερό Πρόσθεση Φόρτωση lw $s1, 100($s2) $s1 = Memory[$s2+100] Δεδομένα από μνήμη σε Λέξης καταχωρητή Αποθήκευση Λέξης And and $s1, $s2, $s3 $s1 = $s2 & $s3 AND sw $s1, 100($s2) Memory[$s2+100] = $s1 Δεδομένα από καταχωρητή σε μνήμη Or or $s1, $s2, $s3 $s1 = $s2 $s3 OR Nor nor $s1, $s2, $s3 $s1 =~( $s2 $s3) NOR Λογικής Άμεσο And andi $s1, $s2, 100 $s1 = $s2 & 100 AND με σταθερό Άμεσο Or ori $s1, $s2, 100 $s1 = $s2 100 OR με σταθερό Ολίσθηση Αριστερά Ολίσθηση Δεξιά sll $s1, $s2, 10 $s1 = $s2 << 10 Ολίσθηση αριστερά από σταθερό slr $s1, $s2, 10 $s1 = $s2 >> 10 Ολίσθηση δεξιά από σταθερό 32

33 Μέχρι στιγμής έχουμε μάθει για τη ΜΙPS (συν.): Γλώσσα MIPS Assembly(Εντολές) συν. Κατηγορία Εντολές Παράδειγμα Πράξη Σχόλια Διακλάδωση υπό συνθήκη Διακλάδωση αν ισούνται Διακλάδωση αν δεν ισούνται Ανάθεση βάση τιμής beq $s1, $s2, L if ($s1 == $s2) go to L Έλεγχος ισότητας. Διεύθυνση σχετική με PC. bne $s1, $2, L if ($s1!= $s2) go to L Έλεγχος ανισότητας. Διεύθυνση σχετική με PC. slt $s1, $s2, $s3 if ($s2<$s3) $s1 = 1; else $s1 = 0 Σύγκριση για μικρότερο: για beq, bne Άμεση ανάθση βάση τιμής slti $s1, $s2, 100 if ($s2<100) $s1 = 1; else $s1 = 0 Σύγκριση για μικρότερο, με σταθερό: για beq, bne Διακλάδωση χωρίς συνθήκη Άλμα j L go to L Άλμα στη διεύθυνση. 33

34 Μέχρι στιγμής έχουμε μάθει για τη ΜΙPS (συν.): Γλώσσα Μηχανής MIPS (σε δεκαδικό) Όνομα Τύπος Παράδειγμα Σχόλια Διάταξης Add R add $s1, $s2, $s3 Sub R sub $s1, $s2, $s3 Addi I addi $s1, $s2, 100 Lw I lw $s1, 100($s2) Sw I sw $s1, 100($s2) Beq I beq $s1, $s2, 100 Bne I bne $s1, $s2, 100 Slt R slt $s1, $s2, $s3 Slti I slti $s1, $s2, 100 J J j Μέγεθος Πεδίου 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Όλες οι εντολές MIPS έχουν 32 bits Διάταξη R R op rs rt rd Shamt funct Διάταξη I I op rs rt Διεύθυνση / Σταθερός Διάταξη για εντολές μεταφοράς, διακλάδωσης, και άμεσες εντολές Διάταξη J J op Διεύθυνση Διάταξη για εντολή άλματος Διάταξη για αριθμητικές εντολές 34

35 Υποστήριξη Συναρτήσεων από Υλικό Συνάρτηση (Procedure ή Function ή Routine): Αποθηκεμένη μονάδα προγράμματος που υλοποιεί συγκεκριμένη εργασία βάση των παραμέτρων με τους οποίους καλείται Πλεονεκτήματα χρήσης συναρτήσεων: Καλύτερη δομή προγράμματος Αυξάνει την αναγνωσιμότητα του προγράμματος Επαναχρησιμοποίηση! 35

36 Υποστήριξη Συναρτήσεων από Υλικό (συν.) Τα 6 βήματα που πάντοτε ακολουθούνται για την εκτέλεση μιας συνάρτησης: 1. Αποθήκευση παραμέτρων σε χώρο που έχει πρόσβαση η συνάρτηση 2. Μεταφορά ελέγχου στη συνάρτηση 3. Απόκτηση αποθηκευτικών χώρων που απαιτούνται για την εκτέλεση της συνάρτησης 4. Διεξαγωγή (εκτέλεση) των εντολών της συνάρτησης 5. Αποθήκευση αποτελεσμάτων σε χώρο που έχει πρόσβαση το κύριο πρόγραμμα (calling program) 6. Επιστροφή ελέγχου στο σημείο προέλευσης του κύριου προγράμματος 36

37 Υποστήριξη Συναρτήσεων από Υλικό (συν.) Καταχωρητές για κλήση συνάρτησης: $a0 - $a3: καταχωρητές μεταβίβασης παραμέτρων στη συνάρτηση (4) $v0 - $v1: καταχωρητές αποθήκευσης αποτελεσμάτων προς το κύριο πρόγραμμα (2) $ra : καταχωρητής διεύθυνσης επιστροφής στο σημείο προέλευσης του κύριου προγράμματος Εντολή Κλήσης Συνάρτησης: jal ProcedureAddress εντολή jump-and-link: προχωρεί στη διεύθυνση της συνάρτησης ενώ συγχρόνως αποθηκεύει την διεύθυνση της εντολής που ακολουθεί τη συνάρτηση στον ειδικό καταχωρητή $ra, δηλ., καλεί τη συνάρτηση 37

38 Υποστήριξη Συναρτήσεων από Υλικό (συν.) Η έννοια του αποθηκεμένου προγράμματος υπονοεί ότι η διεύθυνση της εντολής που εκτελείται είναι πάντα γνωστή Φυλάγεται σε ένα καταχωρητή που ονομάζεται Μετρητής Προγράμματος (Program Counter -- PC) jal αποθηκεύει PC + 4 στον $ra. Γιατί? Πως επιστρέφουμε στο κύριο πρόγραμμα από μια συνάρτηση? jr $ra # άλμα (χωρίς συνθήκη) στη διεύθυνση # στον καταχωρητή $ra 38

39 Υποστήριξη Διαδικασιών από Υλικό (συν.) Συνοπτικά: Caller (= Κύριο Πρόγραμμα ή άλλη Συνάρτηση) Αποθηκεύει παραμέτρους στους $a0 - $a3 Εκτελεί την εντολή jal ProcedureAddress για να καλέσει την συνάρτηση Callee (= Συνάρτηση που καλείται) Εκτελεί τους υπολογισμούς της συνάρτησης Αποθηκεύει τα αποτελέσματα στους $v0 - $v1 Εκτελεί την εντολή jr $ra για να επιστρέψει στο κύριο πρόγραμμα ή την εντολή που την κάλεσε 39

40 Υποστήριξη Συναρτήσεων από Υλικό (συν.) Τι συμβαίνει αν η συνάρτηση απαιτεί περισσότερους καταχωρητές; Το περιεχόμενο των καταχωρητών που χρησιμοποιούνται από τη συνάρτηση αποθηκεύονται πριν αυτή καλεστεί, γιαναμπορούννα επαναφερθούν όταν η συνάρτηση τερματίσει/επιστρέψει Η αποθήκευση του περιεχόμενου καταχωρητών στη μνήμη ονομάζεται memory (or register) spilling Χρησιμοποιούμε τη στοίβα (stack) = δομή δεδομένων για αποθήκευση καταχωρητών, μέρος της μνήμης, δομή LIFO Δείκτης Στοίβας (Stack Pointer -- $sp) δείχνει στην πιο πρόσφατα καταχωρημένη διεύθυνση στη στοίβα (most recently allocated address in the stack) Χρησιμοποιούμε pop και push λειτουργίες για στοίβες 40

41 Παράδειγμα Θεωρήστε την πιο κάτω συνάρτηση σε C: int leaf_example (int g, int h, int i, int j) { int f; } f = (g + h) (i + j); return f; g $a0, h $a1, I $a2, j $a3, f $s0 Δώστε τον μεταγλωττισμένο κώδικα σε MIPS Assembly 41

42 Παράδειγμα (συν.) Leaf_example: # καλεί την συνάρτηση Register spilling στη στοίβα (push) addi $sp, $sp, -12 sw $t1, 8($sp) sw $t0, 4($sp) sw $s0, 0($sp) # κρατά χώρο στη στοίβα για 3 δεδομένα # φύλαξη (push) $t1 στη στοίβα # φύλαξη (push) $t0 στη στοίβα # φύλαξη (push) $s0 στη στοίβα Μεγάλη διεύθυνση Μεγάλη διεύθυνση Μεγάλη διεύθυνση $sp $sp-4 $sp-8 $sp-12 $sp+12 $sp+8 $sp+4 $sp $sp+12 $sp+8 $sp+4 $sp δεδομένα καταχωρητή $t1 δεδομένα καταχωρητή $t0 δεδομένα καταχωρητή $s0 Μικρή διεύθυνση Μικρή διεύθυνση Μικρή διεύθυνση Αρχικά η στοίβα είναι άδεια addi $sp, $sp, -12 sw sw sw $t1, 8($sp) $t0, 4($sp) $s0, 0($sp) 42

43 Παράδειγμα (συν.) Κυρίως Μέρος της συνάρτησης Αποθήκευση τιμής αποτελέσματος Επαναφορά καταχωρητών (pop) add $t0, $a0, $a1 add $t1, $a2, $a3 # $t0 = g + h # $t1 = i + j sub $s0, $t0, $t1 # f = (g + h) (i + j) add $v0, $s0, $zero # επιστροφή αποτελέσματος στον $v0 = f = $s0 + 0 lw $s0, 0($sp) lw $t1, 4($sp) lw $t0, 8($sp) addi $sp, $sp, 12 # επαναφορά $s0 από στοίβα # επαναφορά $t1 από στοίβα # επαναφορά $t0 από στοίβα # αφαίρεση 3 στοιχείων από την στοίβα Επιστροφή jr $ra # επιστροφή = jump πίσω στον caller 43

44 Επαναφορά καταχωρητών από στοίβα push (αποθήκευση) pop (επαναφορά) Μεγάλη διεύθυνση Μεγάλη διεύθυνση Μεγάλη διεύθυνση $sp+12 $sp+8 $sp+4 $sp δεδομένα καταχωρητή $t1 δεδομένα καταχωρητή $t0 δεδομένα καταχωρητή $s0 $sp+12 $sp+8 $sp+4 $sp δεδομένα καταχωρητή $t1 δεδομένα καταχωρητή $t0 δεδομένα καταχωρητή $s0 $sp $sp-4 $sp-8 $sp-12 Μικρή διεύθυνση Μικρή διεύθυνση Μικρή διεύθυνση $s0 sw sw sw $t1, 8($sp) $t0, 4($sp) $s0, 0($sp) δεδομένα $s0 $s0 lw lw lw $s0, 0($sp) $t0, 4($sp) $t1, 8($sp) δεδομένα απότηδιεύθυνση$sp+0 addi $sp, $sp, 12 Αφαίρεση στοιχείων από στοίβα, επαναφορά δείκτη στοίβας στην αρχική τιμή $t0 δεδομένα $t0 $t0 δεδομένα απότηδιεύθυνση$sp+4 $t1 δεδομένα $t1 $t1 δεδομένα απότηδιεύθυνση$sp+8 44

45 Υποστήριξη Συναρτήσεων από Υλικό (συν.) Πως γνωρίζουμε ποιος καταχωρητής πρέπει να φυλαχθεί πριν την εκτέλεση μιας συνάρτησης; Στη MIPS, οι καταχωρητές χωρίζονται σε 2 κατηγορίες: 1. $t0 - $t9: προσωρινοί καταχωρητές, δεν διατηρούνται 2. $s0 - $s7: αποθηκεμένοι (saved) καταχωρητές, πρέπει να διατηρηθούν αν χρησιμοποιούνται από συνάρτηση 45

46 Υποστήριξη Συναρτήσεων από Υλικό (συν.) Φωλιασμένες Συναρτήσεις: Μια συνάρτηση που ΔΕΝ καλεί άλλη συνάρτηση ή δεν έχει αναδρομή ονομάζεται leaf συνάρτηση Στην πράξη, πολλές συναρτήσεις δεν είναι αυτού του τύπου Είτε καλούν άλλες συναρτήσεις και/ή καλούν αναδρομικά τον εαυτό τους Θεωρήστε το πιο κάτω: Συνάρτηση A με παράμετρο 5($a0 = 5, $ra αναθέτεται) καλείται από το κύριο πρόγραμμα Συνάρτηση B με παράμετρο 10 (($a0 = 10, $ra αναθέτεται ξανά) καλείται από την συνάρτηση A Μπορεί η A να συνεχίσει με έγκυρα δεδομένα; Μπορεί η A να επιστρέψει στο κύριο πρόγραμμα; Χρησιμοποιούμε στοίβες ξανά (περισσότερα στο Εργαστήριο!!) 46

47 Υποστήριξη Συναρτήσεων από Υλικό (συν.) Στατικά (Static) Vs Αυτόματα (Automatic) δεδομένα: Θυμηθείτε την κατηγορία μεταβλητών στατικής μνήμης (static storage class) στη C οι μεταβλητές ισχύουν για ολόκληρο το πρόγραμμα (συμπεριλαμβανομένων όλων των συναρτήσεων) κοινές (public) μεταβλητές Σε αντίθεση, η κατηγορία μεταβλητών αυτόματης μνήμης (automatic storage class): οι μεταβλητές ισχύουν μόνο μέσα στη συνάρτηση από την οποία έχουν οριστεί τοπικές (local) μεταβλητές H MIPS ορίζει τον καταχωρητή $gp ως γενικό δείκτη (global pointer) ο οποίος χρησιμοποιείται για να δείχνει στο κομμάτι της μνήμης που περιέχει τα στατικά δεδομένα/μεταβλητές 47

48 Πολιτική Χρήσης Καταχωρητών Όνομα Αρ. Καταχωρητή Χρήση Φυλάγεται από συναρτήσεις; $zero 0 έχει πάντα την τιμή 0 - $v0-$v1 2-3 κρατούν τιμές αποτελεσμάτων που επιστρέφονται από συναρτήσεις όχι $a0-$a3 4-7 παραμέτροι συναρτήσεων όχι $t0-$t προσωρινοί όχι $s0-$s αποθηκεμένοι ναι $t8-$t επιπρόσθετοι προσωρινοί όχι $gp 28 γενικός δείκτης (global pointer) ναι $sp 29 δείκτης στοίβας (stack pointer) ναι $fp 30 δείκτης πλαισίου διαδικασίας (frame pointer) ναι $ra 31 διεύθυνση επιστροφής ναι Ο καταχωρητής 1 (ή $at) χρησιμοποιείται αποκλειστικά από τον συμβολομεταφραστή και οι καταχωρητές (ή $k0-$k1) χρησιμοποιούνται αποκλειστικά από το λειτουργικό σύστημα 48

49 Υποστήριξη Συναρτήσεων από Υλικό (συν.) Κατανομή μνήμης στη στοίβα για επιπρόσθετα δεδομένα από συναρτήσεις: Οι στοίβα μπορεί να χρησιμοποιηθεί και για αποθήκευση τοπικών δεδομένων/μεταβλητών μιας συνάρτησης. Αυτό συμβαίνει όταν τα τοπικά δεδομένα/μεταβλητές μιας συνάρτησης δεν μπορούν όλα να αποθηκευτούν σε καταχωρητές (π.χ. πίνακες) Πλαίσιο Συνάρτησης (procedure frame ή activation record): κομμάτι της στοίβας που περιέχει τους αποθηκεμένους καταχωρητές καιτατοπικάδεδομέναμιαςσυνάρτησης Δείκτης Πλαισίου (frame pointer) -- $fp: ο καταχωρητής που δείχνει στο πλαίσιο μιας συνάρτησης (δηλ., έχει την αρχική διεύθυνση που δείχνει στην 1 η λέξητουπλαισίουμιας συνάρτησης) 49

50 Υποστήριξη Συναρτήσεων από Υλικό (συν.) Μεγάλη διεύθυνση Μεγάλη διεύθυνση Μεγάλη διεύθυνση $sp, $fp $sp-4 $sp-8 $sp-12 Μικρή διεύθυνση $fp $sp Μικρή διεύθυνση Καταχωρητές παραμέτρων Διεύθυνση επιστροφής Αποθηκεμένοι καταχωρητές Τοπικά Δεδομένα Συνάρτησης $sp, $fp $sp-4 $sp-8 $sp-12 Μικρή διεύθυνση (α) (β) (γ) Κατανομή στοίβας (α) πριν, (β) μετά, και (γ) κατά τη διάρκεια κλήσεως συνάρτησης: $fp δείχνει στην 1 η λέξη του πλαισίου της συνάρτησης $sp δείχνει στην αρχή της στοίβας $sp αλλάζει κατά τη διάρκεια εκτέλεσης της συνάρτησης ενώ ο $fp είναι αμετάβλητος, άρα, για πρόσβαση στα δεδομένα χρησιμοποιείται ο $fp $fp αρχικοποιείται με την τιμή του $sp και η τιμή του $sp επαναφέρεται στο τέλος από τον $fp 50

51 Υποστήριξη Συναρτήσεων από Υλικό (συν.) Κατανομή μνήμης για επιπρόσθετα δεδομένα στη σωρό (heap) $sp 7fff fffc hex Στοίβα (Stack) $gp $pc hex hex hex 0 hex Δυναμικά Δεδομένα (Dynamic Data) Στατικά Δεδομένα (Static Data) Εντολές (Text) Λειτουργικό Σωρός: κομμάτι της μνήμης που παραχωρείται για δυναμικά δεδομένα (dynamic data) (malloc(), free()) Γλώσσα μηχανής του προγράμματος που εκτελείται Μνήμη 51

52 Επεξεργασία κειμένου Η αρχιτεκτονική MIPS παρέχει εντολές χρήσιμες για επεξεργασία κειμένου Θυμάστε τον κώδικα ASCII; 8-bit κώδικες για χαρακτήρες lb : φορτώνει ένα byte απότημνήμηστα8 πιο δεξιά bits ενός καταχωρητή sb: αποθηκεύει τα 8 πιο δεξιά bits ενός καταχωρητή στη μνήμη Για αντιγραφή ενός byte από ένα μέρος της μνήμης σε ένα άλλο μέρος της μνήμης: lb $t0, 0($sp) # διαβάζει 1 byte (= 1 χαρακτήρας) από $sp+0 στο $t0 sb $t0, 0($gp) # γράφει 1 byte από $t0 (= 1 χαρακτήρας) στη $gp+0 H MIPS επίσης υποστηρίζει εντολές για φόρτωση/αποθήκευση μισών λέξεων (half words = 16 bits), χρήσιμες για τον κώδικα Unicode που χρησιμοποιεί η Java lh $t0, 0($sp) # διαβάζει 2 bytes (= 1 χαρακτήρας) από $sp+0 στο $t0 sh $t0, 0($gp) # γράφει 2 bytes από $t0 (= 1 χαρακτήρας) στη $gp+0 52

53 Σταθεροί και Διευθύνσεις 32-bit Θέλουμε να φορτώσουμε ένα σταθερό με 32-bits σε ένα καταχωρητή, π.χ στον καταχωρητή $t0 Χρειαζόμαστε 2 εντολές: Καινούρια εντολή "load upper immediate" (φορτώνει στα 16 πιο σημαντικά bits) lui $t0, Machine code $t Συμπλήρωση με μηδενικά Για να πάρουμε τα 16 λιγότερο σημαντικά bits χρησιμοποιούμε την λογική εντολή: ori $t0, $t0, $t0 ori $t Στη MIPS, ο assembler είναι υπεύθυνος για τη δημιουργία των «μεγάλων» σταθερών ή διευθύνσεων (long constants/addresses) χρησιμοποιώντας τον ειδικό καταχωρητή $at 53

54 Κώδικας Assembly vs. Γλώσσα Μηχανής Η Assembly παρέχει συμβολική αναπαράσταση των εντολών, για λόγους διευκόλυνσης του προγραμματιστή Πολύ πιο εύκολο από το να γράφουμε με δυαδικούς / δεκαεξαδικούς αριθμούς Τυποποίηση, π.χ. ο καταχωρητής του αποτελέσματος πάντα πρώτος Η γλώσσα μηχανής (Machine language) είναι η πραγματικότητα που κρύβεται πίσω από την Assembly Π.χ. ο καταχωρητής του αποτελέσματος ΔΕΝ είναι πάντα πρώτος Η Assembly παρέχει «ψευδοεντολές» (pseudoinstructions) Π.χ., η εντολή move $t0, $t1 υπάρχει μόνο στην Assembly Η υλοποίηση της (== γλώσσα μηχανής) γίνεται με την εντολή add $t0,$t1,$zero Για ανάλυση απόδοσης πρέπει να μετρούμε τον αριθμό των πραγματικών εντολών, όχι των ψευδοεντολών 54

55 Επισκόπηση MIPS για διατάξεις εντολών Απλές εντολές, όλες των 32 bits Δομημένες εντολές, τυποποίηση Μόνο τρεις διαφορετικές διατάξεις εντολών R I J op rs rt rd shamt funct op rs rt 16 bit address op 26 bit address Βασιζόμαστε στον μεταγλωττιστή για επίτευξη απόδοσης ποιοι θα πρέπει να είναι οι στόχοι του μεταγλωττιστή; Πρέπει να βοηθούμε τον μεταγλωττιστή, όπου χρειάζεται, μέσω σωστού προγραμματισμού 55

56 Διευθύνσεις για Branches και Jumps Εντολές: bne $t4,$t5,label # Επόμενη εντολή στο Label εάν $t4 $t5 beq $t4,$t5,label # Επόμενη εντολή στο Label εάν $t4 = $t5 j Label # Επόμενη εντολή στο Label Διατάξεις εντολών: I J op rs rt 16 bit address op 26 bit address Οι διευθύνσεις στις δύο πιο πάνω διατάξεις δεν μπορούν να είναι 32 bits (μέγιστο 2 16 για I-type και 2 26 για J-type) Υποδηλώνει ότι κανένα πρόγραμμα δεν μπορεί να είναι μεγαλύτερο από 2 16 bytes ή 2 26 bytes (γιατί bytes και όχι bits;) Η μνήμη στη MIPS έχει 2 32 bytes (ή 2 30 words = 4Gbytes). Πως μπορούμε να έχουμε πρόσβαση σε ολόκληρη τη μνήμη από εντολές μεταφοράς δεδομένων (load/store); 56

57 Διευθύνσεις για Branches και Jumps (συν.) Εντολές διακλάδωσης υπό συνθήκη : bne $t4,$t5,label # Επόμενη εντολή στο Label εάν $t4 $t5 beq $t4,$t5,label # Επόμενη εντολή στο Label εάν $t4=$t5 (το Label είναι ουσιαστικά διεύθυνση που θα αποφασιστεί σε μεταγενέστερο στάδιο από τον μεταγλωττιστή/συμβολομεταφραστή) Διάταξη εντολής: I Διεύθυνση διακλάδωσης op rs rt 16 bit address Μπορούμε να καθορίσουμε ένα καταχωρητή του οποίου τα δεδομένα θα προστεθούν στην διεύθυνση της διακλάδωσης (όπως γίνεται για τις εντολές lw και sw). Έτσι, η εντολή διακλάδωσης θα υπολογίσει: PC = τιμή καταχωρητή + διεύθυνση διακλάδωσης Αυτό επιτρέπει σε ένα πρόγραμμα να είναι μέχρι και 2 32 bytes και συγχρόνως να μπορεί να χρησιμοποιεί διακλαδώσεις υπό συνθήκη Αυτός ο τρόπος διευθυνσιοδότησης ονομάζεται relative addressing mode (η πραγματική διεύθυνση διακλάδωσης υπολογίζεται σχετικά με τα δεδομένα ενός καταχωρητή) Οι περισσότερες διακλαδώσεις υπό συνθήκη είναι τοπικές (ακολουθούν την αρχή της τοπικότητας), και επομένως χρησιμοποιούμε: PC-relative addressing: PC = PC + διεύθυνση διακλάδωσης 57

58 Διευθύνσεις για Branches και Jumps (συν.) Εντολή άλματος (jump): j Label # Επόμενη εντολή στο Label jal Label # Καλεί την συνάρτηση Label Διάταξη εντολής: Διεύθυνση Άλματος J op 26-bit address Ψευδοάμεση Διευθυνσιοδότηση (Pseudodirect addressing) PC = 4 MSBs του PC && διεύθυνση άλματος Οι εντολές άλματος χρησιμοποιούν τα 4 πιο σημαντικά ψηφία (MSBs) του PC Παρέχει πρόσβαση στις διευθύνσεις μεταξύ των 64 Mbytes 1Gbyte. Γιατί; Ποιο είναι το μέγιστο της διεύθυνσης άλματος; ( Mbyte?) 58

59 Διευθύνσεις για Branches και Jumps (συν.) H MIPS αυξάνει την απόσταση των διακλαδώσεων και των αλμάτων περαιτέρω: ΗδιεύθυνσηMIPS είναι σχετική με την επόμενη εντολή (PC+4) αντί την τρέχουσα εντολή (PC) Η διεύθυνση αναφέρεται σε λέξεις (words - w) αντί σε bytes (b, όπου w = b*4) Έτσι, η διεύθυνση διακλάδωσης ή άλματος μπορεί να είναι 4 φορές μεγαλύτερη PC-relative addressing γίνεται: PC = (PC+4) + (διεύθυνση διακλάδωσης *4) Pseudodirect addressing γίνεται: PC = 4 MSBs του PC && (διεύθυνση άλματος *4) 59

60 Παράδειγμα Θυμηθείτε τον βρόχο (σελ. 74): while (save[i] == k) i++; Loop: sll $t1, $s3, 2 # $t1 = 4*i add $t1, $t1, $s6 # $t1 = address of save[i] lw $t0, 0($t1) # $t0 = save[i] bne $t0, $s5, Exit # go to Exit if save[i] k addi $s3, $s3, 1 # i++ j Loop # loop again Exit: # out of the loop Μεταγλωττισμένες εντολές και οι διευθύνσεις αποθήκευσής τους Loop: sll add lw bne addi j Exit: 60

61 Παράδειγμα (συν.) PC-relative addressing για bne $t0, $s5, Exit PC = (PC+4 ) + (διεύθυνση διακλάδωσης *4) PC = ( ) + (2*4) = (διεύθυνση του Exit) Pseudodirect addressing για j Loop PC = (4 MSBs of PC) + (διεύθυνση άλματος *4) PC = (0000) 2 && (20000*4) 10 = (διεύθυνση του Loop) Μεταγλωττισμένες εντολές και οι διευθύνσεις αποθήκευσής τους Loop: sll add lw bne addi j Exit: 61

62 Εναλλακτικός τρόπος για μακρινή διακλάδωση Θεωρήστε ότι $s0 = $s1. Αντικαταστήστε την πιο κάτω εντολή με μία ή περισσότερες εντολές έτσι ώστε να αυξηθεί η απόσταση της διακλάδωσης (branching distance) beq $s0, $s1, L1 62

63 Εναλλακτικός τρόπος για μακρινή διακλάδωση Θεωρήστε ότι $s0 = $s1. Αντικαταστήστε την πιο κάτω εντολή με μία ή περισσότερες εντολές έτσι ώστε να αυξηθεί η απόσταση της διακλάδωσης (branching distance) beq $s0, $s1, L1 Λύση: bne j L2: $s0, $s1, L2 L1 Μπορεί κάποιος να εξηγήσει τι έγινε? 63

64 Συνοπτικά: MIPS operands Name Example Comments $s0-$s7, $t0-$t9, $zero, Fast locations for data. In MIPS, data must be in registers to perform 32 registers $a0-$a3, $v0-$v1, $gp, arithmetic. MIPS register $zero always equals 0. Register $at is $fp, $sp, $ra, $at reserved for the assembler to handle large constants. Memory[0], Accessed only by data transfer instructions. MIPS uses byte addresses, so 2 30 memory Memory[4],..., sequential words differ by 4. Memory holds data structures, such as arrays, words Memory[ ] and spilled registers, such as those saved on procedure calls. MIPS assembly language Category Instruction Example Meaning Comments add add $s1, $s2, $s3 $s1 = $s2 + $s3 Three operands; data in registers Arithmetic subtract sub $s1, $s2, $s3 $s1 = $s2 - $s3 Three operands; data in registers add immediate addi $s1, $s2, 100 $s1 = $s Used to add constants load word lw $s1, 100($s2) $s1 = Memory[$s ] Word from memory to register store word sw $s1, 100($s2) Memory[$s ] = $s1 Word from register to memory Data transfer load byte lb $s1, 100($s2) $s1 = Memory[$s ] Byte from memory to register store byte sb $s1, 100($s2) Memory[$s ] = $s1 Byte from register to memory load upper immediate lui $s1, 100 $s1 = 100 * 2 16 Loads constant in upper 16 bits branch on equal beq $s1, $s2, 25 if ($s1 == $s2) go to PC branch on not equal bne $s1, $s2, 25 if ($s1!= $s2) go to Conditional PC branch set on less than slt $s1, $s2, $s3 if ($s2 < $s3) $s1 = 1; else $s1 = 0 Equal test; PC-relative branch Not equal test; PC-relative Compare less than; for beq, bne set less than immediate slti $s1, $s2, 100 if ( $s2 < 100) $s1 = 1; else $s1 = 0 Compare less than constant jump j 2500 go to Jump to target address Uncondi- jump register jr $ra go to $ra For switch, procedure return tional jump jump and link jal 2500 $ra = PC + 4; go to For procedure call 64

65 Τρόποι Καθορισμού Διεύθυνσης (Συνοπτικά): 1. Immediate addressing op rs rt Immediate 2. Register addressing op rs rt rd... funct Registers Register 3. Base addressing op rs rt Address Memory Register + Byte Halfword Word 4. PC-relative addressing op rs rt Address Memory PC + Word 5. Pseudodirect addressing op Address Memory PC Word 65

66 Μετάφραση και Εκτέλεση Προγράμματος (x.c x.c) Πρόγραμμα C (Αρχεία Unix Αρχεία Dos) Μεταγλωττιστής (x.s x.asm) Πρόγραμμα Assembly Συμβολομεταφραστής (x.o x.obj) (x.a,x.so x.lib, x.dll) Γλώσσα Μηχανής για Πρόγραμμα C Βιβλιοθήκες σε Γλώσσα Μηχανής Συνδετικός Συντάκτης Μνήμη Φορτωτής Εκτελέσιμο Πρόγραμμα (Γλώσσα Μηχανής) (a.out x.exe) 66

67 Μεταγλωττιστής (Compiler) Πρόγραμμα C Μεταγλωττιστής Πρόγραμμα Assembly Μεταφράζει από γλώσσα υψηλού επιπέδου σε κώδικα assembly Πολύπλοκο πρόγραμμα (η ανάπτυξη μεταγλωττιστών αποτελεί συνήθως ολόκληρο μάθημα που διδάσκεται στο 4 ο έτος, θεωρείται ως ένα από τα πιο δύσκολα μαθήματα!) 67

68 Συμβολομεταφραστής (Assembler) Πρόγραμμα Assembly Συμβολομεταφραστής Γλώσσα Μηχανής για Πρόγραμμα C Διασύνδεση μεταξύ του λογισμικού και του υλικού ενός υπολογιστή Μπορούμε να χρησιμοποιήσουμε ψευδοεντολές, όπως: move add με $zero blt slt, bne mult sll Ο συμβολομεταφραστής της MIPS χρησιμοποιεί το δεκαεξαδικό σύστημα αριθμών 68

69 Συμβολομεταφραστής (συν.) Το αρχείο του εκτελέσιμου κώδικα περιέχει (στο Unix): 1. Κεφαλίδα (Header): καθορίζει το μέγεθος/τοποθεσία των υπολοίπων μερών 2. Κείμενο (Text segment): περιέχει τη γλώσσα μηχανής (εκτελέσιμο κώδικα) 3. Στατικά δεδομένα (Static data segment): τα στατικά δεδομένα του προγράμματος 4. Πληροφορίες μετατόπισης (Relocation information): προσδιορίζει λέξεις εντολών/δεδομένων βάση απόλυτων διευθύνσεων 5. Πίνακας συμβόλων (Symbol table): ταιριάζει τα ονόματα των labels με απόλυτες διευθύνσεις (word addresses) στη μνήμη 6. Πληροφορίες αποσφαλμάτωσης (Debugging information): περιγραφή του τρόπου μεταγλωττισμού ώστε να μπορεί να συσχετιστεί η γλώσσα της μηχανής με τις εντολές γλώσσας υψηλού επιπέδου (π.χ. C). 69

70 Συνδετικός Συντάκτης (Linker or Link Editor) Γλώσσα Μηχανής για Πρόγραμμα C Βιβλιοθήκες σε Γλώσσα Μηχανής Συνδετικός Συντάκτης Εκτελέσιμο Πρόγραμμα (Γλώσσα Μηχανής) Συνδυάζει προγράμματα που έχουν μεταγλωττιστεί και συμβολομεταφραστεί ανεξάρτητα σε ένα ενιαίο εκτελέσιμο κώδικα Επιτρέπει τη χρήση προκαθορισμένων και ήδη συμβολομεταφρασμένων βιβλιοθηκών κώδικα Επιλύει όλα τα ακαθόριστα labels (σε απόλυτες διευθύνσεις) Χρησιμοποιεί τις πληροφορίες μετατόπισης και τον πίνακα συμβόλων που είναι μέρη του εκτελέσιμου αρχείου (object file) Καθορίζει την απόλυτη διεύθυνση στη μνήμη για την κάθε συνάρτηση / ενότητα (δείτε περισσότερα στο βιβλίο σας, παράδειγμα στις σελ ) 70

71 Φορτωτής (Loader) Εκτελέσιμο Πρόγραμμα (Γλώσσα Μηχανής) Φορτωτής Μνήμη Τοποθετεί το εκτελέσιμο πρόγραμμα (machine code με απόλυτες διευθύνσεις) στην κυρίως μνήμη Πρέπει να εντοπίσει αρκετό χώρο στη μνήμη που να μπορεί να κρατήσει ολόκληρο το πρόγραμμα Αντιγράφει τα δεδομένα από τον δίσκο στη μνήμη Αντιγράφει τις παραμέτρους του προγράμματος στη στοίβα Αρχικοποιεί τους καταχωρητές και θέτει τον δείκτη στοίβας Πηδά στην διεύθυνση της αρχικής συνάρτησης 71

72 Στατικές και Δυναμικές Βιβλιοθήκες (Static vs. Dynamic Libraries) Στατικές Οι βιβλιοθήκες συνδέονται και φορτώνονται πριν την εκτέλεση του προγράμματος Γρηγορότερη εκτέλεση Καινούριες εκδόσεις πρέπει να ξανα-συνδεθούν και να ξανα-φορτωθούν Απαιτεί περισσότερο χώρο (φορτώνεται ολόκληρη η βιβλιοθήκη) Δυναμικές Οι βιβλιοθήκες ΔΕΝ συνδέονται ΟΥΤΕ φορτώνονται ΜΕΧΡΙ τη στιγμή που εκτελείται το πρόγραμμα Πιο αργή εκτέλεση Οι καινούριες εκδόσεις υποστηρίζονται αυτόματα Μειωμένος χώρος Σύνδεση Lazy procedure: μια ρουτίνα συνδέεται μόνο αφότου έχει καλεστεί, έτσι δεν συνδέονται/φορτώνονται αχρησιμοποίητες ρουτίνες 72

73 Άλλες Αρχιτεκτονικές (ISAs) Εναλλακτικές Σχεδιασμού: Παροχή πιο ισχυρών εντολών Ο στόχος είναι να μειωθεί ο αριθμός των εντολών που εκτελούνται για να διεκπεραιωθεί μια λειτουργία Ο κίνδυνος έγκειται στην αύξηση της περιόδου του ρολογιού (cycle time) και/ή τουcpi (CPI = αριθμός Clock cycles Per Instruction) The path toward operation complexity is thus fraught with peril. To avoid these problems, designers have moved toward simpler instructions ΘαδούμεσεσυντομίατοISA της Intel IA-32 73

74 Intel IA : Ανακοινώνεται ο Intel 8086 (16 bit architecture), προέκταση του 8080 (8-bit architecture). Όχι γενικής χρήσεως καταχωρητές. 1980: Προσθήκη του 8087 με δυνατότητα αναπαράστασης κινητής υποδιαστολής (60 καινούριες fp εντολές) 1982: Ο αυξάνει το μέγεθος των διευθύνσεων σε 24 bits, + νέες εντολές 1985: Ο επεκτείνει σε 32 bits, νέους τρόπους διευθυνσιοδότησης μηχανή με καταχωρητές γενικής χρήσεως : Οι 80486, Pentium, Pentium Pro προσθέτου κάποιες καινούριες εντολές (έχουν βελτιστοποιηθεί κυρίως για μεγαλύτερη απόδοση) 1997: 57 νέες MMX (Multi Media extension) εντολές στον Pentium II 1999: Ο Pentium III πρόσθεσε άλλες 70 εντολές (SSE=Streaming SIMD), και 8 ξεχωριστούς καταχωρητές των 128-bits 2001: Άλλες 144 εντολές (SSE2) στον Pentium : AMD επεκτείνει την αρχιτεκτονική και αυξάνει το μέγεθος των διευθύνσεων σε 64 bits, πλάτυνε όλους τους καταχωρητές σε 64 bits, κτλ (AMD64) 2004: Η Intel συνθηκολογεί και ενστερνίζεται τον AMD64 (τον ονομάζει EM64T) και προεκτείνει με επιπρόσθετες εντολές για πολυμέσα This history illustrates the impact of the golden handcuffs of compatibility (keep extending architecture for software s sake) adding new features as someone might add clothing to a packed bag an architecture that is difficult to explain and impossible to love 74

75 IA-32 - Συνοπτικά Πολυπλοκότητα: Οι εντολές διαφέρουν σε μέγεθος από 1 σε 17 bytes Ένας τελεστής λειτουργεί και ως τελεστής πηγής και τελεστής αποτελέσματος Ένας τελεστής μπορεί να έρθει απευθείας από τη μνήμη Πολύπλοκοι τρόποι διευθυνσιοδότησης π.χ., βάση ή κλιμακωτός δείκτης με μετακίνηση 8 ή 32 bit Για εύκολη μεταχείριση : Οι πιο συχνο-χρησιμοποιημένες εντολές δεν είναι δύσκολο να υλοποιηθούν Οι μεταγλωττιστές αποφεύγουν τα μέρη της αρχιτεκτονικής που είναι αργά what the 80x86 lacks in style is made up in quantity, making it beautiful from the right perspective 75

76 IA-32: Καταχωρητές και Τρόπος Καθορισμού Διεύθυνσης Δεδομένων Οι καταχωρητές των 32-bit προέρχονται από τον Name 31 0 Use EAX GPR 0 ECX EDX EBX ESP EBP ESI EDI GPR 1 GPR 2 GPR 3 GPR 4 GPR 5 GPR 6 GPR 7 CS SS DS ES FS GS Code segment pointer Stack segment pointer (top of stack) Data segment pointer 0 Data segment pointer 1 Data segment pointer 2 Data segment pointer 3 EIP EFLAGS Instruction pointer (PC) Condition codes 76

77 IA-32 Περιορισμοί Καταχωρητών Οι καταχωρητές δεν είναι όλοι γενικής χρήσεως προσέξετε τους περιορισμούς που φαίνονται πιο κάτω 77

78 IA-32 Τυπικές Εντολές 4 βασικά είδη εντολών ακεραίων: Μεταφορά δεδομένων, συμπεριλαμβανομένων των move, push, pop Αριθμητικές και λογικές (αποτέλεσμα σε καταχωρητή ή μνήμη) Ροή Ελέγχου (χρήση condition codes / flags ) Εντολές στοιχειοσειρών, συμπεριλαμβανομένων των string move και string compare 78

79 IA-32 Διατάξεις Εντολών Τυπικές μορφές: (προσέξετε το διαφορετικό μέγεθος, σε αντίθεση με τη MIPS όπου το μέγεθος είναι σταθερό) a. JE EIP + displacement JE Condition Displacement b. CALL 8 32 CALL Offset c. MOV EBX, [EDI + 45] MOV d w r/m Postbyte Displacement d. PUSH ESI 5 3 PUSH Reg e. ADD EAX, # ADD Reg w Immediate f. TEST EDX, # TEST w Postbyte Immediate 79

80 Βασικά συμπεράσματα 2 ου Κεφαλαίου Η πολυπλοκότητα του συνόλου εντολών είναι μόνο ένας παράγοντας που επηρεάζει την απόδοση ενός υπολογιστή Μικρότερος αριθμός εντολών vs. Μεγαλύτερο CPI ή μικρότερο κύκλο/περίοδο ρολογιού Αρχές Σχεδιασμού: «Η απλότητα ευνοεί την κανονικότητα» (simplicity favors regularity) «Το μικρότερο είναι και το γρηγορότερο» (smaller is faster) «Ο καλός σχεδιασμό απαιτεί συμβιβασμό» (good design demands compromise) «Η συνήθης πράξη πρέπει να είναι γρήγορη» (Make the common case fast) Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture ISA) Ένα σημαντικότατο μοντέλο αφαιρετικότητας! 80

81 Άλλα σημαντικά θέματα Βελτιστοποίηση Μεταγλωττιστή Πίνακες vs. Δείκτεςσεγλώσσαυψηλούεπιπέδουκαι ο αντίκτυπός τους στην Assembly Μεγαλύτερα/ολοκληρωμένα παραδείγματα μετάφρασης από υψηλή γλώσσα επιπέδου σε Assembly και γλώσσα μηχανής Όλα τα πιο πάνω θέματα θα εξεταστούν με περισσότερη λεπτομέρεια στο εργαστήριο (ΗΜΥ 213). 81

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

Διαβάστε περισσότερα

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 3 Εντολές του MIPS (2) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Y Παράδειγμα (συνέχεια από προηγ. διάλεξη) $s3 = &A[0] = 0x0001080 &A[8]

Διαβάστε περισσότερα

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

Διαβάστε περισσότερα

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

LANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή INSTRUCTIONS LANGUAGE OF THE MACHINE Οργάνωση Υπολογιστή Τυπική οργάνωση υπολογιστή 1 Εκτέλεση προγραμμάτων σε υπολογιστή INSTRUCTION SET Οι λέξεις στη γλώσσα μηχανής ονομάζονται εντολές (instructions)

Διαβάστε περισσότερα

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

Διαβάστε περισσότερα

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 2 ο Σύνολα Εντολών Οι εντολές που εκτελεί ο κάθε επεξεργαστής (ή οικογένεια επεξεργαστών) MIPS ARM SPARC PowerPC IA-32 Αρχιτεκτονικές συνόλου εντολών Βασικές Έννοιες Εντολές μηχανής

Διαβάστε περισσότερα

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΑΚΑ ΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture-ISA) 1 Ένας υπολογιστής

Διαβάστε περισσότερα

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly Αρης Ευθυμίου Το σημερινό μάθημα! Σύνταξη εντολών! Θέματα σχετικά με τη προσπέλαση, οργάνωση μνήμης διευθύνση για κάθε byte διευθύνσεις λέξεων

Διαβάστε περισσότερα

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

Διαβάστε περισσότερα

Συναρτήσεις-Διαδικασίες

Συναρτήσεις-Διαδικασίες ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 4 Συναρτήσεις-Διαδικασίες Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Διαδικασίες (procedures) Γνωστές και σαν υπορουτίνες (subroutines)

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Data-Level Parallelism Linking & Loading

Data-Level Parallelism Linking & Loading ΗΥ 232 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Διάλεξη 18 Data-Level Parallelism Linking & Loading Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Y (ECE 232) 1

Διαβάστε περισσότερα

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ.

Διαβάστε περισσότερα

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

Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer) Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer) 1 Τι θα μάθουμε σε αυτό το Κεφάλαιο: Instructions (Εντολές): the words of the computer language human form: Assembly language

Διαβάστε περισσότερα

Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1

Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1 Τεχνολογίες ημιαγωγών Chapter 2 Instructions: Language of the Computer 1 Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Διαφάνειες

Διαβάστε περισσότερα

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 3-4: Προγραμματισμός MIPS Προγραμματισμός σε Συμβολική Γλώσσα Η συμβολική γλώσσα: δεν έχει τύπους, δεν έχει δηλώσεις μεταβλητών, δεν έχει δομές ελέγχου, δεν έχει εντολές βρόχων,

Διαβάστε περισσότερα

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

Διαβάστε περισσότερα

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

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις Άσκηση 1: Σωστό/Λάθος

Διαβάστε περισσότερα

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

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι

Διαβάστε περισσότερα

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

Διαβάστε περισσότερα

6. Επιστροφή ελέγχου στο σημείο εκκίνησης

6. Επιστροφή ελέγχου στο σημείο εκκίνησης Υποστήριξη διαδικασιών στο υλικό των υπολογιστών Βήματα στην εκτέλεση μιας διαδικασίας (procedure) 1. Τοποθέτηση παραμέτρων 2. Μεταβίβαση ελέγχου στη διαδικασία 3. Λήψη πόρων αποθήκευσης 4. Εκτέλεση επιθυμητής

Διαβάστε περισσότερα

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 7: Αποκωδικοποίηση Εντολής x86 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση Αρης Ευθυμίου Ανακοινώσεις! Βαθμοί: 1ης εργαστηριακής άσκησης Βαθμός 0 χωρίς σχόλια δεν έχω πάρει την άσκηση! ελέγξτε μήπως δεν το στέλνετε στο σωστό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Υποστήριξη διαδικασιών στο υλικό των υπολογιστών

Υποστήριξη διαδικασιών στο υλικό των υπολογιστών Βήματα στην εκτέλεση μιας διαδικασίας (procedure) 1. Τοποθέτηση παραμέτρων 2. Μεταβίβαση ελέγχου στη διαδικασία 3. Λήψη πόρων αποθήκευσης 4. Εκτέλεση επιθυμητής εργασίας 5. Τοποθέτηση αποτελέσματος σε

Διαβάστε περισσότερα

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

Αρχιτεκτονικη υπολογιστων ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονικη υπολογιστων Τζαγκαράκης Χαράλαμπος hatzagarak@cs.teicrete.gr Εισαγωγη: ο επεξεργαστης και η γλωσσα του Eπεξεργαστής: MIPS Microprocessor Without Interlocked

Διαβάστε περισσότερα

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

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος Ε.1 Σας δίνεται ο πιο κάτω κώδικας. Ξαναγράψτε τον ώστε να μειωθεί ο αριθμός των εντολών του αλλά διατηρώντας την ίδια λειτουργιά

Διαβάστε περισσότερα

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

MIPS functions and procedures

MIPS functions and procedures Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης MIPS functions and procedures Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath O επεξεργαστής: Η δίοδος δεδοµένων (path) και η µονάδα ελέγχου (control) Σχεδίαση path 4 κατηγορίες εντολών: Αριθµητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη µνήµη (lw, sw) I

Διαβάστε περισσότερα

Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή

Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή Σύνολο εντολών Σύνολο εντολών (Instruction set) Το «ρεπερτόριο» των εντολών ενός υπολογιστή Διαφορετικοί υπολογιστές έχουν διαφορετικά σύνολα εντολών Αλλά με

Διαβάστε περισσότερα

Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή

Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή Σύνολο εντολών Σύνολο εντολών (Instruction set) Το «ρεπερτόριο» των εντολών ενός υπολογιστή Διαφορετικοί υπολογιστές έχουν διαφορετικά σύνολα εντολών Αλλά με

Διαβάστε περισσότερα

Διαδικασίες ΙI. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 5

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

Διαβάστε περισσότερα

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

ΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών. Διδάσκων: Δρ. Γιώργος Ζάγγουλος ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr Single Cycle Datapath http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2017-18 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Αρχιτεκτονική x86-64) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2017-18 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Αρχιτεκτονική x86-64) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών

Διαβάστε περισσότερα

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 Αρης Ευθυμίου Το σημερινό μάθημα! Λυση του lab02! Αρχιτεκτονική ARM σε τι μοιάζει και σε τι διαφέρει από τον MIPS! Αρχιτεκτονική x86 μια γρήγορη ματιά στη

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 9 : Ομάδες Εντολών: Ιδιότητες και Λειτουργίες Ευάγγελος Καρβούνης Παρασκευή, 15/01/2016 Τι είναι ομάδα εντολών;

Διαβάστε περισσότερα

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

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

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πέτρος Παναγή Σελ. 1 Εργαστήριο Αρ. 1 Εισαγωγή στην Αρχιτεκτονική MIPS Πέτρος Παναγή Σελ. 1 Πώς Δημιουργείτε ένα Executable Αρχείο Source File: Ένα TEXT αρχείο με τον πυγαίο κώδικα. Assemble: Μεταφράζει τις assembly εντολές

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Κεφάλαιο 2 Ασκήσεις Άσκηση 1 Κώδικας C: f = g + h + B[4]; f = g A[B[4]]; f, g, h, στους $s0, $s1, $s2, και διευθύνσεις βάσης των πινάκων Α και Β στους $s6 και $s7 Ποιος είναι ο αντίστοιχος κώδικας MIPS;

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Μετάφραση ενός Προγράμματος Εξαιρέσεις

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

Διαβάστε περισσότερα

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

Τελική Εξέταση, Απαντήσεις/Λύσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 Τελική Εξέταση, Απαντήσεις/Λύσεις Άσκηση 1: Assembly για

Διαβάστε περισσότερα

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

ΠΛΕ- 027 Μικροεπεξεργαστές ΠΛΕ- 027 Μικροεπεξεργαστές 3ο μάθημα: γλώσσα μηχανής MIPS, προγραμματισμός assembly Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Stored Program Computers Αναπαράσταση

Διαβάστε περισσότερα

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

Τέτοιες λειτουργίες γίνονται διαμέσου του Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: Προσκόμιση της εντολής (fetch) από τη θέση που δείχνει ο PC Ανάγνωση των περιεχομένων ενός ή δύο καταχωρητών Τέτοιες λειτουργίες γίνονται διαμέσου

Διαβάστε περισσότερα

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή Εισαγωγή Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ Σκοπός του εργαστηρίου είναι να γνωρίσουµε την εσωτερική δοµή και αρχιτεκτονική της κεντρικής µονάδας επεξεργασίας, να κατανοήσουµε τον τρόπο µε τον οποίο λειτουργεί

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη. Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης,

Διαβάστε περισσότερα

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Intel x86 ISA. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Intel x86 ISA Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ RISC vs. CISC Η assembly των επεξεργαστών ARM, SPARC (Sun), και Power (IBM) είναι όμοιες

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου. Μανόλης Γ.Η.

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου. Μανόλης Γ.Η. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Ι Αρχιτεκτονική Υπολογιστών Ι Επιλεγμένες εντολές και συναρτήσεις assembly Από το βιβλίο Αρχιτεκτονική Υπολογιστών & Προγραμματισμός Assembly (Συγγραφέας / Εκδότης : Παναγιώτης Παπάζογλου) Δρ. Παναγιώτης

Διαβάστε περισσότερα

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Τι εννοούμε με τον όρο υπολογιστικό σύστημα και τι με τον όρο μικροϋπολογιστικό σύστημα; Υπολογιστικό

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό

Διαβάστε περισσότερα

Παραδείγματα Assembly (Μέρος

Παραδείγματα Assembly (Μέρος Παραδείγματα Assembly (Μέρος Β) 1 Άσκηση 1 Γράψτε ένα πρόγραμμα (4 εντολών) με το οποίο μπορείτε να προσθέσετε το περιεχόμενο των θέσεων μνήμης 0Χ30000000 και 0Χ30000001. Το αποτέλεσμα να αποθηκευτεί ως

Διαβάστε περισσότερα

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

Απλός επεξεργαστής (Επανάληψη) Απλός επεξεργαστής (Επανάληψη) Διάδρομος δεδομένων και μονάδα ελέγχου 4 ο κεφάλαιο Ο επεξεργαστής : Διάδρομος Δεδομένων και Έλεγχος Σε αυτό το κεφάλαιο θα μελετήσουμε την υλοποίηση του διαδρόμου δεδομένων

Διαβάστε περισσότερα

Τρόποι Διευθυνσιοδότησης

Τρόποι Διευθυνσιοδότησης Τρόποι Διευθυνσιοδότησης στους Μικροεπεξεργαστές MIPS-32 (Διάλεξη 2) 1 Τρόποι Διευθυνσιοδότησης Η διεύθυνση μνήμης μπορεί να δηλωθεί με 6 τρόπους : 1. Περιεχόμενο καταχωρητή: 2. Άμεση τιμή: 3. Άμεση τιμή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών 9 ο Μάθημα Γλώσσα Μηχανής Δυαδική Απεικόνιση Μέχρι στιγμής χρησιμοποιούμε την assembly: Δίνουμε ονόματα σε πράξεις (όπως add) και σε συντελεστές

Διαβάστε περισσότερα

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual MILE Simulator Version 1.0 User's Manual Νοέμβριος, 2011 Περιεχόμενα 1. Εισαγωγή στον προσομοιωτή...2 1.1 Εγκατάσταση...2 1.2 Βοήθεια Διευκρινήσεις...2 2. Ξεκινώντας με τον προσομοιωτή...3 2.1 Το memory

Διαβάστε περισσότερα

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

Προχωρηµένα Θέµατα Αρχιτεκτονικής Προχωρηµένα Θέµατα Αρχιτεκτονικής Μάθηµα 2 ο : Instruction Set Principles and Examples Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 1 Σχεδιασµός Συνόλου Εντολών Θέµατα που θα συζητηθούν ιαφορετικές επιλογές

Διαβάστε περισσότερα

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών

Διαβάστε περισσότερα

Άσκηση 1 (α) Άσκηση 1 (γ) Άσκηση 1 (β) Παραδείγματα Assembly. Άρα με έλεγχο στον $t1 αποφασίζω αν είναι 0 ή 1.

Άσκηση 1 (α) Άσκηση 1 (γ) Άσκηση 1 (β) Παραδείγματα Assembly. Άρα με έλεγχο στον $t1 αποφασίζω αν είναι 0 ή 1. (α) Παραδείγματα Assembly Εαρινό Εξάμηνο 2012 Γράψτε ένα μικρό πρόγραμμα (1-3 εντολές) με το οποίο μπορείτε να ανιχνεύσετε την τιμή του δυαδικού ψηφίου στη θέση 7 της θέσης μνήμης 0Χ23450009 εάν το λιγότερο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αρχιτεκτονικές Συνόλου Εντολών

Αρχιτεκτονικές Συνόλου Εντολών Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (Instruction Set Architectures - ISA) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ο

Διαβάστε περισσότερα

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

Διαβάστε περισσότερα

με έμφαση στο MIPS R2000

με έμφαση στο MIPS R2000 ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ενότητα 3 Αρχιτεκτονικές Συνόλου Εντολών με έμφαση στο MIPS R2000 Καθηγητής Αντώνης Πασχάλης

Διαβάστε περισσότερα

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια.

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια. Τομέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ134 - Εισαγωγή στην Οργάνωση και Σχεδίαση Η/Υ 1 Εργαστήριο 4 Εαρινό Εξάμηνο 2012-2013 Στόχοι του εργαστηρίου Χρήση στοίβας Συναρτήσεις ΠΡΟΣΟΧΗ: Αρχίστε νωρίς

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

Εντολές γλώσσας μηχανής Εντολές γλώσσας μηχανής Στον υπολογιστή MIPS η εντολή πρόσθεσε τα περιεχόμενα των καταχωρητών 17 και 20 και τοποθέτησε το αποτέλεσμα στον καταχωρητή 9 έχει την μορφή: 00000010001101000100100000100000 Πεδία

Διαβάστε περισσότερα

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

ΠΛΕ- 027 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου ΠΛΕ- 27 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου Αρης Ευθυμίου Δομή σύγχρονων υπολογιστών Κώδικας μηχανής Αρχιτεκτονικό συνόλο εντολών (InstrucDon Set Architecture ISA)

Διαβάστε περισσότερα

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;

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; Άσκηση 1 η Μέρος Α Ζητούμενο: Δίνεται το παρακάτω πρόγραμμα σε C καθώς και μια μετάφραση του σε assembly MIPS. Συμπληρώστε τα κενά. Σας υπενθυμίζουμε ότι ο καταχωρητής $0 (ή $zero) είναι πάντα μηδέν. int

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών Διδάσκοντες: Νικόλας Στυλιανίδης Γιώργος Ζάγγουλος Email: nstylianides@gmail.com zaggoulos.george@ucy.ac.cy Εισαγωγή στους Μικροεπεξεργαστές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κεντρική Μονάδα Επεξεργασίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Μονάδα Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 2 Εντολές: H γλώσσα μηχανής ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 2 Εντολές: H γλώσσα μηχανής Αρχιτεκτονική Σύνολο Εντολών MIPS (assembly) αναπαράσταση στο υλικό (ΜIPS) μετάφραση από HLL σε LLL Δομές ελέγχου

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία

Διαβάστε περισσότερα

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering Οργάνωση και Σχεδίαση Η/Y (HY232) Εργαστήριο 1 Χειμερινό Εξάμηνο 2016-2017 Στόχοι του εργαστηρίου Εντολές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα