Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author:...

17
Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: [email protected] www.ece.ucy.ac.cy/courses/ECE213 ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

Transcript of Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author:...

Page 1: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

Διδάσκων: Δρ. Γιώργος Ζάγγουλος

Email: [email protected]

www.ece.ucy.ac.cy/courses/ECE213

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

Page 2: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

Περίληψη

2

Συναρτήσεις

Σήματα Διακοπής

Διαχείριση Εξαιρέσεων

Co-processor

Χρονόμετρο

9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 3: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

ExceptionsΤι είναι ένα Exception?

Μια παρέκκλιση από την κανονική ροή του προγράμματος

Ποιοι λόγοι μπορούν να προκαλέσουν ένα Exception?

A) Λάθος κατά την εκτέλεση του προγράμματος

(Software Interrupt)

B) Κλήση από συσκευή εξόδου – εισόδου

(I/O Interrupt)

Γ) Κλήση από χρονομετρητή

(Timer interrupt)

3 9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 4: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

Exceptions

Ποιος διαχειρίζεται τα Exceptions? Coprocessor 0

Ποιοι καταχωρητές χρησιμοποιούνται?

4 9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 5: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

5

Καταχωρητές Status ($12), Cause ($13) και

Exception Programme Counter ($14)

mfc0 $t5, $13 # Copy Cause register value to $t5mtc0 $v0, $12 # Copy $v0's value to Status reg.

9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 6: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

6

Ενεργοποίηση Interrupts - Register ($12)

1. Το bit στη θέση 0 ενεργοποιεί τα σήματα διακοπής (global on/off control bit for all interrupts).

2. Αναλόγως των σημάτων διακοπής που επιθυμείτε να επιτρέψετε, θέστε σε λογικό 1 τα bitς 11 και 15 του καταχωρητή Status τα οποία επιτρέπουν στην CPU να ανταποκρίνεται στα σήματα διακοπής από το πληκτρολόγιο και το ρολόι αντίστοιχα.

3. Θέστε σε λογικό 1 το Interrupt Enable bit στον καταχωρητήReceiver Control Register (0xFFFF0000). Αυτό το bit επιτρέπει την δημιουργία σημάτων διακοπής από το πληκτρολόγιο όταν ο χρήστης πληκτρολογήσει οτιδήποτε.

9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 7: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

7

Ειδικοί καταχωρητές (θέσεις μνήμης) που

χρησιμοποιούνται για Interrupts

9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 8: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

8

Διαχείριση ενός Interrupt

Όταν δημιουργηθεί κάποιο σήμα διακοπής, τα επόμενα βήματα εκτελούνται αυτόματα από το υλικό του μικρό-επεξεργαστή:

1. Το Exception Level bit (bit 1) στον καταχωρητή Status γίνεται 1. Όταν αυτό το bit έχει τιμή 1, δεν μπορούν να δημιουργηθούν άλλα σήματα διακοπής. Αυτό συμβαίνει γιατί δεν μπορεί ο μικροεπεξεργαστής να διακόψει την λειτουργία εξυπηρέτησης κάποιας διακοπής για να εξυπηρετήσει μια 2η διακοπή.

2. Ο καταχωρητής Cause παίρνει την ανάλογη τιμή από την οποία μπορούμε ως προγραμματιστές να δούμε τί προκάλεσε τη διακοπή (το ρολόι ή το πληκτρολόγιο).

3. Ο καταχωρητής EPC παίρνει την τιμή που έχει αυτή την στιγμή ο Program Counter για να μπορεί μετά από την εξυπηρέτηση του interrupt να επιστρέψει στο σημείο από το οποίο πρέπει να συνεχίσει.

9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 9: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

Συναρτήσεις

Τι ονομάζουμε συνάρτηση?

Αυτόνομο σύνολο εντολών στο οποίο έχουμε εισόδουςκαι έξοδο

Υλοποιεί μια διαδικασία

Περιέχει τοπικές μεταβλητές οι οποίες «εξαφανίζονται»

με την ολοκλήρωση της εκτέλεσης της συνάρτησης.

