ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Εγκατάσταση και δοκιμή λειτουργίας περιβάλλοντος ανάπτυξης εφαρμογών στον πολυπύρηνο επεξεργαστή IBM Cell BE

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Εγκατάσταση και δοκιμή λειτουργίας περιβάλλοντος ανάπτυξης εφαρμογών στον πολυπύρηνο επεξεργαστή IBM Cell BE"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Ηλεκτρονικής & Υπολογιστών Εγκατάσταση και δοκιμή λειτουργίας περιβάλλοντος ανάπτυξης εφαρμογών στον πολυπύρηνο επεξεργαστή IBM Cell BE ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Κωνσταντίνος Μαντζώρος Επιβλέπων:Γεώργιος Χασάπης, Καθηγητής Θεσσαλονίκη, 2008

2 Περιεχόμενα 1 Εισαγωγή 1.1 Η ανάγκη για μια νέα αρχιτεκτονική 1.2 Η δομή της παρούσας εργασίας 2 Ο επεξεργαστής Cell BE 2.1 Τα προβλήματα των συμβατικών επεξεργαστών Το πρόβλημα ισχύος Το πρόβλημα μνήμης Το πρόβλημα συχνότητας 2.2 Η αρχιτεκτονική CBEA Τα στοιχεία της αρχιτεκτονικής CBEA Ο επεξεργαστής PPE Οι επεξεργαστές SPEs Ο ελεγκτής ροής μνήμης MFC και η διαχείριση της μνήμης Ο δίαυλος διασύνδεσης στοιχείων ΕΙΒ Χαρακτηριστικά της αρχιτεκτονικής CBEA 2.3 Η υλοποίηση του Cell BE Τεχνικά χαρακτηριστικά και λειτουργία του Cell Επιδόσεις του Cell 3 Τεχνικές προγραμματισμού 3.1 Κατάτμηση εφαρμογών 3.2 Μοντέλα προγραμματισμού στον Cell BE Το μοντέλο αποσυμφόρησης συναρτήσεων Το μοντέλο επέκτασης συσκευών Το μοντέλο επιτάχυνσης υπολογισμών Το μοντέλο συνεχούς ροής δεδομένων Το μοντέλο πολυεπεξεργασίας κοινής μνήμης 2

3 3.2.6 Το μοντέλο ασύμμετρης εκτέλεσης νηματίων Το μοντέλο νηματίων χρήστη 3.3 Βελτιστοποίηση του κώδικα Το σετ εντολών VMX για τον PPE Εκτέλεση εντολών στον SPE Βαθμωτά μεγέθη σε SIMD μονάδες και η προτιμητέα θέση Βελτιστοποίηση διακλαδώσεων Κατάτμηση και επικαλύψεις κώδικα 4 Το λογισμικό του Cell 4.1 To Linux λειτουργικό του Cell Χειρισμός σφαλμάτων Διαχείριση νηματίων 4.2 Η πλατφόρμα προγραμματισμού του Cell Ο μεταγλωττιστής GCC Μεταγλωττίζοντας με τον GCC Ο μεταγλωττιστής XL C/C Η επέκταση της γλώσσας C/C Δημιουργία εκτελέσιμων αρχείων Η βιβλιοθήκη libspe Μαθηματικές βιβλιοθήκες SIMD Αποσφαλμάτωση εκτελέσιμων αρχείων Το πλαίσιο εργασίας ALF 5 Ο προσομοιωτής Mambo 5.1 Εκτέλεση εφαρμογών ως προς το λειτουργικό Λειτουργία εκτέλεσης εφαρμογών μέσω Linux Λειτουργία αυτόνομης εκτέλεσης εφαρμογών 5.2 Αλληλεπιδρώντας με τον προσομοιωτή Το γραφικό περιβάλλον εργασίας Έλεγχος απόδοσης 5.3 Η διεργασία Callthru 3

4 6 Προγραμματίζοντας για τον Cell 6.1 Εντολές SIMD Εντολές SIMD στον PPE Εντολές SIMD στους SPEs 6.2 Εντολές MFC Μεταφορές DMA Επικοινωνία μεταξύ PPE και SPE 6.3 Μια εφαρμογή για τον Cell Πολλαπλασιασμός πινάκων στον Cell Ανάλυση του αλγόριθμου Λεπτομέρειες του κώδικα 7 Αποσφαλμάτωση και έλεγχος απόδοσης 7.1 Αποσφαλμάτωση προγράμματος 7.2 Έλεγχος απόδοσης Σημεία παρουσίασης της απόδοσης Συμπεράσματα και προτάσεις 8 Αποτελέσματα και προοπτικές Α Ο πηγαίος κώδικας Α.1 Ο κώδικας για τον PPE A.1.1 Makefile A.1.2 matrix_ppc.c A.2 Ο κώδικας για τον SPE A.2.1 Makefile A.2.2 mat_scalar.c Β Τα εγχειρίδια εγκατάστασης και χρήσης Βιβλιογραφία 4

5 Κεφάλαιο 1 Εισαγωγή 1.1 Η ανάγκη για μια νέα αρχιτεκτονική Κατά τη διάρκεια των τελευταίων δεκαετιών η επιθυμία για ταχύτερη και αποτελεσματικότερη επικοινωνία, η ανάπτυξη των επιστημών και η απαίτηση για ισχυρότερα υπολογιστικά εργαλεία στη διάθεσή τους, η εξέλιξη των διάφορων μορφών ψυχαγωγίας και η ανάγκη για άμεση πρόσβαση στη γνώση, οδήγησαν στην εξάπλωση των υπολογιστών σε κάθε τομέα της κοινωνικής ή προσωπικής μας ζωής. Οι εφαρμογές που εκτελούν κάθε στιγμή διαχειρίζονται τεράστιες ποσότητες ψηφιακών δεδομένων, είτε αυτά αποτελούν βάσεις δεδομένων με τραπεζικούς λογαριασμούς είτε αρχεία βίντεο και ήχου αποκλειστικά για την προσωπική μας διασκέδαση. Και ενώ για το μέσο χρήστη οι σύγχρονοι υπολογιστές μπορούν να αποτελούν ένα εργαλείο αρκετά ικανοποιητικό, υπάρχουν απαιτητικές εφαρμογές και δύσκολα επιστημονικά προβλήματα που απαιτούν ιδιαίτερα πολύπλοκα υπολογιστικά μοντέλα, στα οποία η ταχύτητα αναδεικνύεται καθοριστικός παράγοντας. Η τεχνολογία των σύγχρονων υπολογιστών έχει βασιστεί σε ιδέες προηγούμενων δεκαετιών, που με σύγχρονες τεχνικές έχουν καταφέρει να φτάσουν στα όριά τους και μόνο έτσι παραμένουν ακόμα ανταγωνιστικές. Οι συμβατικοί επεξεργαστές που ακολουθούν την καθιερωμένη αρχιτεκτονική, επιχειρούν μέσα από την αύξηση της κλίμακας ολοκλήρωσης και τη χρήση βελτιωμένων υλικών να αυξήσουν την υπολογιστική τους ισχύ, αυτό όμως γίνεται ολοένα και δυσκολότερο καθώς η φυσική των ηλεκτρονικών θέτει συγκεκριμένα και ανυπέρβλητα όρια. Μία ενδιαφέρουσα εναλλακτική είναι η παρουσίαση μιας διαφορετικής αρχιτεκτονικής επεξεργαστών, σχεδιασμένη να αντιμετωπίζει ένα προς ένα τα προβλήματα των σύγχρονων επεξεργαστών. Η αρχιτεκτονική αυτή θα μπορούσε να αποτελέσει τη βάση μιας νέας 5

6 γενιάς υπολογιστών, προσφέροντας ένα αναθεωρημένο μοντέλο ανάπτυξης υλικού και λογισμικού προσανατολισμένου στις ανάγκες του σύγχρονου κόσμου. Τη θέση αυτή φιλοδοξεί να καλύψει η αρχιτεκτονική Cell BE, που κάνει τα πρώτα της βήματα γνωριμίας με το πλατύ κοινό των προγραμματιστών και των επιστημόνων, ενώ οι πρώτες υλοποιήσεις έχουν ήδη αρχίσει να παρουσιάζονται προς τους καταναλωτές. 1.2 Η δομή της παρούσας εργασίας Η παρούσα εργασία επιχειρεί να παρουσιάσει τα κύρια χαρακτηριστικά της αρχιτεκτονικής Cell BE και της πρώτης υλοποίησης της, του επεξεργαστή Cell, καθώς και να προσφέρει μια πρώτη εξοικείωση με την πλατφόρμα προγραμματισμού και τις τεχνικές προγραμματισμού του. Στο κεφάλαιο 2 γίνεται μια αναφορά στα προβλήματα των συμβατικών επεξεργαστών και στον τρόπο με τον οποίο αντιμετωπίζονται, κάνοντας μια συνοπτική περιγραφή των κύριων στοιχείων της αρχιτεκτονικής και ιδιαίτερα των χαρακτηριστικών του επεξεργαστή Cell. Στο κεφάλαιο 3 παρουσιάζεται το μοντέλο προγραμματισμού των εφαρμογών που προορίζονται για τον Cell, ενώ στο κεφάλαιο 4 γίνεται λόγος για το λειτουργικό πρόγραμμα που χρησιμοποιεί ο επεξεργαστής καθώς και για την πλατφόρμα ανάπτυξης λογισμικού που υποστηρίζει. Το κεφάλαιο 5 κάνει μια συνοπτική παρουσίαση του προσομοιωτή Mambo, ενός χρήσιμου εργαλείου στα χέρια των προγραμματιστών που ενδιαφέρονται να αναπτύξουν εφαρμογές για τον Cell. Στο κεφάλαιο 6, αφού έχουμε αποκτήσει ενδελεχή γνώση των συστατικών μερών του επεξεργαστή και του τρόπου λειτουργίας και επικοινωνίας τους, καθώς και του λογισμικού που χρησιμοποιεί, επιχειρείται η παρουσίαση μιας εφαρμογής πολλαπλασιασμού πινάκων με τέτοιο τρόπο ώστε να παρουσιάζει τη βέλτιστη δυνατή εκτέλεση από τον επεξεργαστή μας. Στο κεφάλαιο 7 γίνεται μια αποτίμηση της προσπάθειας αυτής, με τη μελέτη της απόδοσης και την παρουσίαση των γενικών αρχών που τη διέπουν. Στο παράρτημα Α δίνεται ο πλήρης κώδικας του προγράμματος, που ο αναγνώστης μπορεί να μελετήσει και να επεξεργαστεί, και στο παράρτημα Β μια εκτενής αναφορά 6

7 στα εγχειρίδια της κατασκευάστριας εταιρείας από τα οποία μπορούν να αντληθούν πληροφορίες για τα χαρακτηριστικά του Cell και λεπτομέρειες σχετικά με τις εντολές που υποστηρίζει. 7

8 Κεφάλαιο 2 Ο επεξεργαστής Cell BE Ο επεξεργαστής Cell Broadband Engine (CBE, συχνά αναφερόμενος ως Cell ) είναι η πρώτη υλοποίηση της αρχιτεκτονικής CBEA (Cell Broadband Engine Architecture), αποτέλεσμα της πενταετούς συνεργασίας μεταξύ των εταιρειών Sony, Toshiba και IBM που ξεκίνησε το Στόχος της αρχιτεκτονικής CBEA είναι να δώσει μια επιτυχημένη απάντηση στα προβλήματα που αντιμετωπίζουν οι σημερινές συμβατικές αρχιτεκτονικές επεξεργαστών και να αποτελέσει το υπόβαθρο για την ανάπτυξη των υπολογιστών του μέλλοντος. 2.1 Τα προβλήματα των συμβατικών επεξεργαστών Η βελτιστοποίηση των τεχνικών ολοκλήρωσης και η χρησιμοποίηση υλικών με καλύτερες ηλεκτρικές ιδιότητες έδωσε τη δυνατότητα στις καθιερωμένες αρχιτεκτονικές να ανταποκριθούν με ικανοποιητική επιτυχία στις έως σήμερα υπολογιστικές ανάγκες. Όμως, το πολυμεσικό περιεχόμενο που διαχειρίζεται ο μέσος χρήστης, με την ανάγκη για επεξεργασία βίντεο και ήχου σε πραγματικό χρόνο, ολοένα και αυξάνεται. Ακόμα, όλο και περισσότερες επιστημονικές εφαρμογές αναπτύσσονται, με κύριο χαρακτηριστικό τους τη διαχείριση και επεξεργασία μεγάλου πλήθους δεδομένων. Μπροστά σε αυτές τις προκλήσεις οι συμβατικές αρχιτεκτονικές επεξεργαστών έχουν δείξει σημάδια κορεσμού και αναζητείται μια διαφορετική προσέγγιση που να αντιμετωπίζει τα προβλήματα ισχύος, μνήμης και συχνότητας των σύγχρονων επεξεργαστών [1]. 8

9 2.1.1 Το πρόβλημα ισχύος Όσο οι μέθοδοι ολοκλήρωσης εξελίσσονται και κατασκευάζονται ολοκληρωμένα κυκλώματα μικρότερης κλίμακας, τα φαινόμενα ρευμάτων διαρροής που δημιουργούνται κάνουν πιο έντονη την παρουσία τους. Το αποτέλεσμα αυτού του κβαντικού φαινόμενου εκδηλώνεται μακροσκοπικά με τον περιορισμό της απόδοσης του επεξεργαστή λόγω απώλειας ισχύος στα τρανζίστορ και τους μεταξύ τους συνδέσμους. Η χρήση υλικών με υψηλή διηλεκτρική σταθερά και τα αυξημένα επίπεδα προσμίξεων στο υλικό κατασκευής των ημιαγωγών περιορίζει τις διαστάσεις του προβλήματος. Ωστόσο, ένας ικανοποιητικός τρόπος για να αυξηθεί η απόδοση ως προς την ισχύ είναι η χρήση ενός μη ομογενούς πολυεπεξεργαστή με τμήματα προσανατολισμένα στη διαχείριση του λειτουργικού συστήματος και του κώδικα ελέγχου, και επεξεργαστές προσανατολισμένους στην εκτέλεση εφαρμογών υψηλών υπολογιστικών απαιτήσεων, ώστε να επιτυγχάνεται η βέλτιστη διαχείριση ενέργειας Το πρόβλημα μνήμης Η ταχύτητα των επεξεργαστών ακολουθεί εκθετική αύξηση, με αποτέλεσμα να διπλασιάζεται κάθε 2 χρόνια περίπου. Ταυτόχρονα και η ταχύτητα λειτουργίας της μνήμης ακολουθεί εκθετική αύξηση, με ρυθμό όμως πολύ μικρότερο από αυτό των επεξεργαστών [2]. Αυτό έχει σαν αποτέλεσμα στους σύγχρονους επεξεργαστές που εργάζονται σε ταχύτητα πολλών GHz, ακόμα και σε αυτούς με ολοκληρωμένους ελεγκτές μνήμης, να δημιουργείται ένα χάσμα στο χρόνο απόκρισης της μνήμης (latency ή response time) που ανέρχεται σε περισσότερους από 1000 κύκλους μηχανής. Έτσι, η εκτέλεση των εφαρμογών καθυστερεί σημαντικά, ιδιαίτερα σε περιπτώσεις εφαρμογών που απαιτούν συχνές προσπελάσεις στην κύρια μνήμη για τη μεταφορά δεδομένων ή σε περιπτώσεις συχνών αστοχιών στην κρυφή μνήμη (cache). Οι κυριότεροι παράγοντες που σχετίζονται με το πρόβλημα της μνήμης, εκτός από την τεχνολογία κατασκευής, είναι το εύρος του διαύλου επικοινωνία μεταξύ επεξεργαστή και μνήμης, το μέγεθος της κρυφής μνήμης, και ο τρόπος προγραμματισμού των εφαρμογών ώστε να βελτιστοποιείται η απόδοση της χρήσης της κρυφής μνήμης. 9

10 2.1.3 Το πρόβλημα συχνότητας Η συχνότητα χρονισμού του ρολογιού των συμβατικών επεξεργαστών δεν είναι δυνατό να αυξάνεται επ αόριστο, αφού σε υψηλότερες συχνότητες η απώλεια ισχύος και η ανάγκη για απαγωγή της παραγόμενης θερμότητας είναι απαγορευτικές. Για να ξεπεραστεί αυτό το όριο επιστρατεύονται τεχνικές ταυτόχρονης εκτέλεσης των εντολών που εκμεταλλεύονται τα διαφορετικά στάδια εκτέλεσης των εντολών (instruction pipelines). Ο διαφορετικός χρόνος εκτέλεσης της κάθε εντολής, οι εξαρτήσεις από τη μνήμη και τις μονάδες εισόδου/εξόδου, καθώς και διακλαδώσεις κατά τη διάρκεια εκτέλεσης ενός κώδικα είναι μερικοί από τους παράγοντες που δυσχεραίνουν την ικανοποιητική εκμετάλλευση αυτής μεθόδου. 2.2 Η αρχιτεκτονική CBEA Ο επεξεργαστής Cell αποτελείται από εννέα επεξεργαστές πάνω στο ίδιο chip, που είναι όλοι συνδεδεμένοι μεταξύ τους και με τις εξωτερικές συσκευές μέσω ενός διαύλου μεγάλου εύρους, ο οποίος συνδέεται επίσης με την κύρια μνήμη. Παρόλα αυτά, ο Cell δεν προκύπτει από την απλή αντιγραφή ενός συμβατικού επεξεργαστή πολλές φορές πάνω στο ίδιο chip, αλλά η ετερογενής αρχιτεκτονική του προσφέρει ένα συνδυασμό λειτουργικών μονάδων προσαρμοσμένων για διαφορετικές λειτουργίες [3] Τα στοιχεία της αρχιτεκτονικής CBEA Η αρχιτεκτονική CBEA επεκτείνει την αρχιτεκτονική Power (που έχει αναπτύξει στο παρελθόν η εταιρεία IBM) με τη χρήση οχτώ βοηθητικών επεξεργαστών ( συνεργαστικοί επεξεργαστές ) και με μηχανισμούς συγχρονισμού και απευθείας πρόσβασης στη μνήμη (direct memory access DMA) να επικοινωνούν με αυτούς. Συνοπτικά, περιλαμβάνει έναν dual-threaded επεξεργαστή στα 64 bit, συμβατό με την αρχιτεκτονική Power (PowerPC Processor Element PPE), και οκτώ καινοτόμους συνεργαστικούς επεξεργαστές (Synergistic Processor Elements SPEs). Στο ίδιο chip βρίσκεται ενσωματωμένος ένας ελεγκτής μνήμης και ένας ελεγκτής 10

11 μονάδων εισόδου/εξόδου. Τα προηγούμενα στοιχεία επικοινωνούν μεταξύ τους με τη χρήση ενός διαύλου διασύνδεσης (Element Interconnect Bus EIB). Εικόνα 2-1. Μπλοκ διάγραμμα της αρχιτεκτονικής Cell BEA [1] Ο επεξεργαστής PPE Ο επεξεργαστής PPE αποτελεί τον κύριο επεξεργαστή, και είναι ένας 64-bit πολυνηματικός (multithreaded) επεξεργαστής με ικανότητα ταυτόχρονης διαχείρισης δύο νηματίων (dual-threaded), συμβατός με την αρχιτεκτονική PowerPC που χρησιμοποιεί το σετ εντολών RISC. Ο PPE είναι υπεύθυνος για τη διαχείριση του λειτουργικού συστήματος και των πόρων του συστήματος, και είναι πρωτίστως προσανατολισμένος στην επεξεργασία των σημάτων και μεθόδων ελέγχου, συμπεριλαμβανομένης της ανάθεσης και διαχείρισης των threads που εκτελούνται στους SPEs. Στον PPE ανατίθεται η εκτέλεση εφαρμογών σύμφωνων ως προς τη συμβατική αρχιτεκτονική PowerPC, ενώ η βέλτιστη απόδοσή του παρατηρείται κατά την εκτέλεση κώδικα ελέγχου του συστήματος. Επιπλέον του σετ εντολών της αρχιτεκτονικής PowerPC, υποστηρίζει το σετ εντολών VMX (Vector/SIMD Multimedia Extension) προκειμένου να επιταχύνει την εκτέλεση πολυμεσικών εφαρμογών χρησιμοποιώντας μονάδες εκτέλεσης SIMD. 11

