Του Παναγιώτη Παπάζογλου, Αναπληρωτή Καθηγητή στο Τμήμα Ψηφιακών Τεχνών και Κινηματογράφου του ΕΚΠΑ, Διευθυντή του Ερευνητικού Εργαστηρίου Διαδραστικών Ψηφιακών Συστημάτων και αναπληρωτή εκπροσώπου του ΕΚΠΑ στην ΕΕΛΛΑΚ
Η αρχιτεκτονική μικροεπεξεργαστών και μικροϋπολογιστών είναι βασικό αντικείμενο της επιστήμης και της μηχανικής υπολογιστών, ιδιαίτερα στην τριτοβάθμια εκπαίδευση. Αξίζει όμως να γίνει κατανοητή και από όσους εκπαιδεύονται σε συναφή πεδία που αγγίζουν τα ψηφιακά συστήματα. Στα περισσότερα προγράμματα σπουδών χρησιμοποιούνται αποκλειστικά προσομοιωτές λογισμικού, οι οποίοι κρατούν τους εκπαιδευόμενους μακριά από το επίπεδο του υλικού και δεν τους επιτρέπουν να εμπλακούν στη σχεδίαση της αρχιτεκτονικής και των εντολών.
Το HOMSDK (Hardware-Oriented Microprocessor Simulator Development Kit) είναι ένας ανοιχτός, χαμηλού κόστους, plug-n-play υλικοκεντρικός προσομοιωτής, βασισμένος στην πλατφόρμα Arduino. Με αυτόν, οι εκπαιδευόμενοι μπορούν να σχεδιάσουν τον δικό τους πλήρως λειτουργικό πειραματικό μικροϋπολογιστή ή μικροεπεξεργαστή, χρησιμοποιώντας πανομοιότυπες επαναπρογραμματιζόμενες μονάδες.
Γιατί χρειάζεται μια νέα προσέγγιση
Παρά την ευελιξία τους, οι προσομοιωτές λογισμικού κρύβουν το υλικό και τον τρόπο με τον οποίο αυτό εκτελεί τις εντολές. Ο εκπαιδευόμενος δυσκολεύεται να κατανοήσει τι συμβαίνει «μέσα» στον επεξεργαστή, πόσο μάλλον να σχεδιάσει μια δική του πειραματική αρχιτεκτονική.
Τις δεκαετίες του '70 και του '80 χρησιμοποιούνταν στα πανεπιστήμια ειδικές πλατφόρμες υλικού με πραγματικό μικροεπεξεργαστή, όπως ο Z80. Χαρακτηριστικό παράδειγμα είναι ο MPF-I (1981), όπου οι εντολές Assembly εισάγονταν αποκλειστικά σε δεκαεξαδική μορφή. Ακόμη και τότε, όμως, οι εκπαιδευόμενοι δεν είχαν καμία εικόνα της εσωτερικής αρχιτεκτονικής ή της εκτέλεσης των εντολών.

