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

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

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

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

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

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

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

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

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

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

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

Η ιεραρχία της μνήμης

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

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση

Κεφάλαιο 5. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 2. Σημείωση

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

Προγραμματισμός συστημάτων UNIX/POSIX. Θέμα επιλεγμένο από τους φοιτητές: Προγραμματιστικές τεχνικές που στοχεύουν σε επιδόσεις

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΜΝΗΜΕΣ ΤΥΧΑΙΑΣ ΠΡΟΣΠΕΛΑΣΗΣ (Static and Dynamic RAMs). ΔΙΑΡΘΡΩΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ

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

Αρχιτεκτονική-ΙI Ενότητα 4 :

Θέματα Μεταγλωττιστών

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Ζητήµατα Απόδοσης. Ιεραρχία Μνήµης. Αναγκαιότητα για Ιεραρχία Μνήµης. Processor-DRAM Gap (latency) Ε-85: Ειδικά Θέµατα Λογισµικού

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

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις:

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

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

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

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

Δομή Ηλεκτρονικού υπολογιστή

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

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

Ασκήσεις Caches

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

ΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789

Υλοποίηση DMA για υπολογιστικό σύστημα με Scratch pad μνήμη και βελτιστοποιημένη υλοποίηση εφαρμογών

Cach O p i timisati tions

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

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

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

Μάθημα 8: Διαχείριση Μνήμης

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

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

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

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

Ασκήσεις Caches

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

Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών

Άσκηση 1η. Θεωρήστε ένα σύστημα μνήμης με μία cache: 4 way set associative μεγέθους 256ΚΒ,

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Ασκήσεις Caches. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών

Ο Σ ο β ι ε τ ι κ ό ς Κ ρ υ π τ α λ γ ό ρ ι θ μ ο ς G O S T

ΠΛΕ- 027 Μικροεπεξεργαστές

Προγραμματισμός Συστημάτων Υψηλών Επιδόσεων (ΗΥ421) Εργασία Εξαμήνου

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα

ΑΕΠΠ Ερωτήσεις θεωρίας

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

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

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

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

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

ΘΕΜΑ : ΗΛΕΚΤΡΟΝΙΚΗ ΜΝΗΜΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΕΣ. ΔΙΑΡΚΕΙΑ: 1 περίοδος

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

(advanced_ca, ακ. έτος Cache Optimisations

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο

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

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

Εισαγωγή στην Πληροφορική

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Ενότητα 1η. Εισαγωγή στην Πληροφορική

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

Δυαδικό Σύστημα Αρίθμησης

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

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

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

Τ.Ε.Ι. ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΥΝΕΡΓΑΣΤΗΚΑΝ ΡΟΚΑ ΑΦΡΟΔΙΤΗ ΣΩΤΗΡΑΚΟΥ ΣΤΑΜΑΤΙΑ ΦΕΒΡΟΥΑΡΙΟΣ 2006

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

Ελαχιστοποίηση της Καταναλισκόμενης Ενέργειας σε Φορητές Συσκευές

Παραλληλισμός σε επίπεδο εντολών

ΛΟΓΙΣΜΙΚΟ (software)

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

1)Σε ένα πυκνωτή, η σχέση μεταξύ φορτίου Q και τάσης V μεταξύ των οπλισμών του, απεικονίζεται στο διάγραμμα.

Transcript:

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

Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή. Επίσης μειώνεται αρκετά ο χρόνος ελέγχου και επαλήθευσης του ολοκληρωμένου. Οδηγούμαστε σε καλύτερη χρήση του χώρου του πυριτίου. Δηλαδή μπορεί να χρησιμοποιηθεί για την αύξηση του bandwidth μεταξύ των επεξεργαστών αντί για την ολοκλήρωση τεχνικών επιτάχυνσης ενός μονού αλλά σύνθετου επεξεργαστή (π.χ.register renaming, prediction)

