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

Κωδικός Μαθήματος
CEID_23Υ212
Κατηγορία
Υποχρεωτικά
Εξάμηνο
4
Τομέας
Τομέας Υλικού και Αρχιτεκτονικής των Υπολογιστών
Διδάσκων
Βάιος Παπαϊωάννου, Γιώργος Παπαδημήτριου
ECTS
2

ΠΕΡΙΕΧΟΜΕΝΟ ΜΑΘΗΜΑΤΟΣ

Το Εργαστήριο Αρχιτεκτονικής Υπολογιστών είναι ένα πρακτικά προσανατολισμένο μάθημα που συνοδεύει και ενισχύει τη θεωρητική διδασκαλία της αρχιτεκτονικής υπολογιστών. Μέσα από μια σειρά στοχευμένων εργαστηριακών ασκήσεων, οι φοιτητές/φοιτήτριες αποκτούν ουσιαστική εμπειρία στην ανάπτυξη, εκτέλεση και αποσφαλμάτωση προγραμμάτων σε συμβολική γλώσσα RISC-V, καθώς και στην κατανόηση της λειτουργίας σύγχρονων επεξεργαστών. Το μάθημα βασίζεται στη χρήση των εκπαιδευτικών προσομοιωτών RARS και Ripes, προσφέροντας στους φοιτητές τόσο προγραμματιστική εξάσκηση σε επίπεδο αρχιτεκτονικής συνόλου εντολών (Instruction Set Architecture – ISA), όσο και οπτικοποίηση της εσωτερικής λειτουργίας επεξεργαστών.

Στις πρώτες ασκήσεις, οι φοιτητές/φοιτήτριες εξοικειώνονται με τον προσομοιωτή RARS, εστιάζοντας στη συμβολομετάφραση, στην παρακολούθηση των καταχωρητών και της μνήμης, καθώς και στον έλεγχο προγραμμάτων. Παράλληλα, ενισχύουν την κατανόησή τους στις βασικές αριθμητικές και λογικές πράξεις, στη διαχείριση κρατουμένων και στην υλοποίηση αλγορίθμων μέσω της συμβολικής γλώσσας RISC-V. Το μάθημα συνεχίζεται με πιο προχωρημένες έννοιες, όπως η κλήση διαδικασιών με χρήση της στοίβας, η διαχείριση της μνήμης μέσω δεικτών και σωρού, καθώς και η υλοποίηση και αντιμετώπιση εξαιρέσεων.

Το δεύτερο μέρος του μαθήματος επικεντρώνεται στη μικροαρχιτεκτονική πλευρά της εκτέλεσης εντολών, αξιοποιώντας τον προσομοιωτή Ripes. Οι φοιτητές/φοιτήτριες έχουν την ευκαιρία να παρατηρήσουν βήμα-βήμα τη ροή εντολών μέσα από τα στάδια ενός επεξεργαστή (fetch, decode, execute, memory, writeback) και να συγκρίνουν υλοποιήσεις επεξεργαστών με και χωρίς διοχέτευση (pipeline). Μέσα από ασκήσεις που συνδυάζουν ανάλυση εξαρτήσεων δεδομένων και αναδιάταξη εντολών, οι φοιτητές κατανοούν τις τεχνικές βελτιστοποίησης απόδοσης και τον ρόλο της σχεδίασης του υλικού στη συνολική ταχύτητα εκτέλεσης.

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

Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές και φοιτήτριες θα είναι σε θέση να:

  1. Αναπτύσσουν, αποσφαλματώνουν και εκτελούν προγράμματα σε συμβολική γλώσσα RISC-V χρησιμοποιώντας τον προσομοιωτή RARS.
  2. Εφαρμόζουν βασικές και σύνθετες αριθμητικές και λογικές εντολές του συνόλου εντολών RISC-V, κατανοώντας τις έννοιες του κρατουμένου, της υπερχείλισης και της εσωτερικής αναπαράστασης δεδομένων.
  3. Διαχειρίζονται τη στοίβα και το σωρό για την υλοποίηση διαδικασιών και δυναμικών δομών δεδομένων, εφαρμόζοντας τις συμβάσεις κλήσεων της αρχιτεκτονικής RISC-V.
  4. Κατανοούν και διαχειρίζονται εξαιρέσεις κατά την εκτέλεση προγραμμάτων, αξιοποιώντας την υποστήριξη της αρχιτεκτονικής.
  5. Παρατηρούν και αναλύουν τη ροή εντολών μέσα σε έναν επεξεργαστή μέσω της οπτικοποίησης που προσφέρει ο Ripes, εντοπίζοντας εξαρτήσεις και εφαρμόζοντας τεχνικές βελτιστοποίησης.
  6. Συγκρίνουν διαφορετικές μικροαρχιτεκτονικές υλοποιήσεις επεξεργαστών (σχεδίαση ενός κύκλου ρολογιού και σχεδίαση με διοχέτευση), αναγνωρίζοντας τις επιπτώσεις στη συνολική απόδοση των προγραμμάτων.
Μετάβαση στο περιεχόμενο