Αρχιτεκτονική-ΙΙ Μέρος 2 ο

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

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

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

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

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

ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ

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

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

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

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΙΙ Εργαστήριο 2 ο ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ- ΨΕΥΔΟΕΝΤΟΛΕΣ ΜΑΚΡΟΕΝΤΟΛΕΣ- ΔΙΑΔΙΚΑΣΙΕΣ (ΕΙΣΑΓΩΓΗ)

Στοιχεία από Assembly Γιώργος Μανής

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

Ο 8086 µπορεί να θεωρηθεί ότι αποτελείται από δύο τµήµατα επεξεργαστές, όπως φαίνεται και στο σχήµα 1, οι οποίοι είναι:

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

Καταχωρητές γενικής χρήσης και δεδοµένων (Data Registers)

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

ΘΕΜΑΤΑ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ-ΙΙ

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

Συστήματα Μικροϋπολογιστών

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

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

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

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

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 2 Addressing

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

Αριθμητικά Συστήματα

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

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

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

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

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

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

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

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

Καταχωρητές & τμήματα μνήμης του Ματθές Δημήτριος Καθηγητής Πληροφορικής

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

Επιμέλεια: ρ. Ν. Σγούρος ρ. Ι. Κονταξάκης

Συστήματα Μικροϋπολογιστών

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

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

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

Ο 8086 µπορεί να θεωρηθεί ότι αποτελείται από δύο τµήµατα επεξεργαστές, όπως φαίνεται και στο σχήµα 1, οι οποίοι είναι:

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

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

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

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

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

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

Οδηγός Εκμάθησης στην Assembly

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 1 Hello World

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

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

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

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

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

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

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

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

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

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

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

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

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

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

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

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

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

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

Περιεχόµενα. I Βασικές Γνώσεις 1

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

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

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

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Πρόχειρες Σημειώσεις. Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

ΠΕΡΙΕΧΟΜΕΝΑ 1. Υπορουτίνες Μαθηµατικών Πράξεων 1.1. Προσηµασµένοι και απροσήµαστοι αριθµοί 1.2. Μετατροπές προσηµασµένων και απροσήµαστων αριθµών

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

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου

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

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ

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

Συστήματα Μικροϋπολογιστών

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

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

0100: MAR ADR; wait;mdr DB; SCR L DH+MDR+CY

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

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

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

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

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

Υποπρογράμματα (Subroutines)

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

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

10. Πληκτρολόγιο matrix 4x4

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

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

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

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

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

Transcript:

Αρχιτεκτονική-ΙΙ Μέρος 2 ο

Μικροεπεξεργαστής 8086 (Υλικό) Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 2

8086 Επεξεργαστής των 16 bits/2 bytes (Ρ1) Εμφάνιση το 1978. Χαρακτηριστικά 8086 DIP-40 pins Τροφοδοσία 5V. Ρολόϊ έως 4 10 MHz. Data bus 16 bits/2 bytes. Address bus 20 bits. Μνήμη μέχρι 1 ΜΒ. Μνήμη άρτιων και περιττών διευθύνσεων (2 Χ 512 ΚΒ). Χρόνος προσπέλασης λέξης (2 bytes) σε ένα κύκλο μνήμης (μηχανής) εφ όσον η λέξη είναι σε άρτια διεύθυνση ή σε δυο κύκλους εφ όσον είναι σε περιττή διεύθυνση (ελάττωση της ταχύτητας). Κύκλος διαδρόμου (bus cycle) ίσος με 4 περιόδους ρολογιού. Ταχύτητα διαμεταγωγής (10ΜΗz/4)X2=5MB/s (40 Mbps). Μέσος χρόνος εκτέλεσης εντολής 12 Τ. Κατάτμηση μνήμης. Χρήση 640 ΚΒ για προγράμματα. Δέσμευση των 384 ΚΒ για το BIOS. 6-byte ουρά εντολών (instruction queue), που γεμίζει όταν ο επεξεργαστής εκτελεί άεργους κύκλους (idle) και υπάρχει χώρος 2 bytes στην ουρά. Τεχνική σωλήνωσης (pipelining-επικάλυψη χρόνου ανάκλησης και εκτέλεσης των εντολών). Binary/Decimal arithmetic με 8-bit ή 16-bit signed/unsigned αριθμούς (πολλ/σμός και διαίρεση). Ολοκληρωμένο 40 pins σε συσκευασία DIP (Dual In Package). Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 3

8086 Ακροδέκτες GND AD 14 AD 13 AD 12 AD 11 Πολυπλεγμένες γραμμές διεύθυνσης/δεδομένων (Time multiplexed address/data lines) Αποπλέκονται με τη βοήθεια του σήματος ελέγχου ALE στην πρώτη περίοδο Τ 1. Κατά την Τ 1 φέρουν διεύθυνση. Κατά τις Τ 2, Τ 3, Τ 4 φέρουν δεδομένα. Non Maskable Interrupt (ΙΝΤ 2) : Οδηγεί το πρόγραμμα στις θέσεις 00008 0000Β Η, όπου πρέπει να ευρίσκονται οι τιμές του CS και του IP για οδήγηση του προγράμματος στην κατάλληλη ΥΕΔ. Maskable Interrupt (σημαία ΙΕ=1) : Δίδεται ένα byte n κατά τη διάρκεια του σήματος /INTA και οδηγεί το πρόγραμμα στις θέσεις 4 n 4 n+3 Η, όπου πρέπει να ευρίσκονται οι τιμές του CS και του IP για οδήγηση του προγράμματος στην κατάλληλη ΥΕΔ. AD 10 AD 9 AD 8 AD 7 AD 6 AD 5 AD 4 AD 3 AD 2 AD 1 AD 0 NMI INTR CLK GND 8086 Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 4