12 Εικόνα 2-2. Μπλοκ διάγραμμα του επεξεργαστή PPE [1] Τον PPE συμπληρώνει ένα υποσύστημα μνήμης, που περιλαμβάνει ξεχωριστά τμήματα μνήμης cache 1 ου επιπέδου για δεδομένα και εντολές, χωρητικότητας 32 Kbytes, και ένα ενοποιημένο τμήμα μνήμης cache 2 ου επιπέδου, χωρητικότητας 512 Kbytes Οι επεξεργαστές SPEs Οι οκτώ συνεργαστικοί επεξεργαστές SPEs αποτελούν τον κύριο παράγοντα της αυξημένης υπολογιστικής ικανότητας του Cell. Η επιλογή της ονομασίας synergistic καταδεικνύει τη σχέση αλληλεξάρτησης μεταξύ αυτών και του PPE. Ο PPE διαχειρίζεται τον έλεγχο όλου του συστήματος και βασίζεται σε αυτούς για τον κορμό της εκτέλεσης των εφαρμογών. Οι SPEs είναι κατάλληλα σχεδιασμένοι για τη εκτέλεση λειτουργιών, που ανατίθενται σε αυτούς από τον PPE, και χαρακτηρίζονται από μεγάλο όγκο δεδομένων. Καθένας αποτελείται από ένα νέο πυρήνα RISC (Synergistic Processor Unit SPU), σχεδιασμένο να επιταχύνει την εκτέλεση ενός μεγάλου φάσματος εφαρμογών μέσω της υποστήριξης ενός ειδικού σετ εντολών SIMD, και έναν ελεγκτή ροής μνήμης (Memory Flow Controller MFC) που αναλαμβάνει την απαιτούμενη ροή δεδομένων από και προς την κύρια μνήμη. 12

13 Η SPU μπορεί να ανακτά δεδομένα και εντολές μόνο από την τοπική μνήμη χωρητικότητας 256 Kbytes καθώς και από το ενιαίο αρχείο καταχωρητών, αλλά δεν μπορεί να προσπελάσει άμεσα την κύρια μνήμη του συστήματος. Το ρόλο αυτό αναλαμβάνει ο MFC, που με ασύγχρονες DMA μεταφορές δεδομένων και εντολών εξυπηρετεί τη ροή δεδομένων μεταξύ κύριας και τοπικής μνήμης. Εικόνα 2-3. Μπλοκ διάγραμμα του επεξεργαστή SPE [1] Η τοπική μνήμη εγγυάται σε κάθε SPU τη διαθεσιμότητα των απαιτούμενων δεδομένων και ελαχιστοποιεί το χρόνο απόκρισης, αφού κάθε εντολή ανάκτησης/αποθήκευσης αντιστοιχεί σε πραγματική διεύθυνση μνήμης χωρίς να απαιτείται μετάφραση προς σελιδοποιημένη μνήμη Ο ελεγκτής ροής μνήμης MFC και η διαχείριση της μνήμης Για να προσπελάσει καθολικά δεδομένα μεταξύ νηματίων που εκτελούνται στον PPE και στους SPEs, κάθε SPE περιλαμβάνει έναν MFC που αναλαμβάνει τη μεταφορά δεδομένων από την τοπική μνήμη στη μνήμη του συστήματος και αντίστροφα, με τη χρήση εντολών DMA. Το μέγεθος των αρχείων που μεταφέρονται μπορεί να ποικίλλει από 1 byte ως και τμήματα των 16 Kbytes. 13

14 Μία αίτηση για μεταφορά από τον MFC καταδεικνύει την τοποθεσία της τοπικής διεύθυνσης ως φυσική διεύθυνση στην τοπική μνήμη, και την διεύθυνση της μνήμης του συστήματος ως μια εικονική διεύθυνση της αρχιτεκτονικής Power, που η λογική διαχείρισης μνήμης του MFC αναλαμβάνει να μεταφράσει σε πραγματική χρησιμοποιώντας τους κατάλληλους πίνακες σελιδοποίησης. Η χρησιμοποίηση του ίδιου χώρου εικονικών διευθύνσεων για να χαρακτηρίσουν τμήματα της μνήμης του συστήματος, ανεξάρτητα από το είδος του επεξεργαστή, διευκολύνει το διαμοιρασμό των δεδομένων μεταξύ νηματίων που εκτελούνται στον PPE ή σε SPEs. Μια εφαρμογή που εκτελείται στον Cell, μπορεί να περάσει έναν δείκτη από κώδικα που εκτελείται στον PPE σε κώδικα που εκτελείται σε SPE και να χρησιμοποιηθεί ως αφετηρία ή προορισμός μια αίτησης μεταφοράς από τον MFC. Επιπλέον, η συνολική μετάφραση μνήμης διασφαλίζει την προστασία των δεδομένων μεταξύ διαδικασιών, αφού ένα νημάτιο μπορεί να προσπελάσει μόνο το χώρο της μνήμης συστήματος που καθορίζεται από το χώρο εικονικών διευθύνσεων που του αντιστοιχούν. Παρόλο που κάθε SPE μπορεί να εργάζεται ανεξάρτητα από τους υπόλοιπους επεξεργαστές του συστήματος και να υπάρχει κοινή αναφορά και διαμοιρασμός των δεδομένων της κύριας μνήμης, μόνο ο PPE έχει αυξημένες αρμοδιότητες όπως διαχείριση των σφαλμάτων σελιδοποίησης και αλλαγή της μετάφρασης μνήμης. Αυτό επιτυγχάνεται με την προώθηση όλων των εξαιρέσεων στον PPE μέσω του ελεγκτή διακοπών που ενσωματώνει το chip Ο δίαυλος διασύνδεσης στοιχείων EIB Ο PPE και οι SPEs επικοινωνούν μεταξύ τους αλλά και με την κύρια μνήμη και με τις συσκευές εισόδου/εξόδου μέσω του διαύλου διασύνδεσης ΕΙΒ. Ο ΕΙΒ αποτελείται από μια δομή τεσσάρων δακτυλίων που κινούνται αντίθετα κατά ζεύγη, για τη μεταφορά των δεδομένων, και ένα δίκτυο τοπολογίας star για τις εντολές-αιτήσεις μεταφοράς δεδομένων από και προς ένα άλλο στοιχείο του διαύλου. 14

15 Εικόνα 2-4. Ο δίαυλος διασύνδεσης στοιχείων ΕΙΒ [4] Επιπλέον ο δίαυλος ΕΙΒ έχει ακόμα δύο εξωτερικές επαφές, με τον ελεγκτή διεπαφής μνήμης (Memory Interface Controller MIC) που ελέγχει την επικοινωνία μεταξύ ΕΙΒ και κύριας μνήμης, και με τον ελεγκτή επικοινωνίας με τις συσκευές εισόδου/εξόδου (Broadband Engine Interface Controller BIF) Χαρακτηριστικά της αρχιτεκτονικής CBEA Η αρχιτεκτονική CBEA ενσωματώνει πλήθος καινοτόμων χαρακτηριστικών και τεχνολογιών, μερικά εκ των οποίων είναι [5] : Συμβατότητα με την παραδοσιακή αρχιτεκτονική Power, ώστε να δώσει τη δυνατότητα μιας άμεσης επαφής στους προγραμματιστές, μέσω προσομοίωσης και υποστήριξης διαφορετικών λειτουργικών συστημάτων. Υποστήριξη της αρχιτεκτονικής SIMD, τόσο μέσω των εντολών επεξεργασίας διανυσμάτων του PPE όσο και από το σετ εντολών των SPEs, ως μέσο βελτίωσης της απόδοσης ως προς την ισχύ σε εφαρμογές παιχνιδιών, πολυμέσων και επιστημονικών υπολογισμών. Βέλτιστη απόδοση του PPE ως προς την ισχύ και την επιφάνεια-μέγεθος. Η σχεδίαση των SPEs με την τοπική μνήμη, το εκτεταμένο και ενιαίο αρχείο καταχωρητών και η μεταφορά δεδομένων με τη χρήση DMA, βελτιώνουν το εύρος της μνήμης και οδηγούν σε ένα νέο επίπεδο απόδοσης ισχύος και αποτελεσματικότητας. 15

16 Εξαιτίας του μεγάλου εύρους του διαύλου διασύνδεσης και των διεπαφών μνήμης, επιτυγχάνονται αυξημένες επιδόσεις σε εφαρμογές με υψηλές απαιτήσεις σε εύρος μνήμης, ενώ διευκολύνεται η αλληλεπίδραση μεταξύ των επεξεργαστικών μονάδων. Παραμετροποιήσιμες διεπαφές εισόδου/εξόδου, ώστε να υπάρχει η δυνατότητα υποστήριξης πλήθους διαφορετικών υποσυστημάτων χωρίς την ανάγκη για παρεμβολή διακοπτών ή συστημάτων προσαρμογής. Αρθρωτή υλοποίηση που μεγιστοποιεί τις επιδόσεις ανά watt καταναλισκόμενης ισχύος και ανά τετραγωνικό χιλιοστό πυριτίου, και διευκολύνει την ανάπτυξη νέων προϊόντων. Εκτεταμένη υποστήριξη στη διαχείριση ισχύος και θερμότητας του chip. 2.3 Η υλοποίηση του Cell BE Ο Cell BE αποτελεί την πρώτη υλοποίηση της αρχιτεκτονικής CBEA, και σύμφωνα με αυτή περιλαμβάνει έναν επεξεργαστή PowerPC στον οποίο προσαρτώνται οκτώ επεξεργαστικές μονάδες. Ένας εσωτερικός δίαυλος χρησιμοποιείται για την επικοινωνία όλων των στοιχείων. Εικόνα 2-5. Διάγραμμα του συστήματος Cell Broadband Engine [3] 16

17 2.3.1 Τεχνικά χαρακτηριστικά και λειτουργία του Cell Ο Cell αποτελείται από 241 εκατομμύρια τρανζίστορς, κατασκευασμένα με τη μέθοδο ολοκλήρωσης των 90-nm, πάνω σε ένα πλακίδιο μεγέθους 235 τετραγωνικών χιλιοστών. Εικόνα 2-6. Ο επεξεργαστής Cell BE [5] Η μονάδα επεξεργασίας του PPE (PowerPC Processor Unit - PPU) περιλαμβάνει ένα πλήρες σετ καταχωρητών της 64-bit αρχιτεκτονικής PowerPC, bit καταχωρητές διανυσμάτων, κρυφή μνήμη πρώτου επιπέδου μεγέθους 32 KB για εντολές, κρυφή μνήμη πρώτου επιπέδου μεγέθους 32 KB για δεδομένα, μια μονάδα ελέγχου εντολών, μονάδα ανάκτησης/αποθήκευσης, μονάδα ακεραίων σταθερής υποδιαστολής, μονάδα κινητής υποδιαστολής, μονάδα επεξεργασίας διανυσμάτων, μια μονάδα ελέγχου διακλαδώσεων και μια μονάδα διαχείρισης εικονικής μνήμης. Η PPU υποστηρίζει την ταυτόχρονη εκτέλεση δύο νηματίων (threads) και μπορεί να θεωρηθεί σαν ένας διπλός πολυεπεξεργαστής με διαμοιραζόμενη ροή δεδομένων. 17

18 Αυτή η δομή γίνεται αντιληπτή από το λογισμικό ως δύο ανεξάρτητες επεξεργαστικές μονάδες. Το υποσύστημα μνήμης του PPE διαχειρίζεται αιτήσεις μνήμης από τον PPE και εξωτερικές αιτήσεις προς τον PPE από άλλους επεξεργαστές και συσκευές εισόδου/εξόδου. Περιλαμβάνει μια ενιαία κρυφή μνήμη δευτέρου επιπέδου μεγέθους 512 KB για εντολές και δεδομένα, καταχωρητές ουράς, και μια μονάδα διεπαφής με το δίαυλο ΕΙΒ που ελέγχει τον τρόπο διακίνησης και το ρυθμό μεταφοράς δεδομένων μέσα στον ΕΙΒ. Η μνήμη εμφανίζεται σαν μια γραμμική παράθεση από bytes δεικτοδοτημένα από 0 ως Κάθε ένας από τους SPEs είναι ένας 128-bit επεξεργαστής αρχιτεκτονικής RISC εξειδικευμένος σε εφαρμογές υψηλών επεξεργαστικών απαιτήσεων που διαχειρίζονται μεγάλο όγκο δεδομένων. Αποτελείται από τη μονάδα επεξεργασίας (Synergistic Processor Unit SPU) και τον ελεγκτή ροής μνήμης MFC. Η SPU αναλαμβάνει τον έλεγχο και την εκτέλεση των εντολών. Περιλαμβάνει ένα ενιαίο αρχείο καταχωρητών με 128 καταχωρητές (εύρους 128 bits ο καθένας), ενιαία τοπική μνήμη μεγέθους 256 KB για εντολές και δεδομένα, μονάδα ελέγχου εντολών, μονάδα ανάκτησης/αποθήκευσης, δύο μονάδες σταθερής υποδιαστολής, μια μονάδα κινητής υποδιαστολής και μια διεπαφή καναλιού/dma. Η SPU υλοποιεί ένα νέο σετ εντολών SIMD, την αρχιτεκτονική SPU Instruction Set που είναι συγκεκριμένη για την CBEA. Κάθε SPU αποτελεί μια ανεξάρτητη επεξεργαστική μονάδα με το δικό της μετρητή προγράμματος και είναι προσαρμοσμένη να εκτελεί νημάτια που της ανατίθενται από τον PPE. Η SPU ανακτά εντολές από την τοπική μνήμη και δέχεται ή αποθηκεύει δεδομένα από και προς την τοπική μνήμη. Ως προς την SPU, η τοπική μνήμη λειτουργεί χωρίς μετάφραση. Ο MFC περιέχει έναν ελεγκτή DMA που υποστηρίζει τις DMA μεταφορές. Προγράμματα που εκτελούνται στην SPU, τον PPE, ή σε άλλη SPU, χρησιμοποιούν μεταφορές DMA του MFC για τη μετακίνηση δεδομένων και εντολών μεταξύ της τοπικής μνήμης της SPU και του κύριου αποθηκευτικού χώρου. Κύριος αποθηκευτικός χώρος είναι ο χώρος πραγματικών διευθύνσεων που περιλαμβάνει την κύρια μνήμη, την τοπική μνήμη των άλλων SPUs και καταχωρητές με χαρτογράφηση μνήμης όπως κάποιοι καταχωρητές εισόδου/εξόδου. Ο MFC διασυνδέει την SPU με το δίαυλο EIB, υλοποιεί χαρακτηριστικά δέσμευσης εύρους του διαύλου και 18

19 συγχρονίζει λειτουργίες μεταξύ της SPU και όλων των άλλων επεξεργαστών του συστήματος. Για να υποστηρίξει μεταφορές DMA, ο MFC διατηρεί και επεξεργάζεται λίστεςουρές από εντολές DMA. Αφού μια εντολή DMA έχει εισαχθεί στην ουρά στον MFC, η SPU μπορεί να συνεχίσει να εκτελεί εντολές καθώς ο MFC επεξεργάζεται αυτόνομα και ασύγχρονα την εντολή DMA. Ο MFC μπορεί επίσης αυτόνομα να εκτελέσει μια αλληλουχία από DMA μεταφορές ανταποκρινόμενος σε μια εντολή λίστα-dma. Αυτή η αυτόνομη εκτέλεση επιτρέπει στις μεταφορές DMA να καλύπτουν το πρόβλημα με το χρόνο απόκρισης της μνήμης. Κάθε μεταφορά DMA μπορεί να έχει μέγεθος ως 16 KB. Κάθε εντολή λίστα-dma μπορεί να αντιπροσωπεύει ως και 2048 μεταφορές DMA, κάθε μια μεγέθους ως και 16 KB. Οι μεταφορές DMA είναι σύμφωνες ως προς τον κύριο αποθηκευτικό χώρο. Σε κάθε MFC παρέχεται μετάφραση της εικονικής μνήμης από το λειτουργικό σύστημα που εκτελείται στον PPE. Τα χαρακτηριστικά του αποθηκευτικού χώρου του συστήματος, όπως η μετάφραση των διευθύνσεων και η προστασία των δεδομένων, ελέγχονται από τους πίνακες σελιδοποίησης της αρχιτεκτονικής PowerPC. Οι SPEs παρέχουν ένα εξελιγμένο λειτουργικό περιβάλλον. Δεν έχουν κρυφή μνήμη, έτσι περιπτώσεις αστοχίας της κρυφής μνήμης δεν αποτελούν παράγοντα για τις επιδόσεις τους. Οι κανόνες προγραμματισμού pipeline είναι απλοί, οπότε είναι εύκολο να καθοριστεί η αποδοτικότητα ενός κώδικα. Παρόλο που η τοπική μνήμη μοιράζεται μεταξύ λειτουργιών ανάγνωσης/εγγραφής DMA, λειτουργιών ανάκτησης/αποθήκευσης δεδομένων, και ανάκτησης εντολών, οι λειτουργίες DMA που συσσωρεύονται μπορούν να έχουν πρόσβαση στην τοπική μνήμη όχι περισσότερο από μια φορά κάθε οκτώ κύκλους μηχανής. Η ανάκτηση εντολών παρέχει τουλάχιστον 17 διαδοχικές εντολές σε κάθε περίπτωση διακλάδωσης. Έτσι, η επίδραση των λειτουργιών DMA στο χρόνο εκτέλεσης και ανάκτησης/αποθήκευσης είναι, από τη σχεδίαση, περιορισμένη Επιδόσεις του Cell Χρονισμένος στη ενδεδειγμένη συχνότητα των 3.2 GHz, ο Cell έχει επιδόσεις που αγγίζουν το θεωρητικό όριο των GFlop/sec για πράξεις απλής ακρίβειας, και 19

20 14.6 GFlop/sec για διπλής ακρίβειας. Ο δίαυλος διασύνδεσης μπορεί να υποστηρίξει μεταφορά δεδομένων με ρυθμό GBytes/sec για μεταφορές μεταξύ των στοιχείων του chip, ο MIC έχει εύρος 25.6 GBytes/sec, ενώ ο I/O Controller 25 GBytes/sec και 35 GBytes/sec εύρος εισόδου και εξόδου αντίστοιχα. Σε εργαστηριακές μετρήσεις έχει παρατηρηθεί η μέγιστη συχνότητα λειτουργίας να ξεπερνά τα 4 GHz. Εικόνα 2-7. Φωτογραφία ενδεικτική του μεγέθους του Cell [4] 20

21 Κεφάλαιο 3 Τεχνικές προγραμματισμού Προγράμματα που εκτελούνται στους εννέα επεξεργαστικούς πυρήνες του Cell BE συνήθως διαμοιράζουν το φόρτο εργασίας και τα δεδομένα ανάμεσα στους διαθέσιμους επεξεργαστές. Για να αποφασιστεί πότε και πώς θα γίνει αυτός ο διαμοιρασμός λαμβάνονται υπόψη μια σειρά από παράγοντες, όπως η κατανομή του φόρτου επεξεργασίας, η δομή του προγράμματος, η ροή των δεδομένων και ο τρόπος πρόσβασης σε αυτά, το κόστος σε χρόνο και πολυπλοκότητα που απαιτείται για τη μετακίνηση του κώδικα και των δεδομένων ανάμεσα στους επεξεργαστές, και το φορτίο του διαύλου επικοινωνίας και των προσαρτημένων σε αυτόν μονάδων. 3.1 Κατάτμηση εφαρμογών Το κύριο μοντέλο κατάτμησης εφαρμογών περιλαμβάνει έναν κεντρικό PPE στον οποίο εκτελείται η κυρίως εφαρμογή, και ξεχωριστές λειτουργίες που ανατίθενται στους SPEs. Ο PPE τότε περιμένει και συντονίζει τα αποτελέσματα που καταφθάνουν από τους SPEs. Αυτό το μοντέλο ταιριάζει σε μια εφαρμογή με σειριακά δεδομένα και παράλληλη επεξεργασία. Αντίθετα, στο μοντέλο που επικεντρώνεται στους SPEs, το μεγαλύτερο ποσοστό του κώδικα βρίσκεται κατανεμημένο στους SPEs. Ο PPE λειτουργεί σαν ένας κεντρικός διαχειριστής των πόρων του συστήματος για τους SPEs. Κάθε SPE αναλαμβάνει το επόμενο προς επεξεργασία αντικείμενο από την κύρια ή τοπική μνήμη μόλις ολοκληρώσει την εργασία του. Τρεις είναι οι τρόποι που μπορούν να χρησιμοποιηθούν οι SPEs στο μοντέλο με κεντρικό PPE, το μοντέλο διαδοχικών καταστάσεων, το μοντέλο παράλληλων επιπέδων και το μοντέλο υπηρεσιών [1]. 21

