Αρχιτεκτονική
καταχωρητών γενικής χρήσης
Οι καταχωρητές χρησιμοποιούνται για τη φύλαξη των μεταβλητών και πλεονεκτούν έναντι της μνήμης για τους εξής λόγους:
2. Το πρόγραμμα επιταχύνεται (αφού οι καταχωρητές είναι ταχύτεροι από τη μνήμη).
3. Η πυκνότητα κώδικα βελτιώνεται (αφού ένας καταχωρητής μπορεί να προσδιοριστεί με λιγότερα ψηφία απ΄ ότι μία θέση μνήμης).
Η προσπάθεια κατανομής μεταβλητών στους καταχωρητές δεν θα είναι αποδοτική αν είναι μικρός ο αριθμός των καταχωρητών γενικής χρήσης (όλοι οι καταχωρητές εκτός αυτών που έχουν δεσμευθεί από το σύστημα με κάποια συγκεκριμένη λειτουργία),. Οι περισσότεροι μεταγλωττιστές δεσμεύουν κάποιους καταχωρητές για το πέρασμα παραμέτρων και επιτρέπουν στους υπόλοιπους να χρησιμοποιηθούν για τη φύλαξη των μεταβλητών.
Δύο βασικά χαρακτηριστικά χωρίζουν τις αρχιτεκτονικές καταχωρητών γενικής χρήσης και αφορούν στον αριθμό και τη φύση των τελεστέων για μία αριθμητική και λογική εντολή:
ΚΑΤΑΧΩΡΗΤΩΝ ΓΕΝΙΚΗΣ ΧΡΗΣΗΣ |
|
|
Καταχωρητή - Καταχωρητή (ή Φόρτωσης-αποθήκευσης) |
Απλός, σταθερό μήκος κωδικοποίησης εντολής. Απλό μοντέλο παραγωγής κώδικα. Οι εντολές απαιτούν ίδιο χρόνο για να εκτελεστούν. |
Μεγαλύτερο πλήθος εντολών. Μερικές εντολές είναι μικρές και μπορεί να υπάρξει σπατάλη των bits κωδικοποίησης. |
Καταχωρητή - Μνήμης |
Μπορεί να γίνει προσπέλαση των δεδομένων, χωρίς να έχει γίνει πρώτα ανάκληση. Ο τύπος των εντολών τείνει να γίνει ευκολότερος για κωδικοποίηση και έχει καλή περιεκτικότητα. |
Οι τελεστέοι δεν είναι ισοδύναμοι αφού ένας πηγαίος τελεστέος σε μία δυαδική πράξη καταστρέφεται. Η κωδικοποίηση ενός αριθμού καταχωρητή και μιας διεύθυνσης μνήμης σε κάθε εντολή ίσως περιορίσει τον αριθμό των καταχωρητών. Ο χρόνος που χρειάζεται για την εκτέλεση των εντολών ποικίλλει ανάλογα με τη θέση των τελεστέων. |
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 5
![]() |
![]() |
![]() |
![]() |
![]() |