8086 Ακροδέκτες V cc AD 15 A 16 /S 3 A 17 /S 4 A 18 /S 5 A 19 /S 6 Κατά τη διάρκεια του Τ 1 είναι διευθύνσεις, ενώ κατά τη διάρκεια των Τ 2, Τ 3, Τ 4 είναι δείκτες κατάστασης (status indicators). Το BHE (Bus High Enable) γίνεται latch με το σήμα ALE και χρησιμοποιείται με το Α 0 για να καθορίσουν τον τρόπο πρόσβασης στη μνήμη. BHE/S 7 MN/MX RD MN/MX=1 MN/MX=0 8086 HOLD HLDA WR RQ/GT0 RQ/GT1 LOCK min mode: ο 8086 χρειάζεται ένα latch και ένα κύκλωμα ρολογιού για να γίνει cpu με δίαυλο ελέγχου όμοιο με τον 8085. M/IO DT/R DEN ALE INTA S2 S1 S0 QS0 QS1 max mode: ο 8086 συνεργάζεται με το μαθηματικό συνεπεξεργαστή 8087 και τον περιφερειακό επεξεργαστή Ι/Ο 8089 καθώς επίσης και με το 8288 (bus controller), το οποίο δημιουργεί τα σήματα ελέγχου για μνήμες και πόρτες. TEST READY RESET Εισάγεται περίοδος αναμονής εάν η είσοδος αυτή είναι high κατά την εκτέλεση της εντολής WAIT. Συγχρονίζει τον 8086 με αργά περιφερειακά. Εισάγει περίοδο αναμονής εάν κατά την Τ 2 ευρεθεί low. Επανεκκίνηση και μετάβαση του προγράμματος στη διεύθυνση FFFF0 H. Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 5

8086 Εσωτερική οργάνωση EXECUTION UNIT (EU) BUS INTERFACE UNIT (BIU) REGISTER FILE DATA POINTER & INDEX REGS (8 WORDS) SEGMENT REGS & INSTRUCTION POINTER (5 WORDS) RELOCATION REGISTER FILE Διάδρομοι και εσωτερικοί καταχωρητές των 16 bits 16 BIT ALU FLAGS BUS INTERFASCE UNIT 4 16 3 /BHE or S 7 A 16 -A 19 or S 3 -S 6 AD 0 -AD 15 /INTA, /RD, /WR 3 DT-/R, /DEN, ALE Address Bus=20 bits 6-BYTE Data Bus=16 bits INSTRUCTION QUEUE Ουρά εντολών βάθους 6 bytes /TEST INTR NMI /RG-/GT 0,1 2 CONTROL & TIMING 2 /LOCK QS 0, QS 1 HOLD HLDA 3 /S 2, /S 1, /S 0 CLK RESET READY MN-/MX GND, GND, V CC Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 6

8086 Εσωτερική οργάνωση ΠΡΟΣΑΡΜΟΓΗ ΜΝΗΜΗΣ Σ B-BUS ES 16 CS 16 SS 16 DS 16 IP 16 C-BUS BIU 6 5 4 3 2 1 ΣΥΣΤΗΜΑ ΕΛΕΓΧΟΥ 6-BYTES ΟΥΡΑ ΡΟΗΣ ΕΝΤΟΛΩΝ A-BUS AH 8 AL 8 BH BL CH CL DH DL SP 16 BP SI DI EU ALU ΟΡΙΣΜΑΤΑ (OPERANDS) ΣΗΜΑΙΕΣ (FLAGS) Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 7

8086 Μονάδα BIU Οι μονάδες BIU και EU λειτουργούν παράλληλα (σωλήνωση-pipeline δυο βαθμίδων). Η BIU επικοινωνεί με τη μνήμη και συνεργάζεται με την EU για την επεξεργασία των δεδομένων. Ένας αποκωδικοποιητής εντολών στην BIU μεταφράζει τις ενέργειες που πρέπει να πραγματοποιήσει η EU για την εκτέλεση μίας εντολής. Αναλυτικότερα: 1. BIU-Μονάδα προσαρμογής διαύλων Διαθέτει τους καταχωρητές τμημάτων (segment registers). Οι καταχωρητές αυτοί ορίζουν με την τιμή τους τμήματα μνήμης μήκους 65.536 bytes. Τα τέσσερα τμήματα που ορίζονται μπορεί να διαχωρίζονται μεταξύ τους ή να επικαλύπτονται. Το μηχανισμό μετατροπής των λογικών διευθύνσεων σε φυσικές. Η τελική διεύθυνση (φυσική) έχει μήκος 20 bits. Οι καταχωρητές τμημάτων παρέχουν τα 16 περισσότερο σημαντικά bits στα οποία προστίθενται τέσσερα μηδενικά για το σχηματισμό της φυσικής διεύθυνσης (διαδικασία μετατροπής λογικής σε φυσική διεύθυνση). Η θέση μέσα σε κάποιο τμήμα γίνεται με τη βοήθεια κάποιου άλλου καταχωρητή (π.χ. του ΙΡ). Ανακαλεί εντολές από τη μνήμη και τις τοποθετεί στην ουρά αναμονής (buffer τύπου FIFO). Όποτε ο διάδρομος είναι ανενεργός (idle) και υπάρχει χώρος για δυο bytes, ο buffer γεμίζει. Εξοικονόμηση χρόνου ανάκλησης-αποκωδικοποίησης εντολών και συνεπώς επιτάχυνση λειτουργίας. Τεχνική σωλήνωσης (pipelining), η οποία επιτρέπει την επικάλυψη του χρόνου ανάκλησης εντολών και του χρόνου εκτέλεσης. Εξομαλύνεται η τυχαία ροή εντολών διαφορετικού μήκους. Εσωτερικό διάδρομο 16 bits (C-bus) και το διάδρομο επικοινωνίας με τη μνήμη μήκους 20 bits. Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 8

8086 Διαχείριση μνήμης Μέθοδος κατάτμησης (segmentation). Κατάτμηση της μνήμης σε τμήματα των 64 KB (segment registers) και πρόσβαση μέσα σε αυτά από τους καταχωρητές γενικού σκοπού (offset). Μετατροπή από τη BIU της λογικής διeύθυνσης (τμήμα και offset) σε φυσική διεύθυνση των 20 bits: Φυσική διεύθυνση=τμήμα 16+offset Latch διεύθυνσης Διάδρομος διευθύνσεων/δεδομένων Σ Αρχή (segment base) φυσικής διεύθυνσης (20 bits) offset TEMP 16 0000 TEMP 16 CS DS SS Από καταχωρητή γενικού σκοπού ES Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 9