22 Αν μια διεργασία απαιτεί πολλαπλές διαδοχικές καταστάσεις, τότε κάθε SPE μπορεί να αναλάβει από ένα βήμα της διαδικασίας. Σε αυτή την περίπτωση, η ροή των δεδομένων εισέρχεται στον πρώτο SPE όπου εκτελείται το πρώτο στάδιο της επεξεργασίας. Τότε ο πρώτος SPE περνάει τα δεδομένα στον επόμενο SPE για το επόμενο επίπεδο επεξεργασίας. Αφού ο τελευταίος SPE έχει ολοκληρώσει το τελικό στάδιο επεξεργασίας, τα δεδομένα επιστρέφονται στον PPE. Όπως σε κάθε περίπτωση ανάλογης διαδικασίας, είναι εφικτή η παράλληλη επεξεργασία αφού διαφορετικά τμήματα των δεδομένων βρίσκονται κάθε στιγμή σε διαφορετική κατάσταση επεξεργασίας. Γενικότερα, το μοντέλο διαδοχικών καταστάσεων αποφεύγεται λόγω της δυσκολίας που εμφανίζει στην κατανομή του επεξεργαστικού φόρτου. Επιπλέον, αυξάνει την απαίτηση για διαρκή μετακίνηση των δεδομένων, αφού πρέπει να μετακινηθούν μεταξύ των SPEs για τα διάφορα στάδια της επεξεργασίας. Εικόνα 3-1. Το μοντέλο διαδοχικών καταστάσεων [1] Αν η διαδικασία που πρέπει να εκτελεστεί δεν περιλαμβάνει διαδοχικές καταστάσεις, αλλά μια ενιαία διεργασία που απαιτεί μεγάλο όγκο δεδομένων, στον οποίο μπορεί να γίνει κατάτμηση και επεξεργασία ταυτόχρονα, τότε είναι αυτονόητο να χρησιμοποιηθούν SPEs για να επεξεργαστούν διαφορετικά τμήματα δεδομένων εν παραλλήλω. Αυτό είναι το μοντέλο παράλληλων επιπέδων. 22

23 Εικόνα 3-2. Το μοντέλο παράλληλων επιπέδων [1] Ένας τρίτος τρόπος με τον οποίο μπορούν να χρησιμοποιηθούν οι SPEs σε ένα μοντέλο προγραμματισμού εφαρμογών επικεντρωμένο στον PPE, είναι το μοντέλο υπηρεσιών. Σε αυτό, ο PPE αναθέτει διαφορετικές διεργασίες-υπηρεσίες στους διαφορετικούς SPEs, και η κύρια διεργασία που εκτελείται στον PPE καλεί τον κατάλληλο SPE όταν κάποια συγκεκριμένη υπηρεσία είναι απαραίτητη. Η σταθερή ανάθεση διεργασιών θα πρέπει να αποφεύγεται, και οι διάφορες υπηρεσίες θα πρέπει να οργανώνονται στους SPEs σε μια κατά απαίτηση βάση. Εικόνα 3-3. Παράδειγμα μοντέλου υπηρεσιών [1] 23

24 3.2 Μοντέλα προγραμματισμού στον Cell BE Σε κάθε επεξεργαστή, η βελτιστοποίηση του κώδικα επιτυγχάνεται με τη χρήση των μοναδικών χαρακτηριστικών του υλικού. Στην περίπτωση του Cell, ο μεγάλος αριθμός των SPEs, το μεγάλο τους αρχείο καταχωρητών, και η ικανότητά τους να καλύπτουν τον χρόνο προσπέλασης της μνήμης με ταυτόχρονη επεξεργασία και μεταφορές DMA, υποστηρίζει πολλά ενδιαφέροντα προγραμματιστικά μοντέλα. Με τις υπολογιστικές επιδόσεις των SPEs, οι προγραμματιστές έχουν τη δυνατότητα να αναπτύξουν κώδικα που διαχειρίζεται τη ροή των δεδομένων, σε αντίθεση με την περίπτωση που θα άφηναν αυτή τη διαδικασία στην ευχέρεια του μεταγλωττιστή ή σε περαιτέρω βελτιώσεις. Αν και ο μεταγλωττιστής μπορεί να διαχειριστεί ένα πλήθος χαρακτηριστικών των SPEs, είναι προτιμότερο να χρησιμοποιούνται ανεξάρτητα από αυτόν προκειμένου να επιτευχθεί η μέγιστη απόδοση. Εικόνα 3-4. Ο προγραμματισμός του Cell ανάλογα με τον κώδικα, τη μορφή των δεδομένων και εντολών, και τον τρόπο αποθήκευσης και εκτέλεσής τους μπορεί να ποικίλλει [4] Η προηγούμενη ενότητα έθιξε κάποια θέματα σχετικά με τον προγραμματισμό εφαρμογών. Ακολούθως, παρουσιάζονται επτά προγραμματιστικά μοντέλα [1] για τον επεξεργαστή Cell, η απόδοση των οποίων διαφέρει ανάλογα πάντα ως προς την εφαρμογή που εξετάζεται. Αρκετές φορές, ενδεχομένως να χρειάζεται συνδυασμός δύο ή και περισσοτέρων από αυτά τα μοντέλα για να επιτευχθεί η μέγιστη απόδοση. 24

25 3.2.1 Το μοντέλο αποσυμφόρησης συναρτήσεων Στο μοντέλο αποσυμφόρησης συναρτήσεων, οι SPEs χρησιμοποιούνται για να επιταχύνουν κρίσιμες διαδικασίες που επηρεάζουν την απόδοση. Αυτός είναι ο αμεσότερος τρόπος για να χρησιμοποιήσουμε αποτελεσματικά τον Cell σε μια δεδομένη εφαρμογή. Σε αυτό το μοντέλο η κύρια εφαρμογή εκτελείται στον PPE και καλεί επιλεγμένες διεργασίες να εκτελεστούν σε έναν ή περισσότερους SPEs. Κάποιες φορές το μοντέλο αποσυμφόρησης συναρτήσεων ονομάζεται και μοντέλο κλήσης απομακρυσμένης διεργασίας (Remote Procedure Call Model RPC). Αυτό το μοντέλο επιτρέπει σε ένα πρόγραμμα που εκτελείται στον PPE να καλέσει μια διεργασία που βρίσκεται σε κάποιον SPE σαν να καλούσε μια διεργασία του PPE. Αυτό προσφέρει στους προγραμματιστές έναν εύκολο τρόπο να χρησιμοποιούν τον ασύγχρονο παραλληλισμό των SPEs χωρίς να χρειάζεται να κατανοούν πλήρως τις λεπτομέρειες του τρόπου λειτουργίας των DMAs στο επίπεδο του MFC. Σε αυτό το μοντέλο, αναγνωρίζονται ποιες λειτουργίες πρέπει εκτελεστούν στον PPE και ποιες πρέπει να εκτελεστούν στους SPEs. Τα αντίστοιχα τμήματα πηγαίου κώδικα πρέπει να μεταγλωττιστούν ξεχωριστά, από διαφορετικούς μεταγλωττιστές. Το μοντέλο υλοποιείται χρησιμοποιώντας μικρά τμήματα εμβόλιμου κώδικα που χρησιμοποιούνται σαν αντιπρόσωποι κάποιου άλλου κώδικα. Αυτά αντιπροσωπεύουν την απομακρυσμένη διεργασία, αποκρύπτοντας τις λεπτομέρειες της επικοινωνίας. Ο κύριος κώδικας στον PPE περιέχει έναν αντιπρόσωπο για κάθε διεργασία, όπως έναν έχει και κάθε διεργασία σε έναν SPE, και ο οποίος αναλαμβάνει την εκτέλεση της διεργασίας και την επικοινωνία με τον PPE. O αντιπρόσωπος, μαζί με τον κώδικα εκτέλεσης του PPE, ελέγχει την εκτέλεση στον SPE, τη μεταφορά δεδομένων και τον συγχρονισμό μεταξύ PPE και SPE. Μια διεργασία φορτώνεται σε έναν SPE μόνο μια φορά, και το πρόγραμμα στον PPE μπορεί να κάνει πολλαπλές κλήσεις σε αυτή τη διεργασία χωρίς να χρειάζεται να ξαναφορτωθεί. Όταν ένα πρόγραμμα στον PPE καλεί μια απομακρυσμένη διεργασία, στην πραγματικότητα καλεί τον αντιπρόσωπο της διεργασίας που βρίσκεται στον PPE. Αυτός αρχικοποιεί τον SPE με τα κατάλληλα δεδομένα και κώδικα, συγκεντρώνει τις παραμέτρους της διεργασίας και τις αποστέλλει μαζί με ένα μήνυμα στον SPE για να εκκινήσει τον δικό του αντιπρόσωπο. Εκείνος με τη σειρά του, παραλαμβάνει τις 25

26 παραμέτρους και εκτελεί τη διεργασία τοπικά στον SPE. Το πρόγραμμα του PPE στη συνέχεια λαμβάνει τις παραμέτρους εξόδου. Οι αιτήσεις για εκτέλεση στους SPEs από τον PPE καταχωρούνται σε μια λίστα του κώδικα εκτέλεσης. Για κάθε νέα κλήση απομακρυσμένης διεργασίας, μια νέα καταχώρηση προστίθεται στη λίστα. Κάθε SPE διατηρεί τη δική του λίστα, έτσι μια διεργασία που καλείται σε πολλαπλούς SPEs δεν αυξάνει το μέγεθος της λίστας, παρά μόνο επιτρέπει στη διεργασία να εκτελεστεί ταυτόχρονα σε όλους τους SPEs. Το πλήθος των διαθέσιμων εγγραφών είναι περιορισμένο. Αν ο PPE ζητήσει την κλήση απομακρυσμένης διεργασίας και η λίστα είναι πλήρης, η εφαρμογή πρέπει να περιμένει για μια διαθέσιμη θέση στη λίστα. Όταν μια απομακρυσμένη διεργασία επιστρέψει αποτελέσματα, μια θέση στη λίστα απελευθερώνεται. Κατά την κλήση μιας διεργασίας, το πρόγραμμα του PPE μπορεί να περιμένει από τη διεργασία να επιστρέψει (σύγχρονη εκτέλεση), ή να συνεχίσει την εκτέλεση και να συγχρονιστεί με τη διεργασία αργότερα (ασύγχρονη εκτέλεση). Αν μια διεργασία είναι σύγχρονη ή ασύγχρονη καθορίζεται από τον ορισμό της διεργασίας κατά την μεταγλώττιση Το μοντέλο επέκτασης συσκευών Το μοντέλο επέκτασης συσκευών είναι μια ειδική περίπτωση του προηγουμένου, κατά το οποίο οι SPEs λειτουργούν σαν συσκευές εισόδου/εξόδου. Οι SPEs μπορούν επίσης να λειτουργούν ως έξυπνοι ενδιάμεσοι σε συσκευές εισόδου/εξόδου. Οι SPEs μπορούν να αλληλεπιδρούν με συσκευές εισόδου/εξόδου γιατί όλες αυτές οι συσκευές είναι χαρτογραφημένες στη μνήμη και οι μεταφορές DMA στους SPEs υποστηρίζουν μετακινήσεις δεδομένων όγκου ενός byte. Οι συσκευές εισόδου/εξόδου μπορούν να χρησιμοποιήσουν μια υπηρεσία σημάτων ειδοποίησης των SPEs για να τους ενημερώσουν πότε μια εντολή έχει εκτελεστεί. Όταν οι SPEs λειτουργούν στο μοντέλο επέκτασης συσκευών, συνήθως εκτελούν λογισμικό με αυξημένα προνόμια που είναι μέρος του λειτουργικού. Ως τέτοιος, αυτός ο κώδικας θεωρείται έμπιστος και μπορεί να αποκτήσει πρόσβαση σε ιδιαίτερους καταχωρητές μιας συσκευής. Για παράδειγμα, ένα ασφαλές σύστημα αρχείων μπορεί να θεωρηθεί ως συσκευή. Ο οδηγός της συσκευής του λειτουργικού συστήματος μπορεί να γραφεί ώστε να χρησιμοποιεί τον SPE για κρυπτογράφηση και 26

27 αποκρυπτογράφηση και για να ανταποκρίνεται σε όλες τις αιτήσεις ανάγνωσης ή εγγραφής αυτής της εικονικής συσκευής Το μοντέλο επιτάχυνσης υπολογισμών Το μοντέλο επιτάχυνσης υπολογισμών είναι ένα μοντέλο επικεντρωμένο στους SPEs που παρέχει μια πιο ολοκληρωμένη χρήση αυτών. Το μοντέλο επιταχύνει εφαρμογές που χρησιμοποιούν μαθηματικές συναρτήσεις υψηλών υπολογιστικών απαιτήσεων, χωρίς να χρειάζεται ουσιαστική επανεγγραφή των εφαρμογών. Τα περισσότερα τμήματα της εφαρμογής που έχουν ανάγκες αυξημένης υπολογιστικής ισχύος εκτελούνται στους SPEs. Ο PPE λειτουργεί σαν μονάδα ελέγχου και παροχής υπηρεσιών συστήματος, ενώ πολλαπλοί SPEs εργάζονται παράλληλα. Η εργασία κατανέμεται από τον προγραμματιστή ή αυτόματα από το μεταγλωττιστή. Οι SPEs πρέπει να προγραμματίσουν αποτελεσματικά εντολές DMA στον MFC για τη μεταφορά εντολών και δεδομένων Το μοντέλο συνεχούς ροής δεδομένων Στο μοντέλο συνεχούς ροής δεδομένων, οι SPEs είτε είναι συνδεδεμένοι σε σειρά είτε παράλληλα, επεξεργάζονται δεδομένα που διαρκώς εισέρχονται από αυτούς. O PPE λειτουργεί σαν ελεγκτής της ροής και οι SPEs σαν επεξεργαστές της ροής δεδομένων. Για τους SPEs, η ταχύτητα αποθήκευσης/ανάκτησης υπερβαίνει την ταχύτητα DMA μεταφοράς κατά μια τάξη μεγέθους. Αν κάθε SPE έχει τον ίδιο φόρτο εργασίας, αυτό το μοντέλο είναι ένας αποδοτικός τρόπος χρήσης του Cell, αφού τα δεδομένα μένουν στην μέσα στην περιοχή του Cell όσο γίνεται περισσότερο. Παρόλο που το ως τώρα λογισμικό του Cell δεν υποστηρίζει κάποια γλώσσα ενδεδειγμένη για αυτό το μοντέλο, εν τούτοις τα περισσότερα από τα προγράμματα που γράφονται για τον Cell είναι πιθανό να το χρησιμοποιούν σε κάποιο βαθμό. 27

28 3.2.5 Το μοντέλο πολυεπεξεργασίας κοινής μνήμης Ο Cell μπορεί να προγραμματιστεί ως ένας πολυεπεξεργαστής κοινής μνήμης, χρησιμοποιώντας δύο διαφορετικά σετ εντολών. Εντολές φόρτωσης της κοινής μνήμης αντικαθίστανται από λειτουργίες DMA από την κοινή μνήμη στην τοπική μνήμη των SPEs, ακολουθούμενες από εντολές φόρτωσης από την τοπική μνήμη στο αρχείο των καταχωρητών. Οι λειτουργίες DMA χρησιμοποιούν πραγματικές διευθύνσεις που είναι κοινές στον PPE και στους SPEs. Αντίστοιχα, εντολές αποθήκευσης στην κοινή μνήμη αντικαθίστανται από αποθήκευση από τους καταχωρητές στην τοπική μνήμη, και ακολούθως από DMA μεταφορά από την τοπική μνήμη στην κοινή μνήμη. Ένας μεταγλωττιστής μπορεί να διαχειρίζεται τμήματα της τοπικής μνήμης ως τοπική κρυφή μνήμη (cache) για εντολές και δεδομένα από την κοινή μνήμη Το μοντέλο ασύμμετρης εκτέλεσης νηματίων Νημάτια μπορούν να εκτελεστούν τόσο στον PPE όσο και στους SPEs, και αλληλεπιδρούν μεταξύ τους με τον ίδιο τρόπο που θα έκαναν σε ένα συμβατικό συμμετρικό πολυεπεξεργαστή. Αυτό το μοντέλο επεκτείνει τα παραδοσιακά μοντέλα προκειμένου να συμπεριλάβει τα διαφορετικά σετ εντολών που υποστηρίζουν ο PPE και οι SPEs. Για να βελτιωθεί η απόδοση, τεχνικές χρονικού προγραμματισμού εφαρμόζονται στον PPE και τους SPEs. Ένας SPE μπορεί να εκτελεί μόνο ένα νημάτιο κάθε χρονική στιγμή, δεν μπορεί να υποστηρίξει ταυτόχρονα πολλαπλά νημάτια. Το μοντέλο ασύμμετρης εκτέλεσης νηματίων είναι ευέλικτο και υποστηρίζει όλα τα υπόλοιπα μοντέλα προγραμματισμού. Κάθε πρόγραμμα που περιλαμβάνει μια κλήση της μορφής spe_context_create και spe_context_run είναι ένα παράδειγμα αυτού του μοντέλου. Αυτό είναι το πρωταρχικό μοντέλο που χρησιμοποιείται από το λογισμικό του Cell. 28

29 3.2.7 Το μοντέλο νηματίων χρήστη Το μοντέλο αυτό αναφέρεται σε ένα νημάτιο που διαχειρίζεται ένα σύνολο από συναρτήσεις επιπέδου χρήστη που εκτελούνται παράλληλα. Αυτές οι συναρτήσεις ονομάζονται μικρονημάτια. Το νημάτιο του SPE υποστηρίζεται από το λειτουργικό, ενώ τα μικρονημάτια δημιουργούνται και υποστηρίζονται από κώδικα του χρήστη χωρίς να επεμβαίνει το λειτουργικό. Παρόλα αυτά, τα μικρονημάτια μπορούν να εκτελούνται κατά μήκος πολλών SPUs. Η εφαρμογή SPU προγραμματίζει διεργασίες στην κοινή μνήμη, και οι διεργασίες επιτελούνται από τις διαθέσιμες SPUs. Για παράδειγμα, στον προγραμματισμό παιχνιδιών, οι διεργασίες μπορεί να αναφέρονται σε αντικείμενα της εικόνας που χρειάζονται αναβάθμιση/επανασχεδίαση. Μικρονημάτια μπορεί να ολοκληρώνονται οποιαδήποτε στιγμή, και νέα να δημιουργούνται οποιαδήποτε στιγμή. 3.3 Βελτιστοποίηση του κώδικα Τα ιδιαίτερα χαρακτηριστικά κατασκευής του Cell έχουν επιτρέψει την ανάπτυξη και εφαρμογή μιας πληθώρας τεχνολογιών και τεχνικών, νέων αλλά και παλαιότερων, που σκοπό έχουν να βοηθήσουν τη βελτιστοποίηση του κώδικα που γράφεται, τόσο κατά το στάδιο της ανάπτυξης όσο και κατά το στάδιο της εκτέλεσης. Η εφαρμογή τους σε κάθε χρονική στιγμή, σε τομείς όπως η ταυτόχρονη επεξεργασία πλήθους δεδομένων, η μέθοδος αποθήκευσης των δεδομένων στους καταχωρητές, η επικοινωνία των επεξεργαστικών μονάδων μεταξύ τους και με την κύρια μνήμη, και η ανταλλαγή σημάτων ελέγχου, αποτελούν σημαντικό παράγοντα που επηρεάζει τις επιδόσεις του Cell Το σετ εντολών VMX για τον PPE Όπως έχει προαναφερθεί, ο PPE περιλαμβάνει μια μονάδα εκτέλεσης εντολών ακεραίων σταθερής υποδιαστολής (Fixed Point Integer Unit FXU), μια μονάδα κινητής υποδιαστολής (Floating Point Execution Unit FPU) και μια μονάδα εκτέλεσης εντολών VMX (Vector/SIMD Multimedia Extension Unit VXU) που μπορούν να λειτουργούν παράλληλα. Έτσι, μπορεί να χρησιμοποιήσει το σετ εντολών 29

