Κεφάλαιο 5 | Ενότητα 10 | Ερωτήσεις επισκόπησης | Επόμενο | Λεξικό όρων

Σχεδιασμός συστημάτων Εισόδου/Εξόδου

Μια μεγάλη πρόκληση που αφορά στο σχεδιασμό των συστημάτων Εισόδου/Εξόδου (Ι/Ο) είναι να προσπαθήσουμε να ικανοποιήσουμε τα παρακάτω:

Αυτό σημαίνει ότι πρέπει να υπάρχει μια ισορροπημένη κατάσταση μεταξύ των διαφόρων τμημάτων που βρίσκονται ανάμεσα στην κύρια μνήμη και στις συσκευές Ι/Ο και αυτό διότι, ο λόγος κόστος/επίδοση του συστήματος Ι/Ο – και άρα και η απόδοση του - μπορεί να είναι τόσο υψηλός όσο και είναι και στον ασθενέστερο κρίκο της αλυσίδα του.
Ο σχεδιαστής πρέπει επίσης να φροντίσει και για τη δυνατότητα μελλοντικής επέκτασης του συστήματος, έτσι ώστε οι πελάτες να μπορούν να το προσαρμόζουν στις εφαρμογές τους.
Αυτή η δυνατότητα επέκτασης - τόσο σε αριθμό όσο και σε τύπους συσκευών Ι/Ο - έχει συνέπειες στο κόστος λόγω της ανάγκης ύπαρξης μακρύτερων αρτηριών Ι/Ο,  μεγαλύτερης παροχής ισχύος για την υποστήριξη των συσκευών, και μεγαλύτερων κουτιών.
Κατά τη διάρκεια του σχεδιασμού ενός συστήματος Ι/Ο, γίνεται ανάλυση της απόδοσης, του κόστους και της χωρητικότητας του συστήματος, χρησιμοποιώντας για τη μέτρηση ποικίλα σχήματα σύνδεσης  και διαφορετικό κάθε φορά αριθμό συσκευών Ι/Ο παντός τύπου.

Βήματα που ακολουθούνται κατά το σχεδιασμό

Παρουσιάζονται έξι βήματα που πρέπει να ακολουθηθούν στο σχεδιασμό ενός συστήματος Ι/Ο. Οι λύσεις σε κάθε βήμα μπορούν να καθοριστούν από τις απαιτήσεις της αγοράς, ή απλώς από το τι επιδίωξη έχουμε για το λόγο κόστος/απόδοση.

  1. Απαρίθμησε τους διαφορετικούς τύπους συσκευών Ι/Ο που πρόκειται να συνδεθούν στη μηχανή, ή τους διάφορους τύπους κοινών αρτηριών τους οποίους θα υποστηρίζει η μηχανή.
  2. Απαρίθμησε τις φυσικές απαιτήσεις κάθε συσκευής Ι/Ο, συμπεριλαμβάνοντας την ποσότητα, την ισχύ, τις συνδέσεις, τις υποδοχές αρτηρίας και τα κουτιά επέκτασης που χρειάζεται κάθε μία.
  3. Απαρίθμησε το κόστος κάθε συσκευής Ι/Ο, συμπεριλαμβάνοντας και το κόστος του ελεγκτή που τυχόν να χρειάζεται γι’ αυτή τη συσκευή.
  4. Κατέγραψε για κάθε συσκευή Ι/Ο τις απαιτήσεις των πόρων που θα πρέπει να διαθέσει ο επεξεργαστής, οι οποίοι μεταξύ των άλλων είναι:
    1. Κύκλοι ρολογιού για εντολές που θα χρησιμοποιηθούν για να αρχικοποιήσουν μια διαδικασία εισόδου/εξόδου (όπως ο χειρισμός των διακοπών), για να υποστηρίξουν τη λειτουργία μιας συσκευής Ι/Ο και για να ολοκληρώσουν τη διαδικασία Ι/Ο.
    2. Καθυστέρηση του ρολογιού του επεξεργαστή, οφειλόμενη σε αναμονή για να ολοκληρώσει το σύστημα Ι/Ο τη χρήση της μνήμης, της αρτηρίας ή της κρυφής μνήμης.
    3. Κύκλοι ρολογιού του επεξεργαστή για την ανάκαμψη από μια δραστηριότητα Ι/Ο, όπως την εκκένωση (flushing) της κρυφής μνήμης.

  5. Κατέγραψε για κάθε συσκευή Ι/Ο τις απαιτήσεις των πόρων που θα πρέπει να διαθέσει η μνήμη και η αρτηρία Ι/Ο. Ακόμη και αν ο επεξεργαστής δε χρησιμοποιεί τη μνήμη, το εύρος ζώνης της κύριας μνήμης και της αρτηρίας Ι/Ο είναι περιορισμένο.
  6. Το τελικό βήμα είναι η εκτίμηση της απόδοσης όλων των διαφορετικών τρόπων οργάνωσης των συσκευών Ι/Ο. Η απόδοση μπορεί να αξιολογηθεί σωστά μόνο με προσομοίωση (simulation), αν και μπορεί πιθανόν να εκτιμηθεί με τη χρήση της θεωρίας ουρών.