Σήμερα κυριαρχούν οι προσομοιωτές λογισμικού [1–3], ενώ υλικοκεντρικά εκπαιδευτικά εργαλεία για τη μελέτη της εσωτερικής αρχιτεκτονικής ουσιαστικά δεν υπάρχουν.
Η τεχνολογία FPGA (Field Programmable Gate Array) επιτρέπει τη σχεδίαση ψηφιακών κυκλωμάτων μέσω γλωσσών περιγραφής υλικού (HDL) και προσφέρει σημαντικά πλεονεκτήματα: προσαρμοσμένη αρχιτεκτονική στο τσιπ, παράλληλη υλοποίηση μπλοκ υλικού, υψηλή ρυθμοαπόδοση και δυναμική προσαρμογή. Χρησιμοποιείται και στη διδασκαλία μικροεπεξεργαστών [4, 5], όμως απαιτεί ισχυρό γνωστικό υπόβαθρο και δεν επιτρέπει την άμεση προσέγγιση του εσωτερικού υλικού, γεγονός που την καθιστά λιγότερο κατάλληλη για τους περισσότερους εκπαιδευόμενους.
Δέκα χρόνια έρευνας μέχρι το HOMSDK
Το HOMSDK είναι αποτέλεσμα έρευνας και πειραματισμών που ξεκίνησαν το 2015. Ο πρώτος πειραματισμός [6] ανέδειξε τη βασική ιδέα μιας αντικειμενοστραφούς προσέγγισης, αλλά το σύστημα ήταν ακόμη ανώριμο, πολύπλοκο και όχι έτοιμο για την τάξη. Ακολούθησαν βελτιώσεις [7] και στη συνέχεια μια πρωτότυπη υβριδική πλατφόρμα προσομοίωσης [8], βασισμένη σε ειδικά σχεδιασμένα PCB με τεχνολογία SMD. Η πλατφόρμα αυτή είχε όμως περιορισμούς: πολυπλοκότητα, υψηλό κόστος, τεχνολογική ανομοιογένεια και δύσχρηστο λογισμικό λειτουργίας.
Καθώς το ερώτημα για την αντικατάσταση των προσομοιωτών λογισμικού από υβριδικά εργαλεία παρέμενε ανοιχτό [9], οι πειραματισμοί οδήγησαν σε έναν πλήρως λειτουργικό υλικοκεντρικό προσομοιωτή, τον HOMS [10]. Η αναπαραγωγή του ήταν ωστόσο ακόμη δύσκολη, λόγω των καλωδιώσεων και της ανομοιογένειας των μονάδων που συνέθεταν το μοντέλο του μικροεπεξεργαστή.
Με ξεκάθαρη πλέον εικόνα για τη δομή του προσομοιωτή, υλοποιήθηκε τελικά μια χαμηλού κόστους plug-n-play έκδοση, έτοιμη για την τάξη και τους εκπαιδευτές, που λύνει όλα τα παραπάνω προβλήματα.
Πώς λειτουργεί
Ο εκπαιδευόμενος επιλέγει ελεύθερα «τουβλάκια», δηλαδή τις μονάδες του πειραματικού μικροεπεξεργαστή που θέλει να υλοποιήσει, και τα συνδέει όπως επιθυμεί. Κάθε τουβλάκι προγραμματίζεται ώστε να λειτουργεί ως καταχωρητής, μονάδα ελέγχου, μνήμη κ.ο.κ. Επιπλέον, ο εκπαιδευόμενος ή ο σχεδιαστής δημιουργεί τη δική του γλώσσα Assembly και καλεί τον τελικό χρήστη να «λειτουργήσει» τον νέο μικροεπεξεργαστή.
Στην παρακάτω εικόνα φαίνονται οκτώ μονάδες τοποθετημένες σε ειδικά motherboard, που σχηματίζουν την εσωτερική αρχιτεκτονική ενός πειραματικού μικροεπεξεργαστή. Οι μονάδες μπορούν να συνδεθούν και απευθείας πάνω στο γραφείο, χωρίς motherboard.

