[Contents]
[Next][Art of Assembly][Randall Hyde]
3.0 Περίληψη
3.1 Τα βασικά
συστατικά του συστήματος
3.1.1 Ο Δίαυλος του
συστήματος (System Bus)
3.1.1.1 Δίαυλος δεδομένων (Data
Bus)
3.1.1.2 Δίαυλος Διευθύνσεων
(Address Bus)
3.1.1.3 Δίαυλος Ελέγχου
(Control Bus)
3.1.2. Το υποσύστημα της
μνήμης
3.1.3. Το υποσύστημα
Εισοδου / Εξοδου (Ι/Ο)
All rights reserved.
Duplication other than for immediate display through a browser is prohibited by U.S. Copyright Law.
This material is provided on-line as a beta-test of this text. It is for the personal use of the reader only. If you are interested in using this material as part of a course, please contact
rhyde@cs.ucr.edu
Supporting software and other materials are available via anonymous ftp from ftp.cs.ucr.edu. See the "/pub/pc/ibmpcdir" directory for details. You may also download the material from "Randall Hyde's Assembly Language Page" at URL:
http://webster.ucr.edu
Notes:
This document does not contain the laboratory exercises, programming assignments, exercises, or chapter summary. These portions were omitted for several reasons: either they wouldn't format properly, they contained hyperlinks that were too much work to resolve, they were under constant revision, or they were not included for security reasons. Such omission should have very little impact on the reader interested in learning this material or evaluating this document.
This document was prepared using Harlequin's Web Maker 2.2 and Quadralay's Webworks Publisher. Since HTML does not support the rich formatting options available in Framemaker, this document is only an approximation of the actual chapter from the textbook.
If you are absolutely dying to get your hands on a version other than HTML, you might consider having the UCR Printing a Reprographics Department run you off a copy on their Xerox machines. For details, please read the following EMAIL message I received from the Printing and Reprographics Department:
Hello Again Professor Hyde,
Dallas gave me permission to take orders for the Computer Science 13 Manuals. We would need to take charge card orders. The only cards we take are: Master Card, Visa, and Discover. They would need to send the name, numbers, expiration date, type of card, and authorization to charge $95.00 for the manual and shipping, also we should have their phone number in case the company has any trouble delivery. They can use my e-mail address for the orders and I will process them as soon as possible. I would assume that two weeks would be sufficient for printing, packages and delivery time.
I am open to suggestions if you can think of any to make this as easy as possible.
Thank You for your business,
Kathy Chapman, Assistant
Printing and Reprographics
University of California
Riverside
(909) 787-4443/4444
ΚΕΦΑΛΑΙΟ 3 : ΟΡΓΑΝΩΣΗ ΣΥΣΤΗΜΑΤΟΣ
Για να γραφτεί ένα αξιοπρεπές πρόγραμμα σε γλώσσα μηχανής σε επεξεργαστή 80x86 απαιτείται εξοικείωση με την οικογένεια των επεξεργαστών 80x86. Απαιτείται καλή γνώση και κατανόηση του βασικού hardware. Δυστυχώς όμως το θεμελιώδες hardware δεν είναι συνεπές. Οι τεχνικές που είναι κρίσιμες για 8088 συστήματα μπορεί μα μην είναι χρήσιμες σε συστήματα 80486. Παρομοίως, προγραμματιστικές τεχνικές που παρέχουν μεγάλη απόδοση σε ένα chip 80486 μπορεί να μη βοηθούν καθόλου σε ένα chip 80286. Ευτυχώς κάποιες προγραμματιστικές τεχνικές δουλεύουν σε οποιοδήποτε μικροεπεξεργαστή χρησιμοποιούνται. Αυτό το κεφάλαιο αναφέρεται στην επίδραση που έχει το hardware στην απόδοση του λογισμικού.
3.0 Περίληψη
Αυτό το κεφάλαιο περιγράφει τα βασικά
συστατικά ενός υπολογιστικού συστήματος : η
Κεντρική Μονάδα Επεξεργασίας, η μνήμη, οι
Είσοδοι/Έξοδοι και ο δίαυλος που τα συνδέει. Αν
και μπορεί να γραφτεί λογισμικό αγνοώντας αυτές
τις έννοιες, το λογισμικό υψηλής απόδοσης
προϋποθέτει πλήρη κατανόηση αυτών των θεμάτων.
Το βασικό λειτουργικό σχέδιο ενός
υπολογιστικού συστήματος καλείται
αρχιτεκτονική του Η/Υ. Για παράδειγμα η
οικογένεια των επεξεργαστών 8086 χρησιμοποιεί την
αρχιτεκτονική του Von Neumann (VNA). Ένα τυπικό σύστημα
Von Neumann έχει 3 βασικά συστατικά: Κεντρική Μονάδα
Επεξεργασίας, Μνήμη και I/O. Ο τρόπος με τον οποίο ο
σχεδιαστής του συστήματος συνδυάζει τα
συστατικά, επηρεάζει την απόδοση του συστήματος.
Ο Δίαυλος συστημάτων συνδέει τα διάφορα
συστατικά μιας VNA μηχανής. Η οικογένεια 80x86 έχει
τρείς βασικούς Διαύλους : τον δίαυλο των
διευθύνσεων, τον δίαυλο των δεδομένων και τον
δίαυλο ελέγχου. Ο δίαυλος είναι μια συλλογή από
καλώδια μέσω των οποίων μεταδίδονται ηλεκτρικά
σήματα μεταξύ των μερών του συστήματος. Αυτοί οι
Δίαυλοι (Busses) διαφέρουν από επεξεργαστή σε
επεξεργαστή. Παρακάτω θα αναφερθούμε
αναλυτικότερα στα τρία είδη των Διαύλων.
3.1.1.1 Δίαυλος δεδομένων (Data Bus)
Οι επεξεργαστές 80x86 χρησιμοποιούν τον δίαυλο δεδομένων για να μετακινούν τα δεδομένα μεταξύ των διαφόρων συστατικών ενός υπολογιστικού συστήματος. Το μέγεθος αυτού του διαύλου ποικίλει στην οικογένεια 80x86. Αυτό το μέγεθος του διαύλου ορίζει και το μέγεθος του επεξεργαστή.
Σε τυπικά συστήματα 80x86 ο δίαυλος δεδομένων περιέχει 8, 16, 32 ή 64 γραμμές. Οι 8088 και 80188 μικροεπεξεργαστές έχουν έναν 8bit δίαυλο δεδομένων. Οι 8086, 80186, 80286, 80386SX επεξεργαστές έχουν έναν 16bit δίαυλο δεδομένων. Οι 80386DX, 80486 και οι Pentium Overdrive επεξεργαστές έχουν 32bit δίαυλο δεδομένων. Ο Pentium και Pentium Pro επεξεργαστής έχει 64 bit δίαυλο δεδομένων.
Ένας δίαυλος 8bit δεν περιορίζει τον επεξεργαστή σε τύπους δεδομένων 8 bits. Απλά σημαίνει ότι ο επεξεργαστής μπορεί να προσπελάσει μόνο 1 byte δεδομένα σε κάθε κύκλο μνήμης. Έτσι ένας επεξεργαστής με 32bit δίαυλο δεδομένων είναι γρηγορότερος από έναν επεξεργαστή με 16 ή 8 bit. Το μέγεθος της δίαυλου δεδομένων επηρεάζει την απόδοση του συστήματος περισσότερο από κάθε άλλο δίαυλο.
Συχνά θα έχετε ακούσει για επεξεργαστές 8, 16, 32 ή 64 bit. Αν και υπάρχει μια μεγάλη αμφισβήτηση όσον αφορά το μέγεθος ενός επεξεργαστή, οι περισσότεροι συμφωνούν πλέον ότι ο αριθμός των γραμμών δεδομένων στον επεξεργαστή καθορίζει το μέγεθος του. Από τη στιγμή επομένως που οι 80x86 δίαυλοι είναι 8, 16, 32 ή 64 bit, οι περισσότερες προσβάσεις στα δεδομένα είναι επίσης 8, 16, 32 ή 64bits. Παρόλο που είναι δυνατό να επεξεργαστούμε 12 bit δεδομένα με έναν 8088, οι περισσότεροι προγραμματιστές επεξεργάζονται 16 bits, από τη στιγμή που ο επεξεργαστής θα φορτώσει και θα χειριστεί 16 bits ούτως ή άλλως. Αυτό συμβαίνει επειδή ο επεξεργαστής (8088) πάντα φορτώνει 8 bits ανα κύκλο μνήμης. Για να φορτωθούν 12bits απαιτούνται δύο 8bit διευθύνσεις της μνήμης (2 κύκλοι μνήμης). Επομένως οι περισσότεροι προγραμματιστές χρησιμοποιούν και τα 16bits, κάτι που είναι πολύ πιο αποδοτικό.
Οι 80x86 επεξεργαστές μεγέθους 16, 32 ή 64 bits μπορούν
να προσπελάσουν και μικρότερες μονάδες μνήμης
των 8, 16 ή 32bits. Επομένως ένας μεγάλος δίαυλος
δεδομένων είναι πιο αποδοτικός, μπορεί να
προσπελάσει τη μνήμη γρηγορότερα και μπορεί να
προσπελάσει μεγαλύτερα μπλοκ δεδομένων με μία
διεύθυνση μνήμης
Processor |
Data Bus Size |
8088 | 8 |
80188 | 8 |
8086 | 16 |
80186 | 16 |
80286 | 16 |
80386sx | 16 |
80386dx | 32 |
80486 | 32 |
80586 class/ Pentium (Pro) | 64 |
Όπως αναφέραμε ο δίαυλος διευθύνσεων σε έναν 80x86 επεξεργαστή μεταφέρει πληροφορίες μεταξύ μιας συγκεκριμένης θέσης της Μνήμης ή συσκευής Εισόδου/Εξόδου και της CPU. Η μόνη ερώτηση που προκύπτει είναι " Ποια θέση της μνήμης ή ποια συσκευή ;" . Ο δίαυλος διευθύνσεων δίνει την απάντηση. Για να διακρίνει τις διαφορετικές διευθύνσεις μνήμης και τις συσκευές Εισόδου/Εξόδου (I/O) ο σχεδιαστής συστήματος, αναθέτει μια μοναδική διεύθυνση μνήμης σε κάθε στοιχείο μνήμης και I/O συσκευών. Όταν το λογισμικό θέλει να προσπελάσει μια συγκεκριμένη θέση μνήμης ή μια συγκεκριμένη συσκευή I/O, τοποθετεί τη ζητούμενη διεύθυνση στον δίαυλο διευθύνσεων. Το κύκλωμα που σχετίζεται με τη μνήμη ή I/O συσκευή να διαβάσει από ή να τοποθετήσει δεδομένα στον δίαυλο δεδομένων. Όλες οι άλλες θέσεις μνήμης αγνοούν την εντολή. Μόνο η συσκευή/θέση μνήμης που η διεύθυνση της, ταιριάζει με την τιμή της ζητούμενης διεύθυνσης ανταποκρίνεται.
Με μια μόνο γραμμή διευθύνσεων στον δίαυλο
διευθύνσεων, ο επεξεργαστής μπορεί να
δημιουργήσει ακριβώς 2 μοναδικές διευθύνσεις (0
και 1). Με n γραμμές διευθύνσεων, ο επεξεργαστής
μπορεί να παρέχει 2n μοναδικές διευθύνσεις.
Επομένως ο αριθμός των bits στον δίαυλο
διευθύνσεων θα καθορίσει το μέγιστο αριθμό
διευθύνσεων μνήμης και I/O συσκευών. Για
παράδειγμα οι 8088 και 8086 επεξεργαστές έχουν 20bit
δίαυλους διευθύνσεων. Άρα μπορούν να
προσπελάσουν 220 (1,048,576) θέσεις μνήμης. Μεγαλύτεροι
δίαυλοι διευθύνσεων μπορούν να προσπελάσουν
περισσότερη μνήμη. Ο 80586/Pentium (Pro) έχει 32 bit δίαυλο
διευθύνσεων και μπορεί να προσπελάσει 232 (4,294,976,296)
θέσεις Μνήμης 4GB, ενώ οι 8088, 8086 μπορούν να
προσπελάσουν 1MB μνήμη.
Processor |
Address Bus Size |
Max Addressable Memory |
In English! |
8088 | 20 | 1,048,576 | One Megabyte |
8086 | 20 | 1,048,576 | One Megabyte |
80188 | 20 | 1,048,576 | One Megabyte |
80186 | 20 | 1,048,576 | One Megabyte |
80286 | 24 | 16,777,216 | Sixteen Megabytes |
80386sx | 24 | 16,777,216 | Sixteen Megabytes |
80386dx | 32 | 4,294,976,296 | Four Gigabytes |
80486 | 32 | 4,294,976,296 | Four Gigabytes |
80586 / Pentium (Pro) | 32 | 4,294,976,296 | Four Gigabytes |
3.1.1.3 Δίαυλος Ελέγχου (Control Bus)
Ο δίαυλος ελέγχου είναι μια συλλογή σημάτων που ελέγχουν το πώς ο επεξεργαστής επικοινωνεί με το υπόλοιπο σύστημα. Η CPU στέλνει δεδομένα στη Μνήμη και δέχεται δεδομένα από αυτή στο δίαυλο δεδομένων. Έτσι προκύπτει η ερώτηση " Στέλνει ή λαμβάνει δεδομένα;". Στον δίαυλο ελέγχου υπάρχουν δύο γραμμές, read και write, που ορίζουν την κατεύθυνση της ροής δεδομένων. Άλλα σήματα περιλαμβάνουν σήματα χρονομέτρησης (system clocks), γραμμές διακοπής (interrupt lines), γραμμές κατάστασης (status lines) κ.ο.κ.
Οι read και write γραμμές ελέγχου, ελέγχουν την κατεύθυνση της ροής δεδομένων στον δίαυλο δεδομένων. Όταν και οι δύο περιέχουν ένα λογικό 1, η CPU και η μνήμη-I/O δεν επικοινωνούν η μία με την άλλη. Αν η read γραμμή είναι low (λογικό 0) η CPU διαβάζει δεδομένα από τη μνήμη. Αν η write γραμμή είναι low (0) το σύστημα μεταφέρει δεδομένα από τη CPU στη μνήμη.
Οι γραμμές ενεργοποίησης byte, είναι γραμμές ελέγχου που επιτρέπουν 16, 32 και 64bit επεξεργαστές να χειρίζονται μικρότερα μπλοκ δεδομένων. Η οικογένεια των 80x86 αντίθετα με άλλους επεξεργαστές παρέχει 2 ξεχωριστούς χώρους διευθύνσεων : έναν για τη μνήμη και έναν για τις συσκευές I/O. Ο δίαυλος διευθύνσεων I/O είναι σε όλες τις 80x86 CPU είναι 16bits. Αυτό επιτρέπει τον επεξεργαστή να διευθυνσιοδοτήσει 216= 65,536 διαφορετικές I/O τοποθεσίες. Όπως αποδεικνύεται οι περισσότερες συσκευές I/O (πληκτρολόγιο, εκτυπωτής, disk drivers κ.α) απαιτούν περισσότερες από μία I/O θέσεις. Παρ' όλα αυτά 65,536 διαφορετικές τοποθεσίες είναι υπεραρκετές για τις περισσότερες εφαρμογές. Ο αυθεντικός IBM PC επιτρέπει τη χρήση μόνο 1024 απ' αυτές.
Παρόλο που οι 80x86 υποστηρίζουν 2 χώρους
διευθύνσεων, δεν έχουν 2 διαύλους διευθύνσεων
(για τη μνήμη και για I/O). Το σύστημα μοιράζεται
τον δίαυλο διευθύνσεων και για I/O και για
διευθύνσεις μνήμης. Πρόσθετες γραμμές ελέγχου
αποφασίζουν αν η διέυθυνση θα είναι για τη μνήμη
ή για το I/O. Όταν τέτοια σήματα είναι ενεργά, οι I/O
συσκευές χρησιμοποιούν τη διεύθυνση στα
λιγότερο σημαντικά bits (L.O) της δίαυλου
διευθύνσεων. Όταν είναι ανενεργά, οι I/O συσκευές
αγνοούν τα σήματα στον δίαυλο διευθύνσεων.
3.1.2. Το υποσύστημα της μνήμης
Ένας τυπικός 80x86 επεξεργαστής διευθυνσιοδοτεί το μέγιστο 2^n διαφορετικές θέσεις μνήμης, όπου n είναι ο αριθμός των bits στην δίαυλο διευθύνσεων. Όπως ήδη έχετε δει, οι 80x86 επεξεργαστές έχουν 20,24 και 32 bit διαύλους διευθύνσεων (σύντομα με 48 bits)
Φυσικά, η πρώτη απορία που δημιουργείται είναι «Τι ακριβώς είναι η θέση μνήμης». Ο 80x86 υποστηρίζει byte προσβάσιμης μνήμης . Γενικά , η βασική μονάδα μνήμης είναι το byte. Έτσι , με 20,24 και 32 γραμμές διεύθυνσης, οι 80x86 επεξεργαστές μπορούν να διευθύνουν 1 Megabyte, 16 Megabytes και 4Gigabytes μνήμης αντίστοιχα.
Φαντάσου την μνήμη ως ένα γραμμικό πίνακα από bytes. Η διεύθυνση του τελευταίου byte είναι (2^n)-1.
Τι συμβαίνει όμως όταν ο επεξεργαστής προσπελαύνει μια λέξη ή μια διπλή λέξη ; Καθώς η μνήμη αποτελείται από ένα πίνακα από bytes, πώς είναι δυνατό να εργαστούμε με τιμές μεγαλύτερες από 8 bits;
Διαφορετικά υπολογιστικά συστήματα
δίνουν διαφορετικές λύσεις σ’ αυτό το πρόβλημα.
Η οικογένεια του 80x86 αντιμετωπίζει αυτό το
πρόβλημα, αποθηκεύοντας το L.O. byte (χαμηλής τάξης
byte) μιας λέξης στην καθορισμένη διεύθυνση και το
H.O. byte (υψηλής τάξης byte) στην επόμενη θέση. Παρόλα
αυτά, μια λέξη καταλαμβάνει δυο συνεχόμενες
διευθύνσεις μνήμης (όπως αντιλαμβάνεστε , καθώς
μια λέξη αποτελείται από 2 bytes). Παρομοίως, μια
διπλή λέξη καταλαμβάνει τέσσερις συνεχόμενες
διευθύνσεις μνήμης. Η διεύθυνση της διπλής λέξης
είναι η διεύθυνση του L.O. byte. Τα εναπομείναντα
τρία bytes ακολουθούν αυτό το L.O.byte, με το H.O. byte
εμφανιζόμενο στην διεύθυνση της διπλής λέξης συν
3.
Τα bytes, οι λέξεις και οι διπλές λέξεις μπορούν να ξεκινάνε από οποιαδήποτε έγκυρη διεύθυνση μέσα στην μνήμη.
Σημειώστε ότι είναι δυνατόν οι τιμές των bytes, των λέξεων και των διπλών λέξεων να επικαλύπτονται μέσα στην μνήμη. Για παράδειγμα, στο παρακάτω σχήμα μπορείς να έχεις μια μεταβλητή λέξης η οποία να ξεκινάει από την διεύθυνση 193, μια μεταβλητή byte από την διεύθυνση 194 και μια τιμή διπλής λέξης η οποία να ξεκινάει από την διεύθυνση 192. Όλες αυτές οι μεταβλητές θα επικαλυφθούν.
Οι 8088 και 80188 μικροεπεξεργαστές έχουν μια 8-bit
δίαυλο δεδομένων . Αυτό σημαίνει ότι η CPU μπορεί
να μεταφέρει 8 bits δεδομένων κάθε φορά. Από την
στιγμή που κάθε διεύθυνση μνήμης ανταποκρίνεται
σε 8 bit-byte, αυτό εμφανίζεται ως η πιο πλεονεκτική
διευθέτηση.
Βλέπε το σχήμα 3.5 παρακάτω :
Τα 16-bit στοιχεία της 80x86 οικογένειας μπορούν να φορτώσουν μια λέξη από οποιαδήποτε αυθαίρετη διεύθυνση. Όπως έχουμε ήδη αναφέρει, ο επεξεργαστής εξάγει το L.O.byte της τιμής από την καθορισμένη διεύθυνση και το H.O.byte από την επόμενη συνεχή διεύθυνση. Αυτό δημιουργεί ένα λογικό πρόβλημα, αν κοιτάξεις προσεκτικά το παραπάνω διάγραμμα . Τι συμβαίνει όταν προσπελαύνεις μια λέξη σε μονή διεύθυνση ; Υπέθεσε ότι θέλεις να διαβάσεις μια λέξη, από την θέση 125. Εντάξει, το L.O.byte της λέξης έρχεται από την διεύθυνση 125 και το H.O.byte έρχεται από την θέση 126. Ποιο είναι το πρόβλημα ; Υπάρχουν δυο προβλήματα.
Πρώτον, κοίταξε προσεκτικά τα παραπάνω σχήμα.
Οι γραμμές του διαύλου δεδομένων 8 ως 15 (το H.O.byte)
συνδέει την μονή πλευρά και οι γραμμές 0 ως 7 (το
L.O.byte) την ζυγή πλευρά. Προσπελαύνοντας την θέση
μνήμης 125 θα μεταφέρει δεδομένα στην CPU στο H.O.byte
της διαύλου δεδομένων. Όμως εμείς θέλουμε αυτά τα
δεδομένα στο L.O.byte. Ευτυχώς, οι 80x86 CPU αναγνωρίζουν
αυτή την κατάσταση και αυτόματα μεταφέρουν τα
δεδομένα στο D8-D15, στο L.O.byte.
Το δεύτερο πρόβλημα είναι ακόμη πιο σκοτεινό και
κρυφό. Όταν προσπελαύνουμε λέξεις, στην ουσία
κάνουμε προσπέλαση σε δυο διαφορετικά bytes που
βρίσκονται σε διαφορετικές διευθύνσεις. Άρα τι
διεύθυνση εμφανίζεται στην δίαυλο δεδομένων; Η
16-bit 80x86 CPU πάντα διευθετεί ζυγές διευθύνσεις στην
δίαυλο. Τα ζυγά bytes εμφανίζονται πάντα στις
γραμμές δεδομένων D0-D7 και τα μονά bytes
εμφανίζονται πάντα στις γραμμές δεδομένων D8-D15.
Άρα τι συμβαίνει όταν η CPU προσπελαύνει μια λέξη
από μονή διεύθυνση; Η CPU δεν μπορεί να τοποθετήσει
την διεύθυνση 125 στην δίαυλο δεδομένων και να
διαβάσει τα 16-bits από την μνήμη. Δεν υπάρχουν
ζυγές διευθύνσεις που να προκύπτουν από την 16-bit
80x86 CPU. Οι διευθύνσεις είναι πάντα μονές. Έτσι , αν
προσπαθήσεις να βάλεις 125 στην δίαυλο δεδομένων,
αυτό θα βάλει 124 στην δίαυλο δεδομένων.
Διαβάζοντας τα 16bits αυτής της διεύθυνσης, θα πάρει
την λέξη από τις διευθύνσεις 124(L.O.byte) και 125
(H.O.byte)-δηλαδή όχι αυτό που περίμενες. Για να
προσπελάσεις μια λέξη σε μια ζυγή διεύθυνση
απαιτεί δυο λειτουργίες μνήμης. Πρώτα η CPU πρέπει
να διαβάσει το byte στην διεύθυνση 125 και μετά
χρειάζεται να διαβάσει το byte στην διεύθυνση 126.
Τελικά , χρειάζεται να ανταλλάξει τις θέσεις
αυτών των bytes εσωτερικά μέχρι και τα δυο να
εισαχθούν στην CPU στο λανθασμένο μισό της διαύλου
δεδομένων. Ευτυχώς η 16-bit CPU κρύβει αυτές τις
λεπτομέρειες. Τα προγράμματα σου μπορούν να
προσπελάσουν λέξεις σε οποιαδήποτε διεύθυνση
και η CPU θα προσπελάσει και θα ανταλλάξει τα
δεδομένα μέσα στην μνήμη.
3.1.3 Το υποσύστημα Εισόδου/Εξόδου (I/O)
Υπάρχουν τρείς περιορισμοί στο υποσύστημα I/O στον IBM PC : Πρώτον, η 8086 CPU απαιτεί ειδικές εντολές για να έχει πρόσβαση στις I/O συσκευές. Δεύτερον οι σχεδιαστές του IBM PC χρησιμοποιούν τις "καλύτερες" I/O θέσεις για δικούς τους σκοπούς, πιέζοντας τους έμμεσα εμπλεκόμενους αναβαθμιστές να χρησιμοποιήσουν τις λιγότερο προσβάσιμες θέσεις. Τρίτον οι 8086 επεξεργαστές δε μπορούν να διευθυνσιοδοτήσουν περισσότερες από 216=65,536 I/O διευθύνσεις. Αν αναλογιστείτε ότι μια VGA κάρτα οθόνης απαιτεί πάνω από 128,000 διαφορετικές θέσεις, αντιλαμβάνεστε το πρόβλημα που προκύπτει από το μέγεθος του I/O διαύλου.
Ευτυχώς οι σχεδιαστές hardware μπορούν να χαρτογραφήσουν τις I/O συσκευές στο χώρο των διευθύνσεων μνήμης, τόσο εύκολα όσο μπορούν στο χώρο διευθύνσεων I/O. Έτσι χρησιμοποιώντας το κατάλληλο κύκλωμα, μπορούν να κάνουν τις I/O συσκευές να μοιάζουν ακριβώς όπως η μνήμη.
Προς το παρόν λοιπόν θα μπορούσαμε να πούμε ότι
η πρόσβαση των συσκευών I/O και της μνήμης
λειτουργεί με τον ίδιο τρόπο.
3.0 Περίληψη
3.1 Τα βασικά
συστατικά του συστήματος
3.1.1 Ο Δίαυλος του
συστήματος (System Bus)
3.1.1.1 Δίαυλος δεδομένων (Data
Bus)
3.1.1.2 Δίαυλος Διευθύνσεων
(Address Bus)
3.1.1.3 Δίαυλος Ελέγχου
(Control Bus)
3.1.2. Το υποσύστημα της
μνήμης
3.1.3. Το υποσύστημα
Εισοδου / Εξοδου (Ι/Ο)