Το πρώτο βήμα που απαιτείται
για τη μετάδοση μιας πληροφορίας είναι η επικοινωνία μεταξύ του
υπολογιστή και της κάρτας δικτύου. Υπάρχουν τρεις τρόποι επικοινωνίας του
περιεχομένου της μνήμης του υπολογιστή με την κάρτα δικτύου. Αναφορικά: Ι/Ο,
άμεση προσπέλαση στη μνήμη (Direct Memory Access - DMA) και διαμοιραζόμενη μνήμη (shared memory). Εδώ θα αναφερθούμε στους δύο πρώτους
μόνο.
Α) Ι/Ο
Αυτή είναι και η απλούστερη
μέθοδος. Οι πιο σημαντικές υποκατηγορίες αυτής της μεθόδου είναι: memory - mapped I/O & program I/O. Σύμφωνα με την πρώτη υποκατηγορία, κατά τη διάρκεια μιας περιόδου
μεταφοράς δεδομένων από και προς την κάρτα δικτύου, η κεντρική μονάδα
επεξεργασίας του υπολογιστή αναθέτει στην κάρτα δικτύου ένα μέρος από την
κεντρική μνήμη. Από εκεί και πέρα η διαχείριση του κομματιού αυτού γίνεται σαν
να ήταν η κεντρική μνήμη του υπολογιστή αυτή καθεαυτή. Δηλαδή, δε χρειάζεται
ούτε κάποιο ειδικό σύνολο εντολών, για να μπορέσει ο υπολογιστής να διαβάσει
κάποια δεδομένα από την κάρτα, αφού είναι σα να διάβαζε από την κύρια μνήμη του
υπολογιστή.
Σύμφωνα με τη δεύτερη
υποκατηγορία, ανατίθεται στην ΚΜΕ ένα ειδικό σύνολο εντολών, προσαρμοσμένων ειδικά
για τη διαχείριση της εισόδου / εξόδου. Αυτό το σύνολο, μπορεί να είναι είτε
ενσωματωμένο στο τσιπ, είτε να έχει έρθει μαζί με τους οδηγούς της κάρτας.
Σύμφωνα με την υποκατηγορία αυτή, για την αποστολή δεδομένων στη μνήμη του
υπολογιστή από την NIC, αποστέλλεται μια αίτηση από την κάρτα
δικτύου στην ΚΜΕ. Στη συνέχεια, η τελευταία μετακινεί τα δεδομένα από την κάρτα
στη μνήμη του υπολογιστή μέσου του διαύλου. Αυτή η προσέγγιση έχει το
μειονέκτημα ότι κατά τη διάρκεια της μεταφοράς δεδομένων η ΚΜΕ δεν μπορεί να
εκτελέσει άλλες λειτουργίες. Γενικά η προσέγγιση του Ι/Ο έχει το μειονέκτημα
ότι καταλαμβάνει μέρος της κύριας μνήμης του υπολογιστή κατά τη μεταφορά.
B) DIRECT MEMORY
ACCESS - DMA
Η μέθοδος αυτή διαφέρει από
τις δύο προηγούμενες. Στην περίπτωση αυτή η μητρική κάρτα του υπολογιστή (motherboard) έχει ενσωματωμένο επάνω της ένα τσιπ DMA, το οποίο διαχειρίζεται τη λειτουργία της άμεσης
μεταφοράς δεδομένων. Σύμφωνα με αυτή τη μέθοδο, η μεταφορά δεδομένων από / προς
τη μνήμη σε / από την κάρτα δικτύου, γίνεται χωρίς την παρέμβαση της ΚΜΕ. Για να γίνει μια μεταφορά DMA, ο ελεγκτής ή ο επεξεργαστής που βρίσκεται πάνω
στην κάρτα δικτύου, στέλνει μια αίτηση στην ΚΜΕ γνωστοποιώντας ότι θέλει να
μεταφέρει δεδομένα. Η ΚΜΕ στη συνέχεια ελευθερώνει το δίαυλο και τον θέτει υπό
τον έλεγχο του DMA. Από τη στιγμή που ο ελεγκτής DMA έχει τον έλεγχο του διαύλου, λαμβάνει τα δεδομένα
από την κάρτα δικτύου και τα αποθηκεύει κατευθείαν στη μνήμη, χωρίς να
παρεμβάλλεται η ΚΜΕ. Όταν η διαδικασία της μεταφοράς τελειώσει, ο ελεγκτής DMA, μεταφέρει τον έλεγχο του διαύλου πίσω στη ΚΜΕ
και ταυτόχρονα την ενημερώνει για την ποσότητα των δεδομένων που αποθηκεύθηκαν
στη μνήμη.
Η λειτουργία DMA είναι γενικά γρηγορότερη από το Ι/Ο, γιατί
ελευθερώνει τη ΚΜΕ από το βάρος των λειτουργιών αποθήκευσης στη μνήμη, με
αποτέλεσμα η ΚΜΕ να μπορεί να επιτελέσει άλλες λειτουργίες όση ώρα διαρκεί η
μεταφορά. Το μειονέκτημα είναι ότι η ΚΜΕ δεν μπορεί να έχει πρόσβαση στη μνήμη
κατά τη διάρκεια της μεταφοράς.
Το δεύτερο συστατικό της
επικοινωνίας μεταξύ του υπολογιστή και της κάρτας δικτύου είναι η προσωρινή
αποθήκευση (buffering). Ο buffer είναι ένας
προσωρινός χώρος αποθήκευσης, όπου αποθηκεύονται οι πληροφορίες καθώς κινούνται
προς και από την NIC. Η ύπαρξη του buffer είναι απαραίτητη, γιατί μερικά τμήματα της μεταφοράς δεδομένων απαιτούν
περισσότερο χρόνο απ’ ότι άλλα. Για παράδειγμα, οι πληροφορίες από τον
υπολογιστή προς την κάρτα δικτύου, φθάνουν πολύ πιο γρήγορα απ’ όσο χρειάζεται
για να μετατραπούν από παράλληλη σε σειριακή μορφή[1], να διαβαστούν και να αποσταλούν. Έτσι
λοιπόν είναι απαραίτητο να υπάρχει κάποιος χώρος (buffer) μέσα στον οποίο οι εισερχόμενες και οι εξερχόμενες πληροφορίες να μπορούν
να αποθηκεύονται προσωρινά μέχρις ότου, είτε τοποθετηθούν στο καλώδιο για να
μεταδοθούν (στην περίπτωση που έχουμε μετάδοση δεδομένων), είτε μεταφερθούν στο
εσωτερικό του υπολογιστή (σε περίπτωση που έχουμε λήψη δεδομένων από το καλώδιο
- δίκτυο). Τα δεδομένα, για όση ώρα θα βρίσκονται τοποθετημένα στην περιοχή
προσωρινής αποθήκευσης, μπορούν είτε να υποστούν επεξεργασία[2], είτε να περιμένουν μέχρις ότου η κάρτα
δικτύου επιτελέσει κάποιες άλλες λειτουργίες.
Εδώ αξίζει να σημειωθεί, ότι
οι μεταδιδόμενες πληροφορίες, μεταδίδονται σε μορφή πακέτου (frames). Τη μορφοποίηση των δεδομένων σε πακέτα την
κάνει η κάρτα δικτύου και είναι ένας από τους πιο βασικούς ρόλους της. Δε θα
επεκταθούμε περισσότερο στην έννοια των frames, γιατί πιστεύουμε ότι θα ξεφύγουμε από τους σκοπούς αυτών των σημειώσεων.
Το επόμενο βήμα στη διαδικασία
της μετάδοσης είναι η μετατροπή της πληροφορίας από παράλληλη σε σειριακή μορφή
(όταν η NIC αποστέλλει πληροφορίες) και η μετατροπή
από σειριακή σε παράλληλη (όταν λαμβάνει πληροφορίες και πρέπει να τις
αντιγράψει στο εσωτερικό του υπολογιστή). Τα δεδομένα, στην περίπτωση της
μετάδοσης, καταφθάνουν στην κάρτα δικτύου παράλληλα, 8, 16, ή 32 bits τη φορά. Η μορφή, όμως, με την οποία θα
μεταδοθούν μέσω του καλωδίου θα πρέπει να είναι σειριακή, αφού από το καλώδιο
μπορεί να μεταφερθεί μόνο ένα bit τη φορά. Από την
άλλη, όταν έχουμε λήψη δεδομένων από το καλώδιο, αυτά καταφθάνουν ένα - ένα bit τη φορά (σε σειριακή μορφή), οπότε θα πρέπει να
μετασχηματιστούν σε παράλληλη μορφή, ώστε να μπορεί ο υπολογιστής να τα
επεξεργαστεί. Οπότε μια κάρτα δικτύου θα πρέπει να έχει την ικανότητα να
μετατρέπει την πληροφορία ανάμεσα στις δύο μορφές. Από παράλληλη σε σειριακή
(λήψη από τον υπολογιστή και προώθηση στο καλώδιο) και από σειριακή σε
παράλληλη (λήψη από το καλώδιο και
προώθηση στο εσωτερικό του υπολογιστή).
Αφού πραγματοποιηθούν όλα τα
παραπάνω μαζί με κάποιες ακόμη λειτουργίες, τα δεδομένα τοποθετούνται στο
καλώδιο, έτσι ώστε να διαδοθούν μέχρι την κάρτα δικτύου - προορισμό. Στο άλλο
άκρο, ένας πομποδέκτης “ακούει” το καλώδιο και περιμένει να λάβει το
μεταδιδόμενο σήμα. Μόλις γίνει και αυτό, τότε ξεκινά όλη η παραπάνω διαδικασία,
αλλά αυτή τη φορά αντίστροφα[3], έτσι ώστε να ολοκληρωθεί σωστά η λήψη
των δεδομένων.
Στο παρακάτω σχήμα μπορείτε να
δείτε τη μορφή μιας κάρτας δικτύου.
Όλες οι κάρτες δικτύου διαθέτουν κάποιες
επιλογές οι οποίες συνήθως είναι διαμορφώσιμες και οι οποίες θα πρέπει να έχουν
ρυθμιστεί προτού μπορέσουν να λειτουργήσουν. Μερικές από τις επιλογές
διευθέτησης μιας κάρτας δικτύου φαίνονται παρακάτω:
Γραμμές Αίτησης Διακοπής (IRQ)
Οι γραμμές αίτησης διακοπής αποτελούν το
μέσο εκείνο με το οποίο ορισμένες συσκευές, όπως το πληκτρολόγιο, ο σκληρός
δίσκος, ή ο οδηγός δισκέτας μπορούν να στείλουν στην κεντρική μονάδα
επεξεργασίας του υπολογιστή αιτήσεις ή διακοπές (interrupts) για υπηρεσίες.
Οι γραμμές αίτησης διακοπής είναι γραμμές
υλικού (hardware lines), οι οποίες συνήθως είναι ενσωματωμένες («χαραγμένες») στη μητρική πλακέτα
του υπολογιστή και συνδέονται με την κεντρική μονάδα επεξεργασίας. Σε κάθε
γραμμή αίτησης ανατίθεται ένα διαφορετικό επίπεδο προτεραιότητας, έτσι
ώστε ο κεντρικός επεξεργαστής να μπορεί να ξεχωρίζει και να εκτελεί, σε
περίπτωση δύο ταυτόχρονων αιτήσεων, την πιο σημαντική.
Μέσα στη λίστα των συσκευών που
χρησιμοποιούν τις γραμμές διακοπής για να ζητήσουν μια υπηρεσία από την ΚΜΕ
βρίσκεται και η κάρτα δικτύου. Κάθε συσκευή θα πρέπει να χρησιμοποιεί μια διαφορετική
γραμμή αίτησης, η οποία καθορίζεται κατά τη διευθέτηση της συσκευής. Εάν
δύο ή περισσότερες συσκευές χρησιμοποιούν την ίδια γραμμή αίτησης διακοπής,
τότε καμιά από αυτές δε θα μπορεί να λειτουργήσει σωστά και αυτό με τη σειρά
του μπορεί να θέσει ολόκληρο το σύστημα εκτός λειτουργίας.
Για την εξασφάλιση της σωστής χρήσης των
αιτήσεων διακοπής, η καθεμία χαρακτηρίζεται από έναν αριθμό, ο οποίος έχει ως
πρόθεμα τον κωδικό IRQ. Για παράδειγμα, η τρίτη γραμμή αίτησης έχει τον
αριθμό IRQ2 (η αρίθμηση ξεκινά από το 0). Υπάρχουν
συνολικά 16 καθιερωμένες γραμμές αίτησης διακοπής, οι οποίες μπορούν να
χρησιμοποιηθούν από εξωτερικές συσκευές, οι οποίες αριθμούνται από το IRQ0 - IRQ15. Για την ανάθεση
μιας γραμμής αίτησης διακοπής θα πρέπει πρώτα να προσδιορίσουμε αν αυτή η
γραμμή χρησιμοποιείται από κάποια άλλη συσκευή. Αν είναι ελεύθερη, τότε
μπορούμε να την αναθέσουμε στη συσκευή μας, αλλιώς θα πρέπει να εντοπίσουμε
μιαν άλλη. Ο εντοπισμός ελεύθερων γραμμών αιτήσεως διακοπής, γίνεται με ένα
οποιοδήποτε διαγνωστικό εργαλείο συστήματος.
Οι κάρτες δικτύου συνήθως χρησιμοποιούν
μια από τις IRQ3 ή IRQ5. Η προτεινόμενη ρύθμιση είναι η IRQ5 και αποτελεί την
προεπιλογή για τα περισσότερα συστήματα. Παρακάτω παρατίθεται ένας πίνακας με
εναλλακτικές τιμές. Οι IRQ που παρατίθενται ως διαθέσιμες,
μπορούν συνήθως να χρησιμοποιηθούν για τις κάρτες NIC.
IRQ |
Συσκευή που τη χρησιμοποιεί |
2 (9) |
Κάρτα γραφικών |
3 |
Διαθέσιμη, εκτός αν χρησιμοποιείται για μια
δεύτερη σειριακή θύρα (COM2, COM4) |
4 |
Σειριακές θύρες
COM1, COM3 |
5 |
Διαθέσιμη, εκτός αν χρησιμοποιείται από την κάρτα
ήχου ή για μια δεύτερη παράλληλη θύρα (LPT2) |
6 |
Οδηγός δισκέτας
(floppy disk drive) |
7 |
Παράλληλη
Θύρα - LPT1 (Θύρα εκτυπωτή) |
8 |
Ρολόϊ |
10 |
Διαθέσιμη |
11 |
Διαθέσιμη |
12 |
Ποντίκη PS/2 |
13 |
Μαθηματικός
Συνεπεξεργαστής |
14 |
Σκληρός δίσκος |
15 |
Διαθέσιμη, εκτός αν χρησιμοποιείται από κάποιον
δευτερεύοντα σκληρό δίσκο |
Πίνακας 1: Πίνακας με τις διαθέσιμες γραμμές
αίτησης διακοπής (IRQ requests)
Θύρα Εισόδου / Εξόδου (Base I/O port)
Η θύρα βάσης εισόδου εξόδου αποτελεί το κανάλι μέσα από το οποίο ρέουν οι πληροφορίες μεταξύ της κάρτας δικτύου και της κεντρικής μονάδας επεξεργασίας. Η θύρα εμφανίζεται στην ΚΜΕ ως διεύθυνση.
Όπως συμβαίνει με τις αιτήσεις διακοπής,
έτσι και με τις θύρες εισόδου / εξόδου, η κάθε συσκευή θα πρέπει να έχει ένα
διαφορετικό αριθμό θύρας Ε/Ε. Στον παρακάτω πίνακα, σε δεκαεξαδική μορφή,
παρατίθενται μερικοί αριθμοί θύρας Ε/Ε, οι οποίοι αν είναι διαθέσιμοι μπορούν
να χρησιμοποιηθούν από την κάρτα δικτύου. Για τον προσδιορισμό των διαθέσιμων
θυρών θα πρέπει κανείς να ανατρέξει στην τεκμηρίωση του υπολογιστή.
Θύρα |
Συσκευή |
200 - 20F |
Θύρα παιχνιδιών |
210 - 21F |
|
220 - 22F |
|
280 - 28F |
|
290 - 29F |
|
2F0 - 2FF |
COM2 |
300 - 30F |
NIC |
310 - 31F |
NIC |
320 - 32F |
Ελεγκτής Σκληρού Δίσκου |
3B0 - 3BF |
LPT1 |
3F0 - 3FF |
Floppy disk drive, ή COM1 |
Πίνακας 2: Πίνακας αριθμών θύρας Ε/Ε
Διεύθυνση Βάσης Μνήμης (Base Memory Address)
Η διεύθυνση βάσης μνήμης αποτελεί μια θέση
στην κύρια μνήμη του υπολογιστή (RAM), η οποία
χρησιμοποιείται από την κάρτα δικτύου ως περιοχή προσωρινής αποθήκευσης, όπου
αποθηκεύει τα εισερχόμενα και τα εξερχόμενα πλαίσια δεδομένων. Η διεύθυνση αυτή
ονομάζεται συνήθως και διεύθυνση εκκίνησης RAM (RAM start address), αφού προσδιορίζει την αρχή της
περιοχής προσωρινής αποθήκευσης στη RAM. Συνήθως, η
διεύθυνση βάσης μνήμης για την κάρτα δικτύου είναι η (στο δεκαεξαδικό σύστημα) D8000. Και πάλι όμως θα πρέπει να ελέγξετε αν αυτή
η περιοχή χρησιμοποιείται από κάποια άλλη συσκευή και να επιλέξετε μια ελεύθερη
περιοχή.
Εδώ αξίζει να σημειωθεί ότι οι κάρτες που
δε χρησιμοποιούν τη RAM του υπολογιστή για την προσωρινή
αποθήκευση των δεδομένων, δεν προβλέπουν ρύθμιση για τη RAM start address. Επίσης, σε ορισμένες κάρτες δικτύου, υπάρχει η
δυνατότητα να καθορίσουμε και την ποσότητα που θέλουμε να δεσμευτεί για
τα προσωρινά δεδομένα. Οι δυνατές τιμές συνήθως είναι 16 ή 32 Kbytes.