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

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

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

Transcript

1 Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής και Τηλεπικοινωνιών Μάθηµα Αρχιτεκτονική Υπολογιστών Ι Εργαστηριακές Ασκήσεις. Γκιζόπουλος, Καθηγητής

2 Εργαστήριο Αρχιτεκτονικής Υπολογιστών I Προσοµοιωτής QtSpim του Μικροεπεξεργαστή MIPS Εργαστηριακή Άσκηση 1 Εισαγωγή Καταχωρητές Μνήµη Κλήσεις συστήµατος Εισαγωγή Σκοπός του πρώτου εργαστηριακού µαθήµατος είναι η εξοικείωση µε το περιβάλλον του προσοµοιωτή (simulator) και συµβολοµεταφραστή (assembler) QtSpim ο οποίος προσοµοιώνει τη λειτουργία του µικροεπεξεργαστή MIPS. Επίσης θα γίνει χρήση βασικών εντολών της συµβολικής γλώσσας του MIPS για µετακίνηση δεδοµένων µεταξύ µνήµης και καταχωρητών και την εκτέλεση λογικών πράξεων. Θα χρησιµοποιηθούν βασικές οδηγίες (directives) προς τον προσοµοιωτή, καθώς και οι κλήσεις συστήµατος (system calls) που υποστηρίζει ο προσοµοιωτής. Επίσης, θα χρησιµοποιηθεί η δυνατότητα προσοµοίωσης µε βηµατικό τρόπο (single step) και µε σηµεία διακοπής (breakpoints). Ο προσοµοιωτής είναι ήδη εγκατεστηµένος στο εργαστήριο σε λειτουργικό σύστηµα Windows, µπορείτε όµως για ιδιωτική χρήση να τον αντιγράψετε από την ιστοσελίδα του µαθήµατος (υπάρχουν διαθέσιµες οι εκδόσεις για Windows, Linux, και Mac). Ο προσοµοιωτής διατίθεται από τον σχεδιαστή του James Larus στη σελίδα και διανέµεται δωρεάν µε βάση το σχήµα δωρεάν αδειοδότησης λογισµικού BSD (Berkeley Software Distribution BSD license). Μέρος 1ο Εκτέλεση, τµήµα κώδικα και δεδοµένων, µεταφορά δεδοµένων Άσκηση 1.1 Εκκινήστε τον QtSpim και φορτώστε (File Load) το πρόγραµµα lab1_1.s που βρίσκεται στην ιστοσελίδα του µαθήµατος (ο κώδικας δίνεται και παρακάτω). Ανοίξτε µε έναν διορθωτή κειµένου (text editor) όπως το Notepad το αρχείο του παραδείγµατος. ## # lab1_1.s # # Pseudoinstruction examples - System calls # # t0 - holds each byte from string in turn # # t1 - contains count of characters # # t2 - points to the string # Καθηγητής [ 1 ]

3 ## ## # text segment # ##.text.globl start start: la $t2,str # t2 points to the string li $t1,0 # t1 holds the count nextch: lb $t0,($t2) # get a byte from string beqz $t0,strend # zero means end of string add $t1,$t1,1 # increment count add $t2,1 # move pointer one character j nextch # go round the loop again strend: la $a0,ans # system call to print li $v0,4 # out a message syscall move $a0,$t1 # system call to print li $v0,1 # out the length worked out syscall la $a0,endl # system call to print li $v0,4 # out a newline syscall li $v0,10 syscall # au revoir... # data segment #.data str:.asciiz "hello world" ans:.asciiz "Length is " endl:.asciiz "\n" # End of File # Παρατηρήστε στον QtSpim, στο παράθυρο του κώδικα (text) και των δεδοµένων (data), τις διευθύνσεις µνήµης που έχουν καταχωρηθεί ο κώδικας και τα δεδοµένα του προγράµµατος. Αντιπαραβάλλοντας τα περιεχόµενα του παραθύρου του κώδικα και του Notepad διαπιστώστε ποιες από τις εντολές του παραδείγµατος lab1_1.s είναι ψευδοεντολές (δηλαδή αναλύονται σε περισσότερες από µία πραγµατικές εντολές του επεξεργαστή MIPS ή αντιστοιχούν σε διαφορετικό µνηµονικό πραγµατικής εντολής MIPS). Το παράθυρο του κώδικα φαίνεται παρακάτω και δείχνει τη διεύθυνση κάθε εντολής (µέσα σε [ ]). Οι εντολές απέχουν µεταξύ τους 4 byte. Στη δεύτερη στήλη, δεξιά από τη στήλη που περιέχει τις διευθύνσεις, βρίσκεται η Καθηγητής [ 2 ]

4 στήλη µε το περιεχόµενο της κάθε λέξης εντολής (σε δεκαεξαδικό), ακολουθεί η πραγµατική εντολή µηχανής MIPS, και µετά το ελληνικό ερωτηµατικό φαίνεται η αντίστοιχη εντολή από τον πηγαίο κώδικα του αρχείου assembly. Παρατηρήστε ότι η ψευδοεντολή la (load address) αναλύεται σε δύο πραγµατικές εντολές (τις lui και ori) οι οποίες µαζί έχουν σαν αποτέλεσµα να φορτωθεί στον καταχωρητή $t2 η διεύθυνση της συµβολοσειράς str. Η διεύθυνση αυτή είναι η δεκαεξαδική 0x στην οποία αρχίζουν τα δεδοµένα του χρήστη (User Data). Παρατηρήστε την ψευδοεντολή move η οποία µετατρέπεται σε addu. Επίσης παρατηρήστε την ψευδοεντολή add $t2,1 η οποία µετατρέπεται από τον assembler στην πραγµατική εντολή MIPS addi $t2, $t2, 1 (αντί για $t2 βλέπετε $10 και το 10 είναι ο αριθµός του καταχωρητή $t2). Τόσο το µνηµονικό όνοµα της εντολής αλλάζει (αντί addi χρησιµοποιούµε στον πηγαίο κώδικα το add), όσο και το πλήθος των τελεστέων: ενώ οι πραγµατικές εντολές απαιτούν τρεις, εδώ στον πηγαίο κώδικα χρησιµοποιούµε µόνο δύο). Το παράθυρο δεδοµένων φαίνεται παρακάτω. Τα δεδοµένα χρήστη αρχίζουν στη δεκαεξαδική διεύθυνση 0x και κάθε γραµµή που ακολουθεί µια διεύθυνση δείχνει το περιεχόµενο 16 διαδοχικών byte της µνήµης. Για κάθε byte δίνεται αρχικά το δεκαεξαδικό του περιεχόµενο (π.χ. το byte στη διεύθυνση 0x είναι ίσο µε 0x6c δηλαδή δυαδικά ίσο µε ). Μετά τη δεκαεξαδική αναπαράσταση του περιεχοµένου του κάθε byte δίνεται ο ASCII χαρακτήρας που αυτό παριστάνει. Το 0x6c είναι ίσο µε 108 στο δεκαδικό και το 108 είναι ο ASCII κωδικός για το πεζό γράµµα της αγγλικής αλφαβήτου h. Βλέπετε ολόκληρη τη συµβολοσειρά hello world σε διαδοχικά byte της µνήµης. Όταν ένα byte αντιστοιχεί σε µη εκτυπώσιµο χαρακτήρα του ASCII κώδικα τότε βλέπουµε µια τελεία. Η τελεία που ακολουθεί το hello world είναι ο µηδενικός χαρακτήρας (null character) που στη C δηλώνει το τέλος µιας συµβολοσειράς. Μετά το hello world ακολουθεί η επόµενη συµβολοσειρά του προγράµµατος Length is. Καθηγητής [ 3 ]

5 Όταν µια µεταβλητή οποιουδήποτε τύπου δηλώνεται στο τµήµα δεδοµένων του προγράµµατος (Data Segment) µετά την οδηγία.data, τότε η µεταβλητή αποθηκεύεται αµέσως µετά την προηγούµενη µεταβλητή σε διαδοχικές θέσεις µνήµης. Καταλαµβάνει τόσα byte όσο είναι το µέγεθος του τύπου της. Εκτελέστε το πρόγραµµα µε βηµατικό τρόπο (Simulator Single Step ή F10) και παρατηρήστε τις αλλαγές των σχετικών καταχωρητών που µετέχουν στο παράδειγµα σε κάθε βήµα εκτέλεσης. Τα περιεχόµενα των καταχωρητών µπορείτε να τα βλέπετε στο σχετικό παράθυρο του QtSpim. Η εικόνα που ακολουθεί δείχνει το αρχικό περιεχόµενο των καταχωρητών πριν την εκτέλεση του προηγούµενου προγράµµατος (αριστερά) και το τελικό περιεχόµενό τους µετά την εκτέλεσή του (δεξιά). Προσέξτε, για παράδειγµα, την τελική τιµή του καταχωρητή $t1 ο οποίος µετρά το πλήθος των χαρακτήρων της συµβολοσειράς. Είναι ίση µε το δεκαεξαδικό b δηλαδή 11 στο δεκαδικό σύστηµα αρίθµησης που είναι και το σωστό αποτέλεσµα του προγράµµατος αφού το µήκος της συµβολοσειράς είναι 11 χαρακτήρες. Καθηγητής [ 4 ]