Μπορεί να χρησιμοποιηθεί για παραλληλισμό σε επίπεδο βρόχου. Στην αντίθετη περίπτωση ο μονός επεξεργαστής χρειάζεται να μετατρέψει το παραλληλισμό σε επίπεδο εντολής κατά την διάρκεια εκτέλεσης του προγράμματος κάτι το οποίο οδηγεί στην χρήση σύνθετων και ενεργειακά απαιτητικών αλγορίθμων. Η αρχιτεκτονική αυτή είναι καταλληλότερη για διαχείριση της κατανάλωσης ισχύος με επιλεκτική χρήση του κατάλληλου επεξεργαστή από τους πολλούς του chip.

Κίνητρο και σκοπός Εξ αιτίας της φύσης των περισσοτέρων εφαρμογών (ήχος, εικόνα, ταινία) παρατηρείται αρκετά συχνή επικοινωνία του επεξεργαστή με την μνήμη. Η κατανάλωση σε αυτή μπορεί να φτάνει μέχρι και 90% της συνολικής. Υπάρχουν δύο τρόποι να μειωθεί :με κατάλληλη οργάνωση και ιεράρχηση της μνήμης και με βελτιστοποίηση του software των εφαρμογών που τρέχουν στο σύστημα

Αρχιτεκτονικές μνήμης Τα embedded συστήματα συνήθως δημιουργούνται για κάποια συγκεκριμένη εφαρμογή της οποίας η ανάλυση μας καθοδηγεί στον σχεδιασμό της αρχιτεκτονικής. Π.χ. μέρη που δεν χρειάζονται για την εκτέλεση της συγκεκριμένης εφαρμογής μπορούν να παραληφθούν Η αρχιτεκτονική της μνήμης μπορεί να σχεδιαστεί κοιτώντας τις απαιτήσεις που υπάρχουν και να επιλεχθεί η κατάλληλη (cache size, fifo buffers, multi-level cache)

Τύποι αρχιτεκτονικών μνήμης Θα περιγράφουν οι υπάρχουσες αρχιτεκτονικές οι οποίες μπορούν να χρησιμοποιηθούν σε MPSoC συστήματα. Θα αναλυθούν μη συμβατικές αρχιτεκτονικές οι οποίες μπορούν να υλοποιηθούν με σκοπό την αύξηση των χαρακτηριστικών ενός MPSoC. Τα είδη των αρχιτεκτονικών μνήμης που μπορούν να χρησιμοποιηθούν είναι αρκετά οπότε αποτελεί ανάγκη η αυτοματοποίηση/ ημιαυτοματοποίηση της επιλογής του κατάλληλου. Η διαχείριση των κομματιών του συστήματος μνήμης γίνεται με αλγορίθμους υλοποιημένους: σε hardware, σε software ή υβριδικούς.

Κρυφή μνήμη (cache) Καθώς τα συστήματα για την εκτέλεση συγκεκριμένων εφαρμογών έχουν γίνει αρκετά μεγάλα έτσι ώστε να αποτελεί ο επεξεργαστής ένα απλό κομμάτι αυτών η ύπαρξη cache μνημών εντολών και δεδομένων σ αυτά θεωρείται δεδομένη. Αρκετές παράμετροι της cache όπως το μήκος του block και οι αλγόριθμοι συσχέτισης μπορούν να βελτιστοποιηθούν ως προς την εκτέλεση κάποιας συγκεκριμένης εφαρμογής

Scratch Pad Memory (SPM) Είναι μνήμη η οποία καταλαμβάνει ένα δικό της χώρο διευθύνσεων βρίσκεται μέσα στο chip και χρησιμοποιεί τους ίδιους δίαυλους διευθύνσεων και δεδομένων με την μνήμη εκτός του chip.

