METROPOLIS Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα
Ενσωματωμένα συστήματα Ορίζονται ως ηλεκτρονικά συστήματα τα οποία χρησιμοποιούν υπολογιστές και ηλεκτρονικά υποσυστήματα για να εκτελέσουν κάποια εργασία (συνήθως για να ελέγξουν ένα φυσικό σύστημα ή για να επικοινωνήσουν πληροφορίες) χωρίς να αντιλαμβάνονται αποκλειστικά ως υπολογιστές Είναι ο προτιμότερος τρόπος για την προσφορά όλο και καλύτερων υπηρεσιών σε μια μεγάλη γκάμα εφαρμογών Ιδιαίτερο χαρακτηριστικό τους είναι οι ετερογένεια τους τόσο στις προδιαγραφές τους όσο και στον τρόπο σχεδιασμού τους λόγω της μεγάλης γκάμας των εφαρμογών στις οποίες απευθύνονται
Αυτή η ετερογένεια οδήγησε σε μεγάλη κατάτμηση του πεδίου με αποτέλεσμα την εμφανίσει μιας πληθώρας σχεδιαστικών μεθοδολογιών Χρειάζεται μια ποιο ενοποιημένη προσέγγιση στον σχεδιασμό τους Μια καλά οργανωμένη σχεδιαστική μεθοδολογία πρέπει να ορίζει τις προδιαγραφές του συστήματος σε υψηλό επίπεδο αφαιρετικότητας και μετά να ασχολείται με την υλοποίησή του
Platform based design Επιτρέπει την κατάτμηση του σχεδιασμού σε ένα μέρος βημάτων παρόμοιας φύσης Αποκρύπτει τις περιττές λεπτομέρειες της υλοποίησης και συγκεντρώνει τις απαραίτητες παραμέτρους σε ένα αφαιρετικό μοντέλο για να περιορίσει τις σχεδιαστικές επιλογές σε ένα σετ από ορισμένες πλατφόρμες από τις οποίες μπορεί κάποιος να διαλέξει Αυτές οι πλατφόρμες επιλέγονται από ομάδες συστατικών που υπάρχουν σε βιβλιοθήκες και περιέχουν τα βασικά στοιχεία για την διασύνδεση και για τους μηχανισμούς επικοινωνίας Meet-in-the-middle approach
Metropolis Μέχρι τώρα η διαδικασία του σχεδιασμού συμπεριλαμβάνει μία συλλογή σχεδιαστικών εργαλείων, τα οποία όμως δεν συνδέονται μεταξύ τους Στόχος του metropolis είναι η ενοποίηση των διαφόρων εργαλείων σε μια κοινή βάση
Αφήνει σχετικά ελεύθερο των σχεδιαστή αν επιλέξει τον μηχανισμό για την περιγραφή των προδιαγραφών του συστήματος (MoCs) Χρησιμοποιεί ένα μοναδικό μετα-μοντέλο για να αναπαραστήσει και το ενσωματωμένο σύστημα αλλά και ορισμένα χαρακτηριστικά του περιβάλλοντος του Διαχωρίζει ορισμένες έννοιες όπως Επεξεργασία και επικοινωνία γιατί η ανάλυση της επεξεργασίας μπορεί να γίνει με το χέρι, με compilation, με scheduling ή με πιο σύνθετες τεχνικές ενώ η ανάλυση της επικοινωνίας γίνεται χρησιμοποιώντας κάποια patterns Λειτουργικότητας και αρχιτεκτονικής γιατί ορίζονται ανεξάρτητα και, συνήθως αφού οριστεί η πρώτη αναλύεται σε μια συγκεκριμένη αρχιτεκτονική Συμπεριφορά και απόδοση όπως latency, throughput, power Αυτοί οι διαχωρισμοί έχουν σαν αποτέλεσμα την καλύτερη επαναχρησιμότητα των μοντέλων καθώς δεν συσχετίζουν ανεξάρτητες μεταξύ τους έννοιες
Meta-model Είναι μια γλώσσα για των καθορισμό δικτύων συγχρόνων αντικειμένων, που δρουν σειριακά Μια ομάδα τέτοιων δικτύων μπορεί να αναπαραστήσει όλες τις παραμέτρους ενός συστήματος Για τον προσδιορισμό των προδιαγραφών ενός συστήματος χρειάζεται να οριστούν οι ενέργειες του συστήματος και οι περιορισμοί του Η συμπεριφορά του συστήματος μπορεί να οριστεί ως την ταυτόχρονη ύπαρξη μιας ακολουθίας ενεργειών. Κάποιες ενέργειες μπορεί να ακολουθούν άλλες είναι να συμβαίνουν παράλληλα με κάποιες άλλες Η περιγραφή των ενεργειών μπορεί να οριστεί με τους όρους της επεξεργασίας, της επικοινωνίας και του συντονισμού Στο μετα-μοντέλο ειδικά αντικείμενα (processes και mediums) χρησιμοποιούνται για να περιγράψουν την επεξεργασία και τη επικοινωνία ενώ οι schedulers χρησιμοποιούνται για τον συντονισμό Όταν μια ενέργεια συμβαίνει δημιουργεί ένα κόστος. Κόστη για μια ομάδα ενεργειών μπορεί να υποκύπτουν σε κάποιους περιορισμούς Το μετα-μοντέλο έχει μηχανισμούς για την ποσοτικοποίηση αυτών των κοστών που συσχετίζονται με τις ενέργειες, καθώς και για να ορίσει τους περιορισμούς σε αυτές τις ποσότητες
Λειτουργικό μοντέλο Η λειτουργία ενός συστήματος ορίζεται σαν μια ομάδα αντικειμένων που ενεργούν ταυτόχρονα ενώ επικοινωνούν μεταξύ τους (process) Κάθε process στο μετα-μοντέλο συσχετίζεται με ένα αριθμό συριακών προγραμμάτων (Threads) Κάθε process ορίζει ορισμένα ports για την διαδικασία της επικοινωνίας Κάθε port ορίζει ένα Interface το οποίο ορίζει τους μηχανισμούς με τους οποίους θα συντελεστεί η επικοινωνία Γενικώς μπορεί να υπάρχουν πολλές υλοποιήσεις για κάθε interface (media) Αυτός ο μηχανισμός επιτρέπει τον διαχωρισμό της επεξεργαστικής διαδικασίας από την διαδικασία της επικοινωνίας
Μοντελοποίηση περιορισμών Υπάρχουν δύο είδη περιορισμών που απαιτούν διαφορετικό τρόπο αναπαράστασης λόγω των διαφορετικών τους χαρακτηριστικών Περιορισμοί συντονισμού, που αναπαρίστανται με την linear temporal logic (LTL) Ποσοτικοί περιορισμοί που αναπαρίστανται με την Logic of constraints (LOC)
Αρχιτεκτονικό μοντέλο Τα αρχιτεκτονικά μοντέλα διαχωρίζονται από δύο πτυχές Την λειτουργικότητα που είναι ικανά να υλοποιήσουν Την αποδοτικότητα της υλοποίησης Στο μετα-μοντέλο το πρώτο ορίζεται σαν ένα σύνολο από services που μπορεί να προσφέρει μια αρχιτεκτονική στο λειτουργικό μοντέλο Για να αναπαρασταθεί η αποδοτικότητας μιας υλοποίησης χρειάζεται να μοντελοποιηθούν τα κόστη κάθε service Για να γίνει αυτό κάθε service αναλύεται σε μια ακολουθία από γεγονότα και στην συνέχεια ανατίθεται σε κάθε γεγονός μια τιμή που αναπαριστά το κόστος αυτού του γεγονότος Αυτή η ανάλυση των services σε ακολουθία γεγονότων γίνεται χρησιμοποιώντας δίκτυα από processes και media, όπως και στο λειτουργικό μοντέλο
Mapping Για να εκτιμήσουμε την απόδοση μιας υλοποίησης το λειτουργικό μοντέλο πρέπει να αντιστοιχηθεί στο αρχιτεκτονικό μοντέλο Στο μετα-μοντέλο αυτό είναι δυνατόν να γίνει χωρίς να αλλάξουν τα δύο μοντέλα αλλά να δημιουργηθεί ένα καινούργιο το οποίο να τα περιέχει και να τα συσχετίζει συγχρονίζοντας τα γεγονότα μεταξύ τους Το παραπάνω ονομάζεται δίκτυο αντιστοιχίσεις και μπορεί να θεωρηθεί σαν ένα στρώμα πάνω από το λειτουργικό και αρχιτεκτονικό
Στο λειτουργικό μοντέλο οι εκτελέσεις ορίζουν μια ακολουθία γεγονότων για κάθε process, αλλά συνήθως επιτρέπουν την παρεμβολή αυτών των ακολουθιών μεταξύ τους καθώς ο σχετικός χρόνος εκτέλεσης τους δεν είναι καθορισμένος Στο αρχιτεκτονικό μοντέλο οι εκτελέσεις ορίζουν κάθε service σαν μια χρονική ακολουθία γεγονότων αλλά δεν ορίζουν την σειρά με την οποία εκτελούνται τα services ούτε σε ποια δεδομένα Η αντιστοίχηση εξαλείφει όλες τις εκτελέσεις εκτός από αυτές στις οποίες τα γεγονότα που πρέπει να συγχρονιστούν εμφανίζονται πάντα ταυτόχρονα Έτσι οι υπόλοιπες εκτελέσεις αναπαριστούν χρονικές ακολουθίες γεγονότων των συγχρόνων processes Στο παράδειγμα που ακολουθεί ο συγχρονισμός επιτυγχάνεται χρησιμοποιώντας τους κατάλληλους περιορισμούς
Εργαλεία του Metropolis Προσομοίωση Η επαλήθευση ενός συστήματος γίνεται προσομοιώνοντας την αντίδραση του σε μια σειρά εισόδων Ο μη ντετερμινισμός ορισμένων συστημάτων όμως εγείρει διάφορα προβλήματα καθώς δεν υπάρχει μια μοναδική σωστή αντίδραση Στο metropolis ο χρήστης διαλέγει ποια είναι η σωστή αντίδραση του συστήματος (διαφορετικοί στόχοι στα διαφορετικά επίπεδα σχεδιασμού) Στην αρχή ο αλγόριθμος προσομοίωσης βελτιστοποιεί τον χρόνο προσομοίωσης για να αποκαλύψει τα πιο χτυπητά λάθη Στην συνέχεια η σχεδίαση ελέγχεται πιο προσεχτικά προσομοιώνοντας όσα περισσότερα σενάρια γίνεται για να πετύχουμε ένα αποδεκτό ποσοστό εμπιστοσύνης ότι ο σχεδιασμός δεν εμπεριέχει λάθη
Σύνθεση Χρησιμοποιεί μια αυτοματοποιημένη τεχνική σύνθεσης, που ονομάζεται quasi-static scheduling Προγραμματίζει ταυτόχρονες προδιαγραφές για τους υπολογιστικούς πόρους έτσι ώστε να παρέχεται μερικώς παραλληλισμός Θεωρεί το σύστημα ως μια ομάδα παράλληλων διεργασιών που επικοινωνούν μεταξύ τους μέσω ενός μηχανισμού FIFIO και δημιουργεί μια ομάδα εργασιών που είναι πλήρως στατικά χρονοπρογραμματισμένη Μια εργασία συνήθως προκύπτει από την συγχώνευση μερών διαφόρων διεργασιών που έχουν λιγότερο παραλληλισμό από τος αρχικές προδιαγραφές
Picture-in-Picture παράδειγμα σχεδιασμού Είναι μέρος ενός ψηφιακού set-top-box Δίνει την δυνατότητα σε ένα χρήστη να παρακολουθεί ένα κανάλι ενώ παράλληλα έχει ανοιχτό σε ένα μικρότερο παράθυρο της οθόνης ένα δεύτερο κανάλι Ο χρήστης έχει την δυνατότητα να ρυθμίσει διάφορες παραμέτρους (μέγεθος, frame color, frame size, position) και στα δύο κανάλια
Λειτουργικό μοντέλο
Ο συρμός αποκωδικοποιείται από το TS DEMUX που συγχρονίζει τα πακέτα και τα διαχωρίζει ανάλογα σε ποιο κανάλι ανήκουν Ο αποκωδιποιημένος συρμός επεξεργάζεται από το PES_PARSER που διαλέγει το κύριο και δευτερεύον κανάλι ανάλογα με τις επιλογές του χρήστη Κάθε κανάλι αποκωδικοποιείται ξανά από τον MPEG DECODER Τέλος ο JUGGLER εμφανίζει τα δύο κανάλια στην οθόνη ανάλογα με τις ρυθμίσει του χρήστη
Αρχιτεκτονικό μοντέλο