30 VMX που αποτελείται από εντολές μήκους 4 ή 8 bytes. Οι εντολές VMX υποστηρίζουν την ταυτόχρονη εκτέλεση σε πολλαπλά στοιχεία που συνθέτουν τους διανυσματικούς τελεστέους μήκους 128 bits. Αυτά τα στοιχεία μπορούν να έχουν μέγεθος ενός byte, μισής λέξης (2 bytes) ή μιας λέξης (4 bytes). Εικόνα 3-5. Ταυτόχρονη εκτέλεση εντολών στις μονάδες ακεραίων δεδομένων, κινητής υποδιαστολής και διανυσμάτων στο εσωτερικό του PPE [1] Η παράλληλη εκτέλεση με τις μονάδες FXU και FPU απλοποιείται από το γεγονός ότι οι εντολές VMX δεν παράγουν εξαιρέσεις (εκτός από εξαιρέσεις αποθήκευσης δεδομένων κατά τη διάρκεια φόρτωσης/αποθήκευσης), δεν υποστηρίζουν σύνθετες συναρτήσεις και πρόσβαση σε μη στοιχισμένη μνήμη, και μοιράζονται πολύ λίγους πόρους ή διόδους επικοινωνίας με τις υπόλοιπες μονάδες εκτέλεσης του PPE. Όλες ο λειτουργίες φόρτωσης/αποθήκευσης των εντολών VMX ακολουθούν το μοντέλο διευθυνσιοδότησης καταχωρητή + καταχωρητή δείκτη, όπου η διεύθυνση προκύπτει από το άθροισμα των τιμών ενός καταχωρητή γενικού σκοπού (General Purpose Register GPR) και ενός GPR διεύθυνσης βάσης. Αυτό το μοντέλο ευνοεί την προσπέλαση πινάκων. Επιπλέον, το σετ εντολών VMX παρέχει ένα ισχυρό σετ εντολών προσανατολισμένο στη διαχείριση των στοιχείων των διανυσμάτων, όπως ανακατανομή, αντιμετάθεση, περιστροφή και μετατόπιση, ώστε να είναι εύκολο να ευθυγραμμιστούν και να τακτοποιηθούν κατά τον επιθυμητό τρόπο όταν τα διανύσματα θα έχουν φορτωθεί σε έναν από τους 32 καταχωρητές διανυσμάτων. Οι καταχωρητές διανυσμάτων παρέχουν μεγάλη ευελιξία, αφού μπορούν να περιέχουν δεκαέξι τιμές των 8 bits, οκτώ τιμές των 16 bits, τέσσερις τιμές των 32 bits 30

31 ή τέσσερις τιμές κινητής υποδιαστολής απλής ακρίβειας. Το πρόθεμα vector χρησιμοποιείται πριν από τη δήλωση του τύπου δεδομένων για να δείξει ότι πρόκειται για διάνυσμα Εκτέλεση εντολών στον SPE Η SPU περιλαμβάνει δύο κανάλια εκτέλεσης εντολών (pipelines), που ονομάζονται άρτιο (pipeline 0 - even) και περιττό (pipeline 1 - odd), στα οποία μπορεί να αναθέτει και να ολοκληρώνει ως δύο εντολές για κάθε κύκλο ρολογιού, μία στο καθένα από τα κανάλια. Αν μια εντολή θα κατευθυνθεί στο ένα ή το άλλο κανάλι εξαρτάται από το είδος της εντολής, με το άρτιο να αναλαμβάνει τις εντολές αριθμητικών και λογικών πράξεων και το περιττό να διαχειρίζεται τη φόρτωση/αποθήκευση δεδομένων, τις διακλαδώσεις του κώδικα και τον έλεγχο εξειδικευμένων καταχωρητών. Η SPU εκτελεί όλες τις εντολές του προγράμματος κατά σειρά σύμφωνα με την αντιστοίχηση στα ανάλογα κανάλια. Κάθε εντολή είναι μέρος ενός ζεύγους εντολών σε στοίχιση διπλής λέξης (8 bytes). Το ζεύγος μπορεί να περιέχει μία ή δύο έγκυρες εντολές, αλλά αυτές πρέπει να είναι ευθυγραμμισμένες μέσα στα όρια που προβλέπονται για δεδομένα διπλής λέξης. Αυτό σημαίνει ότι η πρώτη εντολή προέρχεται από μια άρτια διεύθυνση και η δεύτερη από μια περιττή διεύθυνση. Η SPU επεξεργάζεται τα ζεύγη εντολών ένα κάθε φορά, και οι εντολές είναι δυνατό να εκτελεστούν όταν ικανοποιούνται όλες οι ανάγκες από τους καταχωρητές, δεν υπάρχει κίνδυνος σύγκρουσης πόρων με προηγούμενες εντολές, εντολές DMA ή άλλη δραστηριότητα. Ταυτόχρονη εκτέλεση επιτυγχάνεται όταν ένα ζεύγος εντολών περιέχει δύο εκτελέσιμες εντολές από τις οποίες η πρώτη μπορεί να εκτελεστεί στο άρτιο κανάλι και η δεύτερη στο περιττό. Αν ένα ζεύγος δεν μπορεί να εκτελεστεί ταυτόχρονα, τότε εκτελείται η πρώτη αν αυτό είναι δυνατό και η δεύτερη συγκρατείται, μέχρι τη στιγμή που θα είναι δυνατή η εκτέλεσή της. Ένα νέο ζευγάρι εντολών φορτώνεται όταν και οι δύο εντολές του προηγούμενου ζεύγους έχουν εκτελεστεί. 31

32 3.3.3 Βαθμωτά μεγέθη σε SIMD μονάδες και η προτιμητέα θέση Το ειδικό σετ εντολών που χρησιμοποιούν οι SPEs, επιδρά πάνω σε δεδομένα μήκους 128 bits. Έτσι, όταν παράγονται από έναν SPE δεδομένα βαθμωτού τύπου, είναι σημαντικό η SIMD φύση του επεξεργαστή να μην παρεμβάλλεται στην ορθότητα του προγράμματος. Για παράδειγμα [6], μια πράξη a=b+c μεταξύ ακεραίων σε έναν κοινό επεξεργαστή απαιτεί δύο εντολές ανάκτησης δεδομένων, μια πρόσθεση και μια αποθήκευση. Όταν όμως εκτελείται σε έναν SPE, η εντολή ανάκτησης του b μεταφέρει στον καταχωρητή μια τιμή μήκους 128 bits, η οποία περιέχει την 32-bit τιμή του b. Η πραγματική του θέση μέσα στον 128-bit καταχωρητή καθορίζεται από την κατά 16 bytes στοίχιση του b στην τοπική μνήμη, καθώς το υποσύστημα μνήμης ικανοποιεί αιτήσεις προσπέλασης της μνήμης μόνο με βήμα 16 bytes. Αφού οι τιμές βρεθούν στους καταχωρητές, πρέπει να ελεγχθεί η στοίχιση των δεδομένων ώστε οι εντολές να εκτελεστούν μόνο για τις τιμές που έχουν σχετική θέση. Στο παράδειγμά μας, οι δύο 128-bit καταχωρητές μπορούν να προστεθούν μόνο αν οι θέσεις των b και c στους αντίστοιχους καταχωρητές είναι οι ίδιες. Όταν δε συμβαίνει αυτό, το περιεχόμενο ενός εκ των καταχωρητών πρέπει να αντιμετατεθεί, ώστε να ταιριάζει με του άλλου. Επειδή υπολογισμοί βαθμωτών μεγεθών σε κώδικα πολυμεσικών δεδομένων αφορούν κυρίως διευθύνσεις και διακλαδώσεις του κώδικα, η πλέον διαδεδομένη τακτική είναι αυτή της προτιμητέας θέσης. Εικόνα 3-6. Στοίχιση των δεδομένων ανάλογα με τον τύπο τους στους 128-bit καταχωρητές των SPEs [1] 32

33 Αντίστοιχα, και η αποθήκευση χρειάζεται ιδιαίτερη φροντίδα. Η νέα τιμή του αποτελέσματος πρέπει να ενωθεί με την αρχική τιμή των 128-bit δεδομένων, και αυτή τελικά να αποθηκευτεί στην τοπική μνήμη. Στη χειρότερη περίπτωση, το αποτέλεσμα θα ήταν να χρειάζονται δύο εντολές φόρτωση και δύο εντολές αντιμετάθεσης των δεδομένων προκειμένου να ευθυγραμμιστούν, μία πρόσθεση και μια εντολή αποθήκευσης. Για να αποφευχθεί μια περίπτωση σαν την παραπάνω, ακολουθείται μια διαδικασία κατά την οποία όλα τα βαθμωτά δεδομένα της τοπικής μνήμης στοιχίζονται στην προτιμητέα θέση ανάλογα με τον τύπο τους. Παρόλο που αυτό μπορεί να επιβαρύνει την τοπική μνήμη, είναι αμελητέο σε σύγκριση με το μέγεθος του κώδικα που θα προέκυπτε από τις εντολές αντιμετάθεσης αν χρειάζονταν να γίνουν όλες οι αναγκαίες στοιχίσεις. Συχνά, αυτόματες τεχνικές στοίχισης εφαρμόζονται στον κώδικα προκειμένου να ελαχιστοποιήσουν το ποσοστό βαθμωτού κώδικα στην εφαρμογή Βελτιστοποίηση διακλαδώσεων Το εκτεταμένο βάθος των καναλιών εκτέλεσης εντολών (pipelines) των SPEs έχει ως αποτέλεσμα μια αστοχία πρόβλεψης διακλάδωσης να επιφέρει πολύ μεγάλο σφάλμα, περίπου 18 κύκλων ρολογιού. Επιπλέον, η τακτική της αρχιτεκτονικής για την πρόβλεψη διακλαδώσεων είναι να υποθέτει ότι δεν θα γίνει διακλάδωση. Εναλλακτικά, οι διακλαδώσεις ανιχνεύονται μόνο όταν είναι ήδη πολύ αργά μέσα στο κανάλι εκτέλεσης και πολλές από τις επόμενες εντολές έχουν ήδη δρομολογηθεί στο εσωτερικό ενός καναλιού για εκτέλεση. Αυτό το μοντέλο σχεδίασης επιτυγχάνει μειωμένη πολυπλοκότητα του υλικού, γρηγορότερους κύκλους του ρολογιού και αυξημένη προβλεψιμότητα, που είναι σημαντική για εφαρμογές πολυμέσων. Μια αποτελεσματική τακτική για την αποφυγή των λανθασμένων προβλέψεων είναι η αντικατάσταση των δομών if-then-else με δομές if-μετατροπές, που χρησιμοποιούν εντολές σύγκρισης/επιλογής του SPE για να αποφύγουν τον κώδικα διακλάδωσης. Μια άλλη προσέγγιση είναι να καθορίζεται η πιθανή έκβαση μιας διακλάδωσης, είτε με τη χρήση ανάλυσης από το μεταγλωττιστή είτε οδηγιών από το χρήστη, και να γίνεται εφαρμογή μεθόδων αναδιοργάνωσης του κώδικα ώστε να απορρίπτονται τα λιγότερο πιθανά ενδεχόμενα. 33

34 3.3.5 Κατάτμηση και επικαλύψεις κώδικα Στην ευνοϊκότερη περίπτωση, ένα ολοκληρωμένο πρόγραμμα SPU φορτώνεται στην τοπική μνήμη προτού εκτελεστεί. Αυτή αποτελεί την πιο αποτελεσματική μέθοδο εκτέλεσης. Όμως, όταν το σύνολο του μεγέθους του κώδικα και των δεδομένων του προγράμματος υπερβαίνουν τη χωρητικότητα της τοπικής μνήμης, είναι απαραίτητο να καταφύγουμε στην κατάτμηση του κώδικα και στις επικαλύψεις [7]. Επικαλύψεις μπορούν να χρησιμοποιηθούν και σε άλλες περιστάσεις. Για παράδειγμα, τέτοιες είναι περιπτώσεις όπου η απόδοση μπορεί να βελτιωθεί αν το μέγεθος των περιοχών δεδομένων αυξηθεί μετακινώντας συναρτήσεις που χρησιμοποιούνται σπάνια σε επικαλύψεις Μια επικάλυψη είναι ένα τμήμα κώδικα που δεν είναι αποθηκευμένο στην τοπική μνήμη ενός SPE πριν αρχίσει η εκτέλεση του κύριου προγράμματος, αλλά βρίσκεται στην κύρια μνήμη του συστήματος ωσότου ζητηθεί. Όταν η SPU καλέσει τον κώδικα που βρίσκεται σε μια επικάλυψη, αυτό το τμήμα μεταφέρεται στην τοπική μνήμη όπου μπορεί να εκτελεστεί. Αυτή η μεταφορά συνήθως ξαναγράφει μια προηγούμενη επικάλυψη που δεν είναι άμεσα αναγκαία για το πρόγραμμα. Σε μια δομή επικαλύψεων η τοπική μνήμη είναι χωρισμένη σε ένα βασικό τμήμα, που παραμένει πάντα αποθηκευμένο, και σε μια ή περισσότερες περιοχές επικαλύψεων, όπου αποθηκεύονται τα τμήματα κώδικα όταν ζητούνται. Κάθε τμήμα κώδικα αποθηκεύεται πάντα στην ίδια περιοχή. Μια περιοχή μπορεί να περιέχει περισσότερα από ένα τμήματα, κανένα όμως δεν μπορεί να υπερβεί τα όρια της περιοχής. 34

35 Κεφάλαιο 4 Το λογισμικό του Cell Οι κατασκευαστικές καινοτομίες που έχει ενσωματώσει ο Cell, αναπόφευκτα οδηγούν σε μια καινούργια προσέγγιση για το λογισμικό που θα πρέπει να χρησιμοποιεί. Οι παραδοσιακές αρχιτεκτονικές εμφανίζουν ουσιαστικές διαφορές, γεγονός που αντικατοπτρίζεται τόσο στη δομή των έως τώρα λειτουργικών συστημάτων όσο και στη μεθοδολογία που ακολουθείται για την ανάπτυξη εφαρμογών. Παρόλα αυτά, η εξ αρχής ανάπτυξη του κώδικα ενός λειτουργικού θα συνιστούσε ιδιαίτερα χρονοβόρα διαδικασία, ενώ η μεγάλη απόκλιση από τα καθιερωμένα μοντέλα πιθανόν να αποθάρρυνε μεμονωμένους προγραμματιστές από την προσπάθειά τους να αναπτύξουν εφαρμογές για τον Cell. Αυτό οδήγησε, από τα πρώτα κιόλας βήματα κατασκευής, στην υιοθέτηση του Linux ως λειτουργικού, και στην ανάπτυξη εργαλείων προγραμματισμού συναφών προς τα πρότυπα που έχουν καθιερωθεί από αυτό. 4.1 Το Linux λειτουργικό του Cell Ο πειραματισμός με το Linux ως λειτουργικό ξεκίνησε προτού ακόμα ολοκληρωθεί η κατασκευή του Cell, με τη χρήση προσομοιωτή, και η πρόκληση που έπρεπε να αντιμετωπίσει ήταν η ανάπτυξη ενός αποδοτικού και φιλικού προς τον προγραμματιστή περιβάλλοντος, με την ταυτόχρονη μέγιστη χρήση των SPEs, ενός χαρακτηριστικού που εμφανιζόταν για πρώτη φορά. Βασισμένο σε ρεαλιστικές προγραμματιστικές ανάγκες, αναπτύχθηκε ένα γενικό και ευέλικτο μοντέλο για τα νημάτια (threads) των SPEs. Αυτό το μοντέλο βασίστηκε στον πυρήνα (kernel) του Linux και αποτελεί ένα ετερογενές μοντέλο κατά το οποίο μία κλήση του συστήματος μπορεί να προκαλέσει τη δημιουργία μιας διεργασίας σε έναν SPE. 35

36 4.1.1 Χειρισμός σφαλμάτων Από την προοπτική σχεδίασης ενός λειτουργικού συστήματος, μία σημαντική πρόκληση ήταν ο χειρισμός εξαιρέσεων που προκύπτουν από τους SPEs. Αυτός ήταν ένας καινοτόμος μηχανισμός, ο οποίος δεν είχε προβλεφθεί στις προηγούμενες υλοποιήσεις της αρχιτεκτονικής του Linux. Το σημείο που το μοντέλο έρχεται σε αντιδιαστολή με τον πυρήνα παραδοσιακών λειτουργικών είναι το εξής: στον πυρήνα των παραδοσιακών συμμετρικών πολυεπεξεργαστών οι εξαιρέσεις σχετίζονται με την τρέχουσα προγραμματισμένη διεργασία και μόνο μια εξαίρεση αποστέλλεται στο λειτουργικό κάθε φορά. Σε αντίθεση, σε ένα σύστημα Cell μπορούν να αποσταλούν ταυτόχρονα οκτώ εξαιρέσεις από τους SPEs σε έναν PPE, ο οποίος πρέπει επίσης να χειριστεί και τις δικές του εξαιρέσεις. Για το πρόβλημα χειρισμού των σφαλμάτων σελιδοποίησης, υιοθετήθηκε μια πρωτοποριακή προσέγγιση εξαιρέσεων, κατά την οποία ο χειριστής εξαιρέσεων συγκεντρώνει και διατηρεί όλες τις πληροφορίες σφάλματος του σχετικού SPE. Τότε ένας νέος χειριστής σφαλμάτων σελιδοποίησης, που εκτελείται σε ένα νημάτιο του πυρήνα, χρησιμοποιεί αυτές τις πληροφορίες και υλοποιεί μια υπορουτίνα χειρισμού σφαλμάτων σελιδοποίησης σύμφωνα με την αρχιτεκτονική Power. Επειδή τα νημάτια του πυρήνα εκτελούνται με προτεραιότητα που δεν επιτρέπει διακοπές, μπορούν να εκτελούν βρόχους ή να αδρανούν ενώ περιμένουν για μια μεταφορά σελίδας από εξωτερικό αποθηκευτικό χώρο, χωρίς να υπάρχει κίνδυνος να προκληθούν αλληλοεξαρτώμενοι ατέρμονες βρόχοι που θα παρουσιάζονταν αν πολλαπλοί χειριστές ήταν ενεργοί ταυτόχρονα Διαχείριση νηματίων Προκειμένου να δημιουργηθεί ένα ευέλικτο προγραμματιστικό περιβάλλον για τους SPEs, αναπτύχθηκε ένα περιβάλλον προγραμματισμού εφαρμογών (Application Programming Interface API) παρόμοιο με τη βιβλιοθήκη pthreads του POSIX, και υποστηρίζει τόσο τη δημιουργία όσο και τον τερματισμό διεργασιών στους SPEs. Το API μπορεί να έχει πρόσβαση στους SPEs χρησιμοποιώντας ένα εικονικό μοντέλο κατά το οποίο το λειτουργικό σύστημα δυναμικά αναθέτει νημάτια SPE στον πρώτο διαθέσιμο SPE. 36

