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

Σχετικά έγγραφα
Ενσωματωμένα Συστήματα

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

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

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

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

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

Είναι το πρωτόκολλο RS232 που χρησιμοποιείται στις σειριακές θύρες COM με τη διαφορά ότι εκτελείται σε επίπεδο τάσεων TTL. 2

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

Θεωρητικές Ερωτήσεις

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

Εισαγωγή στην πληροφορική -4

Αρχιτεκτονική Μνήµης

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

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

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

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

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

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

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

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

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

Αρχιτεκτονική Μνήμης

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

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

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

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

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

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

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

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

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

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

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

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

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

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

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Έλεγχος της Σειριακής Θύρας

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

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

Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

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

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

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

Παραλληλισµός Εντολών (Pipelining)

Προγραμματισμός Η/Υ (ΤΛ2007 )

Το υλικό του υπολογιστή

8051 Interrupt Ports. Name Alternate Function

ΗΥ-150. Προγραμματισμός

ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ARDUINO

Αντικειμενοστρεφής Προγραμματισμός

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

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

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

Τέτοιες λειτουργίες γίνονται διαμέσου του

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

Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1

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

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Μονάδες Μνήμης και Διατάξεις Προγραμματιζόμενης Λογικής

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

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

Transcript:

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ CPUs Διδάσκων: Παναγιώτης Καρκαζής

Περίγραμμα -Συσκευές Ι/Ο - Διακοπές, Εξαιρέσεις, Παγίδες -Καταστάσεις λειτουργίας -Συνεπαξεργαστές

mechanism Συσκευές Ι/Ο Οι συσκευές Ι/Ο (input-output) διακρίνονται σε ψηφιακές και αναλογικές Η επικοινωνία μεταξύ της CPU και Ι/Ο γίνεται μέσω των καταχωρητών δεδομένων και κατάστασης Τυπική διεπαφή Ι/Ο με την CPU: CPU status reg data reg

Σειριακή επικοινωνία Τα δεδομένα μεταδίδονται σειριακά Η αρχή και το τέλος της μετάδοσης καθορίζεται από τα start/stop bits Η ταχύτητα μετάδοσης παραμένει σταθερή καθ όλη την διάρκεια της μετάδοσης no char start bit 0 bit 1... bit n-1 stop time

Παράμετροι επικοινωνίας Πριν την έναρξη της επικοινωνίας πρέπει να καθοριστούν οι παρακάτω παράμετροι και στα δύο μέρη: Ρυθμός μετάδοσης (baud rate) Αριθμός bit ανά χαρακτήρα Ύπαρξη ισοτιμίας (parity) Είδος ισοτιμίας (even/odd) Μήκος του stop bit (1,1.5,2 bits)

Τεχνικές διαχείρισης Ι/Ο Υπάρχουν διαφορετικές τεχνικές διαχείρισης των Ι/Ο μέσω εντολών: ειδικού σκοπού (programmable Ι/Ο) χαρτογράφησης μνήμης(memory mapped) Οι περισσότερες CPU χρησιμοποιούν memory mapped προσέγγιση Η μία τεχνική δεν αποκλείει την άλλη

Memory mapped example Ορισμός θέσης μνήμης της συσκευής DEV1 EQU 0x1000 Κώδικας προσπέλασης: LDR r1,#dev1 ; set up device adrs LDR r0,[r1] ; read DEV1 LDR r0,#8 ; set up value to write STR r0,[r1] ; write value to device

Προσπέλαση με χρήση HLL Οι γλώσσες υψηλού επιπέδου (High Level Languages) παρέχουν συναρτήσεις για την προσπέλαση των Ι/Ο, οι οποίες δέχονται ορίσματα δείκτες μνήμης Ανάγνωση μέσω pointer: int peek(char *location) { return *location; } Εγγραφή μέσω pointer: void poke(char *location, char newval) { (*location) = newval; }

Πρόσβαση με αναμονή απασχόλησης (busy/wait) Βασίζεται στον συνεχή έλεγχο της κατάστασης της συσκευής, ώστε να αποφευχθεί η εγγραφή/ανάγνωση δεδομένων σε στιγμή που η συσκευή είναι απασχολημένη Είναι απλός αλλά αναποτελεσματικός τρόπος διαχείρισης current_char = mystring; while (*current_char!= \0 ) { poke(out_char,*current_char); while (peek(out_status)!= 0); current_char++; } Busy Wait

Ταυτόχρονη πρόσβαση Ι/Ο Παράδειγμα ταυτόχρονης πρόσβασης με αναμονή απασχόλησης: while (TRUE) { /* read */ while (peek(in_status) == 0); achar = (char)peek(in_data); /* write */ poke(out_data,achar); poke(out_status,1); while (peek(out_status)!= 0); }

Διακοπές Ι/Ο Η πρόσβαση με αναμονή λόγω καθυστέρησης αναγκάζει την CPU να αναλώνεται στον συνεχή έλεγχο της κατάστασης των Ι/Ο με αποτέλεσμα να καθιστά δύσκολη την εκτέλεση παράλληλων εργασιών Οι διακοπές επιτρέπουν στην CPU να διακόψουν την εκτέλεση του τρέχοντος προγράμματος και να εξυπηρετήσουν την συσκευή Ι/Ο μέσω εκτέλεσης της κατάλληλης υπο-ρουτίνας χειρισμού Η εξυπηρέτηση των διακοπών απαιτεί την αποθήκευση του PC