8086 Διαχείριση μνήμης Δυνατότητα προσπέλασης 256 KB (4 τμήματα 65 KB). Για προσπέλαση σε μεγαλύτερο τμήμα μνήμης πρέπει να αλλαχτούν από το πρόγραμμα οι τιμές των τμημάτων. Τα τέσσερα τμήματα, ανάλογα με τις τιμές τους, μπορεί να συμπίπτουν ή να επικαλύπτονται ή να είναι τελείως διαφορετικά. 00000 H 64 KB (CS) IP Τμήμα κώδικα (Code Segment) CS Τμήμα δεδομένων (Data Segment) Τμήμα σωρού (Stack Segment) DS SS 64 KB (ES) offset Τμήμα έκτακτο (Extra Segment) ES 64 KB (SS) Διευθύνσεις βάσης 64 KB (DS) DX (Base addresses) FFFFF H Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 10

8086 Μονάδα ΕU 2. EU-Μονάδα εκτέλεσης Περιέχει τους καταχωρητές γενικού σκοπού. Τον καταχωρητή σημαιών (flags), προσωρινούς καταχωρητές. Τη μονάδα πράξεων ή ALU, η οποία μπορεί να εκτελέσει αριθμητικές ή λογικές πράξεις 8/16 bits. Οι αρνητικοί αριθμοί παριστάνονται με το συμπλήρωμα ως προς δύο. Εκτελούνται πράξεις σε μορφή BCD (συμπτυγμένης ή μη μορφής-packed ή unpacked). Ειδικές εντολές για διαχείριση συμβολοσειρών (strings). Κυκλώματα χρονισμού και αποκωδικοποίησης εντολών με τεχνική καλωδιωμένης ή μικροπρογραμματιζόμενης λογικής. Εσωτερικό διάδρομο μήκους 16 bits. Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 11

8086 Καταχωρητές γενικού σκοπού ΑΧ (ΑΗ-ΑL) = Συσσωρευτής (Πολλαπλασιασμός, διαίρεση, Ι/Ο) ΒΧ (ΒΗ-BL) = Καταχωρητής βάσης (Δείκτης βάσης στη μνήμη) CX (CH-CL) = Καταχωρητής για μέτρημα (Μετρητής βρόγχου ή ολίσθησης) DX (DH-DL) = Καταχωρητής για χειρισμό δεδομένων (Πολλαπλασιασμός, διαίρεση, διεύθυνση Ι/Ο) Σημείωση: Οι παραπάνω καταχωρητές μπορεί να χρησιμοποιηθούν για οποιαδήποτε αριθμητική ή λογική πράξη. Όμως, μπορούν να έχουν ειδικό ρόλο (π.χ. δείκτης, μετρητής κλπ). SP = Stack Pointer Δείκτης σωρού BP = Base Pointer Δείκτης βάσης στο σωρό SI = Source Index Δείκτης προέλευσης DI = Destination Index Δείκτης προορισμού Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 12

8086 Καταχωρητής σημαιών (Flags) M S B L S B U U U U OF DF IF TF SF ZF U AF U PF U CF U = Undefined CF = Carry Flag PF = Parity Flag AF = Auxiliary carry Flag ZF = Zero Flag - 1 εάν υπάρχει κρατούμενο από το MSB - 1 εάν το αποτέλεσμα έχει άρτια ισοτιμία - 1 εάν υπάρχει μισό κρατούμενο (nibble carry-4 bits). Χρήση για αριθμητική με BCD - 1 εάν το αποτέλεσμα είναι μηδέν SF = Sign Flag - 1 εάν το περισσότερο σημαντικό bit του αποτελέσματος είναι 1. TF = Trap Flag IF = Interrupt Flag DF = Direction Flag OF = Overflow Flag - 1 όταν ο μικροεπεξεργαστής τίθεται σε θέση εκτέλεσης μίας εντολής (single-step mode) για debugging - 1 όταν ο μικροεπεξεργαστής αποδέχεται τις εξωτερικές αιτήσεις διακοπής (enable) - Σημαία η οποία δείχνει την αυτόματη αύξηση (0) ή ελάττωση (1) της διεύθυνσης των καταχωρητών χειρισμού συμβόλων SI και DI - Δείχνει πότε το περισσότερο σημαντικό bit γίνεται 1, χωρίς να υπάρχει κρατούμενο (δηλαδή υπερχείλιση σε πράξη προσημασμένων αριθμών). Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 13

8086 Οργάνωση της μνήμης UPPER MEMORY BANK LOWER MEMORY BANK D0 -D 7 D8 -D 15 D0 -D 15 A 1 -A 19 512 KB 512 KB /CS /CS /ΒΗΕ /BHE A 0 Ενέργεια Α 0 0 0 Λέξη σε άρτια διεύθυνση 8086 Περιττές διευθύνσεις Άρτιες διευθύνσεις 0 1 Byte σε περιττή διεύθυνση (MSB) 1 0 Byte σε άρτια διεύθυνση (LSB) 1 1 Καμμία επιλογή BHE = Byte High Enable Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 14

8086 Οργάνωση της μνήμης Εάν η λέξη ευρίσκεται σε άρτια διεύθυνση, τότε η προσπέλασή της γίνεται σε ένα κύκλο μνήμης. Εάν η λέξη ευρίσκεται σε περιττή διεύθυνση τότε η προσπέλασή της γίνεται σε δύο κύκλους μνήμης δηλ. ένα κύκλο μνήμης για κάθε byte. Ο 8086 σε κατάσταση reset θέτει CS=FFFF H και συνεπώς η μνήμη ROM του συστήματος ξεκινά από τη φυσική διεύθυνση: FFFF0 H. Λειτουργία Τμήμα Εναλλακτικό τμήμα Offset Ανάκληση εντολής CS - IP Σωρός SS - SP Δεδομένα DS CS, ES, SS Με την εντολή Προέλευση συμβολοσειράς Προορισμός συμβολοσειράς DS CS, ES, SS SI ES - DI Δείκτης ΒΧ DS CS,ES,SS Με την εντολή Δείκτης ΒΡ SS CS, ES Με την εντολή Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 15

8086 Πόρτες εισόδου-εξόδου (Ι/Ο) Ο 8086, για την ανάγνωση ή εγγραφή μίας λέξης ή ενός byte σε μία πόρτα εισόδου-εξόδου, χρησιμοποιεί τις γραμμές AD 0 -AD 15 για να δώσει τη διεύθυνση της πόρτας στα κυκλώματα αποκωδικοποίησης. Αυτό σημαίνει ότι μπορεί να διευθυνσιοδοτήσει 65.536 πόρτες εισόδου-εξόδου. Το σήμα επιλογής μνήμης ή πόρτας είναι το Μ-/ΙΟ. Με 0 ο κύκλος ανάγνωσης ή εγγραφής είναι για πόρτα, ενώ με 1 είναι για μνήμη. Πόρτα εισόδου AD 0 -AD 15 Decoder OR /CS M-/IO 8086 /RD /WR /CS Πόρτα εξόδου CLK Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 16

