Πανεπιστήµιο Θεσσαλίας Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Σχετικά έγγραφα
Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 9 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 4 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Πανεπιστήµιο Θεσσαλίας

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 3 ο ΜΕΔ απλού κύκλου

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 2 ο Σύντοµη Επανάληψη

3. Πρόσθεση Πολλαπλασιασμός 4. Πρόσθεση στο πρότυπο ΙΕΕΕ Πολλαπλασιασμός στο πρότυπο ΙΕΕΕ

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο Σύντομη Επανάληψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 8 ο Μερική Επικάλυψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 11 ο και 12 ο

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

Αρχιτεκτονική Υπολογιστών

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 3 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 6 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Μια Ανασκόπηση στην Οργάνωση Η/Υ. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

Αρχιτεκτονική Υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

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

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Αρχιτεκτονική υπολογιστών

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήµιο Θεσσαλίας

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Κεφάλαιο 3 Κεντρική Μονάδα Επεξεργασίας

Πανεπιστήµιο Θεσσαλίας

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

Αρχιτεκτονική Η/Υ. Γιώργος ηµητρίου. Μια Ανασκόπηση στην Οργάνωση Η/Υ. Πανεπιστήµιο Θεσσαλίας - Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Πανεπιστήµιο Θεσσαλίας

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

Πανεπιστήµιο Θεσσαλίας

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Πανεπιστήµιο Θεσσαλίας

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

5.1 Εισαγωγή. Μια προεπισκόπηση της υλοποίησης

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Πανεπιστήµιο Θεσσαλίας

ΘΕΜΑ 2. (2,5 µονάδες) Θεωρήστε τρεις κρυφές µνήµες των 512 πλαισίων µε 8 λέξεις ανά πλαίσιο και οργανώσεις αντίστοιχα:

Πανεπιστήµιο Θεσσαλίας

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 1 ο

Πράξεις με δυαδικούς αριθμούς

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

ξργ Μονάδα επεξεργασίας ξργ δδ δεδομένων Μονάδα ελέγχου

Ενδεικτικές Ερωτήσεις Θεωρίας

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 2 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Αρχιτεκτονική Υπολογιστών II Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Πανεπιστήµιο Θεσσαλίας

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής. Εισαγωγή στους Η/Υ

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής. Εισαγωγή στους Η/Υ

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

Οργάνωση Υπολογιστών

Εγχειρίδιο χρήσης του Άβακα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 3. Αριθµητική για υπολογιστές

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ

6.1 Καταχωρητές. Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f.

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο)

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Αναπαράσταση Αριθμών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Transcript:

