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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MIPS functions and procedures

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Καταχωρητές,Σύγχρονοι Μετρητές και ΑκολουθιακάΚυκλώματα

Υποπρογράμματα (Subroutines)

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

Τελικός Κώδικας. Παραγωγή. ΗΓλώσσαΜηχανής. ΗΓλώσσαΜηχανής. ΗΓλώσσαΜηχανής. ΗΓλώσσαΜηχανής. Παραγωγή. Τελικού Κώδικα. Ενδιάµεσος.

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

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

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

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

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

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

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 4: Ρουτίνες καθυστέρησης. [Συγγραφή ρουτίνας καθυστέρησης]

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

Προγραμματισμό για ΗΜΥ

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

Transcript:

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

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

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

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

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

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

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

Παράδειγµα Lab5.s 1. Σε αυτή την άσκηση καλείστε να συµπληρώσετε το αρχείο Lab5.s και να το µετατρέψετε, µετονόµάζοντας το σε Lab5a.s, έτσι ώστε το περιεχόµενο των καταχωρητών $t1, $t2, $t3 και $t4 να µεταφερθεί στους $t2, $t3, $t4 και $t1 αντίστοιχα µε τη χρήση των συναρτήσεων push και pop στη στοίβα. 2. Στη συνέχεια, µετονοµάστε σε Lab5b.s και µε αναδροµική κλήση υλοποιήστε το push και το pull του καταχωρητή $t1 στη στοίβα byte ανά byte. Για την πιο πάνω υλοποίηση θα πρέπει να καθοριστούν τα ακόλουθα: a. Τα όρια της µνήµης που θα κατέχει η δοµή της Στοίβας b. Κάποιο καταχωρητή σαν $bp και κάποιον σαν $sp c. Επίσης, θα πρέπει να υλοποιηθούν οι βασικές λειτουργίες της Στοίβας (push, pop) καθώς και οι ζητούµενες πράξεις 8