Στη συνέχεια επιλέγεται η καλύτερη οργάνωση ανάλογα με τις επιδιώξεις κόστους και απόδοσης που έχουν τεθεί.

Τρόποι μέτρησης απόδοσης

Οι επιδιώξεις κόστους και απόδοσης επηρεάζουν την επιλογή του σχήματος  Ι/Ο και τον φυσικό σχεδιασμό. Η απόδοση μπορεί να μετρηθεί είτε σε Μb (megabytes) ανά δευτερόλεπτο είτε σε αριθμό λειτουργιών εισόδου/εξόδου ανά δευτερόλεπτο (IOPS), ανάλογα με τις ανάγκες της εφαρμογής.

Αν απαιτούμε υψηλή απόδοση, οι μόνοι περιορισμοί μας θα είναι η ταχύτητα των συσκευών Ι/Ο, ο αριθμός των συσκευών Ι/Ο και η ταχύτητες της μνήμης και της CPU. Αντίθετα, αν θέλουμε χαμηλότερο κόστος, μπορούμε να δαπανήσουμε μόνο για την αγορά των συσκευών Ι/Ο και τα καλώδια σύνδεσης με τον επεξεργαστή. Φυσικά, συνήθως προσπαθούμε να εξισορροπήσουμε τη σχέση απόδοσης προς κόστος και να επιτύχουμε την κατασκευή ενός συστήματος με υψηλή απόδοση και σχετικά χαμηλό κόστος.

Για να κάνουμε αυτές τις ιδέες πιο σαφείς, ας τις δούμε μέσα από μερικά παραδείγματα.

Παράδειγμα 1o

Τώρα ας δούμε τη σχέση κόστους / απόδοσης σε διάφορες οργανώσεις Ι/Ο. Ενας απλός τρόπος για να πραγματοποιηθεί αυτή η ανάλυση είναι να παρατηρήσουμε το μέγιστο ρυθμό διαμεταγωγής, δεχόμενοι ότι οι πόροι μπορούν να χρησιμοποιηθούν κατά 100% χωρίς παρενέργειες από παρεμβολές.

Παράδειγμα 2o

Κατά τη διάρκεια του παραπάνω παραδείγματος υποθέσαμε ότι οι πόροι μπορούν να χρησιμοποιηθούν κατά 100%. Είναι χρήσιμο να διαπιστωθεί ο στενωπός σε κάθε οργάνωση.

Παράδειγμα 3o

Στην πραγματικότητα κανένας πόρος δε μπορεί να λειτουργήσει κοντά στο 100% του εύρους ζώνης του χωρίς να έχουμε σημαντική αύξηση στην καθυστέρηση και μείωση στο ρυθμό διαμεταγωγής λόγω συγκρούσεων.

Εμπειρικοί κανόνες

Μια ποικιλία εμπειρικών κανόνων έχουν εξελιχθεί για να καθοδηγούν τον σχεδιασμό I/O:

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 1

Έχουμε 2 διαφορετικά συστήματα I/O που σκοπεύεται να χρησιμοποιηθούν στην επεξεργασία συναλλαγών. Το σύστημα Α μπορεί να υποστηρίξει 1000 λειτουργίες I/O το δευτερόλεπτο. Το σύστημα Β μπορεί να υποστηρίξει 750 λειτουργίες I/O το δευτερόλεπτο. Τα συστήματα χρησιμοποιούν τον ίδιο επεξεργαστή, που εκτελεί 50 εκατομμύρια εντολές το δευτερόλεπτο. Υποθέστε ότι κάθε συναλλαγή απαιτεί 5  λειτουργίες I/O και ότι κάθε λειτουργία I/O απαιτεί 10,000 εντολές. Αγνοώντας τον χρόνο απόκρισης και θεωρώντας ότι οι συναλλαγές μπορούν αυθαίρετα να επικαλυφθούν, να βρείτε το μέγιστο ρυθμό συναλλαγών ανά δευτερόλεπτο που κάθε συσκευή μπορεί να υποστηρίξει.

ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 1


ΔΡΑΣΤΗΡΙΟΤΗΤΑ 2