Πανεπιστήµιο Θεσσαλίας Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων Αρχιτεκτονική Υπολογιστών Εργασία Εξαµήνου: Προσοµοίωση ARM σε επίπεδο VHDL/Verilog 1. Μελέτη συνόλου εντολών και αρχιτεκτονικής ARM Η πρώτη φάση της εργασίας σχεδίασης ενός επεξεργαστή καλύπτει τη µελέτη του συνόλου εντολών και της αρχιτεκτονικής του επεξεργαστή. Το σύνολο εντολών που ζητείται να υλοποιηθεί είναι το ARMv6, το οποίο περιγράφεται αναλυτικά στα βιβλία ARM_Architecture.pdf και ARMv6_Architecture.pdf, ενώ η συγκεκριµένη αρχιτεκτονική πάνω στην οποία θα στηριχθεί η εργασία είναι η 32-bit αρχιτεκτονική ARM11, η οποία περιγράφεται στο βιβλίο ARM11_Microarchitecture.pdf. Κάποιες λεπτοµέρειες από τη ζητούµενη αρχιτεκτονική δίνονται στη συνέχεια. Σε παρένθεση δίνονται οι αντίστοιχοι παράγραφοι από το πρώτο από τα παραπάνω βιβλία: 1. Ο επεξεργαστής υποστηρίζει δύο τρόπους λειτουργίας, χρήστη (user) και επιβλέποντα (supervisor). Μεταφορά από τον πρώτο στο δεύτερο γίνεται αυτόµατα σε κάθε ειδική περίπτωση, και από το δεύτερο στον πρώτο όπως περιγράφεται πιο κάτω. Προς το παρόν, οι δύο τρόποι διαφοροποιούνται µόνο στην προσπέλαση των καταχωρητών γενικού σκοπού του επεξεργαστή. (Α.2.2) 2. Οι καταχωρητές γενικού σκοπού του επεξεργαστή είναι οργανωµένοι σε ένα φάκελο 18 καταχωρητών. Κάθε εντολή µπορεί να προσπελάσει 16 καταχωρητές, αριθµηµένους από R0 έως R15, οι οποίοι καθορίζονται από τον τρόπο λειτουργίας. Οι καταχωρητές R0 έως R12, καθώς και ο R15, είναι κοινοί και για τους δύο τρόπους λειτουργίας. Από κει και πέρα όµως, διαφορετικό ζεύγος από τους υπόλοιπους 4 καταχωρητές προσπελαύνονται στον τρόπο λειτουργίας χρήστη, και διαφορετικό στον τρόπο λειτουργίας επιβλέποντα. Από τους καταχωρητές γενικού σκοπού, δύο χρησιµοποιούνται ως υπονοούµενα τελού- µενα σε εντολές του επεξεργαστή, ο R15 που χρησιµοποιείται ως µετρητής προγράµµατος (PC), και ο R14 που χρησιµοποιείται για σύνδεση σε κλήσεις υποπρογραµµάτων (LR). Ο R13 χρησιµοποιείται συνήθως από το λογισµικό ως δείκτης στοίβας (SP), αλλά δεν υπάρχει δέσµευση στο υλικό γι αυτό το σκοπό. Ο φάκελος καταχωρητών (ΦΚ) υποστηρίζει 3 αναγνώσεις και 1 εγγραφή σε έναν κύκλο µηχανής, κι εποµένως οι έξοδοί του συνδέονται µε 3 καταχωρητές ειδικού σκοπού Α, Β και Γ, που αποτελούν οµώνυµα πεδία κατάλληλου καταχωρητή επικάλυψης. Η εγγραφή του ΦΚ χρησιµοποιεί το πρώτο µισό ενός κύκλο µηχανής, µε το δεύτερο µισό να χρησιµοποιεί η ανάγνωσή του. (Α.2.3-4) 3. Ο καταχωρητής κατάστασης (CPSR) περιέχει 5 ψηφία, από τα οποία τα 4 αναφέρονται σε αποτέλεσµα προηγούµενης πράξης ALU: το ψηφίο αρνητικής τιµής (N), το ψηφίο µηδενικής τιµής (Z), το ψηφίο κρατουµένου (C) και το ψηφίο αριθµητικής υπερχείλισης (V). Οι τιµές των ψηφίων αυτών αλλάζουν από εντολές αριθµητικών πράξεων, και χρησιµοποιούνται στην υλοποίηση εκτέλεσης εντολών υπό συνθήκη. Το 5ο ψηφίο του CPSR υποδεικνύει τον τρόπο λειτουργίας του επεξεργαστή, και µεταβολή του επιτρέπει τη µεταφορά από το τρόπο λειτουργίας επιβλέποντα στον τρόπο λειτουργίας χρήστη. Η αντίστροφη µεταφορά δεν επιτρέπεται να γίνει µε αντίστροφη µεταβολή. (Α.2.5) 4. Η ολίσθηση υλοποιείται σαν πρόσθετο βήµα των πράξεων ALU, και όχι σαν ανεξάρτητη πράξη. Έτσι, η υποµονάδα ολίσθησης είναι συνδεδεµένη µεταξύ του καταχωρητή Β και της δεύτερης εισόδου της ALU. Υποστηρίζονται 4 ολισθήσεις: αριστερή, λογική δεξιά, αριθµητική δεξιά και κυκλική δεξιά. Μια παραλλαγή της τελευταίας επιτρέπει τη συµµετοχή του ψηφίου κατάστασης C στην ολίσθηση. Ο αριθµός των ψηφίων ολίσθησης καθο-