8086 Βασικό διάγραμμα χρονισμού Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 17

8086 Σύστημα με τον 8086 8284 = Γεννήτρια ρολογιού και Reset. 8086 CPU 8288-bus controller 8282-8 bit Address latch Control bus 8286 = 8 bit data transceiver για την οδήγηση του data bus (μπορεί να αντικατασταθεί με το 74LS245). 8282 = 8 bit latch για την απόπλεξη address/data bus (μπορεί να αντικατασταθεί με το 74LS373). 8284 clock 8087 NDP 8282 8282 Address bus (20 bits) 8288 = Χρησιμοποιείται σε max mode. Με τη βοήθεια του ρολογιού και των σημάτων /S 0, /S 1, /S 2, παράγει τα σήματα του control bus. 8089-I/O processor 8286-8 bit Data transceiver 8286 Data bus (16 bits) 8087 = Μαθηματικός συνεπεξεργαστής (NDP-Numeric Data Processor). Εκτελεί ειδικές εντολές τριγωνομετρικών, εκθετικών, λογαριθμικών πράξεων) στις οποίες προηγείται η εντολή ESC. Η εκτέλεση πράξεων γίνεται 100 φορές πιο γρήγορα. 8089 = Ελεγκτής DMA ή επεξεργαστής Ι/Ο. Διαθέτει δυο ανεξάρτητα κανάλια Ι/Ο. Μεταφέρει δεδομένα μεταξύ μνήμης και περιφερειακών. Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 18

8086 Ακροδέκτες Min mode HOLD: Σήμα εισόδου που με τη βοήθεια κάποιου ενδιάμεσου κυκλώματος (ελεγκτής DMA) φτάνει από κάποιον άλλον επεξεργαστή για την οικειοποίηση των διαδρόμων του 8086. HLDA (HoLD Acknowledgement): Έξοδος η οποία δείχνει την αναγνώριση του σήματος HOLD και την παραχώρηση των διαδρόμων για τη λειτουργία DMA (Direct Memory Access). WR: Σήμα εξόδου που δείχνει ότι ο 8086 εκτελεί κύκλο μηχανής εγγραφής σε μνήμη ή πόρτα. Μ/ΙΟ: Σήμα εξόδου που δείχνει εάν ο τρέχον κύκλος μηχανής αφορά μνήμη ή πόρτα. DT/R (Data Transmit/Receive): Σήμα εξόδου το οποίο συνδέεται στο 8286 (data bus tranceiver) για να μεταβάλλει την κατεύθυνση του διαύλου δεδομένων (είσοδος ή έξοδος). DEN (Data Enable): Σήμα εξόδου το οποίο ενεργοποιεί το 8286. ALE (Address Latch Enable): Σήμα εξόδου το οποίο κατά τη διάρκεια του Τ 1 κλειδώνει (latch) τη διεύθυνση με τη βοήθεια κάποιου εξωτερικού latch. INTA (INTerrupt Acknowledgement): Σήμα εξόδου το οποίο γνωστοποιεί στην συσκευή που ζήτησε διακοπή ότι ο 8086 είναι έτοιμος να κάνει είσοδο το διάνυσμα διακοπής. Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 19

8086 Κύκλωμα του 8086 σε min mode Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 20

8086 Ακροδέκτες Max mode RQ/GT 0 RQ/GT 1 (ReQuest/GranT): Σήματα εισόδου/εξόδου τα οποία χρησιμοποιούνται για συνεπεξεργαστές (8087 και 8089). Ο συνεπεξεργαστής ζητά την παραχώρηση ενός διαδρόμου και ο επεξεργαστής τον παραχωρεί με ένα παλμό μέσω του ίδιου ακροδέκτη. Η επιστροφή του διαδρόμου στον επεξεργαστή γίνεται και πάλι με ένα παλμό στον ίδιο ακροδέκτη. LOCK: Σήμα εξόδου το οποίο ενεργοποιείται με την εντολή LOCK και δείχνει στο συνεπεξεργαστή ότι δεν μπορεί να πάρει τον έλεγχου κάποιου διαδρόμου. Έτσι επιτρέπει την εκτέλεση της επόμενης εντολής χωρίς να διακοπεί από διαδικασία DMA. S 0, S 1, S 2 (Status): Σήματα εξόδου τα οποία καθορίζουν τον τύπο του επόμενου κύκλου μηχανής (max mode status signals). Τα σήματα εξόδου παράγονται με τη βοήθεια ενός 8288. QS 0, QS 1 (Queue Status): Σήματα εξόδου κατάστασης τα οποία χρησιμοποιούνται από το συνεπεξεργαστή 8087 για το συγχρονισμό της ουράς του με αυτήν του 8086. S 2 S 1 S 0 Κατάσταση επεξεργαστή Σήμα εξόδου (8288) 0 0 0 Γνωστοποίηση διακοπής INTA 0 0 1 Ανάγνωση πόρτας IORC 0 1 0 Εγγραφή πόρτας IOWC 0 1 1 Σταμάτημα (Halt) Κανένα 1 0 0 Ανάγνωση κώδικα MRDC 1 0 1 Ανάγνωση μνήμης MRDC 1 1 0 Εγγραφή μνήμης MWTC 1 1 1 Καμία λειτουργία Κανένα Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 21

8086 Κύκλωμα του 8086 σε max mode Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 22