Τα βασικά χαρακτηριστικά του HOMSDK
Το HOMSDK είναι ένα πλήρως λειτουργικό πρωτότυπο με χαρακτηριστικά που το ξεχωρίζουν από παρεμφερή εργαλεία:
- Προσαρμόσιμη αρχιτεκτονική: μπορεί να χρησιμοποιηθεί οποιοσδήποτε αριθμός μονάδων για να χτιστεί η επιθυμητή αρχιτεκτονική μικροϋπολογιστή ή μικροεπεξεργαστή.
- Επαναχρησιμοποίηση μονάδων: όλες οι μονάδες βασίζονται στο ίδιο τουβλάκι (Arduino Nano). Ένα μοντέλο μπορεί, για παράδειγμα, να αποτελείται από 8 πανομοιότυπα τουβλάκια, και το ενσωματωμένο λογισμικό καθορίζει τη λειτουργία του καθενός.
- Προγραμματιζόμενη λειτουργία: ανάλογα με το λογισμικό του, ένα τουβλάκι λειτουργεί ως καταχωρητής, μονάδα ελέγχου, αριθμητική και λογική μονάδα, μνήμη κ.ά.
- Πειραματική αρχιτεκτονική: με περισσότερα τουβλάκια, μπορεί κανείς να δοκιμάσει μια πρωτότυπη αρχιτεκτονική ή να αναλύσει μια λειτουργία σε μικρότερα βήματα.
- Ανάπτυξη εντολών Assembly: ο χρήστης μπορεί να αναπτύξει οποιαδήποτε εντολή υποστηρίζεται από το ενσωματωμένο λογισμικό της μονάδας ελέγχου.
- Ανάδειξη δεξιοτήτων: οι εκπαιδευόμενοι αναπτύσσουν οι ίδιοι μονάδες και εντολές, χρησιμοποιώντας «μυαλό και αφή» για να φέρουν το υλικό στη ζωή.
- Εκπαιδευτικά σενάρια: οι εκπαιδευτές μπορούν να αναπτύξουν δικές τους εντολές και να χτίσουν διαφορετικά σενάρια μαθημάτων.
- Ολοκληρωμένη προσέγγιση και πολλαπλές οπτικές: ο μικροεπεξεργαστής μελετάται από διαφορετικούς ρόλους. Ο προγραμματιστής γράφει και δοκιμάζει κώδικα Assembly, ο μηχανικός προσαρμόζει το ενσωματωμένο λογισμικό, ο εκπαιδευτής ή εκπαιδευόμενος χτίζει νέα αρχιτεκτονική, ενώ ένας εκπαιδευόμενος μπορεί απλώς να παρακολουθεί την εκτέλεση των εντολών βήμα προς βήμα.
- Έμφαση στο υλικό: το επίπεδο του υλικού, που κρύβεται στα σημερινά εργαλεία, γίνεται ορατό, ώστε η σύνδεση εντολής, λειτουργίας και υλικού να είναι ξεκάθαρη.
- Αυτόνομο εργαλείο: δεν απαιτεί υπολογιστή και αποτελεί φορητή εργαστηριακή μονάδα. Ένα πειραματικό GUI διευκολύνει τον προγραμματισμό κάθε μονάδας.
- Εύκολη αναπαραγωγή: τα εξαρτήματα βρίσκονται εύκολα στην αγορά και οι πανομοιότυπες μονάδες απλοποιούν την κατασκευή.
- Ανοιχτή αρχιτεκτονική: η αντικειμενοστραφής προσέγγιση και το ανοιχτό υλικό επιτρέπουν σε κάθε σχεδιαστή ή μηχανικό να το αναπαράγει.
Άδεια, χρηματοδότηση και διαθεσιμότητα
Το έργο διατίθεται με την άδεια CC BY-NC-SA 4.0 (Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International). Δεν έχει λάβει καμία εξωτερική χρηματοδότηση· το κόστος καλύφθηκε αποκλειστικά από τον δημιουργό του.
Η έκδοση 1 παρουσιάστηκε στο διεθνές συνέδριο IEEE EDUCON 2024 [10], ενώ η βασική ιδέα πίσω από τις υλοποιήσεις έχει δημοσιευθεί σε επιστημονικό περιοδικό [8].
- Όλες οι εκδόσεις, υλικό για λήψη και βίντεο λειτουργίας: panospapazoglou.gr/homs
- Κώδικας και υλικό στο GitHub: github.com/panayotispapazoglou/HOMSDK
- Άλλα έργα ανοιχτού υλικού και λογισμικού του δημιουργού: panospapazoglou.gr
Για τον δημιουργό
Ο Παναγιώτης Παπάζογλου είναι Αναπληρωτής Καθηγητής στο Τμήμα Ψηφιακών Τεχνών και Κινηματογράφου του Εθνικού και Καποδιστριακού Πανεπιστημίου Αθηνών, με γνωστικό αντικείμενο «Αρχιτεκτονικές και Προσομοίωση Υπολογιστικών και Επικοινωνιακών Συστημάτων». Είναι διευθυντής του Ερευνητικού Εργαστηρίου Διαδραστικών Ψηφιακών Συστημάτων και αναπληρωτής εκπρόσωπος του Πανεπιστημίου στην ΕΕΛΛΑΚ. Έχει γράψει το πρώτο βιβλίο στην Ελλάδα για την πλατφόρμα Arduino, καθώς και βιβλία για μικροελεγκτές και μικροεπεξεργαστές, και ασχολείται με τη σχεδίαση υλικού και εφαρμογών με μικροελεγκτές για περισσότερα από 30 χρόνια.
Επικοινωνία: papaz@dcarts.uoa.gr
Αναφορές
- B. Nova, J. C. Ferreira, and A. Araujo, “Tool to support computer architecture teaching and learning,” Proc. 1st Int. Conf. of the Portuguese Society for Engineering Education (CISPEE), IEEE, 2013.
- V. J. Shine and P. K. Sathish, “Teaching computer architecture using simulation tools,” Int. J. Comp. Sci. Inf. Technol., 5, 2014, pp. 1411–1413.
- MARIE (Machine Architecture that is Really Intuitive and Easy), The Essentials of Computer Organization and Architecture (L. Null, J. Lobur). Web-based simulator, MIT license.
- N. L. V. Calazans and F. G. Moraes, “Integrating the teaching of computer organization and architecture with digital hardware design early in undergraduate courses,” IEEE Trans. Educ., 44, 2001, pp. 109–119.
- I. Kastelan, N. Teslic, and M. Temerinac, “Generic processor for unified computer engineering learning platform,” IEEE EDUCON, 2013.
- P. M. Papazoglou, D. A. Karras, “A Hardware Based Novel Educational Methodology for Teaching Microprocessor Architectures Using Object Oriented Approach,” IRECOS, Vol. 10, No. 10, 2015.
- P. Papazoglou, A. Moschos, “OpenHardSim: An Open Source Hardware Based Simulator for Learning Microprocessors,” IEEE EDUCON 2017, Athens, Greece.
- P. M. Papazoglou, “A Hybrid Simulation Platform for Learning Microprocessors,” Computer Applications in Engineering Education, Wiley, 2018, pp. 655–674, doi:10.1002/cae.21921.
- P. Papazoglou, “Replacing Microprocessor Simulators: Developing Hybrid Technology in Modern Education,” Int. Conf. in Education, Research & Development, Burgas, Bulgaria, 2022.
- P. Papazoglou, “Hardware Oriented Microprocessor Simulator,” IEEE EDUCON 2024, Kos, Greece.