2 ρίζεται από άµεσο τελούµενο ή από τον καταχωρητή Γ. Η ολίσθηση θεωρείται ότι απαιτεί µισό κύκλο µηχανής, και αποτελεί το πρώτο από τα δύο βήµατα της ΜΕ των πράξεων ALU. (Α.3, Α.5.1) 5. Οι αριθµητικές και λογικές πράξεις σταθερής υποδιαστολής εκτελούνται µε δύο ή τρία τελούµενα εισόδου και ένα εξόδου. Εκτός από τις πράξεις πολλαπλασιασµού και διαίρεσης, οι υπόλοιπες εκτελούνται σε µια ALU. Στην περίπτωση αυτή, το ένα από δύο τελού- µενα εισόδου µπορεί να είναι άµεσο, που περιγράφεται από 1 byte και έναν άρτιο αριθµό ψηφίων κυκλικής δεξιάς ολίσθησης. Το άµεσο τελούµενο δηλαδή περνάει από την υπο- µονάδα ολίσθησης πριν εισέλθει στην ALU. Η ALU απαιτεί µισό κύκλο µηχανής για το δεύτερο από τα δύο βήµατα εκτέλεσης των εντολών ALU. Ο πολλαπλασιασµός σταθερής υποδιαστολής εκτελείται σε ανεξάρτητη υποµονάδα, που µπορεί στο γινόµενο να προσθέτει το τρίτο τελούµενο εισόδου, στον τελευταίο από τους διαδοχικούς κύκλους µηχανής της εκτέλεσής του (λειτουργία MAC). ιαίρεση σταθερής υποδιαστολής υποστηρίζεται επίσης σε ανεξάρτητη υποµονάδα, απαιτώντας επίσης αρκετούς διαδοχικούς κύκλους µηχανής. Ο πολλαπλασιασµός και η διαίρεση δε δέχονται άµεσα ούτε ολισθηµένα τελού- µενα. Σηµειώστε ότι το σύνολο εντολών του ARM δεν υποστηρίζει διαίρεση σταθερής υποδιαστολής, και θα πρέπει να κωδικοποιήσετε εσείς τις αντίστοιχες εντολές. Ο ακριβής αριθµός κύκλων που απαιτείται για τις πράξεις του πολλαπλασιασµού και της διαίρεσης, όπως και ο µηχανισµός επικάλυψης των αντίστοιχων υποµονάδων, εξαρτάται από την υλοποίηση που θα κάνετε. (Α.3, Α.4) 6. Οι προσπελάσεις µνήµης γίνονται µε εντολές φόρτωσης/αποθήκευσης. Το µέγεθος των δεδοµένων που µεταφέρονται από και προς την κρυφή µνήµη δεδοµένων είναι 1, 2, 4 και 8 bytes. Η προσπέλαση µνήµης γίνεται µε σχετική έµµεση ή δεικτοδοτούµενη διευθυνσιοδότηση. Έτσι, ένας καταχωρητής-βάση συνοδεύεται στην εντολή είτε από µία σταθερά µετατόπισης είτε από έναν καταχωρητή-δείκτη. Για τον υπολογισµό της τελικής διεύθυνσης προσπέλασης στη δεύτερη περίπτωση, το τελούµενο από τον καταχωρητή-δείκτη µπορεί να είναι ολισθηµένο. Οι απλές εντολές προσπέλασης µνήµης ολοκληρώνονται σε δύο επικαλυπτόµενους κύκλους µηχανής, µε τον πρώτο να απαιτείται για τον υπολογισµό της τελικής διεύθυνσης και το δεύτερο για την προσπέλαση της µνήµης. Εκτός όµως από τις απλές εντολές προσπέλασης µνήµης, υποστηρίζονται και δύο παραλλαγές: (α) Οι ε- ντολές προσπέλασης µνήµης, στις οποίες η τελική διεύθυνση προσπέλασης αποθηκεύεται στον καταχωρητή-βάση, είτε πριν, είτε µετά την προσπέλαση. Ειδικά για εντολές φόρτωσης, ο επεξεργαστής αναγκάζεται τότε να παρατείνει την εκτέλεση κατά έναν κύκλο, ώ- στε να υποστηριχθούν δύο εγγραφές στο ΦΚ. (β) Οι εντολές προσπέλασης µνήµης πολλαπλών δεδοµένων, στις οποίες µεταφέρονται δεδοµένα από διαδοχικές θέσεις µνήµης. Οι καταχωρητές που συµµετέχουν σε µια τέτοια προσπέλαση καθορίζονται από ένα άµεσο τελούµενο ειδικής µορφής. Για την υποστήριξη προσπέλασης µνήµης πολλαπλών δεδοµένων, η υποµονάδα προσπέλασης µνήµης πρέπει να µπορεί να εκτελεί επαναληπτικά, τόσο τα βήµατα προσπέλασης, όσο και τις εγγραφές και αναγνώσεις του ΦΚ για εντολές φόρτωσης και αποθήκευσης αντίστοιχα. (Α.3, Α.4, Α.5.2-4) 7. Άλµατα υλοποιούνται εύκολα, είτε µε εντολές µεταφοράς δεδοµένων στον PC, είτε µε ειδικές εντολές. Η διεύθυνση προορισµού καθορίζεται είτε ως άµεσο τελούµενο σταθερά µετατόπισης σχετικά µε τον PC, είτε έµµεσα µέσω καταχωρητή που περιέχει τη διεύθυνση αυτή, ενώ η τιµή του PC µπορεί να αποθηκευτεί στον LR για την υλοποίηση σύνδεσης. Συνθήκες στα άλµατα υποστηρίζονται µέσω της γενικής δυνατότητας εκτέλεσης εντολών υπό συνθήκη που περιγράφεται στη συνέχεια. (Α.3, Α.4) 8. Όλες οι παραπάνω εντολές µπορούν να εκτελούνται υπό συνθήκη. Η συνθήκη εκτέλεσης µιας εντολής κωδικοποιείται σε ειδικό πεδίο της λέξης εντολής και αποτιµάται στη φάση εκτέλεσης της εντολής µε βάση κάποια από τα ψηφία κατάστασης του επεξεργαστή. Έ- τσι, αν η συνθήκη είναι αληθής, η εντολή εκτελείται κανονικά. Αν όµως η συνθήκη είναι ψευδής, η εντολή τερµατίζει την εκτέλεσή της, χωρίς να µεταβάλει την κατάσταση του επεξεργαστή. (Α.3.2)

