Πίσω

3. Clock Cycle Diagram

Περιέχει μια απεικόνιση της συμπεριφοράς της σωλήνωσης στο χρόνο.


Για παράδειγμα, η προσομοίωση στο παραπάνω ενδεικτικό παράθυρο βρίσκεται τώρα στον 4ο κύκλο ρολογιού, η πρώτη εντολή είναι στο στάδιο MEM,η δεύτερη στο intEX, και η τέταρτη στο IF. Η τρίτη, ωστόσο, έχει χαρακτηριστεί ως «aborted». Ο λόγος δεν είναι άλλος από τον εξής: Η δεύτερη εντολή, jal, είναι μια διακλάδωση που δεν ακολουθείται. Αυτό όμως ο επεξεργαστής το γνωρίζει μόνο μετά τον 3ο κύκλο, όταν η jal αποκωδικοποιείται. Κατά τη διάρκεια αυτού του κύκλου η εντολή movi2fp (που έπεται της jal) έχει ήδη έρθει στη μνήμη, όμως η επόμενη προς εκτέλεση βρίσκεται σε άλλη διεύθυνση. Γι' αυτό το λόγο η εκτέλεση της movi2fp θα πρέπει να αναβληθεί, αφήνοντας μια φυσαλίδα (bubble) στη σωλήνωση.

Η διεύθυνση διακλάδωσης της jal καλείται "InputUnsigned". Προκειμένου να βρεθεί η πραγματική τιμή αυτής της συμβολικής διεύθυνσης, επιλέγουμε Memory από το κυρίως παράθυρο και κατόπιν Symbols. Το παράθυρο που εμφανίζεται χαρακτηρίζει τις καθολικές μεταβλητές με το G και τις τοπικές με το L. Εάν το ανοίγαμε θα βλέπαμε ότι το "InputUnsigned", μια και βρίσκεται στο module "input", είναι καθολική μεταβλητή και αντιστοιχεί στην πραγματική διεύθυνση 0x144.

Πατώντας F7 ακόμα μια φορά , η πρώτη εντολή, addi, θα εισέλθει στο τελευταίο στάδιο της σωλήνωσης. Εσωτερικά αυτό που συνέβη στον επεξεργαστή σε σχέση με αυτήν την εντολή μπορούμε να το δούμε πατώντας δυο φορές με το ποντίκι μας στη γραμμή που περιλαμβάνει την εντολή.("Information window") Διπλοπατώντας π.χ. επάνω στην τρίτη γραμμή (της movi2fp), διαπιστώνουμε ότι όντως μόνο το πρώτο στάδιο της σωλήνωσής της, IF, εκτελέστηκε, κι ότι η εντολή στη συνέχεια εγκαταλείφθηκε.