Διαφορά SPM/Cache Η διαφορά της SPM (SRAM) με την cache είναι ότι η πρώτη μπορεί να εγγυηθεί την πρόσβαση στα δεδομένα της μέσα σε ένα κύκλο ενώ ο χρόνος πρόσβασης των δεδομένων της δεύτερης εξαρτάται από το αν θα γίνει η όχι cache miss. Ουσιαστικά στην cache με την υλοποίηση κάποιου αλγορίθμου αυτόματα τα δεδομένα γράφονται και σβήνονται ενώ στην SPM τα κρίσιμα δεδομένα όσον αφορά την εκτέλεση μίας εφαρμογής προαποφασίζεται πια είναι και γράφονται σε αυτή.

Λειτουργία συστήματος μνήμης με Cache SRAM - DRAM Οι δίαυλοι δεδομένων και διευθύνσεων είναι συνδεδεμένοι και με τις τρεις μνήμες. Σε περίπτωση που τα δεδομένα τα οποία ζητήθηκαν από τον επεξεργαστή δεν βρίσκονται στις δυο εσωτερικές μνήμες ειδοποιείται ο EMI(S_HIT και C_HIT) και μεταφέρει το block δεδομένων που ζητήθηκε από την DRAM στην cache

Χώρος διευθύνσεων και χρόνος προσπέλασης του συστήματος μνήμης Οι διευθύνσεις 0 με Ρ-1 είναι προσπελάσιμες σε ένα κύκλο Στην περίπτωση που μία από τις διευθύνσεις Ρ με Ν-1 δεν υπάρχει στην cache χρειάζονται 50-100 κύκλοι για την μεταφορά του block αυτού στην cache

Παράδειγμα επικερδούς χρήσης ενός τέτοιου συστήματος μνήμης Αποθηκεύουμε τον πίνακα mask στην SPM ενώ κομμάτια του πίνακα source έρχονται και φεύγουν από την cache χωρίς να δημιουργούνται επιπλοκές. Δηλαδή μικροί πίνακες συχνά χρησιμοποιούμενοι αποθηκεύονται στην SPM όταν υπάρχει μεγάλη πιθανότητα εμπλοκής αυτών με άλλους στην cache

DRAM Η ανάλυση του τρόπου λειτουργίας της DRAM και η μελέτη της εφαρμογής που εκτελεί το MPSoC οδηγεί σε αλγορίθμους οι οποίοι επιτυγχάνουν αύξηση της απόδοσης του συστήματος. Η διεύθυνση της DRAM χωρίζεται σε δύο κομμάτια. Στην διεύθυνση γραμμής που αποτελείται από τα MSB και στην διεύθυνση στήλης που αποτελείται από τα LSB. Κατά την εφαρμογή της διεύθυνσης γραμμής ολόκληρη η σελίδα αυτή της μνήμης γράφεται στον page buffer που είναι η cache της DRAM Έτσι οποιαδήποτε προσπέλαση σε διεύθυνση της ίδιας σελίδας είναι αρκετά πιο γρήγορη εκμεταλλευόμενη την συσχέτιση χώρου.

Βελτιστοποιήσεις σύγχρονων DRAM Read-modify-write βελτιστοποίηση είναι μία τεχνική η οποία εκτελεί αρκετά γρήγορα την παραπάνω συνήθη διαδικασία. Hoisting. Είναι μία τεχνική πρόβλεψης και μεταφοράς στον page buffer μίας νέας σελίδας στην οποία καταλήγουν και οι δύο περιπτώσεις ενός branch. Επανατοποθετήσεις δεδομένων που χρησιμοποιούνται ταυτόχρονα στην ίδια σελίδα με σκοπό την εκμετάλλευση του page buffer της DRAM.

Εξελιγμένες αρχιτεκτονικές DRAM Η μνήμη χωρίζεται σε πολλαπλές «τράπεζες» και η κάθε μία έχει τον δικό της page buffer. Έτσι υπάρχει γρήγορη πρόσβαση σε περισσότερες των μία σελίδων. Αυτό οδηγεί στην ανάπτυξη νέων αλγορίθμων οι οποίοι εντοπίζουν και χρησιμοποιούν την συσχέτιση των σελίδων τοποθετώντας αυτές σε διαφορετικές τράπεζες με σκοπό την γρήγορη και ταυτόχρονη πρόσβαση μέσα σε αυτές.