8086 Σύστημα διακοπών Όλοι οι τύποι διακοπών στον 8086 είναι της μορφής ΙΝΤ n, δηλαδή δημιουργούνται από έναν αριθμό των 8 bits. Αυτός ο αριθμός πολλαπλασιάζεται με το 4 και δίνει την αρχή τεσσάρων bytes στην αρχή της μνήμης, τα οποία περιέχουν τη διεύθυνση της υπορουτίνας εξυπηρέτησης της διακοπής ISR (Interrupt Service Routine). Έτσι υπάρχουν 256 τύποι διακοπών και αφιερώνεται το πρώτο 1 ΚΒ μνήμης (00000 Η έως 003FF H) για την εξυπηρέτησή τους. Ο επεξεργαστής τοποθετεί στο σωρό τις σημαίες, τον CS και τον IP αυτόματα και τους ανακαλεί με την εκτέλεση της εντολής IRET για την επιστροφή από την υπορουτίνα διακοπής. Οι διακοπές στον 8086 είναι τριών τύπων: προκαλούμενες από εξωτερικές πηγές σε ακροδέκτες εισόδου (hardware interrupts). Η είσοδος INTR (maskable interrupt) και η είσοδος NMI (Non Maskable Interrupt) είναι οι δύο είσοδοι διακοπών. Στην πρώτη είσοδο, η οποία είναι χαμηλότερης προτεραιότητας, ο αριθμός διακοπής n δίνεται από το περιφερειακό κατά την διάρκεια του παλμού /ΙΝΤΑ, εφόσον η σημαία IF είναι 1. Το σήμα διακοπής στην είσοδο ΝΜΙ δημιουργεί διακοπή τύπου 2, δηλαδή η διεύθυνση της υπορουτίνας εξυπηρέτησης διακοπής ευρίσκεται στις θέσεις μνήμης 00008-0000Β Η. προκαλούμενες από την εντολή ΙΝΤ n (software interrupts). Η εντολή ΙΝΤ 3 χρησιμοποιείται για την τοποθέτηση σημείου εξέτασης (breakpoint), όπου μπορεί να εξεταστεί το περιεχόμενο των καταχωρητών, να διορθωθεί και να συνεχιστεί η ροή του προγράμματος. Η εντολή ΙΝΤΟ δημιουργεί διακοπή τύπου 4 εφόσον υπάρχει κατάσταση υπερχείλισης (η σημαία OF είναι 1). προκαλούμενες από τον επεξεργαστή (processor interrupts). O 8086 δημιουργεί διακοπή τύπου 0 εάν γίνει διαίρεση με το μηδέν ή υπερχείλιση μετά από διαίρεση. Ακόμα δημιουργεί διακοπή τύπου 1 μετά την εκτέλεση μιας εντολής εάν η σημαία TF είναι 1. Αυτός ο τύπος διακοπής χρησιμοποιείται για την εύρεση λαθών σε ένα πρόγραμμα (single step software debugging). Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 23

8086 Χρονισμός διακοπών T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 4 CLK ALE Latch AD 0 -AD 15 A 0 -A 15 D 0 -D 7 Interrupt vector n INTA Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 24

8086 Πίνακας διακοπών 00400 H Τύπος 32-255 (open) Ίσης προτεραιότητας 00080 H Τύπος 5-31 (reserved) 1 KB Χαμηλότερης προτεραιότητας Υψηλότερης προτεραιότητας Τύπος 4 (overflow) Τύπος 3 (breakpoint) Τύπος 2 (NMI) Τύπος 1 (single step) Τύπος 0 (divide by 0) 00014 H 00010 H 0000C H 00008 H 00004 H 00000 H Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 25

8086 Διακοπές τύπου ΙΝΤ n 00000 Η CS 1 Κύριο πρόγραμμα με ενεργοποίηση των διακοπών IP 2 (Low) IP 2 (High) CS 2 (Low) CS 2 (High) 4n 4n+1 4n+2 4n+3 Interrupt Vector Table 003FF Η ΙΡ 1 INT n Επόμενη εντολή * Η εντολή IRET επαναφέρει τις σημαίες και γι αυτό χρησιμοποιείται πάντα για επιστροφή από ΥΕΔ. ΥΕΔ IRET * CS 2 ΙΡ 2 Μειούμενες τιμές διεύθυνσης IP 1 (Low) IP 1 (High) CS 1 (Low) CS 1 (High) PSW SS INT n IRET SP Υπορουτίνα Εξυπηρέτησης Διακοπής Σωρός Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 26

8086 Οργάνωση μνήμης (real mode) FFFFFH System ROM, stand-alone BASIC Lower Memory Upper Memory FE000H C0000H A0000H 01000H 00400H 00000H BIOS ROM Επεκτάσεις BIOS Χώρος οθονών Χώρος χρήστη Δεδομένα BIOS & DOS Διανύσματα διακοπών Reserved for BIOS extensions (hard disk controller, etc) Color Graphics Adapter Reserved Monochrome adapter EGA adapter Resident part of COMMAND.COM Installable drivers File control blocks Disk buffer cache DOS Kernel BIOS Video Memory Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 27

Προγραμματιζόμενος ελεγκτής διακοπών-8259 PIC (Programmable Interrupt Controller) INTR INTAB INT INTA IR 0 Data Bus 8259 IR 7 IORB RD IOWB WR CAS 0 CAS 1 Για σύνδεση άλλων PIC AB 0 A 0 CAS 2 Address Bus Address Decoder CS SP/EN (Master=+5V, Slave=0V) Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 28

8086 PIC-8259 Οι είσοδοι διακοπής του PIC προγραμματίζονται έτσι ώστε να ενεργοποιείται αίτηση διακοπής με ακμή ή επίπεδο παλμού. Ο PIC ζητά διακοπή από την είσοδο INTR του 8085 και αυτός γνωστοποιεί την αποδοχή της μέσω του σήματος /INTA, αφού ολοκληρώσει την εκτέλεση της τρέχουσας εντολής. Δυνατότητα λειτουργίας με τον 8085 ή μετον8086. O PIC διαθέτει δυο καταχωρητές προγραμματισμού. O PIC διαθέτει προγραμματιζόμενη προτεραιότητα διακοπών μεταξύ των εισόδων του. Λειτουργία με τον 8085: Τρία bytes τοποθετούνται ακολουθιακά στο Data bus της CPU. Το πρώτο είναι ο κώδικας της εντολής CALL (δηλαδή το CD ή το11001101) με τον πρώτο παλμό /ΙΝΤΑ. Μόλις ληφθεί, η CPU δημιουργεί άλλους δυο παλμούς /ΙΝΤΑ οι οποίοι χρησιμοποιούνται για να μεταφερθεί η διεύθυνση της ΥΕΔ. Η πρώτη είσοδος διακοπής του PIC δίνει τη διεύθυνση βάσης (base address), ενώ οι υπόλοιπες δημιουργούνται απόαυτήτηδιεύθυνσημεαύξησηκατά4 ή 8 θέσεις κάθε φορά. Εάν για παράδειγμα IR 0 =0100H, τότε IR 1 =0104H, IR 2 =0108H,, IR 7 =011CH. Λειτουργία με τον 8086: Ο επεξεργαστής απαντά στην ενδεχόμενη αίτηση διακοπής με δυο παλμούς /ΙΝΤΑ. Με τον πρώτο παλμό καθαρίζεται το bit εκκρεμούσας διακοπής (Interrupt Request Register-IRR) και γίνεται set το bit εξυπηρέτησης διακοπής (Interrupt Service Register-ISR) στο PIC. Με το δεύτερο παλμό το PIC τοποθετεί στο διάδρομο δεδομένων το διάνυσμα διακοπής. Στο τέλος της υπορουτίνας εξυπηρέτησης της διακοπής πρέπει να σταλεί στο PIC η εντολήεοι(end Of Interrupt), η οποία μηδενίζει το αντίστοιχο bit του ISR, έτσι ώστε να εξυπηρετηθούν αιτήσεις διακοπής με ίση ή χαμηλότερη προτεραιότητα. Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 29