6 Άσκηση 1.2 Στην άσκηση αυτή θα φανούν οι διάφορες κατηγορίες εντολών φόρτωσης (load) και αποθήκευσης (store) καταχωρητών από/προς τη µνήµη που διαθέτει ο QtSpim. (α) ηµιουργήστε στο τµήµα δεδοµένων (data segment) την ακόλουθη διάταξη, χρησιµοποιώντας τις οδηγίες (directives).data,.byte και.word. Αυτές δεσµεύουν bytes και words αντίστοιχα στο τµήµα δεδοµένων της µνήµης. Byte Address Data Segment Byte and Word Address 0x x C 0x x x x x84 0x04 0x83 0x03 0x82 0x02 0x81 0x01 0x x (β) Στη συνέχεια, στο κυρίως πρόγραµµα χρησιµοποιήστε τις εντολές µη προσηµασµένης (ή απρόσηµης unsigned) φόρτωσης lbu (load byte unsigned) και lhu (load halfword unsigned) καθώς και την εντολή lw (load word) για να φορτώσετε στους καταχωρητές $t0, $t1 και $t2 τα bytes, half words και words, αντίστοιχα, που ξεκινούν από τη διεύθυνση 0x (αυτά που έχουν τιµές 0x01, 0x0201 και 0x , αντίστοιχα). Συµπληρώστε τον πίνακα που ακολουθεί. Καταχωρητές µε µη προσηµασµένη φόρτωση $t0 $t1 $t bits (γ) Κάντε το ίδιο (µη προσηµασµένη µεταφορά) αλλά αυτή τη φορά στους καταχωρητές $t3 $t4 και $t5 για τα bytes, half words και words που ξεκινούν από τη διεύθυνση 0x (αυτά που έχουν τιµές 0x81, 0x8281 και 0x , αντίστοιχα). Συµπληρώστε τον πίνακα που ακολουθεί. Καταχωρητές µε µη προσηµασµένη φόρτωση $t3 $t4 $t bits Καθηγητής [ 5 ]

7 (δ) Εµπλουτίστε το πρόγραµµα επαναλαµβάνοντας τις προηγούµενες µεταφορές χρησιµοποιώντας αυτή τη φορά τις εντολές προσηµασµένης (signed) φόρτωσης lb (load byte), lh (load half) και lw (η load word είναι η ίδια τόσο για τη προσηµασµένη όσο και την απρόσηµη µεταφορά). Χρησιµοποιήστε τους ίδιους καταχωρητές ($t0, $t1, $t2, $t3, $t4, $t5), βάζοντας ένα σηµείο διακοπής/breakpoint (µε δεξί κλικ επάνω στην εντολή που θέλετε να βάλετε το breakpoint και επιλογή Set Breakpoint από το µενού που θα εµφανιστεί) εκεί που αρχίζετε να τους ξαναχρησιµοποιείτε, έτσι ώστε να δείτε τα διαδοχικά περιεχόµενά τους κατά τις δύο φάσεις εκτέλεσης (πριν και µετά το breakpoint). Παρατηρήστε την επέκταση προσήµου που συµβαίνει κατά τις προσηµασµένες φορτώσεις. Συµπληρώστε τον παρακάτω πίνακα µε τις τιµές των καταχωρητών. Καταχωρητές µε προσηµασµένη φόρτωση $t0 $t1 $t2 $t3 $t4 $t bits (ε) Φορτώστε στον καταχωρητή $t6 µε µη προσηµασµένο τρόπο το byte της διεύθυνσης 0x και κατόπιν αποθηκεύστε το χαµηλό byte του καταχωρητή (µε την εντολή sb store byte) στην πρώτη διεύθυνση που είναι ελεύθερη (µετά τις πρώτες τέσσερις λέξεις που είναι ήδη αποθηκευµένες στη µνήµη). Ελέγξτε αν σε αυτήν την περίπτωση έχουµε επέκταση προσήµου. Η εικόνα που ακολουθεί δείχνει την επιθυµητή λειτουργία. Συµπληρώστε το περιεχόµενο της λέξης που ξεκινά από τη διεύθυνση 0x Byte Address Data Segment Byte and Word Address 0x x x C 0x x x x x84 0x04 0x83 0x03 0x82 0x02 0x81 0x01 0x x Καταχωρητής $t bits Καθηγητής [ 6 ]

8 (στ) Ένας πραγµατικός επεξεργαστής MIPS µπορεί να ρυθµιστεί κατά τη διάρκεια του hardware reset αν θα λειτουργεί βλέποντας τη µνήµη σαν big-endian ή little-endian (αυτή η ρύθµιση ισχύει και σε αρκετούς άλλους επεξεργαστές). Ο προσοµοιωτής QtSpim όµως χρησιµοποιεί τον τρόπο οργάνωσης που χρησιµοποιεί ο επεξεργαστής στον οποίο τρέχει η προσοµοίωση. Στην περίπτωση επεξεργαστών Intel το µοντέλο είναι littleendian. Πως θα αποθηκευόταν ο $t6 στη µνήµη αν ο επεξεργαστής ακολουθούσε το µοντέλο big-endian; Συµπληρώστε τον πίνακα. Data Segment Byte and Word Address 0x x Άσκηση 1.3 Στην άσκηση αυτή θα διευκρινιστεί η έννοια της ευθυγράµµισης (alignment) στη µνήµη. Μία λέξη των 4 bytes είναι ευθυγραµµισµένη όταν αποθηκεύεται σε διεύθυνση που είναι πολλαπλάσιο του 4. (α) Αλλάξτε το πρόγραµµα της προηγούµενης άσκησης διατηρώντας τη δοµή του τµήµατος δεδοµένων (data segment) και φορτώστε διαδοχικά στους καταχωρητές $t0, $t1 και $t2 τα byte (χωρίς επέκταση προσήµου), από τις διευθύνσεις 0x A, 0x B (µη ευθυγραµµισµένες) και 0x C (ευθυγραµµισµένη). Συµπληρώστε τον πίνακα που ακολουθεί. Καταχωρητές µε µη προσηµασµένη φόρτωση από µη ευθυγραµµισµένη µνήµη $t0 $t1 $t bits (β) Προσθέστε στο τµήµα δεδοµένων ένα επί πλέον byte µε τιµή 0x05 και µισή λέξη (οδηγία.half ) µε τιµή 0x6677 ανάµεσα στο byte µε τιµή 0x04 και το byte µε τιµή 0x81. Κατόπιν φορτώστε σε έναν καταχωρητή τη λέξη µε περιεχόµενο 0x από τη µνήµη. Φορτώστε το πρόγραµµα στον προσοµοιωτή ώστε να παρατηρήσετε την αυτόµατη ευθυγράµµιση στη διάταξη των δεδοµένων στη µνήµη του προσοµοιωτή. Συµπληρώστε τον πίνακα που ακολουθεί. Καθηγητής [ 7 ]

9 Byte Address 0x x x F 0x B 0x x Data Segment Byte and Word Address 0x x x C 0x x x Κατόπιν γράψτε τον κώδικα έτσι ώστε στον καταχωρητή $t0 να φορτωθεί η λέξη µε περιεχόµενο 0x και στον $t1 η µισή λέξη µε περιεχόµενο 0x6677 και εκτελέστε το πρόγραµµα. (γ) Αλλάξτε το προηγούµενο πρόγραµµα έτσι ώστε τα δεδοµένα να µην ευθυγραµµίζονται αυτόµατα. Αυτό µπορεί να γίνει αν συµπεριληφθεί η οδηγία.align 0 αµέσως µετά την.data. Προσπαθήστε να κάνετε ότι και πριν. Επειδή τώρα τα δεδοµένα (εκτός από τα bytes) δεν είναι ευθυγραµµισµένα, εµφανίζεται µήνυµα λάθους Exception occurred at PC0x Unaligned address in inst/data fetch: 0x b. Παρ όλα αυτά στο σύνολο εντολών του MIPS υπάρχουν οι ψευδοεντολές ulw (unaligned load word) και ulh (unaligned load half word) που επιτρέπουν την προσπέλαση σε µη ευθυγραµµισµένες λέξεις και µισές λέξεις αντίστοιχα. Χρησιµοποιήστε τις εντολές αυτές και δείτε πως αναλύονται σε πραγµατικές εντολές MIPS. Byte Address 0x x x F 0x B 0x x Data Segment Byte and Word Address 0x x x C 0x x x Μέρος 2ο Κλήσεις συστήµατος Άσκηση 1.4 Γράψτε ένα πρόγραµµα που θα διαβάζει µία συµβολοσειρά (string) που θα δίνει ο χρήστης. Το περιεχόµενο της συµβολοσειράς φαίνεται στο παράθυρο της κονσόλας. Κατόπιν θα εµφανίζει στο ίδιο παράθυρο µόνο τους πέντε πρώτους χαρακτήρες από τη συµβολοσειρά. Καθηγητής [ 8 ]