Βελτιστοποίηση παραμέτρων της cache Line size. Αριθμός λέξεων που μεταφέρονται στην cache σε κάθε cache miss. Η βέλτιστη τιμή εξαρτάται από την από τα πρότυπα πρόσβασης δεδομένων στην μνήμη της εφαρμογής. Cache size. Μέγεθος cache το οποίο συνδυάζεται με την συγκεκριμένη αρχιτεκτονική της SPM μνήμης η οποία και θα αναλυθεί

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

Σχεδιασμός DRAM Στο πρώτο σχήμα εικονίζεται μία DRAM με ένα page buffer Στο δεύτερο μία με τρία page buffer Η απαίτηση για ταυτόχρονη χρήση σελίδων μας οδηγεί στην επιλογή του συστήματος της DRAM ( π.χ. αν κατά την διάρκεια εκτέλεσης ενός loop χρειαζόμαστε δεδομένα από δύο διαφορετικά pages ένα σύστημα με δύο page buffers θα οδηγούσε σε αρκετά μεγάλη αύξηση της απόδοσης)

Πολλαπλές SRAMs Ο σχεδιαστής πρέπει να επιλέξει των αριθμό των υπομονάδων μνήμης και τον αριθμό των port κάθε υπομονάδας. Μία μεγάλη SRAM είναι αρκετά αργή και απαιτητική σε ισχύ. Αρκετά μεγάλο κόστος έχει όμως η δημιουργία ενός μεγάλου αριθμού υπομονάδων. Η βέλτιστη λύση είναι κάπου ενδιάμεσα και εξαρτάται από το είδος της εφαρμογής( παραλληλισμός διεργασιών, ταχύτητα) και τις απαιτήσεις που έχει σε μνήμη. Ο χωρισμός σε υπομονάδες μπορεί να γίνει και κάθετα (μία λέξη από κάθε μία) και οριζόντια (μισή λέξη να υπάρχει σε κάθε μία για εφαρμογές με μεγάλο πλάτος λέξης)

Διαχωρισμός χωρικών και χρονικών cache Μία σύγχρονη προσέγγιση της διάρθρωσης της cache είναι η ύπαρξη δύο μνημών που χρησιμοποιούν χωρική και χρονική εξάρτηση αντίστοιχα. Ένας δυναμικός αλγόριθμος πρόβλεψης αποφασίζει για την μεταφορά των block στην χωρική ή χρονική cache. Αναλύσεις έχουν δείξει ότι με την χρήση ενός τέτοιου συστήματος η επικοινωνία με την εξωτερική μνήμη και η κατανάλωση ισχύος μπορούν να μειωθούν σημαντικά.

Σχεδιασμός reconfigurable συστημάτων cache Απαραίτητο για την δημιουργία ενός τέτοιου συστήματος είναι τα ακόλουθα: Κυκλώματα για την δημιουργία μιας επαναδιαμορφοποιήσημης cache τα οποία όμως καταναλώνουν ενέργεια. Κάτι τέτοιο πρέπει να αντισταθμίζεται από την προσαρμοσιμότητα του συστήματος η οποία αντισταθμίζει την ενέργεια που καταναλώνεται Μηχανισμοί ελέγχου που θα αποφασίζουν κάθε πότε θα γίνεται η επαναδιαμορφοποίηση αυτή Αλγόριθμοι και μηχανισμοί που θα αποφασίζουν την βέλτιστη διαμορφοποίηση. Μηχανισμοί οι οποίοι θα εξασφαλίζουν την ομαλή μετάβαση από την μία διαμορφοποίηση στην άλλη