3 Ένα γενικό διάγραµµα της αρχιτεκτονικής ARM11 είναι το εξής: Οι υποµονάδες ISS και WB προσπελαύνουν το ΦΚ για ανάγνωση και εγγραφή, αντίστοιχα. Η ISS επιπλέον αναλαµβάνει να επιλέξει την υποµονάδα εκτέλεσης για κάθε εντολή που παραλαµβάνει από τη µονάδα αποκωδικοποίησης DEC. Η υποµονάδα SH είναι η υποµονάδα ολίσθησης, ενώ η υποµονάδα LS είναι η υποµονάδα υπολογισµού τελικής διεύθυνσης προσπέλασης για προσπελάσεις µνήµης. 2. Προσοµοίωση της ΜΕ Η υλοποίηση της παραπάνω ΜΕ περιλαµβάνει: την υλοποίηση του ΦΚ, την υλοποίηση των υποµονάδων SH, ALU, MAC και DIV (η τελευταία δε φαίνεται στο διάγραµµα), την υλοποίηση της υποµονάδας LS που ουσιαστικά είναι ένας συνδυασµός µιας υποµονάδας SH και ενός αθροιστή, την υλοποίηση του καταχωρητή κατάστασης και σύνδεση αυτού µε την ALU, καθώς και την υποστήριξη για εκτέλεση υπό συνθήκη, την υλοποίηση στοιχειωδών κρυφών µνηµών εντολών και δεδοµένων, την υλοποίηση των αρτηριών διασύνδεσης των επιµέρους υποµονάδων, και την υλοποίηση βοηθητικών υποµονάδων, όπως προέκτασης προσήµου, και βοηθητικών καταχωρητών και καταχωρητών επικάλυψης για προσωρινή αποθήκευση δεδοµένων µεταξύ των υποµονάδων. Η αποκωδικοποίηση εντολών και παραγωγή σηµάτων ελέγχου θα γίνει στην επόµενη φάση της εργασίας. Θα πρέπει όµως, υλοποιώντας τις υποµονάδες, να ορίσετε τα σήµατα ελέγχου που απαιτεί καθεµία για τη λειτουργία της, σύµφωνα µε τις προδιαγραφές της. 3. Υλοποίηση της Μονάδας Ελέγχου (ΜΕ) Η ΜΕ που υλοποιήσαµε πρέπει να υποστηρίζει µερική επικάλυψη στην εκτέλεση των εντολών της αρχιτεκτονικής, ώστε κάθε πληροφορία που µεταφέρεται από µια φάση σε κάποια επόµενη, να αποθηκεύεται σε έναν ή περισσότερους κατάλληλους καταχωρητές επικάλυψης. Η υλοποίηση της ΜΕ για µια µερικά επικαλυπτόµενη ΜΕ είναι απλή, επειδή όλα τα σήµατα ελέγχου µιας εντολής παράγονται κατά τη φάση αποκωδικοποίησης αυτής, και µεταφέρονται µαζί µε όλη την υπόλοιπη πληροφορία µεταξύ των διαδοχικών φάσεων του κύκλου εντολής.

