Καθηγητής Σταύρος Α. Κουμπιάς ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ Τμήμα Ηλεκτρολογών Μηχανικών και Τεχνολογίας Υπολογιστών Μικρουπολογιστές & Μικροσυστήματα ΙΙ Καθηγητής Σταύρος Α. Κουμπιάς Πανεπιστημίου Πατρών
Ο μ-ε 8086 (Ι) Το 1978, η Intel εισήγαγε στην αγορά τον 8086 μικροεπεξεργαστή, Σε ένα χρόνο περίπου αργότερα εισήγαγε τον 8088. Και οι δύο διατάξεις ήσαν 16-bit μικροεπεξεργαστές, οι οποίοι εκτελούσαν εντολές σε 400 ns (2,5 MIPs ή 2,5 εκατομμύρια εντολές ανά δευτερόλεπτο). Αυτό αντιπροσώπευε μια πολύ μεγάλη βελτίωση ως προς την ταχύτητα εκτελέσεως του 8085. (Μια 1M byte μνήμη περιλαμβάνει θέσεις μνήμης έκτασης 1.024Κ byte, ή 1.048.576 bytes). Αυτή η υψηλότερη ταχύτητα εκτέλεσης και η μεγαλύτερη έκταση μνήμης επέτρεψαν στους 8086 και 8088 να αντικαταστήσουν μικρότερους μικροϋπολογιστές σε πολλές εφαρμογές. Ένα άλλο χαρακτηριστικό στους 8086/8088 ήταν η μικρή 4-ή 6-byte λανθάνουσα (cache) μνήμη εντολών ή ουράς αναμονής (queue) που φέρνει μερικές εντολές πριν αυτές εκτελεστούν. Η ουρά αναμονής επιτάχυνε τη λειτουργία πολλών ακολουθιών εντολών και αποδείχθηκε να είναι η βάση για πολύ μεγαλύτερες λανθάνουσες μνήμες που απαντώνται στους μοντέρνους μικροεπεξεργαστές.
Ο μ-ε 8086 (ΙΙ) Η αύξηση στην έκταση της μνήμης και οι επιπλέον εντολές των 8086 και 8088 έχουν οδηγήσει σε πολλές εξελιγμένες εφαρμογές για τους μικροεπεξεργαστές. Βελτιώσεις στο σύνολο των εντολών περιλάμβαναν μία εντολή πολλαπλασσιασμού-και-διαίρεσης, που δεν υπήρχε στους αρχικούς μικροεπεξεργαστές. Επίσης, ο αριθμός των εντολών αυξήθηκε από 45 στον 4004, σε 246 στον 8085 και σε περισσότερες από 20.000 παραλλαγές στους 8086 και 8088 μικροεπεξεργαστές. Oι μικροεπεξεργαστές ονομάζονταν CISC (complex instruction set computers= υπολογιστές πολυσύνθετων διατάξεων εντολών) λόγω του αριθμού και της πολυπλοκότητας των εντολών. Οι πρόσθετες εντολές διευκόλυναν την ανάπτυξη αποτελεσματικών και εξελιγμένων εφαρμογών ακόμα και αν ο αριθμός τους ήταν στην αρχή συντριπτικός και χρειαζόταν πολύς χρόνος για εκμάθηση. Ο 16-bit μικροεπεξεργαστής παρείχε επίσης περισσότερους εσωτερικούς καταχωρητές αποθήκευσης από όσο ο 8-bit μικροεπεξεργαστής. Επιπλέον, οι καταχωρητές αυτοί επέτρεψαν στο λογισμικό να γραφεί περισσότερο αποδοτικά.
Αρχιτεκτονική μ-ε 8086 BIU EU Address Bus Data Bus ADD Instruction Addr generation Bus Controller AH AL ADD BH BL CH CL 1 EU DH DL 2 BP 3 Instruction Queue CS DI 4 ES SI 5 SS SP 6 DS IP Internal Data Bus ALU FLAGS
Παραλληλία Φάσεων Εκτέλεσης/Ανάκλησης
8086 Καταχωρητές (I) Registers - Καταχωρητές Data Registers (16-bit) AX, BX, CX, DX Address Registers (16-bit) Segment registers: CS, SS, DS, ES Pointer registers: SP, BP, IP Index registers: SI, DI Status (Flags) register (16-bit)
8086 Καταχωρητές (II)
8086 Καταχωρητές (III)
Segmentation
8086 - Generation of 20-bit physical address The 20-bit Physical address is often represented as, Segment Base : Offset OR CS : IP
Addresses
Αριθμητικές/λογικές λειτουργίες Operation Comment Addition Subtraction Multiplication Division AND Logical multiplication OR Logical addition NOT Logical inversion NEG Arithmetic inversion Shift Rotate
Flags (Βασικά) Decision Comment Zero Test a number for zero or not-zero Sign Test a number for positive or negative Carry Test for carry after addition or a borrow after subtraction Parity Test a number for an even or an odd number of ones Overflow Test for an overflow that indicates an invalid signed result after addition or subtraction
Flags (8086)
Το δομικό διάγραμμα ενός συστήματος υπολογιστή
Τρόποι Λειτουργίας (Min/Max)
Το δομικό διάγραμμα ενός multi-master συστήματος
Real Mode of Operation Real mode ή real address mode, είναι τρόπος λειτουργίας μιας 80286 και μεταγενέστερης x86-compatible CPU. Το Real mode χαρακτηρίζεται από μια οργάνωση μνήμης με 20-bit segmented memory address space (παρέχοντας 1 MB άμεσα προσπελάσιμης μνήμης) και μιας άμεσης, χωρίς όριο προσπέλασης σε όλες τις θέσεις μνήμης και τις διευθύνσεις I/O και περιφερειακών. Το real mode δεν παρέχει υποστήριξη για memory protection, multitasking, ή code privilege levels. 80186 CPUs και προηγούμενες μέχρι τον 8086, έχουν μόνο ένα τρόπο λειτουργίας, το ισοδύναμο με τον real mode. Όλες οι x86 CPUs στη σειρα 80286 και μετά αρχίζουν σε real mode νετά από reset.
Protected Mode of Operation O protected mode ή protected virtual address mode, επιτρέπει στο λογισμικό συστήματος να υλοποιεί λειτουργιες virtual memory, paging, safe multi-tasking και άλλες που αυξάνουν τον έλεγχο του ΟS στο application software. Αρχικά ο processor που υποστηρίζει x86 protected mode, μετά το reset, εκτελεί εντολές σε real mode, για να εξασφαλισει backwards compatibility with earlier x86 processors. Το Protected mode μπορεί να εισαχθεί αφου το system software θέσει διάφορους descriptor tables και ενεργοποιήσει το Protection Enable (PE) bit στον Control Register 0 (CR0) Το Protected mode προστέθηκε στην x86 architecture το 1982, με τον Intel 80286 processor και επεκτάθηκε αργότερα με τον 80386 το 1985 και στη συνέχεια θιοθετήθηκε από όλες τις μεταγενέστερες x86 CPUs. Με το x86 memory segmentation στην x86 architecture η μνήμη χωρίζεται σε τμήματα τα οποία διευθύνονται μέσω ενός single index register χωρίς να αλλάζει ένα 16-bit segment selector. Στο real mode, ένα segment είναι πάντα 64 kilobytes (χρησιμοποιώντας 16-bit offsets), ενώ στο protected mode, ένα segment μπορεί να έχει μεταβλητό εύρος.