IR PC mechanism Χειρισμός διακοπής 1. Η συσκευή σηματοδοτεί την διακοπή 2. Η CPU επιβεβαιώνει την λήψη και καλεί την υπορουτίνα εξυπηρέτησης της διακοπής CPU intr request intr ack status reg data/address data reg

Εξυπηρέτηση διακοπής void input_handler() { achar = peek(in_data); gotchar = TRUE; poke(in_status,0); } Υπο-ρουτίνες εξυπηρέτησης void output_handler() {} main() { while (TRUE) { if (gotchar) { poke(out_data,achar); poke(out_status,1); gotchar = FALSE; } } } Κυρίως πρόγραμμα

Διακοπές Ι/Ο με χρήση buffer H χρήση ουράς (buffer) επιτρέπει διαχείριση Ι/Ο με διαφορετικούς ρυθμούς ανάγνωσης εγγραφής a head tail tail void input_handler() { char achar; if (full_buffer()) error = 1; else { achar = peek(in_data); add_char(achar); } poke(in_status,0); if (nchars == 1){ poke(out_data,remove_char(); poke(out_status,1); } }

Σφάλματα κατά την εξυπηρέτηση διακοπών Προκύπτουν κυρίως λόγω του ότι κάποιοι καταχωρητές που τροποποιούνται δεν επαναφέρονται στην αρχική τους τιμή Είναι πολύ δύσκολο να απομονωθεί το πρόβλημα κατά την διαδικασία αποσφαλμάτωσης, διότι οι επιπτώσεις του σφάλματος στο κύριο πρόγραμμα εξαρτώνται από την χρονική στιγμή που θα σηματοδοτηθεί η διακοπή Η υλοποίηση διακοπών απαιτεί την ύπαρξη «στοίβας»

Προτεραιότητες Masking: Η εφαρμογή μάσκας καθορίζει ποια διακοπή θα εξυπηρετηθεί πρώτη. Διακοπή χαμηλότερης προτεραιότητας εξυπηρετείται μετά το πέρας της τρέχουσας Non-maskable interrupt: Στην διακοπή με την υψηλότερη προτεραιότητα δεν εφαρμόζεται ποτέ μάσκα ώστε να εξυπηρετείται πάντα άμεσα

Παράδειγμα :interrupts :foreground :A :B :C B C A A,B

Διανύσματα διακοπής Επιτρέπουν τον χειρισμό διαφορετικών διακοπών από διαφορετική υπο-ρουτίνα εξυπηρέτησης. Τα διανύσματα μπορεί να αποστέλλονται από τις συσκευές ή να είναι αποθηκευμένα στην μνήμη Interrupt vector table head handler 0 handler 1 handler 2 handler 3

Διαδικασία διακοπής Η CPU επιβεβαιώνει την διακοπή Η συσκευή αποστέλλει το διάνυσμα διακοπής Η CPU καλεί την υπο-ρουτίνα εξυπηρέτησης Εκτελείται η υπο-ρουτίνα Η CPU τον PC στην ροή εκτέλεσης του κανονικού προγράμματος

Κόστος εκτέλεσης διακοπών Χρόνος εκτέλεσης του κώδικα χειρισμού της διακοπής Καθυστέρηση στην CPU λόγω υλοποίησης του μηχανισμού της διακοπής Καθυστέρηση λόγω αποθήκευσης/αποκατάστασης των τιμών των καταχωρητών Καθυστέρηση κατά την εκτέλεση των πρώτων κύκλων του pipeline

Καταστάσεις λειτουργιάς Καταστάσεις λειτουργίας User Unprivileged mode FIQ High priority Interrupt is raised IRQ Low priority Interrupt is raised Supervisor Reset privileged mode Abort Memory access violations Τα περισσότερα προγράμματα εκτελούνται σε κατάσταση χρήστη

Supervisor mode (κατάσταση επιβλέποντος) Όταν απαιτείται η λειτουργία πολλαπλών διεργασιών τότε πρέπει να διασφαλιστεί ότι οι κάθε διεργασία θα διαχειρίζεται την δική της μνήμη και θα έχει πρόσβαση σε συσκευές (πχ Ι/Ο) μόνο όταν αυτές είναι διαθέσιμές Αυτό το επίπεδο ασφάλειας παρέχεται από τα λειτουργικά συστήματα Όταν μια διεργασία εκτελείται σε κατάσταση supervisor mode της παρέχεται πρόσβαση (privileges) σε όλο το υλικό του συστήματος Τα λειτουργικά συστήματα συνήθως λειτουργούν σε κατάσταση supervisor mode

Εξαιρέσεις Προκαλούνται από εσωτερικό σφάλμα (πχ. διαίρεση μηδέν) Δεν είναι προβλέψιμες Εκτρέπουν την ροή του προγράμματος, όπως και οι διακοπές Εξυπηρετούνται με τον μηχανισμό των διακοπών Υποστηρίζουν προτεραιότητες και διανύσματα

Παγίδες Είναι μια διακοπή πού παράγεται από εντολή Πχ: κατά την μετάβαση σe supervisor mode

Συνεπεξεργαστές Οι συνεπεξεργαστές συνδέονται με τη CPU που παρέχουν επιπρόσθετες λειτουργίες Πχ. εκτέλεση πράξεων κινητής υποδιαστολής Υπάρχουν συγκεκριμένες εντολές (op-codes) που εκτελούνται στον συνεπεξεργαστή H CPU συνήθως λειτουργεί παράλληλα εκτελώντας την επόμενη εντολή

Βιβλιογραφία W. Wolf, - Computers as Component

Καλό διάβασμα