4 Όµως, η µερική επικάλυψη στην εκτέλεση των εντολών συνοδεύεται από άλλες αρχιτεκτονικές προσθήκες και βελτιώσεις που πρέπει να υποστηριχθούν: 1. Μηχανισµός παγώµατος της ΜΕ : Σε κάθε περίπτωση που η ΜΕ δε µπορεί να ανταπεξέλθει στη διαδοχική εκτέλεση εντολών, όπως για παράδειγµα σε µια αποτυχία κρυφής µνήµης ή σε µια εξάρτηση που δε µπορεί να αντιµετωπιστεί µε άλλον τρόπο, η επικάλυψη πρέπει να παγώσει. Για να υλοποιηθεί µηχανισµός παγώµατος, οι καταχωρητές που αποθηκεύουν πληροφορία µεταξύ διαδοχικών φάσεων πρέπει να έχουν σήµα επίτρεψης, το οποίο να µπορεί να απενεργοποιεί η ΜΕ για όποιες φάσεις πρέπει να παγώσουν. Ειδικά για φάσεις που µπορούν να τροποποιήσουν την κατάσταση του επεξεργαστή, η απενεργοποίηση πρέπει να γίνεται και για όποια σήµατα επιτρέπουν τέτοια τροποποίηση. 2. Μηχανισµός ανίχνευσης εξαρτήσεων από δεδοµένα: Για να µπορεί η ΜΕ να ανιχνεύει ε- ξαρτήσεις από δεδοµένα µεταξύ εντολών που εκτελούνται, πρέπει να διατηρεί σε έναν πίνακα τους αριθµούς των καταχωρητών που αυτές εγγράφουν. Πιο συγκεκριµένα, µε κάθε νέα εντολή που αποκωδικοποιείται, η ΜΕ συγκρίνει τους αριθµούς καταχωρητών εισόδου αυτής µε τους αριθµούς που είναι εκείνη τη στιγµή αποθηκευµένοι στον πίνακα. Αν βρει κάποια ταύτιση, έχει ανιχνεύσει εξάρτηση, οπότε είτε θα προχωρήσει σε πάγωµα του µηχανισµού επικάλυψης, είτε θα ενεργοποιήσει κατάλληλα το µηχανισµό παροχέτευσης. Επιπλέον, ολισθαίνει τους αριθµούς καταχωρητών του πίνακα κατά µία θέση, ώστε να αποθηκευτεί σε αυτόν ο αριθµός καταχωρητή εξόδου της νέας εντολής. Επειδή αρκετές από τις εντολές της αρχιτεκτονικής µας δεν εγγράφουν αποτέλεσµα στο ΦΚ, κάθε θέση του πίνακα πρέπει να συνοδεύεται και από ένα ψηφίο εγκυρότητας που να επιβεβαιώνει την εγγραφή. 3. Μηχανισµός παροχέτευσης: Για την υλοποίηση παροχέτευσης, η ΜΕ πρέπει να υποστηρίζει δρόµους πληροφορίας από τις εξόδους των υποµονάδων εκτέλεσης πίσω στις εισόδους τους. Πιο συγκεκριµένα, οι έξοδοι που µας ενδιαφέρουν είναι αυτές που παράγουν αποτέλεσµα που θα εγγραφεί στο ΦΚ. Όσο αφορά τις εισόδους, εκτός από τις υποµονάδες που δέχονται τιµές από το ΦΚ, είναι δυνατό να έχουµε παροχέτευση και προς την D- cache για αποθήκευση δεδοµένου, όπως επίσης και στον αθροιστή που ακολουθεί την υποµονάδα πολλαπλασιασµού για το τελούµενο εισόδου που χρησιµοποιείται µόνο στην πρόσθεση που ακολουθεί τον πολλαπλασιασµό. Όλοι οι παραπάνω δρόµοι πληροφορίας συνδέονται στις αντίστοιχες εισόδους µε τη βοήθεια πολυπλεκτών, οι οποίοι ελέγχονται από τη ΜΕ και ειδικότερα από την υποµονάδα που υλοποιεί τον παραπάνω µηχανισµό ανίχνευσης εξαρτήσεων. Κάθε εξάρτηση που αυτός ανιχνεύει, ενεργοποιεί και το κατάλληλο σήµα επιλογής. Αν, για παράδειγµα, ανιχνευτεί εξάρτηση από εντολή ολίσθησης προς τον καταχωρητή-βάση µιας εντολής προσπέλασης µνήµης, θα ενεργοποιηθεί το σή- µα που θα επιλέγει την αντίστοιχη είσοδο της υποµονάδας LS από την έξοδο της ALU. Παρόµοια, αν ανιχνευτεί εξάρτηση από εντολή ALU προς τον καταχωρητή µε το δεδοµένο προς αποθήκευση µιας εντολής αποθήκευσης στη µνήµη, θα ενεργοποιηθεί το σήµα επιλογής της εισόδου δεδοµένων της D-cache από την έξοδο της ALU. Όµως, αν ανιχνευτεί εξάρτηση από εντολή φόρτωσης προς τον έναν καταχωρητή εισόδου µιας εντολής ολίσθησης, η ΜΕ θα πρέπει να παγώσει τη φάση αποκωδικοποίησης για έναν κύκλο µηχανής, και µετά να ενεργοποιήσει το σήµα επιλογής της αντίστοιχης εισόδου της SH από την D-cache. Υλοποιήστε τη ΜΕ της ΜΕ και τις παραπάνω προσθήκες µε τη σειρά που δίνονται, για υ- ποστήριξη µερικής επικάλυψης στην εκτέλεση των εντολών της αρχιτεκτονικής. 4. Υποστήριξη προχωρηµένων στοιχείων αρχιτεκτονικής Έχουµε σχεδόν ολοκληρώσει τη ΜΕ της αρχιτεκτονικής που προσοµοιώνουµε. Μετά το µηχανισµό επικάλυψης, µας αποµένει να εισάγουµε την υποστήριξη για εκτέλεση εντολών υπό συνθήκη, όπως και για υποθετική εκτέλεση µε πρόβλεψη διακλαδώσεων. Τέλος, λόγω των