37 Επικοινωνία μεταξύ των νηματίων ανάμεσα στα διάφορα στοιχεία και συγχρονισμός των στοιχείων της αρχιτεκτονικής μπορεί να επιτευχθεί είτε μέσω ενός σετ από κλήσεις του συστήματος, είτε επιτρέποντας σε μια εφαρμογή χρήστη να εντάξει στο χώρο της εφαρμογής το χαρτογραφημένο στη μνήμη τμήμα ελέγχου του SPE. Στην αρχιτεκτονική Cell, το τμήμα ελέγχου ενός SPE αποτελείται ουσιαστικά από τρία τμήματα ελέγχου που αντιστοιχούν στις συναρτήσεις που μπορεί να έχει πρόσβαση μια εφαρμογή χρήστη, το λειτουργικό σύστημα, και ένας επιτηρητής. Χρησιμοποιώντας το τμήμα ελέγχου των προσβάσιμων από το χρήστη συναρτήσεων, μια εφαρμογή μπορεί να εκτελεί άμεσα λειτουργίες εισόδου/εξόδου στη χαρτογραφημένη μνήμη για την επικοινωνία μεταξύ των SPEs και απομακρυσμένων στοιχείων (είτε SPEs είτε PPE) αποφεύγοντας την επιβάρυνση που προκύπτει από τις κλήσεις συστήματος. Όταν η εφαρμογή ζητάει τη δημιουργία ενός νηματίου, η βιβλιοθήκη SPE νηματίων ζητάει από το λειτουργικό σύστημα να εκχωρήσει έναν SPE και δημιουργεί ένα νημάτιο SPE από ένα SPE αρχείο σε μορφή αντικείμενου κώδικα SPE ELF (Extensible Linking Format) ενσωματωμένο μέσα σε ένα ολοκληρωμένο Cell εκτελέσιμο αρχείο. Για να μεταθέσει ένα τμήμα της διαδικασίας εκκίνησης στον SPE, ο PPE μπορεί να χρησιμοποιήσει έναν miniloader που εκτελείται στον SPE για να διεκπεραιώσει τη φόρτωση του SPE προγράμματος. Ο φορτωτής, ένα πρόγραμμα SPE μεγέθους 256-bit, κατεβάζει το ELF τμήμα της εφαρμογής από το χώρο διευθύνσεων του πατρικού νηματίου στην τοπική μνήμη. Αυτή η τεχνική παρουσιάζει το πλεονέκτημα ότι αποδεσμεύει τον PPE από την ευθύνη να ρυθμίζει τις μεταφορτώσεις του προγράμματος και μπορεί να χρησιμοποιήσει το φορτωτή για να αρχικοποιήσει καταχωρητές με τιμές από την εφαρμογή ή το λειτουργικό, ενώ επιπλέον δίνει τη δυνατότητα σε πολλαπλούς SPEs να μεταφορτώνουν νημάτια ταυτόχρονα. 4.2 Η πλατφόρμα προγραμματισμού του Cell Όπως προαναφέραμε, ταυτόχρονα με την ανάπτυξη της αρχιτεκτονικής του Cell, άρχισε και διαδικασία ανάπτυξης μίας πλατφόρμας λογισμικού που θα επέτρεπε στους προγραμματιστές να γράψουν εφαρμογές σε μια από τις καθιερωμένες γλώσσες υψηλού επιπέδου, όπως η C και η C++, ενώ τα προγραμματιστικά εργαλεία θα 37

38 αναλάμβαναν την ευθύνη της διαχείρισης του κώδικα με τέτοιο τρόπο ώστε να είναι δυνατή η εκτέλεση διαφορετικών τμημάτων του προγράμματος στους διάφορους επεξεργαστές, χωρίς ο προγραμματιστής να χρειάζεται να ασχοληθεί με τη διαφορετική αρχιτεκτονική ή σετ εντολών της κάθε επεξεργαστικής μονάδας ξεχωριστά. Μια πρώτη προσέγγιση ήταν η χρήση των προγραμματιστικών εργαλείων που παρέχει η πλατφόρμα του ανοιχτού λογισμικού GNU, σκέψη που αποδείχθηκε ιδιαίτερα αποδοτική και υιοθετήθηκε επιτυχημένα και για τη συνέχεια. Η αποδοχή αυτής της πλατφόρμας από τους προγραμματιστές, οι οποίοι διέθεταν μεγάλη ευχέρεια χρησιμοποιώντας εργαλεία που ήταν ήδη γνωστά από το παρελθόν και είχαν αποδείξει την αξία τους, οδήγησε την κατασκευάστρια εταιρία να προσφέρει ένα πλήρες προγραμματιστικό περιβάλλον βασισμένο σε ανοιχτό λογισμικό και σε κάποια από τα εργαλεία του GNU, ενώ παράλληλα συμπλήρωσε και βελτίωσε όπου χρειαζόταν. Το σύνολο των απαραίτητων εργαλείων είναι διαθέσιμο μέσω του πακέτου SDK (Software Development Kit) που αυτή τη στιγμή βρίσκεται στην έκδοση Ο μεταγλωττιστής GCC Το πακέτο εργαλείων του GNU περιλαμβάνει τον μεταγλωττιστή GCC (GNU C Compiler) της γλώσσας C/C++, με τις ανάλογες προσθήκες ώστε να μπορεί να ανταποκριθεί στις ανάγκες του PPE και των SPEs. Για την PPU αντικαθιστά τον τοπικό στην αρχιτεκτονική PowerPC μεταγλωττιστή GCC, ενώ ενδείκνυται για χρήση σε όλα τα συστήματα της x86 αρχιτεκτονικής. Επίσης, ο GCC περιλαμβάνει έναν ξεχωριστό μεταγλωττιστή εξειδικευμένο για τη χρήση σε κώδικα που απευθύνεται στους SPEs Μεταγλωττίζοντας με τον GCC Προκειμένου να παρέχεται ένα συμπαγές περιβάλλον για τους προγραμματιστές, ως προς τη γλώσσα προγραμματισμού ανάμεσα σε κώδικα που απευθύνεται στον PPE και τους SPEs, υιοθετήθηκε η ίδια γλώσσα για δεδομένα διανυσματικού τύπου για τους SPEs, όπως και αυτή που υποστηριζόταν για τον PPE. Παρόμοια ως προς τις 38

39 προδιαγραφές της αρχιτεκτονικής Power για διανυσματικά δεδομένα, το μοντέλο προγραμματισμού των SPEs χρησιμοποιεί πολυμορφικές συναρτήσεις, όπου η μορφή των δεδομένων είναι αυτή που καθορίζει τη λειτουργία της εντολής. Για την επιτυχία αυτής της τεχνικής δημιουργήθηκαν χαμηλού επιπέδου εντολές που είναι ικανές να έχουν πρόσβαση στα ιδιαίτερα χαρακτηριστικά του κάθε επεξεργαστικού στοιχείου. Για να μεταγλωττιστεί μια εφαρμογή για τον Cell, τα διάφορα τμήματα του προγράμματος πρέπει να μεταγλωττιστούν ειδικά για τον αντίστοιχο τύπο επεξεργαστή. Για να επιτευχθεί αυτό, ο μεταγλωττιστής εφοδιάζει τους δύο τύπους επεξεργαστών με διαφορετικά εκτελέσιμα αρχεία, που δημιουργούνται από τον ίδιο πηγαίο κώδικα. Έτσι, και για τους δύο, γίνεται εφικτή η χρήση των παραδοσιακών τεχνικών βελτιστοποίησης που προσφέρει ο μεταγλωττιστής, ταυτόχρονα με την υποστήριξη των νεότερων τεχνικών SIMD διανυσματικοποίησης Ο μεταγλωττιστής XL C/C++ Ο μεταγλωττιστής XL C/C++ δεν αποτελεί μέρος της πλατφόρμας ανοιχτού λογισμικού GNU, αλλά αποτελεί προϊόν της κατασκευάστριας IBM, και είναι ένας προηγμένος μεταγλωττιστής προσαρμοσμένος στις απαιτήσεις του Cell. Μπορεί να παράγει κώδικα για PPE και SPEs, για συστήματα βασισμένα στις αρχιτεκτονικές x86 ή PowerPC. Παρόλα αυτά, απαιτεί τη χρήση των εργαλείων του GNU για τις διαδικασίες της σύνδεσης (linking) και της συμβολομετάφρασης (assembling), για τα δύο είδη επεξεργαστών. Τα πλεονεκτήματα του XL C/C++ είναι ότι: Αναλαμβάνει την αυτόματη μετατροπή των δεδομένων σε διανυσματική μορφή, ώστε να είναι ευκολότερη η επεξεργασία τους από τους SPEs και τις εντολές VMX. Αναλαμβάνει αυτόματα την κατανομή του επεξεργαστικού φόρτου παράλληλα στους SPEs. Διαχειρίζεται μέρος της τοπικής μνήμης των SPEs, εφαρμόζοντας ένα μοντέλο κρυφής μνήμης (cache) μέσω λογισμικού. Η πρώτη υλοποίηση του XL C/C++ υποστηρίζει τη γλώσσα C για χρήση στον προγραμματισμό του PPE και των SPEs, ενώ η C++ υποστηρίζεται μόνο για χρήση στον PPE. 39

40 4.2.4 Η επέκταση της γλώσσας C/C++ Ένα μεγάλο σετ εντολών επέκτασης της C/C++, διαφορετικών για τους SPEs και τον PPE, είναι διαθέσιμο στους προγραμματιστές της C. Αυτές οι εντολές περιλαμβάνουν νέους διανυσματικούς τύπους δεδομένων και ένα μεγάλο αριθμό εντολών για την επεξεργασία βαθμωτών και διανυσματικών δεδομένων. Οι εντολές αυτές είναι ουσιαστικά assembly-εντολές ενσωματωμένες στον C κώδικα, με τη μορφή κλήσεων συναρτήσεων της γλώσσας C. Παρέχουν στον προγραμματιστή εκτεταμένο έλεγχο των εντολών SIMD και VMX, χωρίς να απαιτούν την άμεση διαχείριση των καταχωρητών Δημιουργία εκτελέσιμων αρχείων Ανεξαρτήτως του μεταγλωττιστή που θα χρησιμοποιηθεί, ο GCC ή ο XL C/C++, για τη διαδικασία της συμβολομετάφρασης (assembling) και της σύνδεσης (linking) απαιτούνται οι ανάλογοι assembler και linker της πλατφόρμας GNU. Ο assembler παράγει αντικείμενα αρχεία (object files) σε μορφή ELF για τους SPEs και τον PPE. Τότε ένα πρόγραμμα ενσωμάτωσης (embedder) δημιουργεί ένα ολοκληρωμένο εκτελέσιμο αρχείο, ενσωματώνοντας εκτελέσιμα των SPEs σε εκτελέσιμα του PPE, έτσι ώστε η εκτέλεση ενός thread στον PPE να μπορεί να εκκινήσει ένα thread που να εκτελεί κώδικα καθορισμένο για έναν SPE. Εικόνα 4-1. Η δημιουργία ενός εκτελέσιμου αρχείου για τον Cell [6] Ο embedder διαβάζει ένα ή περισσότερα μεταγλωττισμένα και συνδεδεμένα SPE ELF αρχεία και ενσωματώνει το πρόγραμμα του SPE σε ένα ολοκληρωμένο 40

41 εκτελέσιμο για τον Cell, σε ELF μορφή. Το αποτέλεσμα είναι ένα PPE εκτελέσιμο αρχείο που περιέχει κώδικα για τον PPE, πολλά ενσωματωμένα εκτελέσιμα για τους SPEs και συναρτήσεις διαχείρισης για τη μεταφορά του SPE κώδικα στους SPEs Η βιβλιοθήκη libspe2 Η βιβλιοθήκη διαχείρισης διεργασιών SPE (SPE Runtime Management Library libspe), που βρίσκεται αυτή τη στιγμή στην έκδοση 2.1 υποστηρίζοντας και την προηγούμενη έκδοση 1.2, αποτελεί ένα περιβάλλον προγραμματισμού εφαρμογών (API) χαμηλού επιπέδου για την πρόσβαση εφαρμογών στους SPEs του Cell. Αυτή η βιβλιοθήκη παρέχει ένα API που είναι ουδέτερο ως προς το λειτουργικό σύστημα και τις διεργασίες του, για τη διαχείριση των SPEs Μαθηματικές βιβλιοθήκες SIMD Οι παραδοσιακές μαθηματικές συναρτήσεις, όπως ορίζονται από τα καθορισμένα πρότυπα, αποτελούν εντολές βαθμωτών τελεστέων και δεν επωφελούνται από την υπολογιστική ικανότητα των SIMD εντολών που παρέχονται από τους SPEs και τον PPE. Οι εντολές SIMD εκτελούν παράλληλα τους υπολογισμούς σε διανύσματα από δεδομένα, αντί σε μεμονωμένα βαθμωτά στοιχεία. Οι SIMD εντολές συχνά παρέχουν σημαντική αύξηση στην ταχύτητα ενός προγράμματος, αφού περισσότεροι υπολογισμοί μπορούν να γίνουν με λιγότερες εντολές. Η μαθηματική βιβλιοθήκη SIMD παρέχει τις εκδοχές ενός υποσυνόλου παραδοσιακών μαθηματικών συναρτήσεων για διανύσματα. Αυτές οι εκδοχές υπακούν όσο γίνεται περισσότερο στις προδιαγραφές που τίθενται από τα βαθμωτά πρότυπα. Ωστόσο, ουσιαστικές διαφορές ανάμεσα στην αρχιτεκτονική Cell και τις άλλες αρχιτεκτονικές επιβάλλουν κάποια απόκλιση, όπως στην περίπτωση χειρισμού των στρογγυλοποιήσεων, των συνθηκών σφάλματος, και ειδικών τελεστέων όπως το άπειρο. 41

42 4.2.8 Αποσφαλμάτωση εκτελέσιμων αρχείων Ο Cell απαιτεί ένα ανεπτυγμένο περιβάλλον αποσφαλμάτωσης που να επιτρέπει στους προγραμματιστές να παρακολουθούν την εκτέλεση μιας εφαρμογής στο ετερογενές περιβάλλον που συνθέτουν οι εννέα επεξεργαστές, ακολουθώντας τη ροή του ελέγχου από το ένα επεξεργαστικό στοιχείο στο άλλο, από τον PPE σε έναν SPE, ή από έναν SPE στον επόμενο. Το περιβάλλον αποσφαλμάτωσης του Cell είναι βασισμένο στον debugger του GNU (GNU Debugger GDB) και είναι η λύση για την αποσφαλμάτωση κώδικα που προέρχεται τόσο από τον GCC όσο και από τον XL C μεταγλωττιστή. Προκειμένου όμως να χρησιμοποιήσει τα πλεονεκτήματα που τα μοναδικά χαρακτηριστικά του Cell προσφέρουν, έχει τη δυνατότητα όταν μια εφαρμογή δημιουργεί μια διεργασία σε έναν SPE, να ακολουθεί αυτή τη νέα διεργασία με την ικανότητα να αντιλαμβάνεται ότι πρόκειται για διεργασία της SPU αρχιτεκτονικής. Καθόσον τα προγράμματα αποσφαλμάτωσης των SPEs και του PPE βασίζονται στον αρχικό κώδικα του GDB, οι νεότερες εκδόσεις του παρέχουν ένα ενιαίο περιβάλλον επικοινωνίας για το χρήστη, ενός μοναδικού ετερογενούς debugger. Εκτός και αν ο προγραμματιστής επιλέξει να δει το πρόγραμμα σε μορφή assembly, ο debugger δίνει μια οπτική που επικεντρώνεται στη συμπεριφορά της εφαρμογής, χωρίς να απασχολεί το σετ εντολών της αρχιτεκτονικής που κρύβεται από κάτω. Η υποστήριξη της ετερογενούς αρχιτεκτονικής αποσφαλμάτωσης του GDB βασίζεται στο περιβάλλον ανάπτυξης εφαρμογών που παρέχει η βιβλιοθήκη libspe, η βιβλιοθήκη υποστήριξης της SPU. Τα συστατικά στοιχεία του περιβάλλοντος αποσφαλμάτωσης είναι: Ένα γραφικό περιβάλλον (Graphical User Interface GUI) για την παρακολούθηση πολλαπλών διεργασιών στον PPE και τους SPEs. Ο GDB ως η μηχανή αποσφαλμάτωσης, που επιτρέπει στους προγραμματιστές να παρακολουθούν την εκτέλεση του κώδικα, καθώς μεταφέρεται μεταξύ του PPE και των SPEs, να θέτουν σημεία διακοπής και να βλέπουν τις τιμές των δεδομένων που είναι αποθηκευμένα στους καταχωρητές και στη μνήμη. 42

43 Υποστήριξη από το λογισμικό του συστήματος ώστε να μπορεί η διαδικασία αποσφαλμάτωσης να αναλαμβάνει τον έλεγχο μιας διεργασίας, όταν αυτή εκκινεί, όπως επίσης και ένα περιβάλλον που να υλοποιεί τη δυνατότητα επιθεώρησης της κατάστασης που βρίσκεται η διεργασία και τροποποίησής της Το πλαίσιο εργασίας ALF Το ALF (Accelerated Library Framework) περιβάλλον προγραμματισμού εφαρμογών παρέχει ένα σετ συναρτήσεων για την επίλυση προβλημάτων παράλληλης επεξεργασίας σε πολυεπεξεργαστικά συστήματα ιεραρχημένης μνήμης. Το ALF υποστηρίζει το SIMD προγραμματιστικό μοντέλο με ένα μοναδικό πρόγραμμα να εκτελείται ταυτόχρονα σε όλους τους πυρήνες που έχουν εκχωρηθεί. Το ALF προσφέρει ένα περιβάλλον όπου μπορεί να αναπτύσσεται μια εφαρμογή παράλληλης επεξεργασίας δεδομένων χωρίς απαίτηση για κώδικα που να εξαρτάται από την αρχιτεκτονική. Χαρακτηριστικά του ALF είναι ο προγραμματισμός διεργασιών, η διαχείριση της μεταφοράς δεδομένων, η διαχείριση των παράλληλων διεργασιών και η κατάτμηση των δεδομένων. Το ALF θεωρεί δύο διαφορετικούς τύπους διεργασιών σε ένα τυπικό πρόγραμμα παράλληλης επεξεργασίας, τις διεργασίες ελέγχου και τις διεργασίες υπολογισμών. Αυτές οι διεργασίες ανατίθενται στους δύο διαφορετικούς τύπους επεξεργαστικών στοιχείων ενός υβριδικού συστήματος. Οι διεργασίες ελέγχου αντιστοιχούν στο πρωτεύον επεξεργαστικό στοιχείο, ενώ οι διεργασίες υπολογισμών στα δευτερεύοντα βοηθητικά στοιχεία. Το ALF ορίζει τρία είδη εργασίας που μπορούν να αναλάβουν τρία είδη προγραμματιστών: Στο υψηλότερο επίπεδο, οι προγραμματιστές εφαρμογών ασχολούνται μόνο με το επίπεδο του πρωτεύοντα κύριου επεξεργαστή, χρησιμοποιώντας τις βοηθητικές βιβλιοθήκες των βοηθητικών στοιχείων χωρίς να απαιτείται η κατανόηση των λεπτομερειών του υβριδικού συστήματος. Οι προγραμματιστές βοηθητικών βιβλιοθηκών, χρησιμοποιώντας το περιβάλλον ALF, αναπτύσσουν εργαλεία που θα ξεδιπλώσουν την 43

44 υπολογιστική ικανότητα των βοηθητικών μονάδων. Αυτοί είναι υπεύθυνοι για το διαχωρισμό του προβλήματος σε τμήμα ελέγχου και τμήμα υπολογισμού, και αναθέτουν το κάθε τμήμα στον ανάλογο επεξεργαστή. Στο επίπεδο των βοηθητικών επεξεργαστών, οι προγραμματιστές γράφουν βελτιστοποιημένο κώδικα για τους υπολογιστικούς πυρήνες. Το ALF παρέχει ένα περιβάλλον όπου η διεργασία υπολογισμού μπορεί να εκτελεστεί αυτόματα από το πλαίσιο εργασίας. 44