Σχεδιασμός και βελτιστοποίηση compiler για MPSoC Η ύπαρξη πολλών επεξεργαστών και το ενδιαφέρον για την κατανάλωση ισχύος καθιστούν αναγκαία την δημιουργία νέων compiler οι οποίοι θα διαχειρίζονται τις παρακάτω παραμέτρους 1. Παραλληλισμός διεργασιών 2. Χωρική συσχέτιση εντολών και δεδομένων 3. Κατανάλωση ενέργειας και ισχύος 4. Απαιτήσεις μνήμης

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

Προσεγγίσεις βελτιστοποίησης παραλληλισμού Στατικές προσεγγίσεις στις οποίες αναλύεται το πρόβλημα και προτείνεται μία στρατηγική Δυναμικές προσεγγίσεις στις οποίες κατά την διάρκεια εκτέλεσης του προγράμματος παρατηρώντας τα διάφορα χαρακτηριστικά παίρνονται τότε οι αποφάσεις

Optimizing locality Δύο κατηγορίες βελτιστοποιήσεων: 1. Ελαχιστοποίηση της καθυστέρησης μνήμης από τον compiler (μεταφράζει χρησιμοποιώντας φιλικούς για την cache αλγόριθμους) 2. Απόκρυψη της καθυστέρησης μνήμης με αποδοτικούς αλγορίθμους για την διαχείριση της cache σε επίπεδο hardware

Σε φιλικούς για την cache αλγορίθμους οδηγεί η εναλλαγή των βρόχων, η ενοποίηση τους, και το tiling αυτών σε blocks από τον compiler. Ακόμα μπορούν να ενσωματωθούν στον compiler τεχνικές prefetching για blocks που θα χρειαστούν. Αυτό μπορεί να γίνει με απ ευθείας εντολές που θα ενσωματώνoνται στον κώδικα αυτόματα. Μία άλλη τεχνική είναι να αποφασίζει ο compiler κατά την μεταγλώττιση και να δημιουργεί ένα χάρτη της SPM και βάση αυτού να τοποθετούνται σε αυτή τα δεδομένα κατά την έναρξη εκτέλεσης του προγράμματος

Βελτιστοποίηση ενέργειας/ισχύος Ο βέλτιστος αριθμός επεξεργαστών που πρέπει να χρησιμοποιηθούν για την μέγιστη απόδοση είναι διαφορετικός από τον βέλτιστο αριθμό για την βέλτιστη κατανάλωση ισχύος κάτι το οποίο μας οδηγεί σε trade off. Μελέτες για παραλληλισμό έδειξαν ότι η καλύτερη επιλογή είναι να χρησιμοποιηθεί ένας σταθερός αριθμός επεξεργαστών γνωστός από την αρχή για την καλύτερη δυνατή απόδοση.

Στην περίπτωση δυναμικής επιλογής αριθμού επεξεργαστών που χρειάζονται για την εκτέλεση ενός προγράμματος υπάρχει ένα επιπλέον overhead το οποίο οφείλεται στον αλγόριθμο απόφασης. Μελέτες έδειξαν ότι το overhead αυτό ακυρώνει τα οφέλη του προσαρμοστικού παραλληλισμού. Πρέπει να καθορίζεται πολιτική (περιορισμοί) για την ελάχιστη απόδοση και την μέγιστη ενέργεια τους οποίους να ικανοποιεί ο compiler κατά την μεταγλώτιση

Συμπεράσματα Οι υπάρχουσες αρχιτεκτονικές μνήμης και οι υπάρχοντες compilers έχουν δημιουργηθεί για μονολιθικούς επεξεργαστές και με κριτήριο την μέγιστη απόδοση. Χρειάζονται νέες αρχιτεκτονικές μνήμης και νέοι αλγόριθμοι μεταγλώττισης οι οποίοι να επεξεργάζονται και άλλες παραμέτρους για την δημιουργία φορητών MPSoC.