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

Σχετικά έγγραφα
Data-Level Parallelism Linking & Loading

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

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

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

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

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

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

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

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

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

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

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

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πέτρος Παναγή Σελ. 1

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

Writing kernels for fun and profit

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

Εντολές του MIPS (2)

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

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

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

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

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

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

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

LANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή

Λειτουργικά Συστήματα. Εισαγωγή

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

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

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος

Chapter 3 Αριθμητική Υπολογιστών

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

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 2 Οργάνωση μνήμης Καταχωρητές του MIPS Εντολές του MIPS 1

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

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

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

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

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

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

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

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις

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

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

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

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

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

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

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

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

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

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

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

MIPS functions and procedures

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

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

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

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

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

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

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

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

Εντολές: H γλώσσα μηχανής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΠΡΩΤΗ ΠΡΟΟΔΟΣ ΣΤΗΝ «ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Y»

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

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

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

Τελική Εξέταση, Απαντήσεις/Λύσεις

Προγραμματισμός Ι (HY120)

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

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

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πώς Δημιουργείτε ένα Executable Αρχείο

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

Εντολές: H γλώσσα μηχανής

Chapter 3. Αριθμητική Υπολογιστών. Έβδομη (7 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

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

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

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

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

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

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

Προτεινόμενες Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 & Αποτελέσματα

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Απόδοση Υπολογιστικών Συστημάτων

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

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

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

Μάθημα 8: Διαχείριση Μνήμης

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

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

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

Transcript:

ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 7 Μετάφραση ενός Προγράμματος Εξαιρέσεις Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1

Στάδια μετάφρασης ενός προγράμματος C Στατική σύνδεση 2

Εργασίες συμβολο-μεταφραστή (Assembler) 1. Μετάφραση ψευδοεντολών Οι περισσότερες εντολές του συμβολο-μεταφραστή έχουν 1-1 αντιστοιχία με εντολές της γλώσσας μηχανής. O συμβολο-μεταφραστήs μετατρέπει τις ψευδοεντολές (pseudoinstructions) σε συνδιασμούς πραγματικών εντολών Οι ψευδοεντολές είναι: Βοηθητικές εντολές οι οποίες αντικαθιστούν γνωστούς συνδυασμούς ή παραλλαγές εντολών της assembly που χρησιμοποιούνται για ειδικούς σκοπούς 32-bit επεκτάσεις των σταθερών 16-bit στις εντολές I-type move $t0, $t1 add $t0, $zero, $t1 blt $t0, $t1, L slt $at, $t0, $t1 bne $at, $zero, L li $s0,0x0123abcd lui $s0, 0x0123 ori $s0,$s0,0xabcd $at (καταχωρητής 1): για χρήση απόκλειστικά από τον συμβολομεταφραστή 3

Εργασίες συμβολο-μεταφραστή 2. Παραγωγή αντικειμενικών υπομονάδων Ο μεταγλωττιστής ή ο συμβολομεταφραστής μετατρέπει το αρχικό πρόγραμμα σε ένα αντικειμενικό αρχείο (object file) Το αντικειμενικό αρχείο περιέχει το πρόγραμμα μεταγλωττισμένο σε εντολές γλώσσας μηχανής επιπλέον πληροφορίες και δεδομένα που χρειάζονται για την εκτέλεση του προγράμματος 4

Παραγωγή αντικειμενικής υπομονάδας Το αντικειμενικό αρχείο (*.o) περιέχει Επικεφαλίδα (Header): περιγράφει το μέγεθος (σε bytes) και την θέση στην μνήμη των υπόλοιπων τμημάτων του αντικειμενικού αρχείου Τμήμα κειμένου (Text segment): περιλαμβάνει τον κώδικα γλώσσας μηχανής Τμήμα στατικών δεδομένων (Static data segment): Δεδομένα που διαρκούν καθ'όλη τη ζωή του προγράμματος (πχ. static variables) Πληροφορίες επανατοποθέτησης (Relocation info): προσδιορίζουν εντολές και δεδομένα που εξαρτώνται από απόλυτες διευθύνσεις Πίνακας συμβόλων (Symbol table): εξωτερικές αναφορές και συμβολικές αναφορές Πληροφορίες αποσφαλμάτωσης (Debug info): για την αντιστοίχιση με τον πηγαίο κώδικα όταν κάνουμε debugging 5

Εργασίες προγράμματος σύνδεσης (linker) Σύνδεση αντικειμενικών υπομονάδων και παραγωγή του εκτελέσιμου αρχείου (executable) σε 3 στάδια: 1. Τοποθέτηση τμημάτων κώδικα και δεδομένων συμβολικά στη μνήμη 2. Προσδιορισμός διευθύνσεων ετικετών εντολών και δεδομένων 3. Επιδιόρθωση (patching) εσωτερικών κι εξωτερικών αναφορών (internal and external references) To πρόγραμμα σύνδεσης παράγει ένα εκτελέσιμο αρχείο (executable file) Binary file : σειρά από 0 και 1 Μπορεί να εκτελεσθεί από υπολογιστή Ας δούμε ένα παράδειγμα: 6

Επανάληψη: Κατανομή μνήμης Κείμενο (Text): κώδικας Στατικά δεδομένα (static data segment): καθολικές μεταβλητές πχ., στατικές μεταβλητές C, πίνακες, συμβολοσειρές $gp : επιτρέπει εύκολη πρόσβαση στο τμήμα Δυναμικά δεδομένα: σωρός (heap) π.χ., malloc στη C, new στη Java Τοπικές ματαβλητές: Στοίβα (Stack) 7

AA.c: int X; Παράδειγμα σύνδεσης προγραμμάτων A () {. lw $a0, X call B;... } BB.c: int Y; AA.o void B () { sw $a1, Y call A;... } Θέλουμε να συνδέσουμε (link) τα δύο αντικειμενικά αρχεία (object files AA and BB) Οι εντολές φαίνονται εδώ σε συμβολική μορφή για να κατανοηθούν καλύτερα Στην πραγματικότητα, οι εντολές θα ήταν δυαδικοί αριθμοί BB.o 8

Παράδειγμα σύνδεσης προγραμμάτων Ο καταχωρητής $gp αρχικοποιείται πάντα με την τιμή 0x10008000 Τελικό εκτελέσιμο αρχείο (executable file) 9

Φόρτωση προγράμματος (I) Αρχικά το εκτελέσιμο αρχείο βρίσκεται στον σκληρό δίσκο O φορτωτής (loader): 1. Διαβάζει την επικεφαλίδα για να προσδιορίσει το μέγεθος των τμημάτων 2. Δημιουργεί ένα χώρο διευθύνσεων στην κύρια μνήμη αρκετά μεγάλο για εντολές και δεδομένα 3. Αντιγράφει εντολές και αρχικοποιημένα δεδομένα στη μνήμη (ο Loader είναι τμήμα του λειτουργικού συστήματος, Operating System) 10

Φόρτωση προγράμματος (II) Φόρτωση από το δίσκο στη μνήμη: 4. Αντιγράφει τις παραμέτρους του προγράμματος που δίνει ο χρήστης στη στοίβα (argc, argv) 5. Αρχικοποιεί τους καταχωρητές (συμπεριλαμβανομένων των $sp, $fp, $gp) και θέτει τον $sp στην πρώτη ελεύθερη θέση 6. Μεταπηδά στη ρουτίνα εκκίνησης Η ρουτίνα αντιγράφει τις παραμέτρους στους $a0, και καλεί τη main Όταν η main επιστρέφει, κάνει κλήση συστήματος για έξοδο (exit syscall) 11

Προγράμματα σε Java Η γλώσσα προγραμματισμού Java έχει σχεδιαστεί με ένα διαφορετικό σύνολο στόχων από την C Στόχος ήταν η γρήγορη και ασφαλής εκτέλεση σε οποιονδήποτε υπολογιστή Η ταχύτητα εκτέλεσης ενός προγράμματος ήταν (αρχικά) δευτερεύουσας σημασίας H τυπική εκτέλεση ενός προγράμματος Java περιλαμβάνει δύο στάδια (stages) 12

Προγράμματα σε Java Σύνολο εντολών για την JVM. Ανεξάρτητο του επεξεργαστή Μεταγλωττίζει επιλεκτικά bytecodes σε κώδικα γλώσσας μηχανής Διερμηνεύει και εκτελεί bytecodes H τυπική σειρά εκτέλεσης είναι Compiler Java Virtual Machine Για υψηλότερη απόδοση, ένας Just In Time (JIT) compiler μπορεί να μεταγλωτίζει επιλεγμένα τμήματα του bytecode στην γλώσσα μηχανής του επεξεργαστή στον οποίο εκτελείται 13

Διακοπές και εξαιρέσεις (interrupts and exceptions) Εξαιρέσεις (exceptions): σφάλματα κατά την εκτέλεση εντολών του προγράμματος Συνήθως προκαλούν την άμεση διακοπή του προγράμματος To γνωστό σε όλους segmentation fault Παραδείγματα εξαιρέσεων: Υπερχείλιση σε αριθμητικές πράξεις Διαίρεση με μηδέν Άλμα στο χώρο δεδομένων από εντολές jr και jalr Προσπέλαση του χώρου προγράμματος από εντολές lw και sw Ειδική περίπτωση εξαίρεσης: κλήσεις ρουτινών συστήματος (syscall) 14

Διακοπές και εξαιρέσεις (interrupts and exceptions) Διακοπές (interrupts): αιτήσεις για εξυπηρέτηση από συσκευές Ι/Ο Για παράδειγμα, κάθε φορά που γράφετε από το πληκτρολόγιο Η διαχείριση των εξαιρέσεων και των διακοπών στον MIPS γίνεται από ένα ειδικό τμήμα του επεξεργαστή που ονομάζεται συνεπεξεργαστής 0 (coprocessor 0) 15

Διακοπές και εξαιρέσεις Σημαντικότεροι καταχωρητές του συνεπεξεργαστή 0: Register name Register # Usage $badvaddr 8 address at which erroneous memory reference occurred $status 12 interrupt enable and kernel/user bits $cause 13 exception type and pending interrupts $epc 14 address of instruction that caused exception (or that was executing when interrupt occurred) Εντολές μεταφοράς δεδομένων από και προς το συνεπεξεργαστή 0: mfc0 $s0,$epc $s0 = $epc mtc0 $s0,$epc $epc = $s0 lwc0 $epc,100($s1) $epc = Mem[$s1+100] swc0 $epc,100($s1) Mem[$s1+100] = $epc 16

Διακοπές και εξαιρέσεις Status register (6 hard - 2 soft) Cause register (6 hard - 2 soft) 17

Διακοπές και εξαιρέσεις Διακόπτουν την κανονική ροή εκτέλεσης του προγράμματος και εκτελούν άλμα σε μια διαδικασία χειρισμού εξαίρεσης (exception handler), η οποία βρίσκεται στο χώρο του λειτουργικού συστήματος (kernel) και όχι στο χώρο του χρήστη (user) Βήματα που εκτελούνται από το hardware όταν προκληθεί μια εξαίρεση/διακοπή: Αποθήκευση του PC στον καταχωρητή $epc (ενδεχομένως και της λανθασμένης διεύθυνσης αναφοράς στον καταχωρητή $badvaddr). Για παράδειγμα, εάν η εντολή lw $s0, 0($sp) δημιούργησε μιά εξαίρεση, τότε $badvaddr 0($sp) Καταγραφή του κωδικού εξαίρεσης στον καταχωρητή $cause Γενική απενεργοποίηση των διακοπών και ανάθεση kernel/user λειτουργίας σε kernel mode στον καταχωρητή $status Άλμα στη δεκαεξαδική διεύθυνση 0x80000180 όπου βρίσκεται ο exception handler 18

Διακοπές και εξαιρέσεις Βήματα που εκτελούνται από το λειτουργικό σύστημα όταν προκληθεί μια εξαίρεση/διακοπή: Ανάγνωση του καταχωρητή $cause για προσδιορισμό του κωδικού εξαίρεσης Άλμα σε μια ρουτίνα του λειτουργικού συστήματος ανάλογα με τον κωδικό εξαίρεσης (πιθανόν με τη βοήθεια ενός jump address table) Χειρισμός εξαίρεσης (ή εξυπηρέτηση της συσκευής που προκάλεσε διακοπή) Επιστροφή στη ρουτίνα του exception handler Eντολή eret (exception return) για επιστροφή στο πρόγραμμα του χρήστη - εφόσον δεν χρειάστηκε αυτό να τερματίσει κατά το χειρισμό της εξαίρεσης - η οποία βασικά εκτελεί: mfc0 $k0,$epc addi $k0,$k0,4 jr $k0 Εντολή break n προκαλεί εξαίρεση με τον κωδικό n 19

Γενική δομή του επεξεργαστή MIPS 20

Διακοπές και εξαιρέσεις Σημαντικότεροι κωδικοί διακοπών/εξαιρέσεων του MIPS: Number Name Description 0 Int external interrupt 4 AdEL address load error (instruction or data) 5 AdES address store error (data only) 6 IBE bus error on instruction load 7 DBE bus error on data load or store 8 Sys syscall exception 9 Bp breakpoint exception 10 RI reserved (illegal) instruction 11 CpU coprocessor unimplemented 12 Ov arithmetic overflow 13 Tr trap (general) exception 15 FPE floating point exception 21