45 Κεφάλαιο 5 Ο προσομοιωτής Mambo Ο προσομοιωτής πλήρους συστήματος της IBM για τον Cell, συχνά αναφερόμενος με το όνομα Mambo, είναι ένας γενικός προσομοιωτής που μπορεί να διαμορφωθεί ώστε να προσομοιώσει ένα ευρύ φάσμα συστημάτων διαφορετικής σύνθεσης. Υποστηρίζει προσομοίωση λειτουργίας (functional simulation) συστημάτων βασισμένων στο επεξεργαστή Cell, περιλαμβάνοντας προσομοίωση των PPE, SPUs, MFCs, και επιπλέον της μνήμης, των δίσκων, του δικτύου και του λειτουργικού συστήματος. Επίσης παρέχει υποστήριξη για προσομοίωση απόδοσης (performance simulation) ή χρονική προσομοίωση (timing simulation) συγκεκριμένων τμημάτων του συστήματος, προκειμένου να επιτρέπει στους χρήστες να αναλύσουν την απόδοση εφαρμογών που προορίζονται για τον Cell. Μπορεί να προσομοιώσει και να απεικονίσει μεγάλο πλήθος λειτουργικών λεπτομερειών σχετικά με την εκτέλεση εντολών, τη μνήμη cache και τη μνήμη των υποσυστημάτων, της διακοπές των διάφορων υποσυστημάτων, την επικοινωνία και άλλες σημαντικές λειτουργίες του συστήματος. 5.1 Εκτέλεση εφαρμογών ως προς το λειτουργικό Ένα σημαντικό χαρακτηριστικό του Mambo είναι η ικανότητά του να υποκαθιστά ένα πλήρες σύστημα PowerPC. Υποστηρίζοντας ένα λειτουργικό σύστημα, όπως το Linux, ο προσομοιωτής μπορεί να εκτελεί πολλές εφαρμογές που εκμεταλλεύονται τη λειτουργικότητα των καθιερωμένων λειτουργικών συστημάτων. Εναλλακτικά, οι εφαρμογές μπορούν να εκτελούνται ανεξάρτητα από οποιοδήποτε λειτουργικό σύστημα ενώ οι διεργασίες του λειτουργικού παρέχονται από τον προσομοιωτή, απαλλάσσοντάς μας έτσι από περιπτώσεις φαινομένων όπως η σελιδοποίηση μνήμης. 45

46 Ο προσομοιωτής μπορεί επίσης κατά τη λειτουργία αυτόνομης εκτέλεσης να εκτελεί προγράμματα γραμμένα κατευθείαν για SPU, στην εκάστοτε ορισμένη SPU Λειτουργία εκτέλεσης εφαρμογών μέσω Linux Κατά την εκτέλεση προγραμμάτων σε περιβάλλον Linux, αφού καθοριστούν οι παράμετροι του προσομοιωτή, εκκινεί το λειτουργικό Linux του εικονικού συστήματος. Κατά τη διάρκεια της εκτέλεσης, το λειτουργικό προσομοιώνεται ταυτόχρονα με την εκτέλεση των προγραμμάτων. Το εικονικό λειτουργικό αναλαμβάνει όλες της απαιτήσεις του συστήματος, όπως θα γινόταν σε ένα πραγματικό σύστημα Λειτουργία αυτόνομης εκτέλεσης εφαρμογών Κατά την εκτέλεση προγραμμάτων στη λειτουργία αυτόνομης εκτέλεσης, μια εφαρμογή εκτελείται χωρίς να υπάρχει κάποιο λειτουργικό σύστημα. Οι αυτόνομες εφαρμογές είναι τμήματα κώδικα που παράγεται από χρήστες και κάτω από πραγματικές συνθήκες ένα λειτουργικό σύστημα αναλαμβάνει την εκτέλεσή τους. Σε ένα πραγματικό σύστημα, αυτές οι εφαρμογές στηρίζονται στο λειτουργικό για τη διεκπεραίωση συγκεκριμένων διεργασιών, όπως το φόρτωμα και η εκκίνηση της εφαρμογής, η μετάφραση των διευθύνσεων μνήμης και η υποστήριξη κλήσεων του συστήματος. Στη λειτουργία αυτόνομης εκτέλεσης, ο προσομοιωτής παρέχει μερική υποστήριξη αυτών των διεργασιών, επιτρέποντας στις εφαρμογές να εκτελούνται χωρίς τη χρήση κάποιου λειτουργικού συστήματος Υπάρχουν, όμως, κάποιοι περιορισμοί που προκύπτουν όταν μια εφαρμογή δοκιμάζει να εκκινήσει και να εκτελεστεί στον προσομοιωτή χωρίς τη χρήση λειτουργικού συστήματος. Ένα παράδειγμα είναι η υποστήριξη μετάφρασης διευθύνσεων εικονικής μνήμης. Συνήθως, η μετάφραση των διευθύνσεων μνήμης είναι μια λειτουργία που επιτελείται από το λειτουργικό σύστημα. Αφού απουσιάζει το λειτουργικό στη λειτουργία αυτόνομης εκτέλεσης, ο προσομοιωτής φορτώνει τα εκτελέσιμα αρχεία χωρίς μετάφραση διευθύνσεων, έτσι ώστε οι ενεργές διευθύνσεις να είναι ίδιες με τις πραγματικές διευθύνσεις. Έτσι, απαιτείται όλες οι διευθύνσεις 46

47 που αναφέρονται στο εκτελέσιμο αρχείο να αποτελούν έγκυρες πραγματικές διευθύνσεις. 5.2 Αλληλεπιδρώντας με τον προσομοιωτή Υπάρχουν δύο τρόποι για να αλληλεπιδρά ο χρήστης με τον προσομοιωτή, δίνοντας εντολές στο εικονικό σύστημα και δίνοντας εντολές κατευθείαν στον προσομοιωτή. Το εικονικό σύστημα είναι το περιβάλλον Linux πάνω από τον προσομοιούμενο υπολογιστή με επεξεργαστή Cell, όπου εκτελούνται και αποσφαλματώνονται τα διάφορα προγράμματα. Ο χρήστης αλληλεπιδρά με αυτό εισάγοντας εντολές στη γραμμή εντολών στο παράθυρο console, που αποτελεί ένα Linux κέλυφος του εικονικού λειτουργικού συστήματος Linux. Ο χρήστης μπορεί επίσης να ελέγξει τον ίδιο τον προσομοιωτή, ρυθμίζοντας τον για εργασίες όπως η συλλογή και παρουσίαση στατιστικών στοιχείων από συγκεκριμένα SPEs, ή να θέσει σημεία διακοπής (breakpoints) στον κώδικα. Αυτές οι εντολές εισάγονται στη γραμμή εντολών στο παράθυρο simulator command, ή χρησιμοποιώντας τις αντίστοιχες ενέργειες στο γραφικό περιβάλλον εργασίας (Graphical User Interface GUI). Εικόνα 5-1. Δομή του προσομοιωτή και παράθυρα 47

48 5.2.1 Το γραφικό περιβάλλον εργασίας Το γραφικό περιβάλλον του προσομοιωτή προσφέρει μια άνετη παρουσίαση της κατάστασης του εικονικού συστήματος, συμπεριλαμβανομένων των οκτώ SPEs και του PPE. Ο χρήστης μπορεί να ελέγξει τις τιμές των καταχωρητών, της μνήμης, καθώς και να δει ορισμένα χρήσιμα στατιστικά στοιχεία που αφορούν την απόδοση του συστήματος και του κώδικα. Το γραφικό περιβάλλον προσφέρει επίσης μια εναλλακτική μέθοδο αλληλεπίδρασης με τον προσομοιωτή. Εικόνα 5-2. Το γραφικό περιβάλλον εργασίας του Mambo Το γραφικό περιβάλλον εργασίας αποτελείται από δύο περιοχές. Το κάθετο πλαίσιο στα αριστερά, και τις σειρές από κουμπιά στα δεξιά. Το κάθετο πλαίσιο αναπαριστά το σύστημα που προσομοιώνεται και τα συστατικά του μέρη. Στην περίπτωση του Cell διακρίνονται ο PPE (παρουσιάζεται ως PPE0:0:0 και PPE0:0:1, επειδή είναι dual-threaded), και οι οκτώ SPEs (SPE0 ως SPE7). Αν επεκτείνουμε τους φακέλους μπορούμε να δούμε χαρακτηριστικά των επεξεργαστικών στοιχείων και ενέργειες που μπορούμε να κάνουμε σε αυτά. Στην περίπτωση του PPE, μπορούμε να ελέγξουμε την περιοχή της μνήμης που βρίσκεται αποθηκευμένη η υπό εκτέλεση εντολή, καθώς και τις τιμές όλων των καταχωρητών καθώς αυτοί μεταβάλλονται. Στην περίπτωση 48

49 των SPEs, μπορούμε να δούμε τα δεδομένα που βρίσκονται στους καταχωρητές, στα κανάλια εκτέλεσης εντολών και στην τοπική μνήμη. Επιπλέον, μπορούμε να παρατηρήσουμε την κατάσταση του MFC και διάφορα στατιστικά στοιχεία που αφορούν τον τμήμα του κώδικα που εκτελείται. Εικόνα 5-3. Οι κατάλογοι των χαρακτηριστικών του συστήματος. Οι σειρές πλήκτρων στα δεξιά χρησιμοποιούνται για τον έλεγχο της διαδικασίας προσομοίωσης. Μέσω αυτών μπορούμε να εκκινούμε, να διακόπτουμε, να προωθούμε ή να τερματίζουμε την προσομοίωση, να ελέγχουμε τα σημεία διακοπής του κώδικα, να καθορίζουμε τα χαρακτηριστικά που θα εμφανίζονται στις διάφορες οθόνες στατιστικών και να παρακολουθούμε τα διάφορα συμβάντα που προκύπτουν κατά την εκτέλεση, ακόμα και με τη μορφή ιστογράμματος Έλεγχος απόδοσης Ο προσομοιωτής έχει τη δυνατότητα να προσφέρει διαφορετικά επίπεδα προσομοίωσης. Στις περισσότερες περιπτώσεις, το βάθος της προσομοίωσης μπορεί να μεταβληθεί δυναμικά σε οποιοδήποτε σημείο της προσομοίωσης, αν και ορισμένα 49

50 κρίσιμα σημεία υπάρχει πιθανότητα να επηρεάσουν την προσομοίωση απόδοσης για ένα μικρό διάστημα. Η απλή (μόνο λειτουργίες) προσομοίωση αναπαριστά μόνο τα αποτελέσματα των εντολών, χωρίς να προσπαθεί να παρουσιάσει με ακρίβεια το χρόνο που απαιτείται για την εκτέλεση των εντολών. Στην απλή προσομοίωση, μια σταθερή χρονική καθυστέρηση αποδίδεται σε κάθε εντολή, με την καθυστέρηση να μπορεί να μεταβληθεί από το χρήστη. Αφού η καθυστέρηση είναι σταθερή, δεν προσφέρεται για εκτίμηση της υλοποίησης του επεξεργαστή και των περιπτώσεων σύγκρουσης των πόρων του συστήματος που προκαλούν ποικίλες καθυστερήσεις στην εκτέλεση των εντολών. Το μοντέλο προσομοίωσης λειτουργιών προϋποθέτει ότι οι προσπελάσεις στη μνήμη είναι σύγχρονες και στιγμιαίες, και είναι χρήσιμο κατά την ανάπτυξη και αποσφαλμάτωση προγραμμάτων, όπου δεν απαιτείται ακρίβεια στη μέτρηση του χρόνου εκτέλεσης. Η γρήγορη προσομοίωση μοιάζει με την απλή προσομοίωση στο γεγονός ότι παρουσιάζει τα αποτελέσματα των εντολών χωρίς να λαμβάνει υπόψη το χρόνο εκτέλεσης. Επιπλέον, η γρήγορη προσομοίωση παραβλέπει πολλά από τα χαρακτηριστικά ανάλυσης που παρέχονται από την απλή προσομοίωση, όπως η συλλογή στατιστικών στοιχείων. Η γρήγορη προσομοίωση αποσκοπεί σε χρήση όταν είναι επιθυμητή η προώθηση της προσομοίωσης για να παρακαμφτούν τμήματα κώδικα που δεν παρουσιάζουν ενδιαφέρον, ως το σημείο που χρειάζεται να εκκινήσει η λεπτομερής ανάλυση. Η προσομοίωση κύκλων μηχανής (προσομοίωση απόδοσης) προσφέρει ακρίβεια τόσο ως προς τις λειτουργίες όσο και ως προς το χρόνο. Λαμβάνει υπόψη την εσωτερική εκτέλεση και τις χρονικές ανάγκες και καθυστερήσεις στα διάφορα στοιχεία του συστήματος, όπως στα κανάλια εκτέλεσης εντολών (pipelines). Οι διάφορες λειτουργίες μπορεί να χρειαστούν πολλούς κύκλους μηχανής για να εκτελεστούν, ανάλογα με το χρόνο επεξεργασίας που απαιτείται και τους εκάστοτε περιορισμούς που τίθενται από τους πόρους του συστήματος. Το μοντέλο προσομοίωσης κύκλων μηχανής προσφέρει τη δυνατότητα συγκέντρωσης και σύγκρισης στατιστικών απόδοσης από μεμονωμένα στοιχεία του συστήματος (όπως 50

51 SPEs) ή πλήρη συστήματα. Έτσι, ο χρήστης μπορεί να κάνει μια εκτίμηση του φόρτου του συστήματος και να προβλέψει την απόδοση του συστήματος έπειτα από αλλαγές στον κώδικα. Εικόνα 5-4. Τα τρία επίπεδα προσομοίωσης 5.3 Η διεργασία Callthru Η διεργασία callthru επιτρέπει την αντιγραφή αρχείων ανάμεσα στο πραγματικό σύστημα και στο προσομοιούμενο σύστημα, όσο αυτό εκτελείται. Η διεργασία εκτελείται στο εικονικό σύστημα και μπορεί να προσπελάσει αρχεία του πραγματικού συστήματος μέσω της χρήσης συναρτήσεων του προσομοιωτή. Η ίδια διεργασία χρησιμοποιείται και για τη δικτυακή επικοινωνία μεταξύ του πραγματικού και του προσομοιούμενου συστήματος. Οι callthru συναρτήσεις του προσομοιωτή χρησιμοποιούνται για την αποστολή και λήψη πακέτων δικτύου. Για να επιτευχθεί επικοινωνία με άλλα συστήματα, αρκεί να ρυθμιστεί το πραγματικό σύστημα να προωθεί τα πακέτα του εικονικού στο εξωτερικό δίκτυο. 51

52 Κεφάλαιο 6 Προγραμματίζοντας για τον Cell Κατά την ανάπτυξη εφαρμογών για τον Cell, προκειμένου να παραχθεί κώδικας πλήρως εκμεταλλεύσιμος από την ιδιαίτερη αρχιτεκτονική Cell BE, απαιτείται να δοθεί έμφαση σε κάποια στοιχεία που αποτελούν κύρια συστατικά κάθε εφαρμογής Cell. Τα σημαντικότερα από αυτά είναι η διαδικασία με την οποία γίνεται η μετάβαση της εκτέλεσης από τον PPE στους SPEs, η χρήση SIMD εντολών τόσο από το PPE όσο και από τους SPEs και οι τεχνικές επικοινωνίας μεταξύ των διάφορων επεξεργαστικών στοιχείων. 6.1 Εντολές SIMD Όπως έχει αναφερθεί και σε προηγούμενο κεφάλαιο, o PPE είναι εφοδιασμένος με 32 καταχωρητές εύρους 128 bits για την εκτέλεση VMX (Vector/SIMD Multimedia Extension) εντολών, ενώ κάθε SPE χρησιμοποιεί bit καταχωρητές ιδανικούς για την αποθήκευση διανυσματικών δεδομένων. Έτσι δίνεται η δυνατότητα και στα δύο είδη επεξεργαστών να εκτελούν εντολές που χρησιμοποιούν διανυσματικούς τελεστέους, προκειμένου να επιταχύνονται οι εργασίες που απαιτούν επεξεργασία μεγάλου όγκου δεδομένων Εντολές SIMD στον PPE Το μοντέλο προγραμματισμού VMX για τον PPE προσθέτει ένα σύνολο από νέους τύπους δεδομένων, που ονομάζονται τύποι διανυσμάτων δεδομένων, και εμφανίζονται στους 128-bit VMX καταχωρητές με τις παρακάτω μορφές: 52

53 16 τιμές των 8-bits, με πρόσημο ή χωρίς πρόσημο 8 τιμές των 16-bits, με πρόσημο ή χωρίς πρόσημο 4 τιμές των 32-bits, με πρόσημο ή χωρίς πρόσημο 4 τιμές κινητής υποδιαστολής απλής ακρίβειας Οι τύποι διανυσματικών δεδομένων χρησιμοποιούν το πρόθεμα vector πριν από τους γνωστούς τύπους δεδομένων της C, για παράδειγμα vector signed int αντιπροσωπεύει ένα διάνυσμα που περιέχει όσα από τα δεδομένα του τύπου που αναφέρονται, σύμφωνα με τη C, μπορούν να χωρέσουν σε έναν καταχωρητή μήκους 128 bit. Στην προκειμένη περίπτωση, ο vector signed int είναι ένας 128-bit τελεστέος που περιέχει τέσσερις 32-bit ints με πρόσημο. Αντίστοιχα ως προς τους τύπους διανυσματικών δεδομένων, υπάρχουν οι εντολές διαχείρισης διανυσματικών δεδομένων, που χωρίζονται σε τρεις κύριες κατηγορίες, σε αυτές που κατά τη διαδικασία της μεταγλώττισης αντιστοιχίζονται μία-προς-μία σε εντολές επιπέδου assembly, σε αυτές που αντιστοιχίζονται σε μία ή περισσότερες assembly εντολές και λειτουργούν σαν συναρτήσεις πάνω στους τύπους δεδομένων, και σε αυτές που επιστρέφουν το αποτέλεσμα μιας σύγκρισης και μπορούν να χρησιμοποιηθούν για διακλαδώσεις της εκτέλεσης του προγράμματος. Οι VMX εντολές του PPE αναγνωρίζονται από το πρόθεμα vec_ μπροστά από το όνομα της assembly εντολής ή του μνημονικού ονόματος που χαρακτηρίζει τη λειτουργία τους Εντολές SIMD στους SPEs Η κατανομή των δεδομένων στους καταχωρητές των SPEs, μπορεί να παρουσιάζεται με μια από τις παρακάτω μορφές: 16 τιμές των 8 bits, με πρόσημο ή χωρίς πρόσημο 8 τιμές των 16 bits, με πρόσημο ή χωρίς πρόσημο 4 τιμές των 32 bits, με πρόσημο ή χωρίς πρόσημο 2 τιμές των 64 bits, με πρόσημο ή χωρίς πρόσημο 4 τιμές κινητής υποδιαστολής απλής ακρίβειας των 32 bits 2 τιμές κινητής υποδιαστολής διπλής ακρίβειας των 64 bits 53

54 1 τιμή των 128 bits Σε περίπτωση που, είτε ως τελεστέοι μιας διεργασίας είτε ως αποτέλεσμα, προκύψουν μεμονωμένα βαθμωτά δεδομένα στους SPEs, καταχωρούνται σύμφωνα με τη λογική της προτιμητέας θέσης. Οι εντολές των SPEs κατηγοριοποιούνται σε τρεις ομάδες, σε αυτές που αντιστοιχίζονται μία-προς-μία σε εντολές assembly και χαρακτηρίζονται από το πρόθεμα si_, σε αυτές που αντιπροσωπεύουν μία ή περισσότερες εντολές assembly και λειτουργούν σαν συναρτήσεις πάνω στους τύπους δεδομένων, και σε σύνθετες εντολές που χρησιμοποιούνται για συγκεκριμένες λειτουργίες και αποτελούνται από εντολές των προηγούμενων κατηγοριών. Οι εντολές των τελευταίων δύο κατηγοριών αναγνωρίζονται από το πρόθεμα spu_. Εικόνα 6-1. Πρόσθεση διανυσμάτων απλής ακρίβειας με χρήση εντολών SIMD [1] 6.2 Εντολές MFC Η εκτέλεση μιας εφαρμογής στον Cell εκκινεί από τον PPE και σε κάποιο σημείο απαιτείται η μετάβασή της σε έναν ή περισσότερους από τους SPEs. Όμως καθένας από τους SPEs μπορεί να προσπελάσει άμεσα κώδικα και δεδομένα που είναι διαθέσιμα μόνο στην τοπική μνήμη του, ενώ για την μεταφορά αυτών των στοιχείων αναλαμβάνει ο ενσωματωμένος MFC μέσω του ειδικού σετ εντολών που υποστηρίζει την επικοινωνία του SPE με το εξωτερικό προς αυτόν περιβάλλον. Αυτές οι εντολές παρέχουν τον κύριο μηχανισμό που επιτρέπει σε κώδικα εκτελούμενο στην SPU να προσπελάσει την κύρια μνήμη και να διατηρεί συγχρονισμό με άλλους επεξεργαστές 54

