Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 4 Real Mode Interrupts

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

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

Writing kernels for fun and profit

Keyboard. Ασσιούρας Ιωάννης 5593 Βούκας Ιωάννης 5001 Πρωτονοτάριος Ιωάννης 6072

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

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

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 6 C & Assembly

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Προηγμένοι Μικροεπεξεργαστές. Παρουσίαση Projects

Μικροαρχιτεκτονική του LC3

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

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 3 Task Switching in PM

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-Ι. Ενότητα 4: Το Προγραμματιστικό Μοντέλο του 8086

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

Προηγμένοι Μικροεπεξεργαστές. Παρουσίαση Projects

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

Λειτουργικά Συστήματα Πραγματικού Χρόνου

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

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

Εικονική Μνήμη (Virtual Μemory)

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

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ

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

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

Εικονική Μνήμη (Virtual Μemory)

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

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

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

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

8051 Interrupt Ports. Name Alternate Function

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

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

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

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

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

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Εικονική Μνήμη (1/2)

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

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

12. Διακοπές Interrupts (IRQ)

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016)

Ποια πρόταση είναι αληθής για τον Μ/Ε 8088: Είναι Μ/Ε 16bit, LSI, 40 pins, 20 γραμμές διευθύνσεων, 8 γραμμές δεδομένων

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

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα;

Εικονική Μνήμη (virtual memory)

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Προηγμένοι Μικροεπεξεργαστές. Παρουσίαση Εργασιών

Ε-85: Ειδικά Θέµατα Λογισµικού

ΜΑΘΗΜΑ: ΜΙΚΡΟΕΛΕΓΚΤΕΣ

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Λειτουργικά Συστήματα (ΗΥ321)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

ΧΡΗΣΗ ΠΛΗΚΤΡΟΛΟΓΙΟΥ, ΟΘΟΝΗΣ ΚΑΙ INTERRUPTS ΣΤΟΝ EMULATOR

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

Αρχιτεκτονική-ΙI Ενότητα 6 :

ΜΕΡΟΣ 1. Διακοπές (Interrupts)

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

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

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

Μεθόδων Επίλυσης Προβλημάτων

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

Εργαστήριο «Δίκτυα Υπολογιστών Ι»

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

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

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

Περιγραφή και Έλεγχος ιεργασιών

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Διασυνδετικοί Δίαυλοι. Τι διασυνδέει ένας δίαυλος; Μεταφορά δεδομένων. Διασύνδεση Εισόδου-Εξόδου. Μ.Στεφανιδάκης

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

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

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

