Διδακτικά Βιβλία του Παιδαγωγικού Ινστιτούτου

Αναζήτηση

Βρες
Εμφάνιση

Αρχιτεκτονική αγωγού

Μία αρχιτεκτονική που χρησιμοποιείται σε πολλούς σύγχρονους επεξεργαστές είναι η αρχιτεκτονική αγωγού (pipeline architecture).

Στους επεξεργαστές αυτούς, ο κύκλος εκτέλεσης μίας εντολής διαιρείται σε πολλές διαδοχικές φάσεις, που ονομάζονται κύκλοι αγωγού (pipeline cycles). Μέσα στην ΚΜΕ υπάρχει ένα διακεκριμένο τμήμα που αντιστοιχεί σε κάθε ένα κύκλο και ονομάζεται βαθμίδα (stage). Κάθε εντολή ξεκινά από την πρώτη βαθμίδα του αγωγού και περνά από όλες με τη σειρά μέχρι να φθάσει και στην τελευταία. Μόλις μία βαθμίδα τελειώσει την επεξεργασία μίας εντολής, μπορεί αμέσως να προχωρήσει στην επόμενη χωρίς καθυστέρηση.

Ένας υπολογιστής είναι οργανωμένος σε αγωγό τεσσάρων βαθμίδων. Κάθε βαθμίδα εκτελεί μία φάση στην εκτέλεση μίας εντολής, όπως φαίνεται στο σχήμα.

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

Αν αντιπαραβάλουμε τον υπολογιστή αυτόν με κάποιον που δεν έχει αγωγό αλλά εκτελεί τις εντολές μία μία βλέπουμε ότι είναι τέσσερις φορές πιο γρήγορος, αφού ο υπολογιστής χωρίς αγωγό χρειάζεται τέσσερις χρονικές μονάδες ανά εντολή, μία ανά φάση εκτέλεσης.

Εκτέλεση εντολών στον υπολογιστή με αγωγό: κατά μέσο όρο ολοκληρώνεται μία εντολή σε κάθε χρονική μονάδα

Εκτέλεση εντολών στον υπολογιστή χωρίς αγωγό: κατά μέσο όρο ολοκληρώνεται μία εντολή κάθε τέσσερις χρονικές μονάδες

Μία ιδιαιτερότητα της αρχιτεκτονικής αγωγού είναι ο τρόπος που εκτελούνται οι εντολές άλματος υπό συνθήκη. Το αν θα εκτελεστεί ένα τέτοιο άλμα ή όχι, συνήθως εξαρτάται από το αποτέλεσμα μίας αριθμητικής ή λογικής πράξης, η οποία μπορεί να μην έχει ακόμα ολοκληρωθεί όταν η εντολή άλματος «εισαχθεί» στον αγωγό. Έτσι λοιπόν ο επεξεργαστής πρέπει να λάβει υπόψη του συγχρόνως και τα δύο «σενάρια» εκτέλεσης του προγράμματος. Όταν ολοκληρωθεί η λειτουργία που επηρεάζει την εκτέλεση του άλματος, ο επεξεργαστής θα επιλέξει το κατάλληλο «σενάριο» και θα το συνεχίσει.

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

Μία αρχιτεκτονική παρόμοια με την αρχιτεκτονική αγωγού είναι η υπερβαθμωτή (superscalar) αρχιτεκτονική. Σε αυτήν, ο επεξεργαστής μπορεί να εκτελέσει παράλληλα πολλές, ανεξάρτητες μεταξύ τους εντολές μηχανής, ενώ εντολές που επηρεάζουν η μία την άλλη εκτελούνται ακολουθιακά.

Υπάρχουν ακόμα διάφορες άλλες αρχιτεκτονικές υπολογιστών, όπως:

- Οι παράλληλοι υπολογιστές. Στο μοντέλο αυτό, πολλοί επεξεργαστές συνεργάζονται και συγχρονίζονται για να εκτελέσουν ένα πρόγραμμα γραμμένο έτσι ώστε να μοιράζει το υπολογιστικό φορτίο ανάμεσα στις διάφορες ΚΜΕ. Οι επεξεργαστές αυτοί μπορούν να έχουν κοινή μνήμη, οπότε ονομάζονται πολυεπεξεργαστές (multiprocessors) ή να έχει καθένας τη δική του μνήμη, οπότε μιλάμε για πολυυπολογιστές (multicomputer).

- Οι μη συμβατικοί υπολογιστές. Αυτοί δεν ακολουθούν το κλασικό μοντέλο του Von Neumann όπως ο Άβακας, όπου το πρόγραμμα είναι αποθηκευμένο στη μνήμη και υπάρχει ο μετρητής προγράμματος. Τέτοιοι υπολογιστές είναι οι μηχανές ροής δεδομένων (data flow machines), και οι μηχανές αναγωγής (reduction machines).

- Οι υπολογιστές ειδικού σκοπού, όπως οι συστολικές διατάξεις (systolic arrays), οι κυτταρικές διατάξεις (cellular arrays), οι ειδικοί επεξεργαστές για επεξεργασία σήματος (DSP) κλπ.

- Οι υπολογιστές μεγάλου μήκους λέξης ή πολύ μεγάλου μήκους λέξης (long instruction word computers, LIW ή very long instruction word computers, VLIW). Σε αυτούς το μήκος λέξης είναι πολύ μεγαλύτερο από ό,τι στους περισσότερους υπολογιστές, της τάξης των εκατοντάδων bits. Κάθε εντολή περιλαμβάνει την ταυτόχρονη εκτέλεση πολλών λειτουργιών.