5 πολλαπλών υποµονάδων εκτέλεσης, επιθυµούµε υποστήριξη για παράλληλη εκτέλεση εντολών µε πιθανή ολοκλήρωση εκτός σειράς: 1. Μηχανισµός ακύρωσης εντολών: Για να υποστηριχθεί εκτέλεση εντολών υπό συνθήκη, όπως και υποθετική εκτέλεση εντολών µε κάποιο µηχανισµό πρόβλεψης διακλαδώσεων, η ΜΕ πρέπει να µπορεί να ακυρώνει εντολές που δεν πρέπει να ολοκληρώνουν την εκτέλεσή τους και να τροποποιούν την κατάσταση του επεξεργαστή. Για την υλοποίηση ενός τέτοιου µηχανισµού, αρκεί να απενεργοποιούνται τα σήµατα που επιτρέπουν την τροποποίηση της κατάστασης για τις εµπλεκόµενες εντολές. 2. Μηχανισµός πρόβλεψης διακλαδώσεων: Η µέθοδος πρόβλεψης διακλαδώσεων που ζητείται να υλοποιηθεί είναι η δυναµική πρόβλεψη δύο επιπέδων. Για τοπική πρόβλεψη, διατηρείται ένας πίνακας ιστορίας δύο ψηφίων µε 16 θέσεις, κι εποµένως η διευθυνσιοδότηση του πίνακα γίνεται µε βάση τα 4 λιγότερο σηµαντικά ψηφία του PC. Για συνολική πρόβλεψη, δύο ακόµα ψηφία διατηρούν τη συνολική ιστορία για τις δύο πιο πρόσφατες διακλαδώσεις, κι εποµένως πρέπει να υλοποιούνται 4 πίνακες ιστορίας, που θα επιλέγονται µε βάση τα ψηφία συνολικής ιστορίας. Για διακλαδώσεις µε άµεσο τελούµενο, η διεύθυνση προορισµού πρέπει να υπολογίζεται στην υποµονάδα DEC µε κάποιον ειδικό αθροιστή. Σε πρόβλεψη εκτέλεσης άλµατος θα ακυρώνεται η εντολή που είναι στη φάση ανάκλησης, ώστε στον επόµενο κύκλο µηχανής η ανάκληση να γίνει από τη διεύθυνση προορισµού. Πρόβλεψη δεν υποστηρίζεται για διακλαδώσεις µε κατ ευθείαν τελούµενο που υλοποιούν έµµεσο άλµα µε συνθήκη. 3. Μηχανισµός παράλληλης εκτέλεσης: Εφ όσον η ΜΕ που υλοποιούµε είναι βαθµωτή, σε κάθε κύκλο µηχανής η υποµονάδα ISS θα επεξεργάζεται µία και µόνη εντολή. Επειδή οι υποµονάδες εκτέλεσης πλην της υποµονάδας προσπέλασης µνήµης για τις περιπτώσεις αποτυχίας κρυφής µνήµης και πιθανά των υποµονάδων πολλαπλασιασµού και διαίρεσης είναι επικαλυπτόµενες, κάθε φορά θα ξεκινάει και θα ολοκληρώνεται µία εντολή. Για τις υπόλοιπες περιπτώσεις όµως, η καθυστέρηση στην εκτέλεση των εντολών είτε απαιτεί πάγωµα για τις επόµενες εντολές, είτε απαιτεί ανεξαρτητοποίηση στην εκτέλεση των α- ντίστοιχων εντολών από τις υπόλοιπες. Για το λόγο αυτό, η υποµονάδα ISS στέλνει την έξοδό της σε µία από τέσσερεις ουρές, που η καθεµία αντιστοιχεί σε µια µονάδα εκτέλεσης και αποθηκεύει δύο εντολές. Η αντίστοιχη µονάδα εκτελεί την πρώτη κάθε φορά ε- ντολή της ουράς. (Εναλλακτικά, µπορείτε αντί ουρών να υλοποιήσετε σταθµούς δέσµευσης και κάποιον αλγόριθµο τύπου Tomasulo για επιλογή εντολής.) Η επικάλυψη σε κάθε µονάδα εκτέλεσης αν υπάρχει γίνεται ανεξάρτητα από τις υπόλοιπες, ώστε κάποιο πάγωµα σε κάποια από αυτές να µην επηρεάζει τις άλλες. Επειδή µε τον τρόπο αυτό επιτυγχάνεται παράλληλη εκτέλεση µε πιθανή ολοκλήρωση εκτός σειράς, πρέπει να υλοποιηθεί ένας στοιχειώδης πίνακας επαναδιάταξης, όπου θα εγγράφονται µε τη σειρά οι καταχωρητές στους οποίους γίνεται εγγραφή στο ΦΚ, και οι τιµές που θα αποθηκεύονται. Ας σηµειωθεί ότι η υλοποίηση µηχανισµού παράλληλης εκτέλεσης τροποποιεί κατάλληλα και άλλες υποµονάδες ελέγχου της αρχιτεκτονικής µας. Υλοποιήστε µε τη σειρά τις παραπάνω προσθήκες στη ΜΕ.