8086 Διακοπές μέσω του PIC-8259 Είσοδος Διάνυσμα Συσκευή IRQ 0 8 Χρονιστής IRQ 1 9 Πληκτρολόγιο IRQ 2 A Reserved* IRQ 3 B Σειριακή πόρτα 2 IRQ 4 C Σειριακή πόρτα 1 IRQ 5 D Παράλληλη πόρτα 2 IRQ 6 E Ελεγκτής δισκέτας IRQ 7 F Παράλληλη πόρτα 1 * Διαθέσιμη στο χρήστη Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 30

8086 Απ Απ ευθείας ευθείας προσπέλαση προσπέλαση στη στη μνήμη μνήμη (DMA-Direct Memory Access) Address Bus Data Bus Control Bus DMACK1 CPU CS RAM DMAC Peripheral 1 DMARQ1 HOLD HLDA O DMA Controller (DMAC) επιτρέπει στα περιφερειακά να έχουν απ ευθείας προσπέλαση στη μνήμη, χωρίς τη μεσολάβηση της CPU. Αυτό επιτρέπει τη μεταφορά δεδομένων με ρυθμό που πλησιάζει το χρόνο προσπέλασης της μνήμης. DMARQ2 DMACK2 DMARQ3 DMACK3 Peripheral 2 Peripheral 3 Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 31

8086 Διαδικασία DMA Η περιφερειακή συσκευή ειδοποιεί το DMAC για την επιθυμία μεταφοράς δεδομένων προς/από τη μνήμη με το σήμα DMARQ (DMA ReQuest). O DMAC ανταποκρίνεται με ειδοποίηση της CPU μέσω του ακροδέκτη HOLD. Η CPU ανιχνεύει αυτόν τον ακροδέκτη στο τέλος κάθε κύκλου μηχανής. Εάν διαπιστώσει ότι είναι HIGH, τότε φέρνει το Address bus, το Data bus, τα σήματα /RD-/WR-IO//M σε κατάσταση υψηλής αντίστασης και ειδοποιεί το DMAC ότι του παραχωρεί τον έλεγχο μέσω του σήματος HLDA. Το σήμα αυτό παραμένει HIGH σεόλητηδιάρκειατουdma και επανέρχεται σε LOW κατάσταση όταν απομακρυνθεί η αίτηση από τον ακροδέκτη HOLD. O DMAC ειδοποιεί την περιφερειακή συσκευή ότι έχει επιλεγεί για τη λειτουργία DMA μέσω του σήματος DMACK (DMA acknowledge). 1. Sequential DMA: Ο DMAC διαβάζει ένα byte από τη μνήμη και το εγγράφει στο περιφερειακό ή διαβάζει ένα byte από το περιφερειακό και το εγγράφει στη μνήμη. Απαιτούνται δυο έως τέσσερις περίοδοι για κάθε ανάγνωση ή εγγραφή. 2. Simultaneous DMA: Οι λειτουργίες ανάγνωσης και εγγραφής πραγματοποιούνται ταυτόχρονα, μόνο μεταξύ περιφερειακού και μνήμης, διπλασιάζοντας την ταχύτητα. Ο DMAC συνδέεται σαν περιφερειακό Ι/Ο στηcpu. H CPU πρέπει να προγραμματίσει τη λειτουργία του DMAC πριν τη λειτουργία του. Πρέπει να προγραμματιστεί ο τύπος μεταφοράς δεδομένων, οι διευθύνσεις αρχής και προορισμού, καθώς επίσης και ο αριθμός των bytes προς μεταφορά. Υπάρχουν τρεις τρόποι λειτουργίας σε κάθε ένα από τους δυο προαναφερόμενους τύπους DMA: Ο απλός τρόπος (ή single mode ή byte mode), ο εκρηκτικός τρόπος (burst mode) και ο συνεχής τρόπος (ή continuous mode ή block mode). Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 32

8086 Τρόποι DMA Αίτηση ελέγχου των διαύλων του συστήματος Αίτηση ελέγχου των διαύλων του συστήματος Αίτηση ελέγχου των διαύλων του συστήματος Μεταφορά ενός byte Μεταφορά ενός byte Μεταφορά ενός byte Παραχώρηση ελέγχου στη CPU ΝΑΙ Περιφερειακό έτοιμο? ΝΑΙ Περιφερειακό έτοιμο? ΝΑΙ ΟΧΙ Περιφερειακό έτοιμο? ΟΧΙ Παραχώρηση ελέγχου στη CPU ΟΧΙ Byte mode Burst mode Block mode Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 33

Λογισμικό του 8086 Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 34

