Σωλήνωση (υπολογιστές)

Στην πληροφορική σωλήνωση, διοχέτευση ή διασωλήνωση (αγγλ: pipeline) καλείται ένα σύνολο από στοιχεία, υποσυστήματα μιας διαδικασίας επεξεργασίας δεδομένων τα οποία συνδέονται σε σειρά, έτσι ώστε η έξοδος από ένα στοιχείο να αποτελεί είσοδο για το επόμενο στη σειρά. Τα δεδομένα μπορούν επομένως να υφίστανται επεξεργασία παράλληλα από τα διάφορα υποσυστήματα της σωλήνωσης.

Οι βασικές σωληνώσεις σχετικές με υπολογιστές είναι :

  • η σωλήνωση εντολών όπως η κλασική σωλήνωση RISC, που χρησιμοποιείται στην Κεντρική Μονάδα Επεξεργασίας επιτρέποντας να εκτελούνται παράλληλα τα στάδια διαφορετικών εντολών αυξάνοντας την απόδοση του υπολογιστή. Στη σωλήνωση αυτή τα στοιχεία της επεξεργασίας είναι μέρη του επεξεργαστή που υλοποιούν τα επιμέρους στάδια εκτέλεσης μια εντολής (προσαγωγή, αποκωδικοποίηση, υπολογισμός τελεστών, προσαγωγή τελεστών, εκτέλεση εντολής κτλ.). Πρόκειται για μία μέθοδο παραλληλισμού εντολών στο υλικό του επεξεργαστή.
  • η σωλήνωση γραφικών η οποία συναντάται στις περισσότερες κάρτες γραφικών, οι οποίες αποτελούνται από πολλαπλές μονάδες αριθμητικής ή πλήρεις επεξεργαστές που υλοποιούν τα διαφορετικά στάδια λειτουργιών γραφικής απόδοσης(rendering) όπως προοπτική προβολή, ψαλίδισμα παραθύρων, υπολογισμούς φωτισμού κτλ.
  • η σωλήνωση λογισμικού η οποία αποτελείται από διεργασίες κατάλληλα διαμορφωμένες ώστε το ρεύμα δεδομένων εξόδου της μιας να είναι ρεύμα δεδομένων εξόδου για την επόμενη.
  • η σωλήνωση (pipe) ως ένας μηχανισμός διαδιεργασιακής επικοινωνίας. Έτσι υλοποιείται εσωτερικά η σωλήνωση λογισμικού στα λειτουργικά συστήματα Unix.

Η έννοια της σωλήνωσης

Η έννοια της σωλήνωσης έχει εφαρμογή στην καθημερινότητά μας. Το κλασικό παράδειγμα είναι η σωλήνωση που πραγματοποιείται σε μια αλυσίδα παραγωγής σε ένα εργοστάσιο. Π.χ. σε ένα εργοστάσιο αυτοκινήτων υπάρχουν τρία διακριτά στάδια στην γραμμή παραγωγής: ενσωμάτωση μηχανής (20 λεπτά), ξύλινη εσωτερική επένδυση (5 λεπτά), τροχοί (10 λεπτά). Τα στάδια αυτά εκτελούνται με κάποια σειρά για κάθε παραγόμενο όχημα. Μόλις ενσωματωθεί η μηχανή σε ένα αυτοκίνητο, το τελευταίο αφήνει το στάδιο αυτό για να περάσει στο στάδιο της «επένδυσης». Την ίδια στιγμή ένα καινούργιο όχημα εισέρχεται στο πρώτο στάδιο της «μηχανής». Τα δύο στάδια εκτελούνται παράλληλα από διαφορετικά στάδια της αλυσίδας για διαφορετικά αυτοκίνητα. Αν θέλαμε να φτιάξουμε τρια αυτοκίνητα και η σωλήνωση δεν ξεκινούσε να δουλεύει σε νέο αυτοκίνητο μέχρι να τελειώσει το παλιό, θα χρειαζόμασταν 105 λεπτά. Εκμεταλλευόμενοι όμως τη δυνατότητα που μας παρέχεται για παραλληλη λειτουργία των στάδιων της σωλήνωσης θα χρειαζόμασταν μόνο 75 λεπτά.