Υπολογιστικά μοντέλα (MoC) για SoC
Γενικά Ένα μοντέλο είναι μια αφαιρετική αναπαράσταση ενός πραγματικού συστήματος Ένα MoC (model of computation) καθορίζει πώς μια νέα κατάσταση προέρχεται από μια παλιότερη, ποιες λειτουργίες/ενέργιες παράγουν αυτή τι νέα κατάσταση, και πώς μια κατάσταση διαδίδεται από τις διάφορες λειτουργίες Κάθε λειτουργία μπορεί να περιέχει ακανόνιστη υπολογιστική πολυπλοκότητα
Εξέλιξη των μοντέλων Τα πρώτα μοντέλα (-1960) ασχολούνταν με το ερώτημα τι είναι υπολογίσιμο; Δεν υπήρχαν φυσικοί περιορισμοί (ιδανικός υπολογιστής) Turing machines, FSM (finite state machine), PRAMs, logic circuits 1960-1970 Τι είναι λογικό να υπολογιστή σε έναν πραγματικό υπολογιστή; Προσπαθούσαν να αναλύσουν την πολυπλοκότητα των προβλημάτων (P,NP hard, Order)
1970-1980 Υπολογιστικά μοντέλα για VLSI Ποια είναι η ελάχιστη επιφάνεια ενός κυκλώματος που εκτελεί μια συγκεκριμένη λειτουργία; Ποιος είναι ο ελάχιστος χρόνος; Η έμφαση στράφηκε προς την αρχιτεκτονική του συστήματος (RTL) 1980-1990 Με ισχυρότερους υπολογιστές το ενδιαφέρων στράφηκε στον παραλληλισμό των διεργασιών σε επίπεδο εφαρμογής Petri nets, communicating sequential processes (CSP), synchronous dataflow (SDF), Kahn process networks (KPN), statecharts Παρουσιάζουν μια τυπική αναπαράσταση της υπολογιστική διαδικασίας χωρίς όμως μεγάλη συσχέτιση με τα φυσικά χαρακτηριστικά του συστήματος
Κατηγοριοποίηση των MoCs Τα κριτήρια για των διαχωρισμό των MoCs είναι πώς μια κατάσταση ενημερώνεται (synchronous/asynchronous) και πως διαδίδεται (timed/untimed)
Timed/Untimed Σε ένα timed μοντέλο οι αναφορά τον χρόνο βασίζεται στα φυσικά χαρακτηριστικά των στοιχείων Ο χρόνος γίνεται η αναφορά για όλες τις υπολογιστικές ενέργειες που μπορούν να οριστούν και να μετρηθούν Η διαδικασία του καθορισμού των σχεδιαστικών στοιχείων σε ένα timed σύστημα υπονοεί σύνδεση με πραγματικούς πόρους με χρονικές καθυστερήσεις Άρα τα στοιχειά σε τέτοια MoCs βασίζονται στην φυσική σχεδίαση, απαιτώντας επιφάνεια και χώρο για να εκτελεστούν Σε ένα untimed μοντέλο υπάρχει μόνο η έννοια της λογικής ακολουθίας (κάποια γεγονότα πρέπει να συμβούνε πριν κάποια άλλα, ενώ μερικά μπορούν αν συμβαίνουν παράλληλα με κάποια άλλα) Οι ενημερώσεις των καταστάσεων ξεκινούν είτε από ένα κοινό συμβάν που ενεργεί σε όλα τα στοιχεία είτε σε ένα τοπικό συμβάν που ενεργεί σε ένα μεμονωμένο στοιχείο Σε κάθε περίπτωση τα αποτελέσματα της ενημέρωσης ή της διάδοσης των καταστάσεων γίνονται εμφανείς ακαριαία Δεν υπάρχει καμία σύνδεση μεταξύ των στοιχείων του μοντέλου με τα φυσικά στοιχεία τα οποία χρειάζονται για την υλοποίηση της επιθυμητής συμπεριφορά του συστήματος
FSM (finite state machines) Synchronous/timed Αποτελούνται από μερικές καταστάσεις και από μεταβάσεις μεταξύ των καταστάσεων Η μετάβαση μεταξύ των καταστάσεων γίνεται με την βοήθεια ενός clock (synchronous)(υπάρχουν και FSM χωρίς clock αλλά δεν χρησιμοποιούνται στην μοντελοποίηση SoC) H νέα κατάσταση καθορίζεται από την παρούσα κατάσταση και τις εκάστοτε εισόδους Η έξοδος του συστήματος καθορίζεται από την παρούσα κατάσταση και τις εισόδους. Συνήθως είναι στενά συνδεδεμένα με την φυσική υλοποίηση του συστήματος (timed) To μειονέκτημα τους είναι ότι δεν είναι εύχρηστα όταν ο αριθμός των καταστάσεων είναι αρκετά μεγάλος
Synchronous Untimed μοντέλα Χρησιμοποιούνται για να μοντελοποιήσουν synchronous reactive συστήματα Σε αυτά ανήκουν real-time συστήματα που έχουν εξωτερικούς realtime περιορισμούς και συστήματα synchronous dataflow (επεξεργάζονται συρμούς από δεδομένα σε περιορισμένο χρόνο (DSP)) Αυτά τα μοντέλα αποτελούνται από διεργασίες ενωμένες με τόξα (arcs) Γεγονότα, που δημιουργούνται από τις διεργασίες, φτάνουν στις επόμενες διεργασίες, οι οποίες και ενεργοποιούνται όταν σε αυτές έχουν φτάσει ένας ορισμένος αριθμός από τέτοια γεγονότα Τα γεγονότα επεξεργάζονται με αυστηρή σειρά Statecharts
Asynchronous/Untimed μοντέλα Petri nets, CPSs, KPNs Επιτρέπουν την τυπική περιγραφή της συμπεριφοράς του συστήματος και είναι αρκετά ευέλικτα για να μοντελοποιήσουν non-deterministic χρόνους εκτέλεσης Δεν έχουν καμία σχέση είτε με εξωτερικούς χρονικούς περιορισμούς είτε με τους χρόνους εκτέλεσης των στοιχείων του συστήματος
Petri nets. Ένας υπολογισμός ορίζεται σαν ένα σύνολο χώρων με μεταβάσεις μεταξύ αυτών Κουπόνια (tokens) μετακινούνται από ένα χώρο στον άλλο μέσω μιας μετάβασης όταν αυτή η μετάβαση ενεργοποιηθεί Μια μετάβαση ενεργοποιείται όταν υπάρχει ένας ορισμένος αριθμός κουπονιών στην είσοδό της, και αυτό σηματοδοτεί την αλλαγή της κατάστασης του μοντέλου Ο μεγάλος αριθμός κουπονιών εξασφαλίζει την δυνατότητα μοντελοποίησης του παραλληλισμού των διεργασιών Ένα petri net συνήθως μοντελοποιεί την αλληλεπίδραση μεταξύ παράλληλων συστημάτων CSP. Παρόμοια λογική με τα petri nets. Χρησιμοποιείται σαν το μοντέλο για τον παραλληλισμό στην γλώσσα Ada KPN. Είναι μια στατική διασύνδεση των διεργασιών που επικοινωνούν μέσα από άπειρης χωρητικότητας κανάλια Χρησιμοποιείται όταν πρέπει να εξασφαλιστεί η deadlock-free εκτέλεση των παράλληλων διεργασιών
Κατηγοριοποίηση βασισμένη στην εφαρμοσιμότητα στην σχεδίαση υπολογιστικών συστημάτων
MoCs και μοντέλα υπολογιστών Η μοντελοποίηση των υπολογιστών μπορεί να χωριστεί σε 3 κομμάτια MoCs Computer artifacts Compute design tools Ένα τυπικό MoC έχει συνήθως μαθηματική βάση Επιτρέπει τον χειρισμό της αναπαράστασης του συστήματος καθαρά με μαθηματικό τρόπο Υπονοεί τέλειο συγχρονισμό, χρόνους εκτέλεσης και επικοινωνίας Καθώς δεν υπάρχει σύνδεση με τους φυσικούς πόρους, δεν ασχολείται με το πώς οι διάφορες διεργασίες θα προγραμματιστούν για εκτέλεση ή πως θα μοιραστούν τους κοινούς πόρους του συστήματος
Computer artifacts Είναι τα αντικείμενα της αρχιτεκτονική των υπολογιστών Περιλαμβάνουν hardware, software ή και τα δύο Ασχολούνται με την δημιουργία μοντέλων που να περιέχουν την ουσία του δυνατού φυσικού σχεδιασμού (από στοιχεία με σθενή σύνδεση στο φυσικό επίπεδο) Μπορεί να περιέχουν διάφορους τύπους επεξεργαστών, σχεδιαστικών στοιχείων όπως caches, shared memory busses, ή και οργανωτικών εννοιών όπως distributed memory networks Αποτελούν στην ουσία μοντέλα υπολογιστών καθώς αναπαριστούν τάξεις υπολογιστικών στοιχείων και όχι συγκεκριμένων σχεδιαστικών υλοποιήσεων
Design tools Τα σχεδιαστικά εργαλεία είναι προγράμματα που βοηθούν στην κατασκευήν συγκεκριμένων συστημάτων καθώς και στην συγκεκριμενοποίηση των computer artifacts Μπορεί να έχουν μαθηματική βάση ή να βασίζονται σε ευριστικές μεθόδους Χρησιμοποιούνται και για να μεταφράζουν περιγραφές της hardware σχεδίασης από μια μορφή αναπαράστασης σε μια άλλη Επιτρέπουν τον χειρισμό των φυσικών στοιχείων σε ένα εκτελέσιμο μοντέλο παρά τον χειρισμό του ίδιου του συστήματος
MESH Είναι ένα περιβάλλον μοντελοποίησης για hardware και software (Modeling Environment for Hardware and Software) Αναγνωρίζει ότι όλα τα υπολογιστικά συστήματα μοντελοποιούνται τουλάχιστον με 2 μοντέλα Το λογικό μοντέλο που εξηγεί τις προδιαγραφές του συστήματος και περιέχει τις διεργασίες και την λογική ακολουθία αυτών που απαιτούνται Το φυσικό μοντέλο του πραγματικού συστήματος που περιέχει τους φυσικούς πόρους που απαιτούνται για την υλοποίηση των παραπάνω διεργασιών Προσπαθεί να ενοποιήσει τα δύο παραπάνω μοντέλα Βασίζεται στην αρχή του frequency interleaving
Programmable Heterogeneous Multiprocessors Στον σχεδιασμό VLSI συστημάτων υπάρχουν δύο αφαιρετικές σχεδιαστικές μεθοδολογίες RTL (Register-Transfer-Level) που συνήθως χρησιμοποιείται για την σύνθεση FSM μηχανών ISAs (Instruction set architectures) που παρέχουν ένα πιο δυναμικό, data dependent software προγραμματισμό Και οι δύο παραπάνω μεθοδολογίες δεν είναι ικανοποιητικές για τον σχεδιασμό ενός SoC H μεθοδολογία PHM επικεντρώνεται στο γεγονός ότι όχι μόνο μεμονωμένοι επεξεργαστικοί πόροι πρέπει να θεωρούνται programmable αλλά ολόκληρο το σύστημα/chip σαν οντότητα Scheduling και προγραμματισμός ομάδων επεξεργαστικών πόρων πρέπει να υπάρχουν Η ουσία είναι η ύπαρξη μιας βάσης για την κατανόηση του πως ο προγραμματισμός και το scheduling επηρεάζουν και το inter- αλλά και το intra- processing μοίρασμα των πόρων του συστήματος
Η απόδοση του συστήματος μπορεί να θεωρηθεί ως η τροχιά των μεταβάσεων των λογικών καταστάσεων του συστήματος στο πέρασμα του πραγματικού χρόνου Οι παράγοντες που επηρεάζουν αυτή την τροχιά ενός PHM συστήματος περιλαμβάνουν τον αριθμό των επεξεργαστικών πόρων, τα ιδιαίτερα χαρακτηριστικά τους, ο τρόπος επικοινωνίας, ο τρόπος του software mapping, οι intra- και interresource scheduling αποφάσεις. Για παράδειγμα η πρόσθεση ενός επιπλέον software νήματος ή επεξεργαστικού πόρου μπορεί να αλλάξει τελείως την τροχιά του συστήματος
Μεθοδολογίες προσομοίωσης Οι μεθοδολογίες προσομοίωσης μπορούν να χωριστούν σε τρεις κατηγορίες ανάλογα με τον τρόπο που αλλάζουν οι καταστάσεις του συστήματος σε σχέση με την αναπαράσταση του φυσικού χρόνου Συνεχούς χρόνου (CT) Διακριτού χρόνου (DT) Διακριτών γεγονότων (DE)
Συνεχούς χρόνου Σε συνεχούς χρόνου μοντελοποιήσεις κάθε κατάσταση μεταβάλλεται σε κάθε χτύπημα του ρολογιού Αυτό το χτύπημα προσεγγίζει τις συνεχείς αλλαγές στα μοντέλα του πραγματικού κόσμου με διακριτά διαστήματα έτσι ώστε ένας ψηφιακός υπολογιστής να μπορεί να υπολογίσει ολοκληρώματα και διαφορικά Όσο μεγαλύτερο είναι το διάστημα τόσο μεγαλύτερο είναι και το λάθος στους υπολογισμούς Όσο το διάστημα τείνει στο μηδέν τόσο και το λάθος που εισέρχεται λόγω της παρουσίας του διαστήματος τείνει και αυτό στο μηδέν
Διακριτού χρόνου Υπάρχει η έννοια του χρονικού διαστήματος μέσα στο οποίο τίποτα δεν συμβαίνει στο σύστημα που μοντελοποιείται Άρα ο χρόνος είναι διακριτός και όχι συνεχείς Για παράδειγμα όταν όλοι οι υπολογισμοί των καταστάσεων ενός DSP συστήματος γίνεται σε συγκεκριμένα χρονικά διαστήματα η μοντελοποίηση διακριτού χρόνου δεν δημιουργεί λάθη Οι μοντελοποίηση διακριτού χρόνου είναι η κατάλληλη για την εκτέλεση σύγχρονων MoCs καθώς αυτά εμπεριέχουν την έννοια ενός ιδανικού ρολογιού για τον συγχρονισμό των διεργασιών
Διακριτών γεγονότων Διαφέρει από τις άλλες δύο στο ότι δεν υπολογίζονται όλες οι καταστάσεις σε κάθε χρονική στιγμή της προσομοίωσης, άλλα μόνο αυτές που έχουν «ενδιαφέρων» Αυτό επιτυγχάνεται με την σύνδεση της συνάρτησης του χρόνου με την συνάρτηση της μεταβολής των καταστάσεων Έτσι ο χρόνος προσομοίωσης μειώνεται κατά πολύ καθώς καταστάσεις που είναι γνωστό ότι δεν θα αλλάξουν δεν χρειάζεται να υπολογιστούν ξανά Για παράδειγμα σε μια gate-level προσομοίωση μόνο ένα μικρό μέρος των πυλών μεταβάλλουν τις εξόδους τους κάθε χρονική περίοδο
Layered Προσομοίωση Προσπαθεί να συσχετίσει την λογική και την φυσική σειρά των γεγονότων Κάθε γεγονός έχει μια ετικέτα και μια τιμή e = (t, v) όπου v είναι το αποτέλεσμα του υπολογισμού t είναι ο χρόνος, το σημείο, δηλαδή, στην ακολουθία των γεγονότων στο οποίο υπολογίστηκε η τιμή Τα νήματα (threads) ορίζονται σαν μια σειρά από Ν γεγονότα Th ={e1,..., en} όπου η σειρά καθορίζεται από τις ετικέτες των γεγονότων. Δηλαδή ei < ej αν T(ei) < T(ej), όπου T(ex) είναι η ετικέτα του γεγονότος ex
Τα υπολογιστικά συστήματα περιέχουν δύο είδη ακολουθιών γεγονότων Τη λογική ακολουθία Thl Την φυσική ακολουθία Thp Στην λογική ακολουθία ένα γεγονός με ετικέτα μικρότερη από ένα άλλο δεν σημαίνει ότι στον πραγματικό χρόνο αυτό θα συμβεί πριν από το άλλο, κάτι που συμβαίνει στην φυσική ακολουθία Στην λογική ακολουθία η αλλαγή της σειράς δύο γεγονότων επιτρέπεται αρκεί να μην παραβαίνει τις εξαρτήσεις των δεδομένων
Ανάλυση των γεγονότων Ο τρόπος με τον οποίων η λογική ακολουθία αναλύεται στη λογική επιρεάζει τον σχεδιασμό του συστήματος Μια λογική ακολουθία μπορεί να είναι πλήρως ή μερικώς διατεταγμένη (η φυσική είναι πάντα πλήρως) Μερικώς διατεταγμένη σημαίνει ότι υπάρχουν τουλάχιστον δύο ετικέτες t και t για τις οποίες δεν γνωρίζουμε αν t<t ή t>t Άρα η ανάλυση δύο τέτοιων γεγονότων (ea,eb) στην φυσική ακολουθία μπορεί να είναι Th = {..., ea,eb,...} Th = {..., eb,ea,...} Ή μπορεί τα δύο αυτά να συμβαίνουν παράλληλα
Αν η ακολουθία ενός νήματος Τh ορίζεται σε ένα υψηλού επιπέδου μοντέλο τότε τα γεγονότα τις ακολουθίας ορίζονται σαν Macro καθώς αυτά εμπεριέχουν πολύπλοκούς υπολογισμούς Αυτά τα Macro γεγονότα εμπεριέχουν μια δικιά τους ακολουθία γεγονότων τα οποία ονομάζονται Micro και εμπεριέχουν ποιο πολύπλοκους υπολογισμούς Έτσι μια ακολουθία Th ={e1,e2,.., ei,...} από macro γεγονότα μπορεί να αναλυθεί σε μια ακολουθία Th {(= e11,e12,...,e1j,...), (e21,e22,...,e2j,...),...} από Micro γεγονότα, η οποία μπορεί επιπλέον να αναλυθεί ακόμα παραπέρα σε μια ακολουθία που περιέχει γεγονότα τα οποία υπονοούν τις πιο βασικές λειτουργίες Όταν μια λογική ακολουθία έχει αναλυθεί με αυτόν τον τρόπο στις πιο βασικές λειτουργίες τότε μπορεί να αντικατασταθεί από την φυσική ακολουθία και έτσι να οδηγηθούμε στην σύνθεση του συστήματος
Ο ρόλος του scheduling To MESH έχει δύο είδη scheduling Το scheduling των φυσικών γεγονότων στον πραγματικό διακριτό χρόνο της προσομοίωσης Το scheduling των λογικών γεγονότων όπως αυτά αλληλεπιδρούν μεταξύ τους Η σχεδίαση σύγχρονου πολυνηματικού software χρειάζεται το scheduling των λογικών νημάτων πάνω σε παράλληλο hardware Αν ένα σύστημα έχει Μ λογικά νήματα που εκτελούνται σε R φυσικούς πόρους (Μ>R) τότε ορίζουμε την ακολουθία των γεγονότων ως όπου Thpr ορίζει την φυσική ακολουθία γεγονότων στον πόρο r
Επίσης ορίζουμε σαν ThLrm το λογικό νήμα m που αντιστοιχεί στο πόρο r Αυτά τα νήματα αναθέτονται από τον scheduler πόρων Upr στα φυσικά νήματα Thpr η εκάστοτε κατάσταση του συστήματος και η υπολογιστική πολυπλοκότητα των διεργασιών που συντελείτε μεταξύ δύο καταστάσεων σε μια λογική ακολουθία καθορίζει την αντιστοίχηση των γεγονότων στους διάφορους φυσικούς πόρους του συστήματος