10 Χρησιµοποιήστε τις κλήσεις συστήµατος read_string και print_string για αυτό το σκοπό. Τα περιεχόµενα της κονσόλας µετά την εκτέλεση του προγράµµατος πρέπει να είναι όπως δείχνει η εικόνα που ακολουθεί. Άσκηση 1.5 Γράψτε ένα πρόγραµµα που θα διαβάζει από το παράθυρο της κονσόλας έναν ακέραιο που θα δίνει ο χρήστης. Κατόπιν θα εµφανίζει στο ίδιο παράθυρο τον ίδιο ακέραιο. Χρησιµοποιήστε τις κλήσεις συστήµατος read_int και print_int για αυτό το σκοπό. Πειραµατιστείτε εισάγοντας µεταξύ άλλων και τους ακεραίους 2,147,483,648 (maxint+1) και 2,147,483,649 ( maxint 1). Τι αποτέλεσµα σας δίνει η εκτέλεση του προγράµµατος στις περιπτώσεις αυτές; Άσκηση 1.6 Γράψτε ένα πρόγραµµα που θα διαβάζει από το παράθυρο της κονσόλας δύο ακεραίους που θα δίνει ο χρήστης. Κατόπιν θα εµφανίζει στο ίδιο παράθυρο το άθροισµα των δύο ακεραίων και τη διαφορά τους. Ένα παράδειγµα εκτέλεσης του προγράµµατος φαίνεται παρακάτω. Καθηγητής [ 9 ]

