ΠΕΡΙΕΧΟΜΕΝΟ ΜΑΘΗΜΑΤΟΣ
Το Εργαστήριο Αρχιτεκτονικής Υπολογιστών είναι ένα πρακτικά προσανατολισμένο μάθημα που συνοδεύει και ενισχύει τη θεωρητική διδασκαλία της αρχιτεκτονικής υπολογιστών. Μέσα από μια σειρά στοχευμένων εργαστηριακών ασκήσεων, οι φοιτητές/φοιτήτριες αποκτούν ουσιαστική εμπειρία στην ανάπτυξη, εκτέλεση και αποσφαλμάτωση προγραμμάτων σε συμβολική γλώσσα RISC-V, καθώς και στην κατανόηση της λειτουργίας σύγχρονων επεξεργαστών. Το μάθημα βασίζεται στη χρήση των εκπαιδευτικών προσομοιωτών RARS και Ripes, προσφέροντας στους φοιτητές τόσο προγραμματιστική εξάσκηση σε επίπεδο αρχιτεκτονικής συνόλου εντολών (Instruction Set Architecture – ISA), όσο και οπτικοποίηση της εσωτερικής λειτουργίας επεξεργαστών.
Στις πρώτες ασκήσεις, οι φοιτητές/φοιτήτριες εξοικειώνονται με τον προσομοιωτή RARS, εστιάζοντας στη συμβολομετάφραση, στην παρακολούθηση των καταχωρητών και της μνήμης, καθώς και στον έλεγχο προγραμμάτων. Παράλληλα, ενισχύουν την κατανόησή τους στις βασικές αριθμητικές και λογικές πράξεις, στη διαχείριση κρατουμένων και στην υλοποίηση αλγορίθμων μέσω της συμβολικής γλώσσας RISC-V. Το μάθημα συνεχίζεται με πιο προχωρημένες έννοιες, όπως η κλήση διαδικασιών με χρήση της στοίβας, η διαχείριση της μνήμης μέσω δεικτών και σωρού, καθώς και η υλοποίηση και αντιμετώπιση εξαιρέσεων.
Το δεύτερο μέρος του μαθήματος επικεντρώνεται στη μικροαρχιτεκτονική πλευρά της εκτέλεσης εντολών, αξιοποιώντας τον προσομοιωτή Ripes. Οι φοιτητές/φοιτήτριες έχουν την ευκαιρία να παρατηρήσουν βήμα-βήμα τη ροή εντολών μέσα από τα στάδια ενός επεξεργαστή (fetch, decode, execute, memory, writeback) και να συγκρίνουν υλοποιήσεις επεξεργαστών με και χωρίς διοχέτευση (pipeline). Μέσα από ασκήσεις που συνδυάζουν ανάλυση εξαρτήσεων δεδομένων και αναδιάταξη εντολών, οι φοιτητές κατανοούν τις τεχνικές βελτιστοποίησης απόδοσης και τον ρόλο της σχεδίασης του υλικού στη συνολική ταχύτητα εκτέλεσης.
Το μάθημα ενισχύει τη σύνδεση ανάμεσα στο χαμηλού επιπέδου προγραμματισμό και τη λειτουργία του υλικού, προετοιμάζοντας τους φοιτητές για περαιτέρω ενασχόληση με θέματα όπως οι μεταγλωττιστές, τα λειτουργικά συστήματα και η σχεδίαση ψηφιακών συστημάτων.
Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές και φοιτήτριες θα είναι σε θέση να: