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

Σχετικά έγγραφα
Ορισµός της Στοίβας Περίληψη H λειτουργία της Στοίβας (γενικά, αλλά και στο QtSpim pim) Η χρησιµότητα της Στοίβας στους Μικροεπεξεργαστές Κλήση συνάρτ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

MIPS functions and procedures

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120)

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

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

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

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

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

Δομές Δεδομένων (Data Structures)

Στοίβες με Δυναμική Δέσμευση Μνήμης

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

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

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

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

Ενεργοποίηση και ιαχείριση σηµάτων διακοπής

ΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT

Συλλογές, Στοίβες και Ουρές

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

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ


Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

Φροντιστήριο. Παραγωγή τελικού κώδικα. Παραγωγή τελικού κώδικα

Συμβόλαιο Μαθήματος. Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213. Χρήση Ηλεκτρονικού Υπολογιστή. Αναμενόμενα Αποτελέσματα Μαθήματος

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 9: Αυτόματα Στοίβας (Pushdown Automata - PDA)

Εργαστήριο 5. Εαρινό Εξάμηνο

Σημειώσεις για τον 80x86

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

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

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο

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

6/4/2009. Η επεξεργασία του ψηφιακού σήματος υλοποιείται μέσω κατάλληλου αλγορίθμου. Επίκ. Καθηγητής. Σήμα εξόδου. Σήμα εισόδου

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

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι

Οι δομές δεδομένων στοίβα και ουρά

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

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

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

Δομημένος Προγραμματισμός

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

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

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

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

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

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

Transcript:

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

Περίληψη Ορισμός της Στοίβας H λειτουργία της Στοίβας (γενικά, αλλά και στο SPIM) Η χρησιμότητα της Στοίβας στους Μικροεπεξεργαστές Κλήση συνάρτησης και αναδρομικές κλήσεις Παράδειγμα week5.s (Δημιουργία και Χρήση της Στοίβας και αναδρομικές κλήσεις) 18-Feb-13 2

Δομή Στοίβας (stack) Στοίβα Last-In-First-Out (LIFO). Δείκτες ορίων: Ο δείκτης βάσης (base pointer bp) ο οποίος δείχνει το αρχικό στοιχείο της δομής, δηλαδή το πρώτο στοιχείο που μπήκε στην στοίβα και το τελευταίο που θα βγει, και Ο δείκτης στοίβας (stack pointer sp) ο οποίος δείχνει το επόμενο στοιχείο που θα τύχει διαχείρισης, αυτό δηλαδή που μπήκε τελευταίο στη δομή. Κατά την αρχικοποίηση της στοίβας ισχύει ότι bp = sp. 18-Feb-13 3

Οι Βασικές Λειτουργίες μιας Στοίβας Οι βασικές λειτουργίες διαχείρισης μιας στοίβας είναι οι εντολές push (σπρώχνω) και pop (αφαιρώ). Κάθε εντολή push(a) μειώνει τον sp κατά ένα (ή κατά 4) και τοποθετεί στη θέση αυτή το δεδομένο που περιγράφεται (ή δείχνεται, αναλόγως της εφαρμογής) από το a. Η εντολή pop είναι η εντολή που «αδειάζει» τη δομή από τα δεδομένα. Κάθε εντολή pop(b) αφαιρεί από τη στοίβα το στοιχείο που δείχνει ο sp, το τοποθετεί στο b (ή στη θέση που δείχνει ο b, αναλόγως εφαρμογής) και αυξάνει τον sp κατά ένα (ή κατά 4). 18-Feb-13 4

Η Στοίβα στο SPIM Στην περίπτωση του SPIM, αλλά και όλων των επεξεργαστών, υπάρχει ένας χώρος στην μνήμη (διαδοχικές θέσεις μνήμης) ο οποίος καλείται stack και γενικά διαθέτει το βασικό χαρακτηριστικό της στοίβας (είναι δηλαδή LIFO). Πέραν τούτου, η στοίβα αυτή έχει ειδική αποστολή που αφορά τον χρόνο εκτέλεσης του προγράμματος και ΔΕΝ περιλαμβάνει τις βασικές λειτουργίες που περιγράφονται στην προηγούμενη παράγραφο. Χρήση Αποθήκευση των περιεχομένων των προσωρινών καταχωρητών κατά την κλήση μιας συνάρτησης στον κώδικα. Επιπλέον, είναι ο χώρος όπου αποθηκεύονται τα ορίσματα που δίνονται από την γραμμή εντολών του προγράμματος. 18-Feb-13 5

Η Στοίβα στο SPIM Επειδή η στοίβα στο SPIM είναι χώρος μνήμης, για την υλοποίηση της πρέπει να παρθούν κάποιες σχεδιαστικές αποφάσεις. Ορίζουμε ένα χώρο στην μνήμη του SPIM ο οποίος να μπορεί να χρησιμοποιηθεί έτσι ώστε να φτιάξουμε την δομή. Αυτός ο χώρος μπορεί να είναι η ίδια η Στοίβα του SPIM (αλλά αυτό δεν είναι απαραίτητο, σε κάποιες περιπτώσεις μπορεί να αποδειχθεί και επικίνδυνο (όταν π.χ. εμπλακεί με κώδικα κλήσης συναρτήσεων) Μπορεί να αποδειχθεί χρήσιμη η ύπαρξη του καταχωρητή $sp καθώς και η σύμβαση της προς τα κάτω αύξησης της μνήμης. 18-Feb-13 6

Κλήσεις Συναρτήσεων Κλήση Συνάρτησης (jal push, jr $ra) Κλήση (2 ης ) συνάρτησης μέσα από άλλη (1 η ) συνάρτηση. Απαιτείται αποθήκευση του $ra πριν από την κλήση της 2 ης συνάρτησης για σωστή λειτουργία του προγράμματος. Αναδρομικές Κλήσεις (κλήση συνάρτησης μέσα από την ίδια τη συνάρτηση) 18-Feb-13 7

Παράδειγμα week5.s Σε αυτή την άσκηση καλείστε να συμπληρώσετε το αρχείο week5.s και να το μετατρέψετε, μετονόμάζοντας το σε week5a.s, έτσι ώστε το περιεχόμενο των καταχωρητών $t1, $t2, $t3 και $t4 να μεταφερθεί στους $t2, $t3, $t4 και $t1 αντίστοιχα με τη χρήση των συναρτήσεων push και pop στη στοίβα. Στη συνέχεια, μετονομάστε σε week5b.s και με αναδρομική κλήση υλοποιήστε το push και το pull του καταχωρητή $t1 στη στοίβα byte ανά byte. Για την πιο πάνω υλοποίηση θα πρέπει να καθοριστούν τα ακόλουθα: Τα όρια της μνήμης που θα κατέχει η δομή της Στοίβας Κάποιο καταχωρητή σαν $bp και κάποιον σαν $sp Επίσης, θα πρέπει να υλοποιηθούν οι βασικές λειτουργίες της Στοίβας (push, pop) καθώς και οι ζητούμενες πράξεις 18-Feb-13 8