S, (5, -3, 34, -23, 7) ( *, _

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

Διασύνδεση Εισόδου-Εξόδου

Εισαγωγικά & Βασικές Έννοιες

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

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

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

Ενσωµατωµένα Συστήµατα

ΑΝΑLOG TO DIGITAL CONVERTER (ADC)

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

Προγραμματισμός Ταυτόχρονος Προγραμματισμός

Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal Display

File Management και I/O στο UNIX

Σύστημα διασύνδεσης και. διαδικασία εισόδου-εξόδου

Transcript:

Προηγμένοι Μικροεπεξεργαστές Φροντιστήριο 4 Real Mode Interrupts

Επισκόπηση Μορφές control tranfer Γενικά μη προγραμματισμένες Ασυγχρονα προς την εκτέλεση του προγράμματος Hardware interrupts Σύγχρονα προς την εκτέλεση του προγράμματος Exceptions Software interrupts

Hardware Interrupts Προκαλούνται από εξωτερικές συσκευές Maskable interrupts στο pin INTR Συνήθως διαμέσου του PIC 8259 Μπορούν να απενεργοποιηθούν μέσω του IF στον eflags Non-maskable interrupt στο pin NMI Δεν μπορεί να απενεργοποιηθεί Χρησιμοποιείται για κρίσιμα γεγονότα που πρέπει να αντιμετωπιστούν άμεσα

Exceptions Δείχνουν κάποιο πρόβλημα στην συνέχιση ενός προγράμματος Faults: Πρόβλημα στην εκτέλεση της τρέχουσας εντολής Traps: Κάποιο γεγονός προκλήθηκε από την προηγούμενη εντολή Aborts: Το πρόβλημα αφορά συνολικότερα την κατάσταση του επεξεργαστή Δεν σχετίζεται με συγκεκριμένη εντολή

Software Interrupts Software interrupts (ΙΝΤ n) Προκαλούνται προγραμματιστικά από το πρόγραμμα με εντολές ΙΝΤΟ, ΙΝΤ 3 και INT n INT n : εκτέλεσε το interrupt n INT 3 : συντόμευση για το int 3 (breakpoint) INTO : συντόμευση για το int 4 (break if overflow) Παρά το ότι είναι interrupts, αντιμετωπίζονται ως exceptions από τον επεξεργαστή Συνήθης διεπαφή για την προσφορά υπηρεσιών από το λειτουργικό σύστημα

Interrupts και Exceptions Κάθε interrupt/exception έχει ως αποτέλεσμα την μεταφορά του ελέγχου του προγράμματος σε κάποιο άλλο σημείο Το που εξαρτάται από το mode λειτουργίας

Real mode Interrupts Interrupt Vector Table (IVT) Καλύπτει το πρώτο KB της μνήμης Ξεκινά στην θέση 0x000 Τελειώνει στην 0x3FF Περιέχει 256 vectors διακοπών, το καθένα 4 bytes 2 χαμηλότερα = offeset της ISR 2 υψηλότερα = segment της ISR Ο έλεγχος μεταφέρεται στο segment:offset που δίνει το vector που αντιστοιχεί στην διακοπή

Real mode Interrupts Δηλαδή: INT n call FAR [ 0x0 : n * 4] Πιο αναλυτικά: pushf call FAR [0x0 : n*4] push cs push ip ip [n * 4], cs [n*4 + 2] reset if, tf (disable maskable interrupts)

Interrupt Service Routines Οι συναρτήσεις που εξυπηρετούν interrupts είναι παρόμοιες με τις κανονικές far συναρτήσεις

Interrupt Service Routines Σημαντικές διαφορές στο state: Interrupts disabled on entry εκτός από το CS:IP, στην στοίβα και τα eflags Error number στην στοίβα για κάποιους τύπους exception

Interrupt Service Routines Σημαντικές διαφορές στην δομή: Έξοδος με iret αντί για ret Πρέπει να παίρνουν τον ελάχιστο δυνατό χρόνο Ελάχιστες μεταβλητές Αποφεύγονται τα push και pop Αν εξυπηρετούν hardware interrupt θα πρέπει να ενημερώνουν τον PIC 8259 για την εξυπηρέτηση (End of Interrupt σήμα - ΕΟΙ)

Α/Α interrupts Ο αύξων αριθμός του interrupt δίνει τον αύξων αριθμό του vector που αντιστοιχεί στο interrupt Exceptions: θέσεις 0-31 Interrupts: κανονικά θέσεις 32-255 Αλλά πολλά interrupts έχουν μικρότερο αριθμό Πχ timer interrupt στην 0x8 και στην 0x1c

Σημαντικά Exceptions/Interrupts Exceptions: 00h = divide error 01h = debug exceptions 03h = breakpoint 04h = overflow 08h = double exception 0Ah = invalid TSS 0Dh = GP violation 0Eh = Page Fault Interrupts: 02h = nmi 05h = print screen 08h = timer 09h = keyboard data ready 10h = BIOS video services 13h = BIOS disk services 21h = DOS services

Σημαντικότερα interrupts - Timer Ο hardware timer εξυπηρετείται από το interrupt 8 στην PC αρχιτεκτονική Το ίδιο που καλύπτει και το double exception H ρουτίνα εξυπηρέτησης πρέπει να καλύπτει και τα δύο! Στο DOS, το interrupt 8: απλά επιλέγει ποιο από τα δύο interrupts θα εξυπηρετήσει φροντίζει για την επικοινωνία με το hardware (ανάγνωση PIC για να βρεθεί αν υπάρχει timer interrupt, αποστολή EOI) Το interrupt που πραγματικά επεξεργάζεται το event είναι το interrupt 0x1c Καλείται με int 0x1c από το int 8 Αυξάνει τον timer του DOS στην θέση [0x40:0x6c]

Σημαντικότερα interrupts - DOS Το DOS παρέχει μία σειρά από υπηρεσίες μέσω του software interrupt 0x21 Ουσιαστικά δίνουν το API του DOS Καλύπτουν: υψηλού επιπέδου χρήση περιφερειακών συσκευών υπηρεσίες σχετικές με την διαχείριση του λειτουργικού συστήματος

Κυριότερα DOS Services Μέσω του int 0x21 παρέχονται πολλαπλές υπηρεσίες Η επιλογή γίνεται μέσω της τιμής του ΑΗ πριν το software interrupt Ah = 01h -> keyboard input with echo Ah = 07h -> direct console input without echo Ah = 0ah -> buffered keyboard input Ah = 3dh -> open file using handle Ah = 3eh -> close file using handle Ah = 3fh -> read file or device using handle Ah = 40h -> write file or device using handle

DOS Services Πλήρης λίστα: http://heim.ifi.uio.no/~stanisls/helppc/int_21.html