9

int i, j;

9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 10: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

Κλήση Συναρτήσεων

10

reserved

Text Segment

Data Segment

Stack SegmentText Segment

Main

Print_Report

Get_Input

132 4

9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 11: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

Κλήση Συναρτήσεων – Παράμετροι

εισόδου

Πριν την κλήση μιας συνάρτησης πρέπει να αποθηκεύσουμε τις παραμέτρους (μεταβλητές και σταθερές) στη μνήμη αν δεν υπάρχουν ήδη.

Πού και με ποιο τρόπο?

Τι είναι η στοίβα και πως τη χρησιμοποιούμε?

11

reserved

Text Segment

Data Segment

Stack Segment

9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 12: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

∆οµή Στοίβας (stack)

Τι είναι η Στοίβα?

Ορίζεται γενικά μια δομή δεδομένων η οοία ακολουθείτην πολιτική Last-In-First-Out (LIFO).

Κάθε δομή stack χαρακτηρίζεται λήρως αό δύοδείκτες και τις βασικές λειτουργίες ου εκτελεί.

12 9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 13: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

∆οµή Στοίβας (stack)

Οι δύο βασικοί δείκτες δείχνουν στα όρια της και είναι:

Ο δείκτης βάσης (base pointer – bp) ο οοίος

δείχνει το αρχικό στοιχείο της δομής, δηλαδή

το ρώτο στοιχείο ου μήκε στην στοίβα και

το τελευταίο ου θα βγει, και

Ο δείκτης στοίβας (stack pointer – sp) ο οοίος

δείχνει το εόμενο στοιχείο ου θα τύχει

διαχείρισης, αυτό δηλαδή ου μήκε

τελευταίο στη δομή.

Κατά την αρχικοοίηση της στοίβας ισχύει ότι bp = sp.

13

SP

ΒP

9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 14: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

Οι Βασικές Λειτουργίες μιας Στοίβας

Οι βασικές λειτουργίες διαχείρισης μιας στοίβας είναι οι εντολές push

(εναποθέτω) και pop (ανακτώ).

Η εντολή push είναι η εντολή ου «γεμίζει» την δομή με δεδομένα,

ακολουθώντας τη λογική LIFO.Κάθε εντολή push(a) μειώνει τον sp κατά

1 (ή 4) θέσεις και μετά τοοθετεί στη θέση(εις) αυτή(ές) το δεδομένο

ου εριγράφεται (ή δείχνεται, αναλόγως της εφαρμογής) αό το a.

Η εντολή pop είναι η εντολή ου «αδειάζει» τη δομή αό τα δεδομένα.

Κάθε εντολή pop(b) αφαιρεί αό τη στοίβα το στοιχείο ου δείχνει ο

sp, το τοοθετεί στο b (ή στη θέση ου δείχνει ο b, αναλόγως

εφαρμογής) και μετά αυξάνει τον sp κατά μία (ή 4) θέσεις.

14

SP

ΒP

a

9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 15: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

Η Στοίβα στο SPIM

15

reserved

Text Segment

Data Segment

Stack Segment

SP = 0xfffffffc

SP = 0xfffffff8 push

SP = 0xfffffff4 push

9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 16: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

Η Στοίβα στο SPIM

16

reserved

Text Segment

Data Segment

Stack Segment

SP = 0x7ffffffc

SP = 0x7ffffff8pop

SP = 0x7ffffff4

pop

9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 17: Lecture5-ECE213-2019 - Compatibility Mode · Lecture5-ECE213-2019 - Compatibility Mode Author: Christodoulos Created Date: 2/9/2020 9:57:20 PM ...

Παράδειγμα Λειτουργίας μιας Στοίβας

1. push(a) # push register a on the stack

2. push(b) # push register b on the stack

3. pop(a) # pop value from the stack to reg. a

4. pop(b) # pop value from the stack to reg. b

Ποιο θα είναι το αποτέλεσμα των πιο πάνω εντολών

(σε σχέση με το περιεχόμενο των καταχωρητών);

17 9-Feb-20Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.