Η ΤΑΞΙΝΟΜΗΣΗ ΤΟΥ FLYNN 1 ο ΕΠΑΛ ΡΟΔΟΥ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Χατζηνικόλας Κώστας www.costaschatzinikolas.gr
Τα 4 Είδη Των Αρχιτεκτονικών Των Σύγχρονων Η/Υ Ο Michael J. Flynn 1 το 1966 πρότεινε τον χωρισμό των διαφορετικών αρχιτεκτονικών των υπολογιστών στις εξής 4: Η Ταξινόμηση Του Flynn Single Instruction Multiple Instruction Single Data SISD MISD Multiple Data SIMD MIMD 1 Καθηγητής Πληροφορικής στο Πανεπιστήμιο Stanford της Αμερικής
Με ποιο κριτήριο έγινε ο διαχωρισμός αυτός? Ο διαχωρισμός του Flynn βασίστηκε πάνω στο: Στο πλήθος των εντολών που μπορούν να εκτελεστούν ταυτόχρονα, και Στο πλήθος των δεδομένων πάνω στα οποία ενεργούν αυτές οι εντολές
Σύμφωνα με την αρχιτεκτονική αυτή: Single Instruction Single Data (Μία Εντολή Ένα Δεδομένο) Ο υπολογιστής μπορεί να εκτελεί σειριακά τις εντολές του - Μία προς Μία και Όχι παράλληλα Κάθε εντολή έρχεται από τη μνήμη RΑΜ προς εκτέλεση Ταυτόχρονα έρχεται και το ένα δεδομένο πάνω στο οποίο ενεργεί η εντολή αυτή Επομένως έχουμε: Εκτέλεση 1 Εντολής κάθε χρονική στιγμή Που την συναντάμε: Σε όλους τους παραδοσιακούς καθημερινούς υπολογιστές (PC και MAC). Τα τελευταία χρόνια και αυτοί οι υπολογιστές μπορούν να εκτελούν παράλληλα εντολές χρησιμοποιώντας παραπάνω από 1 επεξεργαστή ή 1 επεξεργαστή με πολλούς πυρήνες (multicore)
Σύμφωνα με την αρχιτεκτονική αυτή: Single Instruction Multiple Data (Μία Εντολή Πολλά Δεδομένα) Ο υπολογιστής μπορεί να εκτελεί 1 εντολή κάθε φορά, αλλά Κάθε εντολή εκτελείται πάνω σε πολλά δεδομένα παράλληλα Προϋποθέτει την ύπαρξη πολλών παράλληλων επεξεργαστών Επομένως έχουμε: Εκτέλεση 1 Εντολής κάθε χρονική στιγμή σε πολλά δεδομένα Που την συναντάμε: Σε υπολογιστές που πρέπει να κάνουν το ίδιο πράγμα παράλληλα πολλές φορές, όπως για παράδειγμα να αλλάξουν τη φωτεινότητα σε όλα τα pixel μιας εικόνας ταυτόχρονα Έχει μεγάλη εφαρμογή σε multimedia εφαρμογές - Επεξεργασία ήχου, εικόνας και video Στις σύγχρονες κάρτες γραφικών, οι επεξεργαστές τους (GPU - Graphical Processing Unit) ανήκουν σε αυτήν την αρχιτεκτονική. Τα τελευταία χρόνια και οι κλασσικοί επεξεργαστές περιέχουν τέτοιες δυνατότητες
Εμπορικές εφαρμογές Αν και αποδείχθηκε πολύ δύσκολο να βρεθούν εμπορικές εφαρμογές για υπολογιστές που θα βασίζονταν μόνο σε SIMD επεξεργαστές, υπάρχουν οι εξής εξαιρέσεις: Video Games - Σχεδόν κάθε video game console από το 1998 και έπειτα, έχει κάπου μέσα της έναν επεξεργαστή SIMD - Το Playstation 2, είχε την ιδιομορφία ότι περιείχε έναν τέτοιο επεξεργαστή ο οποίος μπορούσε να παίξει το διπλό ρόλο να επεξεργάζεται multimedia εντολές τελείως αυτόνομα, ή να υποβοηθάει τον κεντρικό επεξεργαστή σε κλασικές εντολές όποτε χρειαζόταν Εφαρμογές επεξεργασίας 3D γραφικών - Δείχνουν προτίμηση σε τέτοιους είδους επεξεργαστές, όταν αυτοί είναι διαθέσιμοι στον υπολογιστή. Κλασικό παράδειγμα το πρόγραμμα Microsoft Direct 3D Ο επεξεργαστής CELL - Είναι το πιο πρόσφατο και πιο σύγχρονο παράδειγμα SIMD επεξεργαστή - Δημιουργήθηκε από τις IBM, Toshiba και Sony - Περιέχει πλήθος επεξεργαστικών πυρήνων SIMD μέσα του, ο καθένας με τη δική του αποκλειστική μνήμη RAM - Μπορούσε να επεξεργαστεί τεράστιο πλήθος δεδομένων παράλληλα, απαραίτητο για απαιτητικά 3D παιχνίδια και video - Είναι μέσα στο Playstation 3 Κινητά τηλέφωνα - Τελευταία προσθήκη είναι η παραγωγή SIMD επεξεργαστή από την εταιρεία Ziilabs για χρήση σε κινητά τηλέφωνα και φορητά media players
Σύμφωνα με την αρχιτεκτονική αυτή: Multiple Instruction Single Data (Πολλές Εντολές Ένα Δεδομένο) Ο υπολογιστής μπορεί να εκτελεί πολλές εντολές κάθε φορά παράλληλα Προϋποθέτει την ύπαρξη πολλών παράλληλων επεξεργαστών Όλες οι εντολές εκτελούνται ακριβώς πάνω στα ίδια δεδομένα παράλληλα Επομένως έχουμε: Εκτέλεση πολλών εντολών κάθε χρονική στιγμή στα ίδια δεδομένα Που την συναντάμε: Πολύ ασυνήθιστη αρχιτεκτονική Χρησιμοποιείται κυρίως για ανίχνευση λαθών και σφαλμάτων Πολλοί επεξεργαστές εκτελούν εντολές στα ίδια δεδομένα ταυτόχρονα και συγκρίνουν τα αποτελέσματα για να δουν αν συμφωνούν Αν υπάρχει πλήρης συμφωνία η απόφαση είναι εύκολη Αν διαφωνούν τότε υπάρχει θέμα Κλασική χρήση στο διαστημικό λεωφορείο, σε σταθμούς πυρηνικής ενέργειας, σε αεροπλάνα
Σύμφωνα με την αρχιτεκτονική αυτή: Multiple Instruction Multiple Data (Πολλές Εντολές Πολλά Δεδομένα) Ο υπολογιστής μπορεί να εκτελεί πολλές εντολές σε πολλά διαφορετικά δεδομένα παράλληλα Προϋποθέτει την ύπαρξη πολλών παράλληλων επεξεργαστών που λειτουργούν ανεξάρτητα Επομένως έχουμε: Σε κάθε στιγμή πολλούς επεξεργαστές να εκτελούν πολλές διαφορετικές εντολές σε πολλά διαφορετικά δεδομένα Που την συναντάμε: Χρησιμοποιείται σε εφαρμογές όπως: - Computer Aided Design (CAD) - Computer Aided Manufacturing (CAM) - Simulation - Modeling - Communication Switches (π.χ. routers, servers)