11 Εργαστήριο Αρχιτεκτονικής Υπολογιστών I Προσοµοιωτής QtSpim του Μικροεπεξεργαστή MIPS Εργαστηριακή Άσκηση 2 Αριθµητικές και Λογικές Πράξεις Εισαγωγή Σε αυτό το εργαστήριο µελετώνται οι εντολές λογικών πράξεων (πρώτο µέρος) µεταξύ λέξεων και αριθµητικών πράξεων (δεύτερο µέρος) ακεραίων αριθµών του MIPS. Ειδικά για τις αριθµητικές πράξεις πρόσθεσης-αφαίρεσης θα δειχθεί και η συµπεριφορά τους σε ακραίες περιπτώσεις όπως στην περίπτωση της υπερχείλισης (overflow). Επειδή ο MIPS δε διαθέτει ειδικό καταχωρητή κατάστασης (status register) που να περιέχει ψηφία κρατουµένου και υπερχείλισης για άµεση χρήση από εντολές, όπως άλλοι µικροεπεξεργαστές, µέρος των ασκήσεων είναι η προσπάθεια δηµιουργίας τους µε προγραµµατιστικό τρόπο. Στο τρίτο µέρος της άσκησης θα µελετηθούν οι πράξεις του πολλαπλασιασµού και της διαίρεσης µεταξύ ακεραίων αριθµών. Μέρος 1ο Λογικές Πράξεις Άσκηση 2.1 Γράψτε ένα πρόγραµµα που να µετατρέπει έναν δυαδικό αριθµό των 32-bit στον αντίστοιχό του σε κωδικοποίηση Gray. Ο αριθµός θα εισάγεται απευθείας σε ένα καταχωρητή. Αυτό γίνεται µε δεξί κλικ στο όνοµα του καταχωρητή στο παράθυρο των καταχωρητών και επιλογή Change Register Contents από το µενού που εµφανίζεται. Φροντίστε οι καταχωρητές να εµφανίζονται σε δεκαεξαδική µορφή ώστε να είναι εύκολη η µετατροπή τους σε δυαδικό σύστηµα (επιλογή Registers Hex). Ο αλγόριθµος µετατροπής ενός δυαδικού αριθµού σε αναπαράσταση κώδικα Gray δίνεται παρακάτω, όπου b i είναι το bit i-στής τάξης του δυαδικού αριθµού και g i το bit i-στής τάξης του αντίστοιχου Gray αριθµού (µε το i να λαµβάνει τιµές από 0 µέχρι και n 1. g n b n g i b i+1 XOR b i, για i 0 n 1 Χρησιµοποιήστε µόνο λογικές πράξεις και ολισθήσεις για να υλοποιήσετε τον παραπάνω αλγόριθµο (δε χρειάζεται βρόχος επανάληψης τους βρόχους θα τους µελετήσουµε αργότερα). Καθηγητής [ 10 ]

12 Binary Hexadecimal Gray A B C D E F 1000 Πειραµατιστείτε µε µικρούς αριθµούς και συµβουλευτείτε τον παραπάνω πίνακα αντιστοίχισης για τον κώδικα Gray των 4 bit για να επιβεβαιώσετε το αποτέλεσµα, παρατηρώντας τον Gray κωδικοποιηµένο αριθµό που θα βρίσκεται σε έναν καταχωρητή της επιλογής σας. Άσκηση 2.2 Υποθέστε ότι ένας επεξεργαστής MIPS λειτουργεί χρησιµοποιώντας το µοντέλο µνήµης little-endian (µικρού άκρου) για την οργάνωση των byte (όπως ο QtSpim σε PC) και επικοινωνεί µε διάφορες άλλες µηχανές κάποιες από τις οποίες χρησιµοποιούν το µοντέλο µνήµης big-endian (µεγάλου άκρου) για την οργάνωση των byte. Τα δεδοµένα που προέρχονται από τις άλλες µηχανές είναι φυσικά λέξεις των 32 bit και εισάγονται σε έναν καταχωρητή όχι µε τη µορφή που τα χρειάζεται ο MIPS. Θέλουµε να µετατρέψουµε τα δεδοµένα από τη «λανθασµένη» µορφή big-endian που λαµβάνονται στη µορφή little-endian σε έναν άλλο καταχωρητή, όπως στο παρακάτω σχήµα. Να σηµειωθεί ότι µέσα σε κάθε byte η σειρά των bit είναι η σωστή (δηλαδή το byte 0 αποθηκεύει τα bit 7-0, το byte 1 αποθηκεύει τα bit 15-8, κ.λπ.) Γράψτε το σχετικό πρόγραµµα µετατροπής, χωρίς να χρησιµοποιήσετε καθόλου προσπέλαση στη µνήµη, παρά µόνο λογικές πράξεις µεταξύ καταχωρητών και αυτό για λόγους ταχύτητας επεξεργασίας. Little-Endian Byte 3 Byte 2 Byte 1 Byte bits Big-Endian Byte 0 Byte 1 Byte 2 Byte bits Καθηγητής [ 11 ]

13 Μέρος 2ο Πρόσθεση - Αφαίρεση - Υπερχείλιση - Κρατούµενο Άσκηση 2.3 (α) Θεωρήστε τα παρακάτω ζευγάρια προσηµασµένων δυαδικών αριθµών των 32-bit σε αναπαράσταση συµπληρώµατος ως προς 2. Κάντε τις προσθέσεις που φαίνονται σε δυαδικό σύστηµα και συµπληρώστε το αποτέλεσµα. Επίσης συµπληρώστε το σχετικό bit V της υπερχείλισης (1 αν έχει συµβεί υπερχείλιση και 0 αν δεν έχει συµβεί). Επιπλέον συµπληρώστε τα κρατούµενα που δίνει η πρόσθεση στα bit τελευταίας και προτελευταίας τάξης, δηλαδή τα C 32 και C 31, αντίστοιχα. (Προσοχή, τα bit C 32, C 31 και V δεν υπάρχουν στον MIPS αλλά είναι εδώ απλά συµβολισµός της άσκησης). (β) Κάντε την αντίστοιχη πράξη σε δεκαδικό σύστηµα και ελέγξτε κατά πόσον το αποτέλεσµα είναι ίδιο µε αυτό της δυαδικής αναπαράστασης. (γ) Εκτελέστε τις ίδιες πράξεις στο περιβάλλον προσοµοίωσης QtSpim χρησιµοποιώντας τις εντολές του MIPS add (προσηµασµένη πρόσθεση) και addu (add unsigned απρόσηµη πρόσθεση). Τα δεδοµένα να τα εισάγετε στο data segment (δηλαδή µετά την οδηγία.data), τα αποτελέσµατα να τα παρατηρείτε ως δεκαεξαδικούς αριθµούς στα περιεχόµενα των καταχωρητών, αλλά και σαν δεκαδικούς στο παράθυρο της κονσόλας χρησιµοποιώντας την κλήση συστήµατος print_int για την εκτύπωσή τους. Ποιες διαφορές έχουν οι δύο αυτές εντολές add και addu; Που φαίνεται αν έχει συµβεί υπερχείλιση; + υαδική αναπαράσταση Bits εκαδική V C 32 C 31 + υαδική αναπαράσταση Bits εκαδική V C 32 C 31 Καθηγητής [ 12 ]

14 + υαδική αναπαράσταση Bits εκαδική V C 32 C 31 + υαδική αναπαράσταση Bits εκαδική -1-1 V C 32 C 31 Άσκηση 2.4 (α) Ο MIPS δεν προσφέρει κάποιο bit ανίχνευσης υπερχείλισης όπως άλλοι µικροεπεξεργαστές. Ο τρόπος ανίχνευσης είναι µε τη δηµιουργία εσωτερικής διακοπής ή εξαίρεσης (exception). Στο βιβλίο του µαθήµατος (ενότητα 3.2) υπάρχει ένα παράδειγµα ανίχνευσης υπερχείλισης που αποφεύγει τη δηµιουργία εσωτερικής διακοπής. Γράψτε ένα ανάλογο πρόγραµµα που µπορεί να ανιχνεύει υπερχειλίσεις δύο προσηµασµένων αριθµών που πρόκειται να προστεθούν χωρίς όµως να χρησιµοποιήσετε υπό συνθήκη άλµατα (conditional branches θα τα δούµε αργότερα) όπως στο παράδειγµα του βιβλίου, παρά µόνο λογικές πράξεις µεταξύ καταχωρητών. Το bit υπερχείλισης να αποθηκεύεται σε ένα bit κάποιου καταχωρητή. (β) Σε άλλους µικροεπεξεργαστές η σηµαία υπερχείλισης παράγεται από τα κρατούµενα τελευταίας και προτελευταίας τάξης που παράγει ο αθροιστής τους. Παρατηρήστε τα αποτελέσµατα που πήρατε στην προηγούµενη άσκηση και βρείτε ποια λογική συνάρτηση δίνει την υπερχείλιση. Άσκηση 2.5 Το ζητούµενο αυτής της άσκησης είναι ένας τρόπος παραγωγής κρατουµένου από τον αθροιστή 32 bit του MIPS, επειδή αυτό δεν προσφέρεται από τον συγκεκριµένο µικροεπεξεργαστή. Υποθέτουµε ότι ο αθροιστής της ALU του MIPS αποτελείται από 32 πλήρεις αθροιστές (full adders) του ενός bit συνδεδεµένους µεταξύ τους µε τα κρατούµενα εισόδου και εξόδου. Ο πίνακας αλήθειας ενός πλήρους αθροιστή για το bit i δίνεται παρακάτω. Είσοδοι Έξοδοι C i A i B i C i+1 S i Καθηγητής [ 13 ]

15 A i και B i είναι τα δύο bit i-τάξης που πρόκειται να προστεθούν, C i είναι το κρατούµενο που δίνει ο αθροιστής που προσθέτει τα Α i-1 και Β i-1. Το S i είναι το άθροισµα και C i+1 το κρατούµενο που παράγει ο αθροιστής που προσθέτει τα Α i και Β i. Βρείτε τον πίνακα αλήθειας του C i+1 όταν είναι γνωστά τα A i, B i και S i (αντί για το C i ). Ποια είναι η προϋπόθεση για να υπάρχει τέτοιος πίνακας αληθείας; Είσοδοι Έξοδος S i A i B i C i Κατόπιν γράψτε ένα πρόγραµµα στον QtSpim που να υπολογίζει το τελικό κρατούµενο (δηλαδή το 33 ο bit) µίας πρόσθεσης (C 32 ) µεταξύ δύο καταχωρητών και να το αποθηκεύει σε ένα bit κάποιου άλλου καταχωρητή. Οι αριθµοί που θα προστεθούν να εισάγονται µέσω του data segment (δηλαδή µετά την οδηγία.data). Άσκηση 2.6 Στην άσκηση αυτή θα δηµιουργήσετε ένα πρόγραµµα που θα µπορεί να κάνει πρόσθεση δύο προσηµασµένων αριθµών A και B των 64 bit ο καθένας. Αρχικά οι αριθµοί θα βρίσκονται στο data segment (δηλαδή µετά την οδηγία.data στον πηγαίο κώδικά σας) και η διάταξή τους θα ακολουθεί το µοντέλο little endian, δηλαδή η λέξη µε τα λιγότερο σηµαντικά bit θα βρίσκεται σε χαµηλότερη διεύθυνση όπως φαίνεται και στο σχήµα. Το αποτέλεσµα της άθροισης S θα αποθηκεύεται και αυτό στη µνήµη όπως δείχνει το σχήµα. Εκµεταλλευτείτε την προηγούµενη άσκηση ώστε το πρόγραµµά σας να χρησιµοποιεί το κρατούµενο C 32 στην πρόσθεση των bit στη θέση 32 (δηλαδή να «µεταφερθεί» το κρατούµενο από τη λέξη που αποθηκεύει τα 32 χαµηλότερα bit στη λέξη που αποθηκεύει τα 32 υψηλότερα bit). Data Segment S ( bits ) S ( bits ) B ( bits ) B ( bits ) A ( bits ) A ( bits ) Byte and Word Address 0x x x C 0x x x Καθηγητής [ 14 ]

16 Πειραµατιστείτε µε τα παρακάτω ζευγάρια δυαδικών αριθµών και αφού συµπληρώσετε τα αθροίσµατα συγκρίνετέ τα µε τα αποτελέσµατα που δίνει το πρόγραµµα. + υαδική αναπαράσταση Bits A B S + υαδική αναπαράσταση Bits A B S Μέρος 3ο Πολλαπλασιασµός και ιαίρεση Άσκηση 2.7 Σε αυτή την άσκηση θα φανεί η διαφοροποίηση των δύο πραγµατικών εντολών πολλαπλασιασµού ακεραίων mult (multiply with sign) και multu (multiply unsigned) που διαθέτει ο επεξεργαστής MIPS. Η διαφορά τους βρίσκεται στο διαφορετικό τρόπο µε τον οποίο µεταφράζουν τoυς τελεστέους της πράξης του πολλαπλασιασµού αλλά και η διαφορά στο αποτέλεσµα που δίνουν οι δύο εντολές. οκιµάστε τις δύο εντολές για κάθε ένα από τα παρακάτω ζευγάρια αριθµών και συµπληρώστε το αποτέλεσµα που δίνει το πρόγραµµα σαν δυαδικό αριθµό. Περάστε τους αριθµούς µε την οδηγία.word στη µνήµη του επεξεργαστή σαν δεκαεξαδικούς αριθµούς. Χρησιµοποιήστε τις εντολές mflo (move from lo) και mfhi (move from hi) για να γράψετε τα αποτελέσµατα σε έναν καταχωρητή γενικού σκοπού και κατόπιν στη µνήµη. Κατόπιν συµπληρώστε τους πίνακες µε την δεκαδική αναπαράσταση για κάθε µία από τις δύο περιπτώσεις πολλαπλασιασµού για να διαπιστώσετε ποιους δεκαδικούς αριθµούς πολλαπλασίασε το πρόγραµµα και τι δεκαδικό αποτέλεσµα έδωσε. Καθηγητής [ 15 ]

17 (α) υαδική αναπαράσταση Bits X (mult) (multu) εκαδική αναπαράσταση (mult) X εκαδική αναπαράσταση (multu) X (β) υαδική αναπαράσταση Bits X (mult) (multu) εκαδική αναπαράσταση (mult) X εκαδική αναπαράσταση (multu) X (γ) υαδική αναπαράσταση Bits X (mult) (multu) εκαδική αναπαράσταση (mult) X εκαδική αναπαράσταση (multu) X Καθηγητής [ 16 ]

18 Άσκηση 2.8 Γράψτε ένα πρόγραµµα που κάθε φορά θα δέχεται από το χρήστη µέσω του παραθύρου της κονσόλας δύο ακεραίους προσηµασµένους αριθµούς (χρησιµοποιήστε την κλήση read_int) και θα τους διαιρεί µε την εντολή προσηµασµένης διαίρεσης div. Τα αποτελέσµατα (πηλίκο και υπόλοιπο) να εµφανίζονται στο ίδιο παράθυρο (κλήση συστήµατος print_int). Χρησιµοποιήστε σαν πρότυπο και συµπληρώστε το πρόγραµµα lab2_8a.s που βρίσκεται στην ιστοσελίδα του µαθήµατος και περιέχει τις απαραίτητες κλήσεις εισόδου και εξόδου. Το πρόγραµµα είναι το ακόλουθο. # lab2_8a.s # # 32 / 32 bit division # # text segment #.text.globl start start: # Input la $a0,dividend li $v0,4 syscall # prompt for dividend li $v0,5 syscall # read dividend move $t0,$v0 # dividend in $t0 la $a0,divisor li $v0,4 syscall # prompt for divisor li $v0,5 syscall # read divisor move $t1,$v0 # divisor in $t1 ######## ######## Calculations ######## #Output la $a0,quotient li $v0,4 syscall # display "quotient is :" move $a0,$t4 li $v0,1 syscall # display quotient la $a0,endl li $v0,4 syscall # newline Καθηγητής [ 17 ]

19 la $a0,remainder li $v0,4 syscall # display "remainder is :" move $a0,$t5 li $v0,1 syscall # display remainder la $a0,endl li $v0,4 syscall # newline li $v0,10 syscall # exit # data segment #.data dividend:.asciiz "Enter dividend:" divisor:.asciiz "Enter divisor:" endl:.asciiz "\n" quotient:.asciiz "quotient is :" remainder:.asciiz "remainder is :" # End of File # Πειραµατιστείτε µε τους παρακάτω δεκαδικούς αριθµούς, ελέγξτε την ορθότητα των αποτελεσµάτων και διαπιστώστε αν λαµβάνετε κάποιο µήνυµα σφάλµατος από τον προσοµοιωτή ή δηµιουργείται κάποια εσωτερική διακοπή. ιαιρετέος ιαιρέτης Πηλίκο Υπόλοιπο Καθηγητής [ 18 ]

20 Εργαστήριο Αρχιτεκτονικής Υπολογιστών I Προσοµοιωτής QtSpim του Μικροεπεξεργαστή MIPS Εργαστηριακή Άσκηση 3 Έλεγχος Ροής Προγράµµατος Εισαγωγή Αντικείµενο αυτού του εργαστηρίου είναι η χρήση των εντολών αποφάσεων που διαθέτει ο MIPS σε συνδυασµό µε εντολές διακλαδώσεων υπό συνθήκη (conditional branches) και απλών διακλαδώσεων, προκειµένου να επιτευχθούν γνωστές δοµές ελέγχου ροής των γλωσσών προγραµµατισµού υψηλού επιπέδου, όπως διακλαδώσεις if then else, case, βρόχοι for, while, until κ.λπ. Μέρος 1ο ιακλαδώσεις Υπό Συνθήκη Άσκηση 3.1 Σε αυτή την άσκηση θα δηµιουργήσετε µία δοµή switch-case. To ζητούµενο είναι η εισαγωγή ενός ακεραίου από το πληκτρολόγιο και η εµφάνιση µηνυµάτων στο παράθυρο console που θα διαχωρίζουν τις ακόλουθες περιπτώσεις: αν ο ακέραιος που δόθηκε είναι άρτιος (διαιρείται µε το 2), διαιρείται µε το 3, διαιρείται µε το 5 ή τίποτε από τα προηγούµενα. Θα υλοποιήσετε δύο παραλλαγές: (α) Θα εµφανίζονται µηνύµατα για οποιαδήποτε περίπτωση διαιρετότητας, π.χ. αν δόθηκε ο 10 θα πρέπει να εµφανίζεται ότι διαιρείται µε το 2 αλλά και µε το 5. Εδώ ουσιαστικά πρόκειται για τη δοµή switch-case της γλώσσας C χωρίς χρήση break ανάµεσα στους κλάδους. ηλαδή είναι δυνατόν να εκτελεστούν παραπάνω από ένας κλάδοι κάθε φορά. Υπόδειξη: Χρησιµοποιήστε την εντολή bne. (β) Θα εµφανίζεται µήνυµα µόνο για τον µικρότερο αριθµό από τους 2, 3 ή 5 που ισχύει η διαιρετότητα, π.χ. για τον αριθµό 10 θα εµφανίζεται µόνο το µήνυµα ότι διαιρείται µε το 2. Τώρα πρόκειται για τη δοµή switch-case της γλώσσας C µε χρήση break ανάµεσα στους κλάδους. ηλαδή µόνο ένας κλάδος εκτελείται κάθε φορά. Υπόδειξη: Χρησιµοποιήστε τις εντολές bne και jr. Καθηγητής [ 19 ]

21 Μέρος 2ο Βρόχοι Άσκηση 3.2 Η απόσταση Hamming (Hamming distance) µεταξύ δύο δυαδικών λέξεων είναι ο συνολικός αριθµός των θέσεων που διαφέρουν τα bit τους. Για παράδειγµα η απόσταση Hamming των λέξεων (των 8 bit) και είναι 2 γιατί οι δύο λέξεις έχουν διαφορετικά bit στις θέσεις 3 και 4 (ξεκινώντας την αρίθµηση των bit µε 0 από τα δεξιά). Γράψτε ένα πρόγραµµα που να υπολογίζει τη Hamming απόσταση µεταξύ δύο λέξεων των 32 bit που είναι αποθηκευµένες στη µνήµη. Υπόδειξη: Χρησιµοποιήστε τις εντολές xor, srl και µία εντολή για διακλάδωση. Άσκηση 3.3 ίνεται το παρακάτω πρόγραµµα σε συµβολική γλώσσα MIPS (Το πρόγραµµα θα το βρείτε έτοιµο στην ιστοσελίδα του µαθήµατος µε όνοµα lab3_3.s). Η λειτουργία του είναι να διαβάζει τη συµβολοσειρά που είναι αποθηκευµένη στη µνήµη (οδηγία.asciiz) και να την αντιγράφει σε µία άλλη θέση µνήµης (οδηγία.space 80) από την αρχή της µέχρι την πρώτη εµφάνιση ενός χαρακτήρα που φαίνεται στη γραµµή li $s0,'t'. Ουσιαστικά πρόκειται για ένα βρόχο τύπου while µε συνθήκη «while (ο τρέχων χαρακτήρας που διαβάζεται δεν είναι ο x)», όπου στο παράδειγµα ο x είναι το πεζό αγγλικό γράµµα t. Το ζητούµενο είναι να κάνετε δύο µετατροπές του προγράµµατος: (α) Ο βρόχος while να µετατραπεί σε: «while (ο τρέχων χαρακτήρας που διαβάζεται δεν είναι ο x ΚΑΙ δεν έχουν διαβαστεί πάνω από ν χαρακτήρες )». Το ν είναι µία σταθερά που θα αποθηκεύεται σε έναν καταχωρητή. (β) Ο βρόχος while να µετατραπεί σε: «while (ο τρέχων χαρακτήρας που διαβάζεται δεν είναι ο x Ή δεν έχουν διαβαστεί πάνω από ν χαρακτήρες )». Εδώ ν είναι πάλι µία σταθερά που θα αποθηκεύεται σε έναν καταχωρητή. Υπόδειξη: Μπορείτε να χρησιµοποιήσετε ψευδοεντολές για τα υπό συνθήκη άλµατα που θα χρειαστείτε, όπως για παράδειγµα bge, bgt, ble, blt κ.λπ. # # lab3_3.s # #.text.globl start start: li $t1,0 # counter for string li $s0,'t' # character to end copy while:lbu $t0,string($t1) # load a character beq $t0,$s0,end # if character to end copy then exit loop sb $t0,copy($t1) # copy character Καθηγητής [ 20 ]

22 addi $t1,$t1,1 j while end: li $t2,0 sb $t2,copy($t1) la $a0,copy li $v0,4 syscall li $v0,10 syscall # increment counter # repeat while loop # append end character to copied string # display copy # exit.data string:.asciiz "Mary had a little lamb" copy:.space 80 #end of program Άσκηση 3.4 Γράψτε ένα πρόγραµµα που θα δέχεται σαν είσοδο από το χρήστη µία ακολουθία χαρακτήρων και θα τυπώνει στην έξοδο την ίδια ακολουθία µε κεφαλαία γράµµατα (όπου υπάρχουν χαρακτήρες a - z θα αντικαθίστανται µε τους Α - Ζ ). Οι χαρακτήρες a - z έχουν κωδικούς ASCII σε δεκαδικό σύστηµα και οι A - Z έχουν κωδικούς Υπόδειξη : Χρησιµοποιήστε ένα βρόχο while που θα είναι ενεργός όσο ο χαρακτήρας που διαβάζεται από το string δεν έχει κωδικό 0, δηλαδή τον κωδικό που δηλώνει το τέλος του string. Καθηγητής [ 21 ]

23 Εργαστήριο Αρχιτεκτονικής Υπολογιστών I Προσοµοιωτής QtSpim του Μικροεπεξεργαστή MIPS Εργαστηριακή Άσκηση 4 ιαδικασίες και στοίβα Εισαγωγή Σε αυτές τις εργαστηριακές ασκήσεις θα δειχθεί η χρήση της στοίβας για τη δηµιουργία διαδικασιών (procedures) και θα αναπτυχθεί βήµα-βήµα ένα πρόγραµµα υπολογισµού της ακολουθίας Fibonacci µε απλή αναδροµή. Μέρος 1ο Απλή κλήση και συµβάσεις καταχωρητών Άσκηση 4.1 ηµιουργήστε µία διαδικασία που θα λαµβάνει τέσσερις ακεραίους µέσω των καταχωρητών $a0, $a1, $a2 και $a3 και θα επιστρέφει τον µικρότερο µέσω του καταχωρητή $v0 και τον µεγαλύτερο µέσω του καταχωρητή $v1. Χρησιµοποιήστε για τυχόν ενδιάµεσα αποτελέσµατα µόνο τους καταχωρητές $s καθώς και τη σύµβαση προγραµµατισµού του MIPS που θέλει τους $s καταχωρητές να αποθηκεύονται στη στοίβα σε περίπτωση που γίνεται χρήση τους. Στο κυρίως πρόγραµµα φορτώστε τους καταχωρητές $a0 $a3 µε τους τέσσερις αριθµούς από τη µνήµη, και επίσης φορτώστε τους $s που θα χρησιµοποιήσετε µε κάποιες τυχαίες τιµές έτσι ώστε να ελέγξετε ότι όντως διατηρούνται τα περιεχόµενά τους και µετά την επιστροφή από την κλήση της διαδικασίας. Τρέξτε το πρόγραµµα µε βηµατικό τρόπο για να παρακολουθείτε τη στοίβα να µεγαλώνει και να µικραίνει (δηλαδή να προστίθενται σε αυτή και να αφαιρούνται από αυτή στοιχεία). Παρακολουθήστε τα περιεχόµενα του καταχωρητή δείκτη στοίβας $sp. Βασιστείτε στο παρακάτω πρόγραµµα µε ονοµασία lab4_1a.s που θα το βρείτε στην ιστοσελίδα του µαθήµατος και συµπληρώστε το. Αυτό είναι το κυρίως πρόγραµµα που αρχικοποιεί τις παραµέτρους που θα περαστούν στη διαδικασία και εµφανίζει στην οθόνη τα αποτελέσµατά της. Συµπληρώστε τις απαραίτητες γραµµές κώδικα για την διαδικασία και την κλήση της. Καθηγητής [ 22 ]

24 # lab4_1a.s # # stack exercise 1 (to be completed) #.text.globl start start: # start of main program li $a0,-10 # Initialize variables li $a1,-30 # li $a2,120 # li $a3,200 # move $t0,$v0 move $t1,$v1 la $a0,max li $v0,4 syscall # display "Max is :" move $a0,$t0 li $v0,1 syscall # display max la $a0,endl li $v0,4 syscall # display end of line la $a0,min li $v0,4 syscall # display "Min is :" move $a0,$t1 li $v0,1 syscall # display min la $a0,endl li $v0,4 syscall # display end of line li $v0,10 syscall # exit # end of main program # start of procedure # # end of procedure.data max:.asciiz "Max is : " min:.asciiz "Min is : " endl:.asciiz "\n" # End of program # Καθηγητής [ 23 ]

25 Μέρος 2ο Αναδροµικές Κλήσεις Άσκηση 4.2 Γράψτε ένα πρόγραµµα που θα αποτελείται από δύο τµήµατα, το κυρίως πρόγραµµα και µία διαδικασία που θα καλεί αναδροµικά τον εαυτό της. Το κυρίως πρόγραµµα θα ζητάει από το χρήστη έναν ακέραιο αριθµό και κατόπιν θα καλεί µία διαδικασία περνώντας της αυτόν τον αριθµό. Η διαδικασία θα δέχεται ένα όρισµα (τον ακέραιο που περνάει κατά την πρώτη κλήση) θα εξετάζει την τιµή και αν είναι µηδέν θα επιστρέφει. Αν δεν είναι µηδέν, θα τον µειώνει κατά ένα και θα καλεί πάλι τον εαυτό της περνώντας της σαν όρισµα τον µειωµένο κατά 1 ακέραιο µέσω του καταχωρητή $a0. Σε κάθε περίπτωση (µηδέν ή όχι) θα εµφανίζει στην οθόνη την τιµή του αριθµού που έχει παραλάβει. Σχηµατικά η διαδοχή των κλήσεων είναι η παρακάτω. Είναι απαραίτητο η παράµετρος $a0 να αποθηκεύεται στη στοίβα; ώστε εξήγηση. Επιστροφή από κλήση main $a04 proc proc proc proc proc $a03 $a02 $a01 $a00 Κλήση άλλης διαδικασίας Βασιστείτε στο παρακάτω πρόγραµµα µε ονοµασία lab4_2a.s που θα το βρείτε στην ιστοσελίδα του µαθήµατος. Σε αυτό συµπληρώστε τις απαραίτητες γραµµές κώδικα για την διαδικασία και την κλήση της. # lab4_2a.s # # stack exercise 2 (to be completed) #.text.globl start start: # start of main program la $a0,prompt li $v0,4 syscall # display "Enter integer number :" li $v0,5 syscall # read integer move $t0,$v0 la $a0,endl li $v0,4 syscall # display end of line move $a0,$t0 Καθηγητής [ 24 ]

26 li $v0,10 syscall # end of main program # exit # start of procedure # # end of procedure.data prompt:.asciiz "Enter integer number :" endl:.asciiz "\n" # End of program # Άσκηση 4.3 Η προηγούµενη άσκηση περιείχε µία διαδικασία που δεχόταν µία παράµετρο ($a0), χωρίς όµως να επιστρέφει κανένα αποτέλεσµα. Τώρα θα εµπλουτίσετε το πρόγραµµά σας έτσι ώστε η διαδικασία να επιστρέφει έναν ακέραιο αριθµό που θα δηλώνει την ελάχιστη διεύθυνση του δείκτη στοίβας που έχει χρησιµοποιήσει η διαδικασία ή κάποια άλλη που κλήθηκε από αυτήν. Ακολουθήστε τη σύµβαση που έχει ο MIPS για τη χρήση καταχωρητών επιστροφής αποτελεσµάτων, π.χ. χρησιµοποιήστε τον $v0. Σχηµατικά η διαδικασία θα εκτελεί τη λειτουργία που φαίνεται στο παρακάτω σχήµα. Το κυρίως πρόγραµµα θα παραλαµβάνει το αποτέλεσµα από τις διαδοχικές κλήσεις, δηλαδή πόσο «χαµηλά» έφτασε η στοίβα και θα εµφανίζει το ποσό τη µνήµης που χρησιµοποιήθηκε για τη στοίβα, γνωρίζοντας την αρχική τιµή του $sp πριν να γίνει οποιαδήποτε κλήση διαδικασίας. Επιστροφή από κλήση $v0 $v0min($v0,$sp) $v0 proc $a0 $a0$a0-1 $a0 Κλήση άλλης διαδικασίας Άσκηση 4.4 Καθηγητής [ 25 ]

27 Το επόµενο βήµα είναι ο εµπλουτισµός των προηγούµενων ασκήσεων έτσι ώστε να γίνεται υπολογισµός του n-οστού όρου της ακολουθίας Fibonacci. Η ακολουθία Fibonacci είναι αναδροµική, κάτι που κάνει τον υπολογισµό της να ταιριάζει µε τη χρήση αναδροµικών κλήσεων διαδικασιών. Η ακολουθία Fibonacci δίνεται από τον ακόλουθο τύπο : f ( n) f ( n 1) + f ( n 2) 1 0, n> 1, n 1, n 0 Αν χρησιµοποιηθεί ο παραπάνω τύπος, µέσα σε µία διαδικασία θα πρέπει να υπάρχουν δύο κλήσεις προς τον εαυτό της, µία για n 1 και άλλη µία για n 2, κάτι που δηµιουργεί ένα δεντρικό σχήµα στα διάφορα στιγµιότυπα των διαδικασιών. Για να διατηρήσουµε το γραµµικό σχήµα που ήδη έχουµε ξεκινήσει από την πρώτη άσκηση και για λόγους καλύτερης αποδοτικότητας θα χρησιµοποιήσουµε τους ισοδύναµους τύπους για τον υπολογισµό της ακολουθίας Fibonacci που δίνονται παρακάτω: f ( n 1) + a( n 1) 0, n> 1 f ( n) 1, n 1 και a ( n), n 0 f ( n 1) 1 1,,, n> 1 n 1 n 0 Έτσι τώρα µία διαδικασία καλεί µόνο µία φορά τον εαυτό της (για n 1). Οι παράµετροι εισόδου, τα αποτελέσµατα και οι λειτουργίες της φαίνονται στο παρακάτω σχήµα (µε την εξαίρεση οριακών συνθηκών για n1 και n0). Χρησιµοποιήστε την παρακάτω µορφή διαδικασίας για να υπολογίσετε τον n-οστό όρο της ακολουθίας και κάντε εµφάνιση του αποτελέσµατος από το κυρίως πρόγραµµα. Στη σύµβαση προγραµµατισµού που χρησιµοποιείται από τον QtSpim για την έξοδο αποτελεσµάτων από µία διαδικασία παρέχονται µόνο δύο καταχωρητές (οι $v0 και $v1). Χρησιµοποιήστε τους για να την έξοδο των f ( n) και ( n) a. Καθηγητής [ 26 ]

28 Επιστροφή από κλήση proc f ( n) f( n 1) + $v1 $v1 a ( n) $v0 $v0 a( n 1) n $a0 $a0$a0-1 $a0 n 1 Κλήση άλλης διαδικασίας Πριν γράψετε το πρόγραµµα συµπληρώστε στο παρακάτω σχήµα τη λειτουργία της οριακής κλήσης της διαδικασίας (δηλαδή για n1). f ( n) a( n) n1 $v1 $v1 $v0 $v0 $a0 proc Καθηγητής [ 27 ]

29 Εργαστήριο Αρχιτεκτονικής Υπολογιστών I Προσοµοιωτής QtSpim του Μικροεπεξεργαστή MIPS Εργαστηριακή Άσκηση 5 Αριθµητική Κινητής Υποδιαστολής Εισαγωγή Στο πρώτο µέρος της άσκησης αυτής θα εξεταστεί ο τρόπος εισόδου και εξόδου αριθµών κινητής υποδιαστολής απλής ακρίβειας, οι εντολές µετακίνησης των αριθµών, ο τρόπος αναπαράστασης και οι περιορισµοί που υπάρχουν ως προς την ακρίβεια. Επίσης θα γίνουν κάποιοι πειραµατισµοί µε πράξεις µεταξύ αριθµών κινητής υποδιαστολής για ειδικές περιπτώσεις, και θα φανεί η ανάγκη για µετατροπή ακεραίων σε αριθµούς κινητής υποδιαστολής. Στο δεύτερο µέρος θα αναπτυχθεί ένα πιο σύνθετο πρόβληµα υπολογισµού της συνάρτησης του εκθετικού e x. Μέρος 1ο Αναπαράσταση - Ακρίβεια Πράξεις Μετατροπές Άσκηση 5.1 Γράψτε ένα πρόγραµµα που θα διαβάζει από το παράθυρο της κονσόλας έναν αριθµό απλής ακρίβειας µε τη χρήση της κλήσης συστήµατος read_float. Κατόπιν χρησιµοποιήστε την κλήση print_float για να τον εµφανίσετε στην οθόνη. Θα χρειαστείτε την εντολή mov.s µεταφοράς αριθµών κινητής υποδιαστολής γιατί η κάθε κλήση χρησιµοποιεί διαφορετικό καταχωρητή για να δώσει και να πάρει το αποτέλεσµα. (α) Πειραµατιστείτε µε αριθµούς που είναι δυνάµεις ή αθροίσµατα δυνάµεων του 2, π.χ , 1.0, 1.5, (1/2 16 ) κ.λπ. (β) Πειραµατιστείτε µε τυχαίους αριθµούς, π.χ , 0.1, κ.λπ. (γ) Μετατρέψτε το πρόγραµµά σας, έτσι ώστε να εισάγετε απ ευθείας σε έναν καταχωρητή το περιεχόµενό του (δεξί κλικ επάνω στον καταχωρητή και επιλογή Change Register Contents από το µενού που εµφανίζεται). Βρείτε την αναπαράσταση των παρακάτω αριθµών σε µορφή κινητής υποδιαστολής και εισάγετέ τους ως δεκαεξαδικούς αριθµούς. Για την περίπτωση NaN, επιλέξτε έναν οποιοδήποτε συνδυασµό ο οποίος να δίνει έναν µη έγκυρο αριθµό της αναπαράστασης. Η περίπτωση +min είναι ο µικρότερος θετικός µη κανονικοποιηµένος αριθµός. Καθηγητής [ 28 ]

30 Αναπαράσταση ειδικών αριθµών bits + BIN HEX NaN BIN HEX +min BIN HEX Άσκηση 5.2 Γράψτε ένα πρόγραµµα που να ορίζει µε τη χρήση του τµήµατος δεδοµένων έξι σταθερές : 0.0, +, -, +NaN, και δύο αριθµούς, έναν θετικό x και έναν αρνητικό y. Το πρόγραµµα θα πρέπει να εκτελεί τις πράξεις που φαίνονται στον παρακάτω πίνακα και να εµφανίζει τα αποτελέσµατά τους. Συµπληρώστε τον παρακάτω πίνακα σύµφωνα µε τα αποτελέσµατα που θα πάρετε. Πράξης x y x (- ) y / 0 0 / 0 0 (+ ) (+ ) / (- ) (+ ) + (- ) x + NaN Αποτέλεσµα Άσκηση 5.3 Πολλές φορές χρειάζεται να γίνουν πράξεις µεταξύ ακεραίων και πραγµατικών αριθµών ή για κάποιο λόγο οι ακέραιοι να αναπαρασταθούν σαν πραγµατικοί αριθµοί. Ένα παράδειγµα είναι ο υπολογισµός της συνάρτησης του παραγοντικού. Αν γίνει ο υπολογισµός µε πράξεις ακεραίων πολύ γρήγορα φτάνουµε στα όρια της αναπαράστασης ενός ακεραίου 32 bit. Για παράδειγµα, το 13! δεν µπορεί να αναπαρασταθεί σε 32 bit. (α) Το πρόγραµµα που δίνεται παρακάτω υπολογίζει µε χρήση ακεραίων και εµφανίζει όλα τα παραγοντικά µέχρι το n! Θα το βρείτε έτοιµο στην ιστοσελίδα του µαθήµατος µε όνοµα lab5_3a.s. Εκτελέστε το και παρατηρήστε τα αποτελέσµατα για n>13. # lab5_3a.s # # Integer factorial # Καθηγητής [ 29 ]

31 .text.globl start start: la $a0,n lw $t0,0($a0) # $t0 n li $t2,1 # $t2 index i1..n li $t1,1 # $t1 contains i! loop: mul $t1,$t1,$t2 move $a0,$t2 li $v0,1 syscall # display i la $a0,msg1 li $v0,4 syscall # display "! is :" move $a0,$t1 li $v0,1 syscall # display i! la $a0,endl li $v0,4 syscall # print end of line addi $t2,$t2,1 # ii+1 ble $t2,$t0,loop # repeat if i<n li $v0,10 syscall.data n:.word 25 # exit msg1:.asciiz "! is :" endl:.asciiz "\n" # End of program # (β) Αλλάξτε το προηγούµενο πρόγραµµα έτσι ώστε ο υπολογισµός να γίνεται µε αριθµητική κινητής υποδιαστολής απλής ακρίβειας. Θα χρειαστείτε πιθανόν τις εξής εντολές: mtc1 (move to co-processor 1) για µεταφορά περιεχοµένου από καταχωρητή γενικής χρήσης σε καταχωρητή κινητής υποδιαστολής, cvt.s.w για µετατροπή από αναπαράσταση ακεραίου σε αναπαράσταση κινητής υποδιαστολής και mul.s για πολλαπλασιασµό αριθµών κινητής υποδιαστολής. Εκτελέστε το πρόγραµµα για n>20 και παρατηρήστε τα αποτελέσµατα. Συγκρίνετε τα αποτελέσµατα για µεγάλα n µε αυτά που δίνει η αριθµοµηχανή (Calculator) των Windows. Μέρος 2ο Σύνθετοι Υπολογισµοί Άσκηση 5.4 Καθηγητής [ 30 ]

32 Ο υπολογισµός της εκθετικής συνάρτησης e x µπορεί να γίνει µε προσέγγιση χρησιµοποιώντας τη σειρά Taylor: e x n 0 n x n!, x R. Γράψτε ένα πρόγραµµα υπολογισµού της εκθετικής συνάρτησης προσεγγίζοντάς την µε χρήση των k πρώτων όρων της παραπάνω σειράς. Ο αριθµός k θα είναι µία σταθερά µέσα στο πρόγραµµα (π.χ. k8, δηλαδή θα χρησιµοποιηθούν οι 8 πρώτοι όροι) και ο x θα δίνεται από τον χρήστη µέσα στο παράθυρο της κονσόλας. Χρησιµοποιήστε αριθµητική κινητής υποδιαστολής απλής ακρίβειας, όπως και στην Άσκηση 5.3. Θα χρειαστείτε επί πλέον τις εντολές mov.s για µετακίνηση περιεχοµένων µεταξύ καταχωρητών κινητής υποδιαστολής και add.s και div.s για πρόσθεση και διαίρεση, αντίστοιχα. Καθηγητής [ 31 ]

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

Οργάνωση και Σχεδίαση Υπολογιστών Η Διασύνδεση Υλικού και Λογισμικού, 4 η έκδοση. Σύντομη Εισαγωγή στη χρήση του προσομοιωτή και συμβολομεταφραστή Οργάνωση και Σχεδίαση Υπολογιστών Η Διασύνδεση Υλικού και Λογισμικού, 4 η έκδοση QtSpim Σύντομη Εισαγωγή στη χρήση του προσομοιωτή και συμβολομεταφραστή (Τελευταία ενημέρωση για την έκδοση QtSpim 9.1.4)

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

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

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

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

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

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

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

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

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

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

Προτεινόμενες Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 & Αποτελέσματα

Προτεινόμενες Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 & Αποτελέσματα Προτεινόμενες Λύσεις ης Ενδιάμεσης Εξέτασης στο ΗΜΥ & Αποτελέσματα Αποτελέσματα ης Ενδιάμεσης x(-9) x (-) Series x (-) x (-) 9 Μέσος όρος:.9/ Άσκηση srl/sll Ποιο θα είναι το περιεχόµενο του καταχωρητή

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

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

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

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

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

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

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

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

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

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

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

ΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών LAB 1 ( ) ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών LAB 1 (08-06-16) Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Εγκατάσταση

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

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit Το υλικό του οδηγού έχει αντικατασταθεί από το βιβλίο

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

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

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

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

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

Chapter 3 Αριθμητική Υπολογιστών Chapter 3 Αριθμητική Υπολογιστών Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών του Τ.Ε.Ι. Κρήτης. Τελευταία

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

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

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

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

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

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

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

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

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

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

Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213

Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 Χειμερινό Εξάμηνο, 2012 Διδάσκων: Γιώργος Ζάγγουλος Ημερομηνία εξέτασης: 09/02/2012

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

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

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

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

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

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

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

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη ( ιάλεξη 3) ιδάσκων: Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy

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

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

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

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

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

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

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

Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης

Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών Εισαγωγή στους Μικροεπεξεργαστές MIPS-32 ( ιάλεξη 1) ιδάσκων: Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών

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

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

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

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

Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213

Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 Χειμερινό Εξάμηνο, 2012 Διδάσκων: Γιώργος Ζάγγουλος Ημερομηνία εξέτασης: 09/02/2012

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

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

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

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

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

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

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

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

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

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

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

Εργαστήριο Αρχιτεκτονική Υπολογιστών Ι ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ. Άσκηση 2 Ποιες οι τιμές των καταχωρητών μετά την εκτέλεση του προγράμματος ;

Εργαστήριο Αρχιτεκτονική Υπολογιστών Ι ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ. Άσκηση 2 Ποιες οι τιμές των καταχωρητών μετά την εκτέλεση του προγράμματος ; Εργαστήριο Αρχιτεκτονική Υπολογιστών Ι ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ Άσκηση 1 Πόσους αστερίσκους θα τυπώσει το πρόγραμμα ; li $t2,2 li $t1,1 Εμφάνισε div $t1,$t2 mfhi $t3 add $t3,$t3,1 add $t1,$t1,$t3 ble $t1,10,start

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 3: Πίνακες, βρόχοι, συναρτήσεις 1 Ιουνίου 2017 Το σημερινό εργαστήριο

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

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

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση Δεδομένων ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση δεδομένων Κατάλληλη συμβολική αναπαράσταση δεδομένων, για απλοποίηση βασικών πράξεων, όπως πρόσθεση Πόσο εύκολο είναι

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

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

ΤΠ 2108 Αρχιτεκτονική Υπολογιστών (Εργαστήριο) ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ. Σειρά Ασκήσεων 2 Σειρά Ασκήσεων 2 Εντολές µεταφοράς δεδοµένων και βρόχοι στον MIPS. Οι γλώσσες προγραµµατισµού εκτός από απλές µεταβλητές που περιέχουν κάποια δεδοµένα, έχουν όπως γνωρίζετε και περισσότερο σύνθετες δοµές

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

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Ι Αρχιτεκτονική Υπολογιστών Ι ΥΠΟΔΕΙΞΕΙΣ ΓΙΑ ΤΗ ΛΥΣΗ ΤΩΝ ΕΡΓΑΣΤΗΡΙΑΚΩΝ ΑΣΚΗΣΕΩΝ Από το βιβλίο Αρχιτεκτονική Υπολογιστών & Προγραμματισμός Assembly (Συγγραφέας / Εκδότης : Παναγιώτης Παπάζογλου) Δρ. Παναγιώτης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (αριθμητικές ) http://di.ionio.gr/~mistral/tp/csintro/ Αριθμοί Πράξεις με δυαδικούς αριθμούς

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

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

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

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

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

Chapter 3. Αριθμητική Υπολογιστών. (συνέχεια) Chapter 3 Αριθμητική Υπολογιστών (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών του Τ.Ε.Ι.

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

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

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

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

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 3ο Αναπαράσταση Αριθμών www.di.uoa.gr/~organosi 1 Δεκαδικό και Δυαδικό Δεκαδικό σύστημα 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 η έκδοση), μετάφραση:

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Πληροφορική ΓΕΝΙΚΟ ΤΜΗΜΑ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ TEI ΧΑΛΚΙ ΑΣ

Εισαγωγή στην Πληροφορική ΓΕΝΙΚΟ ΤΜΗΜΑ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ TEI ΧΑΛΚΙ ΑΣ Εισαγωγή στην Πληροφορική 1 Περιεχόµενα - Κωδικοποιήσεις - Αριθµητικά Συστήµατα 2 Ηλεκτρονικός Υπολογιστής Είπαµε ότι είναι, µία Ηλεκτρονική Μηχανή, που δουλεύει κάτω από τον έλεγχο εντολών αποθηκευµένων

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

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών LAB 5 (04-07-17) Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Εγκατάσταση

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

Spim Cache. Εισαγωγή στη χρήση του προσοµοιωτή. Αρχιτεκτονική Υπολογιστών ΙΙ. Σπύρος Ξεργιάς, ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών

Spim Cache. Εισαγωγή στη χρήση του προσοµοιωτή. Αρχιτεκτονική Υπολογιστών ΙΙ. Σπύρος Ξεργιάς, ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών Spim Cache Εισαγωγή στη χρήση του προσοµοιωτή Αρχιτεκτονική Υπολογιστών ΙΙ Spim Cache Ελεύθερο Λογισµικό, επέκταση του PCSpim ηµιουργήθηκε στο Πολυτεχνείο της Βαλένθια, στην Ισπανία Συµβατό µε το λειτουργικό

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

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & Άνοιγμα αρχείου μέσα από τo SPIM, διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη (Διάλεξη 3) 1 Μετατροπή χαρακτήρων ASCII σε ακέραιο Ο πιο κάτω κώδικας

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

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών 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 Στόχοι του εργαστηρίου Εντολές

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

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

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή Εισαγωγή Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ Ξεκινάµε την εργαστηριακή µελέτη της Ψηφιακής Λογικής των Η/Υ εξετάζοντας αρχικά τη µορφή των δεδοµένων που αποθηκεύουν και επεξεργάζονται οι υπολογιστές και προχωρώντας

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

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

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

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

1 η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ακ. έτος , 5ο Εξάμηνο, Σχολή ΗΜ&ΜΥ

1 η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ακ. έτος , 5ο Εξάμηνο, Σχολή ΗΜ&ΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr 1 η ΑΣΚΗΣΗ ΣΤΗΝ

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

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

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ 1 Αριθµητικό Σύστηµα! Ορίζει τον τρόπο αναπαράστασης ενός αριθµού µε διακεκριµένα σύµβολα! Ένας αριθµός αναπαρίσταται διαφορετικά σε κάθε σύστηµα,

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

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

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

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

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

1 η Άσκηση Στην Αρχιτεκτονική Υπολογιστών η Άσκηση Στην Αρχιτεκτονική Υπολογιστών Ακ. Έτος 203 204, 5 ο Εξάμηνο, Σχολή ΗΜ&ΜΥ Τμήμα Λ - Ω Ημερομηνία Παράδοσης: 20/2/203 Απορίες στο: ca203-204t2@cslab.ece.ntua.gr Μέρος Α Δίνονται τα παρακάτω δύο

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να Κεεφάάλλααι ιοο:: 3Β ο Τίττλλοοςς Κεεφααλλααί ίοουυ: : Αρχιτεκτονική Ηλ/κου Τµήµατος των Υπολ. Συστηµάτων (Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να αναφέρετε τις τιµές των

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

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

Αριθμητικά Συστήματα Αριθμητικά Συστήματα Οργάνωση Δεδομένων (1/2) Bits: Η μικρότερη αριθμητική μονάδα ενός υπολογιστικού συστήματος, η οποία δείχνει δύο καταστάσεις, 0 ή 1 (αληθές η ψευδές). Nibbles: Μονάδα 4 bit που παριστά

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

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

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

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

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

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

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

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 Τμήμα θεωρίας: Α.Μ. 8, 9 Κάθε Πέμπτη, 11πμ-2μμ, ΑΜΦ23. Διδάσκων: Ντίνος Φερεντίνος Γραφείο 118 email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό

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

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

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

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

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών Άσκηση 1 (σύνοψη της εκφώνησης) [Εκτέλεση λογικών πράξεων]

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) ΚΑΤΑΛΟΓΟΣ ΕΡΩΤΗΣΕΩΝ ΕΡΩΤΗΣΕΙΣ ΕΙ ΙΚΩΝ ΓΝΩΣΕΩΝ (γλώσσα προγραµµατισµού

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

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από: Σελίδα 1 από 12 Απαντήσεις στο φυλλάδιο 55 Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από: (α) Κεντρική Μονάδα Επεξεργασίας. (β) Κύρια Μνήµη. (γ) Μονάδες εισόδου. (δ) Μονάδες εξόδου. (ε) Βοηθητική

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

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΕΝΟΤΗΤΑ Μ1 ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ Εκπαιδευτής: Γ. Π. ΠΑΤΣΗΣ, Επικ. Καθηγητής, Τμήμα Ηλεκτρονικών Μηχανικών, ΤΕΙ Αθήνας ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ 1. Ποια είναι η βάση

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

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

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

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

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

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης: Ορολογία bit (binary digit): δυαδικό ψηφίο. Τα δυαδικά ψηφία είναι το 0 και το 1 1 byte = 8 bits word: η θεμελιώδης μονάδα σύμφωνα με την οποία εκπροσωπούνται οι πληροφορίες στον υπολογιστή. Αποτελείται

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

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

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή Κεφάλαιο. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας Περιεχόμενα. Αριθμητικά συστήματα. Μετατροπή αριθμών από ένα σύστημα σε άλλο.3 Πράξεις στο δυαδικό σύστημα.4 Πράξεις στο δεκαεξαδικό σύστημα.5

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

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

Κεφάλαιο 3. Αριθμητική για υπολογιστές Κεφάλαιο 3 Αριθμητική για υπολογιστές Αριθμητική για υπολογιστές Λειτουργίες (πράξεις) σε ακεραίους Πρόσθεση και αφαίρεση Πολλαπλασιασμός και διαίρεση Χειρισμός της υπερχείλισης Πραγματικοί αριθμοί κινητής

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

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

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

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

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

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

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΥΠΟΛΟΓΙΣΤΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο ΦΕΒΡΟΥΑΡΙΟΣ 2006 ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής. Εισαγωγή στους Η/Υ

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής. Εισαγωγή στους Η/Υ Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Δεύτερη Σειρά Ασκήσεων 9 Μαΐου 2017 παράδοση: 3μμ 25 Μαΐου Άσκηση 1: Να αποδειχτεί ότι για τη μετατροπή αριθμού από σύστημα με βάση p σε σύστημα με βάση q, όπου

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗ ΔΙΟΙΚΗΣΗ ΚΑΙ ΣΤΗΝ ΟΙΚΟΝΟΜΙΑ 7 Ο ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΟΣΤΟΛΙΑ ΠΑΓΓΕ Περιεχόμενα 2 Δυαδικό Σύστημα Προσημασμένοι δυαδικοί αριθμοί Αφαίρεση

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No 05 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

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

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

3. Πρόσθεση Πολλαπλασιασμός 4. Πρόσθεση στο πρότυπο ΙΕΕΕ Πολλαπλασιασμός στο πρότυπο ΙΕΕΕ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΨΗΦΙΑΚΗΣ ΛΟΓΙΚΗΣ - ΙΙ Γ. Τσιατούχας 3 ο Κεφάλαιο 1. Γενική δομή CPU ιάρθρωση 2. Αριθμητική και λογική μονάδα 3. Πρόσθεση Πολλαπλασιασμός

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