55 και συσκευές του συστήματος. Εντολές MFC μπορούν να παρουσιαστούν είτε σε κώδικα που εκτελείται σε έναν SPE όταν εκτελείται μια σειρά εγγραφών, είτε σε κώδικα που εκτελείται στον PPE ή σε άλλες συσκευές όταν γίνεται αποθήκευση ή εγγραφή δεδομένων στους καταχωρητές ενός MFC. Οι MFC εντολές αναγνωρίζονται από το πρόθεμα mfc_ και μπορούν να ομαδοποιηθούν μέσω ειδικών ετικετών, ώστε να είναι πιο εύκολος ο χειρισμός τους. Η χρησιμότητα αυτού μπορεί να φανεί σε περιπτώσεις που η συνέχιση της εκτέλεσης του κώδικα από τον SPE πρέπει να αναβληθεί μέχρι όλες οι MFC εντολές μιας συγκεκριμένης ομάδας να έχουν ολοκληρωθεί Μεταφορές DMA Οι εντολές MFC που μεταφέρουν δεδομένα ονομάζονται εντολές DMA. H κατεύθυνση μεταφοράς των δεδομένων χρησιμοποιεί ως σημείο αναφοράς τον SPE. Έτσι, μια εντολή που μεταφέρει δεδομένα στην τοπική μνήμη του SPE είναι μια εντολή ανάκτησης (εντολή get), ενώ αν μεταφέρει δεδομένα από την τοπική μνήμη στην κύρια μνήμη ή στην τοπική μνήμη ενός άλλου SPE είναι μια εντολή put. Οι εντολές DMA μπορούν να χρησιμοποιηθούν ως λίστα από DMA εντολές, οι οποίες όλες μαζί εκκινούν μια διαδικασία μεταφοράς δεδομένων μεταξύ μιας συγκεκριμένης περιοχής της τοπικής μνήμης και διάφορων τμημάτων, συχνά μη διαδοχικών, της κύριας μνήμης. Λίστες DMA μπορούν να εκτελεστούν μόνο από τους SPEs, αλλά ο PPE και άλλες συσκευές μπορούν να δημιουργούν και να αποθηκεύουν λίστες DMA στην τοπική μνήμη ενός SPE για να τις εκτελέσει Επικοινωνία μεταξύ PPE και SPE Για την ανταλλαγή σημάτων ελέγχου μεταξύ του PPE και κάθε SPE υπάρχουν ειδικοί 32-bit καταχωρητές (ονομάζονται mailboxes) που αναλαμβάνουν την αποθήκευση των σημάτων που μεταφέρονται. Υπάρχουν 2 κανάλια εξόδου σημάτων ελέγχου από τον SPE για τον PPE, το κανάλι εξόδου σημάτων και το κανάλι εξόδου διακοπών, και ένα κανάλι εισόδου σημάτων χωρητικότητας 4 σημάτων για την αποστολή σημάτων στον SPE. Τα κανάλια εξόδου ελέγχονται πριν από κάθε νέα εγγραφή και αν είναι πλήρη η λειτουργία του SPE αναστέλλεται ως τη στιγμή που το 55

56 αίτημα που ορίζουν ικανοποιηθεί και αδειάσει ο αντίστοιχος καταχωρητής. Αντίθετα, ο καταχωρητής εισόδου μπορεί να ξαναγραφεί χωρίς να έχουν ικανοποιηθεί όλα τα αιτήματα, καθώς τα σήματα ελέγχου που αποστέλλει ο PPE είναι υπεύθυνα για τη συνολική διαχείριση του συστήματος και λαμβάνουν αυξημένη προτεραιότητα. Εικόνα 6-2. Τα σήματα επικοινωνίας μεταξύ PPU SPU 6.3 Μια εφαρμογή για τον Cell Προκειμένου να αναπτύξουμε μια οποιαδήποτε εφαρμογή για τον Cell που να εκμεταλλεύεται με βέλτιστο τρόπο τα διάφορα χαρακτηριστικά του, οφείλουμε καταρχήν να έχουμε λεπτομερή γνώση όλων των δομικών στοιχείων καταχωρητών, επεξεργαστικών μονάδων, μνήμης και του τρόπου λειτουργίας και επικοινωνίας τους. Ακολούθως, η ίδια η εφαρμογή πρέπει να τροποποιηθεί κατάλληλα ώστε να εκμεταλλευτεί ένα από τα μοντέλα προγραμματισμού του Cell, καθώς και τα εκτεταμένα σύνολα εντολών για τους διάφορους επεξεργαστές. Ένα πρόγραμμα που προορίζεται για εκτέλεση σε ένα συμβατικό επεξεργαστή μπορεί να εκτελεστεί από τον PPE, όμως μια εφαρμογή γραμμένη αποκλειστικά για τον Cell ενσωματώνει όλα 56

57 τα στοιχεία που αναπτύχθηκαν ως τώρα και απαιτούν το λεπτομερή σχεδιασμό και έλεγχο του προγραμματιστή Πολλαπλασιασμός πινάκων στον Cell Μια τυπική εφαρμογή που εμφανίζει μεγάλο όγκο δεδομένων και ταυτόχρονα υψηλές υπολογιστικές απαιτήσεις είναι ο πολλαπλασιασμός πινάκων μεγάλων διαστάσεων. Κατά την υλοποίηση του αλγόριθμου για την εκτέλεση από ένα συμβατικό επεξεργαστή προκύπτει ότι ο επεξεργαστικός φόρτος είναι της τάξης του Μ 3 πράξεων πολλαπλασιασμού και Μ προσθέσεων, αν υποθέσουμε τετραγωνικούς πίνακες διαστάσεων ΜxM. Στο χρόνο εκτέλεσης πρέπει να συμπεριλάβουμε την ανάγκη για ανάκτηση και αποθήκευση των τιμών των στοιχείων κάθε πίνακα και τις όποιες καθυστερήσεις στη μνήμη αυτό συνεπάγεται, κατανοώντας έτσι γιατί όσο αυξάνουν οι διαστάσεις των πινάκων οι συμβατικοί επεξεργαστές αδυνατούν να ανταποκριθούν αποτελεσματικά στο πρόβλημα. Η εφαρμογή που παρουσιάζει τον πολλαπλασιασμό πινάκων είναι μια καθαρά μαθηματική εφαρμογή που ακολουθεί μια ευδιάκριτη αλληλουχία βημάτων και δεν επιβάλλει στον κώδικα σημεία διακλαδώσεων, παρέχοντας έτσι μια άριστη περίπτωση αλγόριθμου που μπορεί να υλοποιηθεί ως πρόγραμμα για εκτέλεση στους SPEs. Οι καταχωρητές των SPEs έχουν εύρος 128 bits και μπορούν να διαχειρίζονται δεδομένα σε μορφή διανυσμάτων των τεσσάρων στοιχείων κινητής διαστολής απλής ακρίβειας (float), όπου κάθε τέτοιο στοιχείο καταλαμβάνει 32 bits. Επιπλέον, το σετ εντολών SIMD των SPEs είναι προσανατολισμένο ώστε να ανταποκρίνεται με το βέλτιστο τρόπο όταν έχει να διαχειριστεί δεδομένα float, ώστε να εξυπηρετεί ακριβώς τέτοιου είδους υπολογιστικές ανάγκες. Λαμβάνοντας υπόψη τη στοίχιση των δεδομένων στους καταχωρητές των SPEs (ανά 4 στοιχεία σε κάθε καταχωρητή) διαφαίνεται καθαρά ότι αν οι διαστάσεις των πινάκων είναι πολλαπλάσια του 4 επιτυγχάνεται η μέγιστη απόδοση ως προς το χρόνο εκτέλεσης. Ο προγραμματιστής έχει στη διάθεση του εργαλεία, τόσο μέσω προγραμματιστικών τεχνικών, όσο και μέσω της χρήσης ειδικών εντολών ή ακόμα και του ίδιου του compiler που αναλαμβάνει πολλές φορές τη στοίχιση των δεδομένων, για να αντιμετωπίσει αυτού του είδους προβλήματα. Προκειμένου να μην δημιουργηθεί κώδικας που θα ήταν ιδιαίτερα πολύπλοκος να μελετηθεί, επιλέχθηκαν 57

58 οι διαστάσεις των πινάκων να είναι 64x64, μέγεθος που θα μπορούσε να αναδείξει με σαφήνεια τόσο την τεχνική προγραμματισμού που χρησιμοποιήθηκε όσο και την επεξεργαστική ικανότητα του Cell Ανάλυση του αλγόριθμου Για την υλοποίηση του πολλαπλασιασμού πινάκων μπορούν να χρησιμοποιηθούν δύο τεχνικές, όταν τα δεδομένα παρουσιάζονται ως διανύσματα. Για να δούμε ένα απλό παράδειγμα όπου εμφανίζονται οι διαφορετικές τεχνικές, ας θεωρήσουμε την απλή πράξη Υ = Α*Χ όπου Α πίνακας 4x4 και Υ, Χ διανύσματα 1x4. Στην πρώτη περίπτωση, ας υποθέσουμε ότι κάθε σειρά στοιχείων του πίνακα Α είναι αποθηκευμένη σε έναν καταχωρητή, καθώς επίσης και τα διανύσματα Υ και Χ. Κάθε σειρά του πίνακα πολλαπλασιάζεται με SIMD εντολές με το διάνυσμα Χ και έπειτα τα 4 αποτελέσματα που προκύπτουν προστίθενται για να δώσουν το τελικό στοιχείο του πίνακα Υ. y 1 a 11 a 12 a 13 a 14 x 1 y 2 = a 21 a 22 a 23 a 24 x 2 y 3 a 31 a 32 a 33 a 34 x 3 y 4 a 41 a 42 a 43 a 44 x 4 Εικόνα 6-3. Πολλαπλασιασμός πινάκων ως προς τα στοιχεία του πίνακα Υ Στη δεύτερη περίπτωση, ας υποθέσουμε ότι κάθε στήλη στοιχείων του πίνακα Α είναι αποθηκευμένη σε έναν καταχωρητή, καθώς επίσης και τα διανύσματα Υ και Χ. Το διάνυσμα Υ αρχικοποιείται με όλα του τα στοιχεία να είναι μηδενικά. Για κάθε στοιχείο του πίνακα Χ, το συγκεκριμένο στοιχείο επεκτείνεται σε όλες τις θέσεις του διανύσματος Χ και αφού πολλαπλασιαστεί με το αντίστοιχο διάνυσμα στήλη του Α προστίθεται στο διάνυσμα Υ. 58

59 y 1 a 11 a 12 a 13 a 14 x 1 y 2 = a 21 a 22 a 23 a 24 x 2 y 3 a 31 a 32 a 33 a 34 x 3 y 4 a 41 a 42 a 43 a 44 x 4 Εικόνα 6-4. Πολλαπλασιασμός πινάκων ως προς τα στοιχεία του πίνακα Χ Στην περίπτωση της εφαρμογής που αναλύουμε, μετά την αποθήκευση των στοιχείων των πινάκων στους 128-bit καταχωρητές των SPEs ανά 4, προκύπτουν πίνακες διαστάσεων 64x16. Όπως είναι εμφανές, δεν είναι δυνατό να γίνει πολλαπλασιασμός μεταξύ πινάκων τέτοιων διαστάσεων. Για να ξανακάνουμε τους πίνακές μας τετραγωνικούς καταφεύγουμε σε ένα τέχνασμα, ομαδοποιώντας τα στοιχεία τους σε μπλοκ διαστάσεων 4x4. Έτσι, από τους αρχικούς 64x64 πίνακες προκύπτουν τετραγωνικοί 16x16 πίνακες με στοιχεία υποπίνακες 4x4. Για τον υπολογισμό των στοιχείων του τελικού πίνακα εφαρμόζεται η μέθοδος υπολογισμού ως προς τα στοιχεία του Υ, όπου όμως τα στοιχεία τόσο του Υ όσο και των πινάκων που δίνονται αρχικά αποτελούν 4x4 υποπίνακες. Για τους μεταξύ τους υπολογισμούς χρησιμοποιείται η μέθοδος υπολογισμού ως προς τα στοιχεία του Χ, με μόνη διαφορά ότι καθώς κάθε x i αποτελεί ένα διάνυσμα από 4 τιμές, ο βρόχος αντιγραφήςπολλαπλασιασμού-πρόσθεσης εκτελείται 4 φορές, μία για κάθε αντίστοιχο στοιχείο του διανύσματος y i. Παρά τη φαινομενική πολυπλοκότητά της, αυτή η συνδυαστική μέθοδος μπορεί εύκολα να υλοποιηθεί μέσω των εντολών επιλογής, αντιγραφής, πολλαπλασιασμού και πρόσθεσης που διαθέτουν οι SPEs και διευκολύνουν το έργο του προγραμματιστή. 59

60 Εικόνα 6-5. Ο μετασχηματισμός πίνακα 64x64 σε πίνακα 16x Λεπτομέρειες του κώδικα Έπειτα από την ολοκλήρωση του αλγόριθμου ακολουθεί η διαδικασία ανάπτυξης του προγράμματος στη γλώσσα C. Εκτός από τις εντολές που συναντάμε σε ένα τυπικό πρόγραμμα γραμμένο σε C και τις εντολές SIMD και MFC, η λειτουργία των οποίων εξηγήθηκε νωρίτερα, χρειάζεται να δοθεί προσοχή σε κάποιες ακόμα λεπτομέρειες, όπως οι βιβλιοθήκες συναρτήσεων που θα συμπεριληφθούν στο πρόγραμμα και περιέχουν τις μαθηματικές ή άλλες εντολές που είναι αναγκαίες. Αναλυτικά, το σύνολο του κώδικα παρουσιάζεται στο Παράρτημα Α, όμως μια αναφορά των κύριων σημείων του γίνεται παρακάτω. 60

61 Ο κώδικας αποτελείται από δύο τμήματα, ένα που προορίζεται για τον PPE και ένα για τους SPEs. Τα δύο τμήματα γράφονται και μεταφράζονται ξεχωριστά, μέσω της χρήσης διαφορετικών αρχείων της διαδικασίας make (Makefiles). Στον κώδικα που αναφέρεται στον PPE, αφού συμπεριλάβουμε τις αναγκαίες βιβλιοθήκες συναρτήσεων, κάνουμε αναφορά στο εξωτερικό τμήμα κώδικα όπου θα μεταβεί η εκτέλεση στον SPE μέσω της εντολής extern spe_program_handle_t mat_scalar; όπου mat_scalar το όνομα του πηγαίου κώδικα που αναφέρεται στους SPEs. Στη συνέχεια παρουσιάζεται η διαδικασία δημιουργίας των πινάκων που θα χρησιμοποιηθούν. Στο κύριο σώμα του κώδικα, υπολογίζεται το συνολικό μέγεθος της μνήμης που απαιτείται για την αποθήκευση των πινάκων και του αποτελέσματος του πολλαπλασιασμού. Η μνήμη εκχωρείται δυναμικά σε μορφή ανά 8 bytes, για καταχωρηθούν εκεί στοιχισμένα ανά 4 τα float στοιχεία των πινάκων. Οι πίνακες δημιουργούνται και αποθηκεύονται στη μνήμη και έπειτα υπολογίζεται το αποτέλεσμα του πολλαπλασιασμού από τον PPE σύμφωνα με τη μέθοδο ως προς τα στοιχεία του πίνακα-αποτελέσματος Υ. Στη συνέχεια δημιουργούνται τα νημάτια εκτέλεσης των SPEs, μέσω της εντολής speid[i]=spe_create_thread(0,&mat_scalar,null,null,-1,0); και η εκτέλεση του προγράμματος ανατίθεται στους SPEs. Όταν τα αποτελέσματα επιστραφούν από αυτούς, ελέγχεται η ορθότητά τους και το πρόγραμμα τερματίζει. Η εκτέλεση στον SPE ξεκινά τη στιγμή της δημιουργίας του αντίστοιχου thread, με τη μεταφορά δεδομένων από τον MFC. Οι πίνακες μεταφέρονται και τοποθετούνται σε διαδοχικές θέσεις της τοπικής μνήμης και ακολουθεί η μέθοδος του πολλαπλασιασμού που αναπτύχθηκε για την περίπτωση της εφαρμογής μας. Με την ολοκλήρωσή της τα αποτελέσματα επιστρέφουν μέσω του MFC σε μια βοηθητική μεταβλητή για να ελεγχθεί η ορθότητά τους. 61

62 Περισσότερες λεπτομέρειες για κάθε σημείο του κώδικα παρουσιάζονται μέσα στο σώμα του πηγαίου αρχείου, καθώς εμφανίζονται οι διάφορες εντολές. Αναλυτική περιγραφή της σύνταξης κάθε εντολής παρουσιάζεται στα εγχειρίδια προγραμματισμού που προσφέρει η κατασκευάστρια εταιρεία και αναφέρονται λεπτομερώς στο Παράρτημα Β. 62

63 Κεφάλαιο 7 Αποσφαλμάτωση και έλεγχος απόδοσης Η αποσφαλμάτωση ενός προγράμματος, ειδικά όταν αυτό προορίζεται για εκτέλεση σε ένα πολυεπεξεργαστικό περιβάλλον είναι από τα πιο ενδιαφέροντα αλλά και απαιτητικά στάδια της διαδικασίας ανάπτυξης κώδικα. Η πλατφόρμα λογισμικού για τον Cell παρέχει πολλά εργαλεία για αποσφαλμάτωση, με κύρια τον GDB debugger και τον ίδιο τον προσομοιωτή Mambo. Μέσω αυτών των εργαλείων, ο προγραμματιστής μπορεί όχι μόνο να ελέγξει την ορθότητα του κώδικα, αλλά και να βελτιώσει τον κώδικα παρεμβαίνοντας και τροποποιώντας τον στα σημεία που η εκτέλεση φαίνεται να επιβραδύνεται. 7.1 Αποσφαλμάτωση προγράμματος Ο GDB debugger είναι ένας debugger γραμμής εντολών, που είναι διαθέσιμος από το περιβάλλον ανάπτυξης GNU. Εξαιτίας των ειδικών χαρακτηριστικών της αρχιτεκτονικής Cell, έχει τροποποιηθεί ώστε στην πραγματικότητα να υπάρχουν δύο εκδόσεις του, ο ppu-gdb για την αποσφαλμάτωση προγραμμάτων του PPE ή συνδιασμού PPΕ-SPE, και ο spu-gdb αποκλειστικά για SPE προγράμματα. Η διαδικασία αποσφαλμάτωσης δε διαφέρει ουσιαστικά από οποιαδήποτε ανάλογη διαδικασία θα χρησιμοποιούσε τον GDB debugger, αφού χρησιμοποιούνται τυπικές GDB εντολές, ενώ και η περίπτωση του spu-gdb είναι όμοια από κάθε πλευρά. Στην περίπτωση κώδικα που εκτελείται ταυτόχρονα σε πολλαπλά νημάτια, φαινόμενο που μπορεί να παρατηρηθεί σε πολλά σύγχρονα λειτουργικά συστήματα, ο debugger παρακολουθεί όλα τα νημάτια κατά την εκτέλεση της εφαρμογής αλλά μόλις δοθεί μια εντολή GDB εντολή ο debugger επικεντρώνεται στο συγκεκριμένο 63