Ο χρόνος αναμονής μιας   λειτουργίας I/O για τα 2 συστήματα της προηγούμενης δραστηριότητας (1) διαφέρει. Ο χρόνος αναμονής μιας  I/O στο σύστημα Α είναι ίση με 20 ms, ενώ για το σύστημα Β, η καθυστέρηση είναι 18 ms για τις πρώτες 500 I/Os το δευτερόλεπτο και 25 ms ανά I/O για κάθε I/O μεταξύ 500 και 750 I/O το δευτερόλεπτο. Σε φόρτο εργασίας, κάθε δέκατη συναλλαγή εξαρτάται από την άμεσα εκτελούμενη συναλλαγή και πρέπει να περιμένει για την ολοκλήρωσή της. Ποιος είναι ο μέγιστος ρυθμός συναλλαγών που ακόμα επιτρέπουν κάθε συναλλαγή να ολοκληρωθεί σε ένα δευτερόλεπτο και δεν υπερβαίνει το I/O εύρος ζώνης της μηχανής; (Για απλότητα, θεωρείστε ότι όλες οι αιτήσεις συναλλαγών φτάνουν στην αρχή του διαστήματος του 1ου-δευτερολέπτου.)

ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 2


ΔΡΑΣΤΗΡΙΟΤΗΤΑ 3

Υποθέστε ότι έχουμε ένα σύστημα μνήμης που χρησιμοποιεί ένα ρολόι 50MHz. Η μνήμη μεταδίδει αιτήσεις 8-λέξεων με ρυθμό 1 λέξη ανά κύκλο. Για αναγνώσεις από τη μνήμη, οι προσπελάσεις συμβαίνουν ως εξής:

  1. 1 κύκλος να δεχτεί τη διεύθυνση,
  2. 3 κύκλους για καθυστέρηση, και
  3. 8 κύκλους ρολογιού να μεταδώσει τις 8 λέξεις.
Για εγγραφές στη μνήμη, οι προσπελάσεις συμβαίνουν ως εξής:
  1. 1 κύκλος να δεχτεί τη διεύθυνση,
  2. 2 κύκλους για καθυστέρηση,
  3. 8 κύκλους ρολογιού να μεταδώσει τις 8 λέξεις, και
  4. 3 κύκλους να επανορθώσει και να γράψει τον κώδικα διόρθωσης λάθους.
Βρείτε το μέγιστο εύρος ζώνης σε megabytes ανά second για ένα σχέδιο προσπέλασης αποτελούμενο από:
  1. Όλες αναγνώσεις από τη μνήμη.
  2. Όλες εγγραφές στη μνήμη.
  3. Ένα μείγμα από 65% αναγνώσεις από τη μνήμη και 35% εγγραφές στη μνήμη.

ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 3


ΔΡΑΣΤΗΡΙΟΤΗΤΑ 4

Θεωρήστε δύο διαφορετικά συστήματα αρτηριών:
Αρτηρία 1 είναι μια αρτηρία πλάτους 64 bits με πολύπλεξη διευθύνσεων και δεδομένων. Για την μετάδοση μιας διεύθυνσης ή ενός αντικειμένου 64 bits χρειάζεται 1 κύκλο αρτηρίας. Η εγγραφή/ανάγνωση μνήμης περιλαμβάνει καθυστέρηση 3 κύκλων. Αρχίζοντας από τον 4ο κύκλο το σύστημα μπορεί να δεχθεί ή να αποστείλει μέχρι 8 λέξεις με ρυθμό 2 λέξεων/κύκλο αρτηρίας.
Αρτηρία 2 είναι μια αρτηρία με ξεχωριστά 32 bits δεδομένων και 32 bits διευθύνσεων. Κάθε μετάδοση χρειάζεται έναν κύκλο αρτηρίας. Η ανάγνωση από τη μνήμη έχει 3 κύκλους καθυστέρηση, και αρχίζοντας από τον 4ο κύκλο, το σύστημα μνήμης μπορεί να αποστείλει μέχρι 8 λέξεις με ρυθμό 1 λέξη/κύκλο αρτηρίας.

  1. Να αξιολογήστε αυτές τις αρτηρίες υποθέτοντας ότι έχουμε αιτήσεις 1 λέξης και το 60% είναι αιτήσεις ανάγνωσης και το 40% είναι αιτήσεις εγγραφής. Στη συνέχεια να υπολογίσετε το μέγιστο εύρος ζώνης που η κάθε αρτηρία μπορεί να παρέχει σε λέξεις/κύκλο αρτηρίας.
  2. Αν οι αιτήσεις μνήμης έχουν μήκος 8 λέξεων να υπολογίσετε το μέγιστο πλάτος που κάθε αρτηρία και σύστημα μνήμης μπορεί να παρέχει στον επεξεργαστή, σε λέξεις/κύκλο αρτηρίας.

ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 4