8086 Τρόποι διευθυνσιοδότησης 1. Άμεσος (Immediate) Το δεδομένο ευρίσκεται στην εντολή: MOV AX,1000H ;AH 10 H, AL 00 H 2. Απευθείας (Direct) MOV AX,320 ;AH 00000001, AL 00101110 ADD AL,10 ;AL AL+0A H MOV AL,-40 ;AL 11011000 Η 16 bits διεύθυνση offset περιέχεται στην εντολή και συνδυαζόμενη με το τμήμα DS δίνει τη φυσική διεύθυνση: 3. Με καταχωρητή (Register) Το δεδομένο ευρίσκεται στον καταχωρητή που δίνει η εντολή: Σημείωση: MOV AX,[1000H] ;AH DS:[1001 H], AL DS:[1000 H] MOV DS,AX MOV DL,AL ;DS AX ;DL AL Οι immediate και register τρόποι εκτελούνται πιο γρήγορα από τους υπόλοιπους, επειδή το δεδομένο ευρίσκεται μέσα στην εντολή και δεν απαιτείται χρόνος για πρόσβαση στη μνήμη. 4. Έμμεσος με καταχωρητή (Register indirect) Η 16 bits διεύθυνση offset του δεδομένου ευρίσκεται σε ένα από τους καταχωρητές SI, DI, BX, BP, ο οποίος δηλώνεται στην εντολή: MOV AX,[BX] MOV AL,[BP] MOV AX,CS:[DI] ;AH DS:[BX+1], AL DS:[BX] ;AL SS:[BP] ;AH CS:[DI+1], AL CS:[DI] Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 35

8086 Τρόποι διευθυνσιοδότησης 5. Με καταχωρητή βάσης και μετατόπιση (Base relative) Η 16 bits διεύθυνση offset του δεδομένου ευρίσκεται από το άθροισμα ενός καταχωρητή βάσης BX ή BP και ενός προσημασμένου αριθμού των 8 bits (-128 έως 127) ή των16 bits (-32768 έως 32767), ο οποίος καλείται μετατόπιση (relative displacement): MOV [BX+6],AL ;DS:[BX+6] AL MOV AH,[BP+100] ;AH SS:[BP+64 H] Σημείωση: Η μετατόπιση μπορεί να σημειωθεί ως: [BX+6] ή [BX]+6 ή 6[BX]. 6. Με καταχωρητή δείκτη και μετατόπιση (Indexed relative) Η 16 bits διεύθυνση offset του δεδομένου ευρίσκεται από το άθροισμα ενός καταχωρητή δείκτη SI ή DI και της μετατόπισης: MOV AL,[SI+6] MOV ES:[DI+100 H], A 7. Με καταχωρητή βάσης και δείκτη (Based and indexed) ;AL DS:[SI+6] ;ES:[DI+100 H] 41 H Η 16 bits διεύθυνση offset του δεδομένου ευρίσκεται από το άθροισμα ενός καταχωρητή βάσης BX ή BP και ενός καταχωρητή δείκτη SI ή DI: MOV DX,[BX+DI] ;DH DS:[BX+DI+1], DL DS:[BX+DI] 8. Με καταχωρητή βάσης και δείκτη και μετατόπιση (Based and indexed relative) Η 16 bits διεύθυνση offset του δεδομένου ευρίσκεται από το άθροισμα ενός καταχωρητή βάσης BX ή BP και ενός καταχωρητή δείκτη SI ή DI και μίας μετατόπισης: MOV AX,[BX+SI+6] ;AH DS:[BX+SI+7], AL DS:[BX+SI+6] Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 36

8086 Ομάδες εντολών-μεταφορά δεδομένων Τύπος μνημονικού Παράδειγμα Περιγραφή & Σχόλια MOV dst,src * MOV DS,AX Δεν επιτρέπεται άμεση φόρτωση των καταχωρητών τμημάτων ή ανταλλαγή δεδομένων μεταξύ τους. Επίσης μεταξύ θέσεων μνήμης. PUSH src PUSH BX (SP-1) BH, (SP-2) BL, (SP) (SP-2) POP dst POP DS DS (LSB) (SP), DS (MSB) (SP+1), (SP) (SP+2) Δεν ισχύει για τον CS. PUSHF POPF (SP-1) MSB of flag register, (SP-2) LSB, (SP) (SP-2) LSB (SP), MSB (SP+1), (SP) (SP+2) XCHG r1,r2 XCHG AL,[1000 H] Ανταλλαγή μεταξύ καταχωρητών ή μεταξύ καταχωρητή και μνήμης. LAHF Αντιγράφει τις σημαίες SF, ZF, AF, PF, CF στον AH για συμβατότητα με τον 8085. SAHF Αντιγράφει τα περιεχόμενα του ΑΗ στις θέσεις των σημαιών SF, ZF, AF, PF, CF του 8086. IN acc,port IN AL,DX AL (DX) Η διεύθυνση της πόρτας είναι στον DX (έμμεσος τρόπος). OUT port,acc OUT 34H,AX (34H) AL, (35H) AH Η διεύθυνση της πόρτας είναι ένα byte (άμεσος τρόπος). LEA dst,src LEA AX,[BX+TABLE] AX BX+TABLE Μεταφέρει την διεύθυνση offset στον καταχωρητή προορισμού. LDS dst,src LDS DX,TABLE DL (TABLE), DH (TABLE+1), DS (LSB) (TABLE+2), DS (MSB) (TABLE+3) LES dst,src LES CX,TABLE CL (TABLE), CH (TABLE+1), ES (LSB) (TABLE+2), ES (MSB) (TABLE+3) XLAT XLAT AL (DS:BX+AL) Εντολή χρήσιμη για πίνακες (Look up table). * dst=destination, src=source Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 37

8086 Ομάδες εντολών-αριθμητικές πράξεις Τύπος μνημονικού Παράδειγμα Περιγραφή & Σχόλια ADD dst,src ADD AX,BX AX AX+BX Λειτουργούν με δεδομένα των 8 ή 16 bits. ADC dst,src ADC AX,BX AX AX+BX+CF SUB dst,src SUB AX,0100H AX AX-0100H SBB dst,src SBB AX,0100H AX AX-0100H-CF INC dst INC CL CL CL+1 Οι σημαίες επηρεάζονται. DEC dst DEC CX CX CX-1 NEG dst NEG AX AX συμπλήρωμα 2 του ΑΧ. OF=1 εάν ΑΧ=8000 Η ήαχ=0080 Η. CMP dst,src CMP AX,0100H Μεταβολή των σημαιών από το αποτέλεσμα ΑΧ-0100Η. MUL src MUL BX AX BX = DX AX. AL 8 bits = AX. IMUL src IMUL BX Πολλαπλασιασμός με προσημασμένους αριθμούς. DIV src DIV BX DX AX BX = AX (υπόλοιπο DX). AX 8 bits = AL (υπόλοιπο ΑΗ). IDIV src IDIV BX Διαίρεση με προσημασμένους αριθμούς. CBW CWD Μετατροπή προσημασμένου byte στον AL σε προσημασμένη λέξη στον ΑΧ με επέκταση προσήμου. Μετατροπή προσημασμένης λέξης στον ΑΧ σε προσημασμένη διπλή λέξη στον ΑΧ DX. Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 38