64 thread. Οι GDB εντολές πάντα παρουσιάζουν τις πληροφορίες του προγράμματος ως προς το εκάστοτε υπό μελέτη thread. 7.2 Έλεγχος απόδοσης Μετά την ολοκλήρωση της εκτέλεσης του κώδικα χωρίς σφάλματα στον PPE και τους SPEs, το επόμενο στάδιο είναι η βελτιστοποίηση του κώδικα μέσω λεπτομερούς ρύθμισης των διάφορων παραμέτρων του. Συνήθως οι προγραμματιστές διαμορφώνουν την εκτέλεση στους SPEs χρησιμοποιώντας αλγοριθμικές μεθόδους. Εξίσου σημαντική όμως για την απόδοση είναι και η ελαχιστοποίηση των καθυστερήσεων που εμφανίζονται είτε ως καθυστερήσεις λόγω αλληλεξάρτησης των εντολών είτε ως καθυστερήσεις δεδομένων. Ο προσομοιωτής Mambo δίνει τη δυνατότητα καταγραφής των στατιστικών στοιχείων που προκύπτουν από την εκτέλεση ενός τμήματος κώδικα σε κάθε SPE, με σκοπό την ανάλυση των εκάστοτε προβλημάτων Σημεία παρουσίασης της απόδοσης Τα σημεία παρουσίασης της απόδοσης αποτελούν το πιο βασικό εργαλείο τροποποίησης του κώδικα με σκοπό της εποπτεία της απόδοσης της SPU. Ο προσομοιωτής παρέχει ένα σύνολο εντολών που μπορούν να εισαχθούν σε κατάλληλα σημεία του κώδικα για τη συλλογή και παρουσίαση δεδομένων που σχετίζονται με την απόδοση της SPU. Παρόλο που το περιβάλλον προσομοίωσης μπορεί να παραμετροποιηθεί ώστε να είναι δυνατή η συλλογή συγκεκριμένων δεδομένων που σχετίζονται με την απόδοση, ο προσομοιωτής είναι ήδη σχεδιασμένος να συλλέγει αυτόματα ένα μεγάλο πλήθος πληροφοριών όταν εκτελείται μια προσομοίωση. Στον κώδικα της εφαρμογής μας που εκτελείται στους SPEs έχουν εισαχθεί οι απαιτούμενες εντολές που μπορούν να μας παρουσιάσουν την απόδοση των SPEs κατά την εκτέλεση του αλγόριθμου υπολογισμού του πολλαπλασιασμού, σύμφωνα με τη μέθοδο που αναπτύξαμε. Οι εντολές αυτές περιέχονται στη βιβλιοθήκη profile.h και είναι οι: 64

65 prof_clear(), prof_start(), prof_stop() που αντίστοιχα μηδενίζουν τους πίνακες στατιστικών, εκκινούν και τερματίζουν τη διαδικασία συλλογής στατιστικών. Προκειμένου να είναι δυνατή η λήψη στατιστικών στοιχείων, ο προσομοιωτής πρέπει να είναι ρυθμισμένος σε απλή λειτουργία (μόνο λειτουργίες) και οι SPEs σε λειτουργία pipeline, ώστε να μπορούν να καταγραφούν οι καθυστερήσεις λόγω μη ταυτόχρονης εκτέλεσης εντολών στα δύο κανάλια εκτέλεσης (pipelines). Εικόνα 7-1. Τα στατιστικά εκτέλεσης του αλγόριθμου σε ένα SPE 65

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

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

Διαβάστε περισσότερα

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

Κεφάλαιο 3. Διδακτικοί Στόχοι

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

Διαβάστε περισσότερα

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

Διαβάστε περισσότερα

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ Δρ. Γκόγκος Χρήστος Εκτέλεση προγραμμάτων Πρόγραμμα: Ένα σύνολο από εντολές.

Διαβάστε περισσότερα

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 6: Ασκήσεις Εξαμήνου Μέρος Β Νοέμβριος 2016 Στην άσκηση αυτή θα μελετήσουμε την εκτέλεση ενός

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών (IΙI)

Οργάνωση Υπολογιστών (IΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:

Διαβάστε περισσότερα

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

Διαβάστε περισσότερα

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4 Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφάλαιο 7.4 Ε/Ε Οδηγούμενη από Διακοπές Το πρόβλημα με την προγραμματιζόμενη Ε/Ε είναι ότι ο επεξεργαστής πρέπει να περιμένει ώστε η μονάδα Ε/Ε που τον ενδιαφέρει

Διαβάστε περισσότερα

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής) ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α Γενικού Λυκείου (Μάθημα Επιλογής) Σύγχρονα Υπολογιστικά Συστήματα τους υπερυπολογιστές (supercomputers) που χρησιμοποιούν ερευνητικά εργαστήρια τα μεγάλα συστήματα (mainframes)

Διαβάστε περισσότερα

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

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη

Διαβάστε περισσότερα

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2 Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου Ενότητα 2 Τι είναι το PLC ΠΕΡΙΕΧΟΜΕΝΑ 2 Τι είναι το PLC. 2.1 Πλεονεκτήματα των PLC. 2.2 Η δομή ενός PLC. 2.3 Τα PLC της αγοράς. 2.4 Αρχή λειτουργίας ενός PLC.

Διαβάστε περισσότερα

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Ταχύτητα εκτέλεσης Χρόνος εκτέλεσης = (αριθμός εντολών που εκτελούνται) Τί έχει σημασία: Χ (χρόνος εκτέλεσης εντολής) Αριθμός

Διαβάστε περισσότερα

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 6-7 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 3 : Μια άποψη του κορυφαίου επιπέδου λειτουργίας και διασύνδεσης του υπολογιστή Καρβούνης Ευάγγελος Η έννοια

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Η/Υ

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 8 «Ιδεατή Μνήμη» Διδάσκων: Δ. Λιαροκαπης Διαφάνειες: Π. Χατζηδούκας Ιδεατή Μνήμη Οργάνωση. Εισαγωγή. Ιδεατές και πραγματικές διευθύνσεις. Λογική οργάνωση. Τμηματοποίηση

Διαβάστε περισσότερα

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

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ 1.1 ΕΙΣΑΓΩΓΙΚΗ ΑΝΑΦΟΡΑ ΣΤΑ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ 1 1.1.1 Σήματα ψηφιακών συστημάτων 1 1.1.2 Παράλληλη και σειριακή μεταφορά πληροφορίας 2 1.1.3 Λογική τριών

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 9 : Ομάδες Εντολών: Ιδιότητες και Λειτουργίες Ευάγγελος Καρβούνης Παρασκευή, 15/01/2016 Τι είναι ομάδα εντολών;

Διαβάστε περισσότερα

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

Διαβάστε περισσότερα

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Τεχνολογίες Κύριας (και η ανάγκη για χρήση ιεραρχιών μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης i Στα σύγχρονα

Διαβάστε περισσότερα

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

Διαβάστε περισσότερα

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής Κεφάλαιο 4 ο Ο Προσωπικός Υπολογιστής Μάθημα 4.3 Ο Επεξεργαστής - Εισαγωγή - Συχνότητα λειτουργίας - Εύρος διαδρόμου δεδομένων - Εύρος διαδρόμου διευθύνσεων - Εύρος καταχωρητών Όταν ολοκληρώσεις το μάθημα

Διαβάστε περισσότερα

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Παρακάτω δίνονται μερικοί από τους ακροδέκτες που συναντάμε στην πλειοψηφία των μικροεπεξεργαστών. Φτιάξτε έναν πίνακα που να

Διαβάστε περισσότερα

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

Κεφάλαιο 8. Αριθμητική Λογική μονάδα Κεφάλαιο 8 Αριθμητική Λογική μονάδα 8.1 Εισαγωγή Στη μηχανική υπολογιστών η αριθμητική/λογική μονάδα (ALU) είναι ένα ψηφιακό κύκλωμα το οποίο εκτελεί αριθμητικούς και λογικούς υπολογισμούς. Η ALU είναι

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

Διαβάστε περισσότερα

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

Διαβάστε περισσότερα

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο) I χειμερινό εξάμηνο & ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II εαρινό εξάμηνο (σε κίτρινο υπόβαθρο). Νικολός Καθηγητής ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην ομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών Ενότητα 1.1 Υλικό

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Μνήμης Βασίλης Σακκάς 6/12/2013 1 Διαχείριση Μνήμης 1 Το τμήμα του Λ/Σ που διαχειρίζεται τη μνήμη λέγεται Διαχειριστής Μνήμης (Memory manager). Καθήκον του είναι

Διαβάστε περισσότερα

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

Κεντρική Μονάδα Επεξεργασίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Μονάδα Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

Μελέτη αρχιτεκτονικής και εφαρμογών πολυπύρηνου υβριδικού επεξεργαστή ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. της. Γεωργίας Ν. Κουβέλη

Μελέτη αρχιτεκτονικής και εφαρμογών πολυπύρηνου υβριδικού επεξεργαστή ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. της. Γεωργίας Ν. Κουβέλη ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Μελέτη αρχιτεκτονικής και εφαρμογών

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Η/Υ

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 4 «Αρχιτεκτονικές ΛΣ» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 1. Μονολιθικά συστήματα Αρχιτεκτονικές ΛΣ 2. Στρωματοποιημένη αρχιτεκτονική 3. Αρχιτεκτονική

Διαβάστε περισσότερα

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ρχιτεκτονική Υπολογιστών 2016-17 Εικονική Μνήμη (και ο ρόλος της στην ιεραρχία μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Δευτερεύουσα μνήμη

Διαβάστε περισσότερα

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή 8.1 Τακτική σάρωση (Polling) Ας υποθέσουμε ότι έχουμε ένα πληκτρολόγιο συνδεδεμένο σε ένα υπολογιστικό σύστημα. Το πληκτρολόγιο είναι μια μονάδα εισόδου.

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ιεραρχία συχνά και το

Διαβάστε περισσότερα

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μελετώντας το μάθημα θα μπορείς να ξέρεις τη λειτουργία του Polling να ξέρεις

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Γ ) Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών

Διαβάστε περισσότερα

Τεχνολογίες Κύριας Μνήμης

Τεχνολογίες Κύριας Μνήμης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Τεχνολογίες Κύριας (και η ανάγκη για χρήση ιεραρχιών μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κύρια Μνήμη

Διαβάστε περισσότερα

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Για βελτίωση της απόδοσης

Διαβάστε περισσότερα

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-ΙI. Ενότητα 5 : Αρχιτεκτονική ΙΑ-32

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-ΙI. Ενότητα 5 : Αρχιτεκτονική ΙΑ-32 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Αρχιτεκτονική-ΙI Ενότητα 5 : Αρχιτεκτονική ΙΑ-32 Ιωάννης Έλληνας Τμήμα Η/ΥΣ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους. Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους. *Τα φυσικά μέρη που μπορούμε να δούμε και να αγγίξουμε ονομάζονται συνολικά υλικό (hardware). * * υπερυπολογιστές

Διαβάστε περισσότερα

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Η υπολογιστική

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Επ. Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη

Διαβάστε περισσότερα

Παραλληλισµός Εντολών (Pipelining)

Παραλληλισµός Εντολών (Pipelining) ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Παραλληλισµός Εντολών (Pipelining) Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapter 3: Section 3.4,

Διαβάστε περισσότερα

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα METROPOLIS Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα Ενσωματωμένα συστήματα Ορίζονται ως ηλεκτρονικά συστήματα τα οποία χρησιμοποιούν υπολογιστές και ηλεκτρονικά υποσυστήματα για να εκτελέσουν

Διαβάστε περισσότερα

Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου.

Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου. ΚΕΦΑΛΑΙΟ 13 Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου. Οι υπηρεσίες νέφους παρέχονται με τέτοιο τρόπο ώστε ο τελικός χρήστης δεν μπορεί να διακρίνει τεχνικές λεπτομέρειες. Η χρηστικότητα, η διαθεσιμότητα

Διαβάστε περισσότερα

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) Συσκευές αποθήκευσης Ένας υπολογιστής προκειµένου να αποθηκεύσει δεδοµένα χρησιµοποιεί δύο τρόπους αποθήκευσης: Την Κύρια Μνήµη Τις συσκευές µόνιµης αποθήκευσης (δευτερεύουσα

Διαβάστε περισσότερα

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Α Γενικού Λυκείου Κεφάλαιο 1 1.1 Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Ιδιαίτερη θέση έχουν οι Υπολογιστικές συσκευές. Μηχανισμός

Διαβάστε περισσότερα

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 015-16 Οργάνωση Υπολογιστών (ΙI) (κύρια και ) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα τυπικό υπολογιστικό

Διαβάστε περισσότερα

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

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους

Διαβάστε περισσότερα

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ι Γ. Τσιατούχας 2 ο Κεφάλαιο ιάρθρωση 1. Οργάνωση της 2. εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο

Διαβάστε περισσότερα

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

Διαβάστε περισσότερα

ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ

ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Τα τμήματα ενός ηλεκτρονικού υπολογιστή είναι: 1. Επεξεργαστής 2. Μνήμη RAM και ROM 3. Κάρτα γραφικών 4. Μητρική Πλακέτα 5. Σκληρός Δίσκος 6. DVD / Blue Ray 7. Τροφοδοτικό

Διαβάστε περισσότερα

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Τεχνολογία Πολυμέσων Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών Ενότητα 3: Χειρισμός δεδομένων, 2ΔΩ Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Θεόδωρος Τσιλιγκιρίδης Μαθησιακοί Στόχοι Η Ενότητα 3 διαπραγματεύεται θέματα

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Άσκηση : Λυμένες Ασκήσεις Έστω ένα σύστημα μνήμης, στο οποίο έχουμε προσθέσει μια κρυφή μνήμη θυμάτων 6 θέσεων

Διαβάστε περισσότερα

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

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

Διαβάστε περισσότερα

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

Πανεπιστήµιο Θεσσαλίας Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων Πανεπιστήµιο Θεσσαλίας Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων Αρχιτεκτονική Υπολογιστών Εργασία Εξαµήνου: Προσοµοίωση ARM σε επίπεδο VHDL/Verilog 1. Μελέτη συνόλου εντολών και αρχιτεκτονικής ARM

Διαβάστε περισσότερα

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Συστήματα σε Ολοκληρωμένα Κυκλώματα Συστήματα σε Ολοκληρωμένα Κυκλώματα Κεφάλαιο 4: Αρχιτεκτονική των Embedded Μικροεπεξεργαστών Διδάσκων: Καθηγητής Οδυσσέας Κουφοπαύλου Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών ΕΙΣΑΓΩΓΗ Παρουσιάζεται

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Γιώργος Δημητρίου Ενότητα 1 η : Βασικές Αρχές Αρχιτεκτονικής Η/Υ Σύγχρονοι Μικροεπεξεργαστές Intel 6-core i7 (Gulftown) 2010, >1 billion transistors Απόδοση Μικροεπεξεργαστών V Μετρήσεις με μετροπρογράμματα

Διαβάστε περισσότερα

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

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Η επεξεργασία των δεδομένων ακολουθεί μια στερεότυπη διαδρομή: τα δεδομένα εισάγονται στο υπολογιστικό σύστημα, υφίστανται μια ορισμένη επεξεργασία και

Διαβάστε περισσότερα

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 12 Σχεδιασμός Ανάπτυξη Λειτουργία Π.Σ. 1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 1.1 Δυνατότητες Λειτουργικών Συστημάτων 1.1.1 Εισαγωγή Ο όρος Λειτουργικό Σύστημα (Operating System), εκφράζει το σύνολο των προγραμμάτων

Διαβάστε περισσότερα

Αρχιτεκτονική Μνήμης

Αρχιτεκτονική Μνήμης ΕΣ 08 Επεξεργαστές Ψηφιακών Σημάτων Αρχιτεκτονική Μνήμης Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapters 3 & 4 Lapsley [2002]: Chapter

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός;

Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός; Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός; Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή

Διαβάστε περισσότερα

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

Διαβάστε περισσότερα

οικονομικές τάσεις Εκτεταμένη συνεργασία της εφοδιαστικής αλυσίδας. έργου FLUID-WIN το οποίο χρηματοδοτήθηκε από το 6ο Πρόγραμμα Πλαίσιο Παγκόσμιες

οικονομικές τάσεις Εκτεταμένη συνεργασία της εφοδιαστικής αλυσίδας. έργου FLUID-WIN το οποίο χρηματοδοτήθηκε από το 6ο Πρόγραμμα Πλαίσιο Παγκόσμιες Συνοπτική παρουσίαση του ευνητικού έργου FLUID-WIN το οποίο χρηματοδοτήθηκε από το 6ο Πρόγραμμα Πλαίσιο Ενοποίηση τρίτων παρόχων υπηρεσιών με ολόκληρη την εφοδιαστική αλυσίδα σε πολυλειτουργικές πλατφόρμες

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών (ΙI)

Οργάνωση Υπολογιστών (ΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (ΙI) (κύρια και κρυφή μνήμη) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση

Διαβάστε περισσότερα

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.

Διαβάστε περισσότερα

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 1 ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ

ΚΕΦΑΛΑΙΟ 1 ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ 1.1 Το Υπολογιστικό Σύστηµα ΚΕΦΑΛΑΙΟ 1 ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ Από τον υπολογιστή των Αντικυθήρων µέχρι τα αυτοκίνητα χωρίς οδηγό Κατηγορίες µε βάση το µέγεθος και τη χρήση: Υπερυπολογιστές (supercomputers)

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΗΥ321)

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 17: Χειρισμός Εισόδου - Εξόδου Συστήματα Εισόδου / Εξόδου: Το Υλικό Ε/Ε Μεγάλη ποικιλία συσκευών Ε/Ε Και μεγαλώνει Συνηθισμένες έννοιες: Πόρτα Δίαυλος Κοινό μέσο πρόσβασης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος ΕΣ 08 Επεξεργαστές Ψηφιακών Σημάτων Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος Κλήμης Νταλιάνης Λέκτορας Π.Δ.407/80 Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου Αρχιτεκτονική

Διαβάστε περισσότερα

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης

Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης ΟΜΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ Ένας υπολογιστής αποτελείται από την Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ), τη µνήµη, τις µονάδες εισόδου/εξόδου και το σύστηµα διασύνδεσης

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2011-12 Εικονική (και ο ρόλος της στην ιεραρχία μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Ιεραρχία η νέα τάση: [2011]

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Memory)

Εικονική Μνήμη (Virtual Memory) Εικονική Μνήμη (Virtual Memory) Για τη δημιουργία των διαφανειών έχει χρησιμοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne, Operating Systems Concepts,

Διαβάστε περισσότερα

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΜΗΧΑΝΗΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ Γ. Τσιατούχας 6 ο Κεφάλαιο 1. Επίπεδο OSM 2. Εικονική μνήμη ιάρθρωση 3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση

Διαβάστε περισσότερα

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή Κεφάλαιο 3 Το υλικό του υπολογιστή Εισαγωγή Τµήµατα του Η/Υ καιοργάνωση Μονάδα Κεντρικής Μνήµης Κεντρική Μονάδα Επεξεργασίας (CPU) Μονάδα Εισόδου Εξόδου ίαυλοι Επικοινωνίας Εναλλακτικές αρχιτεκτονικές

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών 1 Οργάνωση υπολογιστών ΚΜΕ Κύρια Μνήμη Υποσύστημα εισόδου/εξόδου 2 Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) R1 R2 ΑΛΜ

Διαβάστε περισσότερα

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών II 16-2-2012. Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων Αρχιτεκτονική Υπολογιστών II 6 --0 Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων Θέμα. Τι γνωρίζετε για την τοπικότητα των αναφορών και ποιών μονάδων του υπολογιστή ή τεχνικών η απόδοση εξαρτάται από

Διαβάστε περισσότερα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

Διαβάστε περισσότερα

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο : 2. Α/Α Διάλεξης : 1 1. Τίτλος : Εισαγωγή στην Ψηφιακή Τεχνολογία 2. Μαθησιακοί Στόχοι : Λογικές Πύλες και η υλοποίησή τους με τρανζίστορ. Κατασκευή ολοκληρωμένων κυκλωμάτων. 3. Θέματα που καλύπτει : Λογικές

Διαβάστε περισσότερα

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Επικοινωνία με περιφερειακά Αρτηρία εισόδου-εξόδου, διευθύνσεις, εγγραφές αναγνώσεις Διαδικασία εξόδου έλεγχος κατάστασης περιφερειακού περίμενε

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

Διαβάστε περισσότερα