8086 Ομάδες εντολών-αριθμητικές πράξεις Τύπος μνημονικού Παράδειγμα Περιγραφή & Σχόλια DAA DAS AAA AAS AAM AAD Δεκαδική διόρθωση του AL μετάαπόπρόσθεσηαριθμώνbcd σε μορφή packed. Δεκαδική διόρθωση του AL μετάαπόαφαίρεσηαριθμώνbcd σε μορφή packed. Δεκαδική διόρθωση του AL μετάαπόπρόσθεσηαριθμώνbcd σε μορφή unpacked στον ΑΧ. Δεκαδική διόρθωση του AL μετάαπόαφαίρεσηαριθμώνbcd σε μορφή unpacked στον AX. Δεκαδική διόρθωση του AL μετά από πολλ/μό αριθμών BCD σε μορφή unpacked στον AX. Δεκαδική διόρθωση του AL μετά από διαίρεση αριθμών BCD σε μορφή unpacked στον AX. Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 39

8086 Ομάδες εντολών-αριθμητικές πράξεις ΠΑΡΑΤΗΡΗΣΕΙΣ 1. Πολλαπλασιασμός μη προσημασμένων (MUL) ή προσημασμένων αριθμών (IMUL) Έστω AL=11111110 (FE H χωρίς πρόσημο ή -2 με πρόσημο) και BL=00000011 (03 Η ή+3) Η εντολή MUL BL θεωρεί τους αριθμούς χωρίς πρόσημο και δίνει ΑΗ=00000010 (02 Η) και AL=11111010 (FA H). Η εντολή IMUL BL θεωρεί τους αριθμούς με πρόσημο και δίνει αποτέλεσμα ίσο με -6 δηλαδή AH=11111111 και AL=11111010. Παρότι το αποτέλεσμα χωράει στον AL, δημιουργείται επέκταση προσήμου στον ΑΧ. 2. Επέκταση προσήμου (CBW) Εάν ένας προσημασμένος αριθμός του ενός byte πρέπει να κάνει πράξη με έναν προσημασμένο αριθμό των δύο bytes, τότε γίνεται επέκταση προσήμου, δηλαδή το πρόσημο (msbit) αναπαρίσταται από το πιο σημαντικό μέρος του καταχωρητή που περιέχει τον αριθμό. Ο AL=00001001 (+9) με επέκταση προσήμου είναι ΑΗ=00000000 (+) και AL=00001001 (9). Ο AL=11111110 (-2) με επέκταση προσήμου είναι ΑΗ=11111111 (-) και AL=11111110 (2). 3. Προσαρμογή ASCII Έστω ότι γίνεται εισαγωγή αριθμών από το πληκτρολόγιο και ότι AL=35 H (δηλ. ο αριθμός 5). Η εντολή ADD AL,36H θα δώσει αποτέλεσμα AL=6B H, ενώ θα θέλαμε το 11 Η σεpacked μορφή ή το 01 01 σε unpacked. Εάν μετά από την εντολή ADD ακολουθήσει η εντολή ΑΑΑ, τότε το αποτέλεσμα θα είναι AH=01 H και AL=01 H. Η μετατροπήσε packed μπορεί να γίνει με: AND AH,0FH MOV CL,04H SHL AH,CL ADD AL,AH Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 40

4. Ανάλυση των διορθωτικών εντολών ΑΑΑ ASCII adjust AL after addition (μετατροπή hex στον AL σε unpacked BCD στον ΑΧ) if low nibble of AL > 9 or AF = 1 AL = AL + 6 AH = AH + 1 AF = 1 CF = 1 else AF = 0 CF = 0 end high nibble of AL=0 Παραδείγματα: α) MOV AX,000FH AAA ;AH=01, AL=05 β) MOV AX,0016H MOV BL,19H ADD AL,BL ;AH=00, AL=2F AAA ;AH=01, AL=05 γ) MOV AX,0106H MOV BL,09H ADD AL,BL ;AH=01, AL=0F AAA ;AH=02, AL=05 AAD ASCII adjust AX before division (μετατροπή unpacked BCD στον ΑΧ σε hex στον AL) AL = (AH * 10) + AL AH = 0 Παράδειγμα: MOV AX,0105H AAD ;AH=00, AL=0F AAM - ASCII adjust AX after multiplication (μετατροπή hex στον AL σε unpacked BCD στον ΑΧ) AH = AL / 10 AL = remainder Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 41

Παράδειγμα: MOV AL,05H MOV BL,09H MUL BL AAM ;AH=00, AL=2D ;AH=04, AL=05 AAS ASCII adjust AL after subtraction (μετατροπή hex στον AL σε unpacked στον ΑΧ) if low nibble of AL > 9 or AF = 1 AL = AL - 6 AH = AH - 1 AF = 1 CF = 1 else AF = 0 CF = 0 end high nibble of AL=0 Παράδειγμα: MOV AX,0305H MOV BL,09H SUB AL,BL AAS ;AH=03, AL=FC ;AH=02, AL=06 DAA Decimal adjust after addition (μετά από πρόσθεση BCD αριθμών, μετατροπή του hex AL σε packed BCD στον AL) if low nibble of AL > 9 or AF = 1 AL = AL + 6 AF = 1 if AL > 9Fh or CF = 1 AL = AL + 60h CF = 1 Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 42

Παραδείγματα: α) MOV AL,19H MOV BL,15H ADD AL,BL DAA β) MOV AL,99H MOV BL,15H ADD AL,BL DAA ;AL=1E ;AL=34 ;AL=AE ;CF=1, AL=14 DAS Decimal adjust AL after subtraction (μετά από αφαίρεση BCD αριθμών, μετατροπή του hex AL σε packed BCD στον AL) if low nibble of AL > 9 or AF = 1 AL = AL - 6 AF = 1 if AL > 9Fh or CF = 1 AL = AL - 60h CF = 1 Παραδείγματα: α) MOV AL,35H β) MOV AL,19H MOV BL,19H MOV BL,35H ADD AL,BL ;AL=4E SUB AL,BL ;AL=E4 DAS ;AL=48 DAS ;CF=1, AL=84 Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 43