Ετήσια Τεχνική Έκθεση
|
|
- Μόνιμος Ζαχαρίου
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Ετήσια Τεχνική Έκθεση Έτος 2014 ΘΑΛΗΣ Πολυτεχνείο Κρήτης Πλατφόρµα προηγµένων µαθηµατικών µεθόδων και λογισµικού για την επίλυση προβληµάτων πολλαπλών πεδίων (multi physics, multidomain) σε σύγχρονες υπολογιστικές αρχιτεκτονικές: Εφαρµογή σε προβλήµατα Περιβαλλοντικής Μηχανικής και Ιατρικής (MATENVMED- MIS ) Δράση 3.2 ΥΛΟΠΟΙΗΣΗ ΣΕ FPGAs ΚΑΙ ΠΟΛΥΠΥΡΗΝΑ ΣΥΣΤΗΜΑΤΑ (MULTICORES / MANYCORES)
2 2 Πίνακας Περιεχοµένων 1. ΣΚΟΠΟΣ ΧΡΗΣΗ ΜΟΝΤΕΛΟΥ ΠΑΡΑΛΛΗΛΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ OPENCL ΓΙΑ ΣΥΝΘΕΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΩΝ (SILICON OPENCL) ΠΡΏΤΗ ΦΆΣΗ ΤΟΥ SOPENCL... 4 ΔΕΎΤΕΡΗ ΦΆΣΗ ΤΟΥ SOPENCL... 5 INSTRUCTION CLUSTERING... 9 ΒΙΒΛΙΟΓΡΑΦΙΑ... 10
3 3 1. Σκοπός Η έκθεση για το 2014 παρουσιάζει την πρόοδο της Δράσης 3.2 στις πλατφόρµες CPU και FPGA δίδοντας έµφαση στην ανάπτυξη εργαλείων που θα χρησιµοποιηθούν για υλοποίηση των elliptic PDE solvers σε FPGAs. Θα παρουσιάσουµε τις βασικές αρχές, τον σχεδιασµό της αρχιτεκτονικής και την υλοποίηση του εργαλείου λογισµικού SOpenCL, που έχει αναπτυχθεί για τον σχεδιασµό επιταχυντών υλικού (hardware accelerators) από κώδικα OpenCL. H βασική ιδέα του SOpenCL είναι να δώσει την δυνατότητα σε µηχανικούς λογισµικού χωρίς γνώσεις αρχιτεκτονικής και σχεδιασµό υλικού να δηµιουργήσουν τέτοιους επιταχυντές για OpenCL εφαρµογές. Οι επιταχυντές αυτοί µπορούν να ενσωµατωθούν σε ένα σύστηµα που περιέχει ένα Host unit, συνήθως µία CPU γενικού σκοπού, και να λειτουργήσουν όπως και µία GPU επιταχύνοντας δηλ. τµήµατα του κώδικα που έχουν υψηλές απαιτήσεις απόδοσης. Η SOpenCL έχει χρησιµοποιηθεί σε µία ευρεία γκάµα εφαρµογών και µερικές από αυτές θα περιγραφούν σε αυτήν την έκθεση. 2. Χρήση µοντέλου παράλληλου προγραµµατισµού OpenCL για σύνθεση αρχιτεκτονικών (Silicon OpenCL) Σε αυτήν την έκθεση θα περιγράψουµε το SOpenCL, ένα νέο εργαλείο και µεθοδολογία η οποία δηµιουργεί επιταχυντές υλικού (hardware accelerators) που είναι τµήµατα ενός ολόκληρου συστήµατος (System On Chip, SoC), όπως φαίνεται και στην Εικόνα 1. SCP HW ACC Data Path L1 $ Inp.Stream Units L2 $ Out. Stream Units Interconnect Bus Main Memory Εικόνα 1. Το τελικό µας σύστηµα που περιλαµβάνει τον επιταχυντή υλικού (HW ACC) που παράγει η OpenCL και τον κύριο επεξεργαστή (Scalar Processor, SCP). Η OpenCL είναι ένα βιοµηχανικό standard για την δηµιουργία παράλληλων προγραµµάτων µε σκοπό την εκτέλεση σε ετερογενή συστήµατα (heterogeneous systems) [1]. Απαλλάσσει τον προγραµµατιστή από το να γράψει κώδικα για κάθε πιθανή ετερογενή πλατφόρµα και µε το να ασχοληθεί µε τεχνικές λεπτοµέρειες
4 4 χαµηλού επιπέδου (low level details) δίδοντάς του την ευκαιρία να εστιάσει στον ίδιο τον αλγόριθµο και στο πρόβληµα που καλείται να επιλύσει. Έχουµε αναφερθεί λεπτοµερώς στην OpenCL στην έκθεση του MATENVMED για το Υπάρχουν κάποιες σηµαντικές τεχνικές δυσκολίες στον σχεδιασµό και την υλοποίηση του SOpenCL [5]. H OpenCL χρησιµοποιεί παράλληλους πυρήνες (kernels) για να εκφράσει υπολογισµούς σε πολύ χαµηλό επίπεδο (granularity), που είναι το επίπεδο του work-item (ή thread όπως έχουµε δει στην CUDA). Αυτό είναι ιδιαίτερα χρήσιµο γιατί φανερώνει τον παραλληλισµό της εφαρµογής στο χαµηλότερο επίπεδο και διευκολύνει την εκτέλεση του προγράµµατος από CPU και GPU. Παρόλα αυτά, η δηµιουργία επιταχυντών υλικού στο επίπεδο του work-item µπορεί να µην είναι ιδανική λύση λόγω του ότι κάθε τέτοιος επιταχυντής θα κάνει πολύ λίγη δουλειά κάθε φορά που καλείται. Σαν πρώτη φάση, το εργαλείο SOpenCL περιέχει έναν µεταγλωττιστή source-tosource που µεταφράζει τον κώδικα OpenCL σε κώδικα C σε διαφορετικό όµως επίπεδο παραλληλισµού από τον κώδικα OpenCL. Στην συγκεκριµένη περίπτωση ο µεταγλωττιστής µετατρέπει τον κώδικα σε επίπεδο work-group (ή block), έτσι ώστε κάθε κλήση του επιταχυντή να εκτελεί εργασία που να αντιστοιχεί σε ένα workgroup. Η δεύτερη φάση του SOpenCL µετατρέπει τον C κώδικα σε έναν επιταχυντή υλικού σε synthesizable Verilog. Ο επιταχυντής ακολουθεί ένα συγκεκριµένο πρότυπο αρχιτεκτονικής (architectural template) το οποίο παίρνει συγκεκριµένη µορφή ανάλογα µε τις απαιτήσεις απόδοσης του χρήστη και την συγκεκριµένη εφαρµογή που υλοποιείται στην FPGA. H δεύτερη φάση του SOpenCL αποτελείται από µία σειρά από βελτιστοποιήσεις του compiler όπως predication, code slicing και modulo scheduling που εφαρµόζονται διαδοχικά στον κώδικα C. Στο τελικό στάδιο το εργαλείο SOpenCL δηµιουργεί synthesizable Verilog Πρώτη φάση του SOpenCL Για να επιτύχουµε την αποδοτική εκτέλεση παράλληλων πυρήνων OpenCL, εφαρµόζουµε µια αλληλουχία από µετατροπές source to source για να ανεβάσουµε το επίπεδο του πυρήνα από το work-item στο work-group. Μετά τις µετατροπές αυτές στον πηγαίο κώδικα, ο νέος παράλληλος πυρήνας εκφράζει τον υπολογισµό που εκτελεί το work-group. Η πρώτη φάση του SOpenCL αποτελείται από δύο βήµατα: 1. Σειριοποίηση των λογικών νηµάτων (Logical Thread Serialization). Αυτό το βήµα περικλείει τον κώδικα του πυρήνα µε ένα τριπλό loop και µε αυτόν τον τρόπο µετατρέπει τον υπολογισµό ενός work-item σε υπολογισµό ενός workgroup. 2. Απαλοιφή εντολών συγχρονισµού (barriers). H OpenCL δίνει την δυνατότητα στον προγραµµατιστή να συγχρονίσει την εκτέλεση των work-items που εκτελούν έναν κώδικα OpenCL µέσω των εντολών barrier. Μία εντολή barrier αναγκάζει όλα τα work-items ενός work-group να εκτελέσουν την εντολή αυτή πριν µπορέσει οποιοδήποτε work-item να συνεχίσει µε την εκτέλεση των
5 S 1; barrier; S 2; 5 loops { S 1; } loops { S 2; } Εικόνα 2. Απαλοιφή εντολών barriers µε την χρήση loop fission. εντολών µετά την barrier. Αντίστοιχα, η εντολή barrier µέσα σε ένα loop αναγκάζει όλα τα work-items να περιµένουν στην εντολή αυτή πριν µπορέσουν να συνεχίσουν µε την επόµενη επανάληψη του loop. Για να εξασφαλίσουµε σωστή λειτουργικότητα κατά την µετατροπή του κώδικα από OpenCL σε C σε περίπτωση που υπάρχουν εντολές barrier, χωρίζουµε τον κώδικα σε δύο µπλόκς, ένα πριν την barrier και ένα µετά έτσι ώστε αυτά τα µπλόκς να µην περιέχουν την εντολή barrier. Μετά εφαρµόζουµε την τεχνική loop fission για να χωρίσουµε το αρχικό τριπλό loop σε δύο επιµέρους τριπλά loops για να εξασφαλίσουµε την σωστή µετατροπή του κώδικα σε C (Εικόνα 2). Περισσότερες λεπτοµέρειες για τον µετατροπές που εφαρµόζει ο compiler υπάρχουν στο [5] Δεύτερη φάση του SOpenCL Μετά την πρώτη φάση, το SOpenCL µεταφράζει τον κώδικα σε Verilog όπως φαίνεται και στην Εικόνα 3. Ο αλγόριθµος αυτός χρησιµοποιεί και επεκτείνει τον LLVM compiler [3]. Ένα σηµαντικό χαρακτηριστικό του SOpenCL είναι ότι χρησιµοποιεί ένα καλά σχεδιασµένο αρχιτεκτονικό πρότυπο (template) για να δηµιουργήσει υλικό όπως φαίνεται στην Εικόνα 4. Πρότυπο αρχιτεκτονικής H µονάδα δεδοµένων της Εικόνα 4 αποτελείται από ένα δίκτυο από λειτουργικές µονάδες (Functional Units, FUs) που αναλαµβάνουν το κυρίως έργο της επεξεργασίας δεδοµένων. Οι µονάδες αυτές λαµβάνουν δεδοµένα από τις µονάδες Εισόδου/Εξόδου Ροής σε µορφή FIFO και παράγουν τα δεδοµένα εξόδου πάλι σε µορφή FIFO. Η διασύνδεση µεταξύ των λειτουργικών µονάδων γίνεται µέσω κυκλωµάτων ουρών FIFO που αποτελούνται από πολυπλέκτες και buffers για να κατευθύνουν δεδοµένα από τις µονάδες που παράγουν στις µονάδες που καταναλώνουν ενδιάµεσα αποτελέσµατα.
6 6 Εικόνα 3. Ο αλγόριθµος δηµιουργίας επιταχυντή υλικού από κώδικα C. System System Interconnect Interconnect Streaming Unit Bus Bridge Data_in Ack_I Ack_I Ack_A Ack_A Sin AGU Data_in Data_in Status Sin Requests Generator Data_line Data_line Sout AGU Data_out Data_out Sin Align Unit Sin1 Sin1 Sout Align Unit Sin3 Sin3 Sin2 Sin2 Sin1 Sin1 Terminate Terminate Data Path Data_out Data_out Cache Unit Request Local Local request request Sin0 Sin0 Ack_O Ack_O Arbiter Sin Sin es es Sin0 Sin0 Sin2 Sin2 Sout0 Sout0 Sin3 Sin3 Sout0 Sout0 Memory Memory Mapped Mapped Registers Registers Named Register Multiplexer Tree Named Register FU FU FU Tunnel Tunnel Εικόνα 4. Το πρότυπο αρχιτεκτονικής που χρησιµοποιούµε περιλαµβάνει την µονάδα Dεδοµένων (Data Path) και την µονάδα Εισόδου/Εξόδου Ροής (Streaming Unit) To SOpenCL διαµορφώνει τον τελικό επιταχυντή υλικού µεταβάλλοντας τον τύπο του µίγµατος των FUs (δηλ. πόσους multipliers, adders, shifters, κοκ), την συγκεκριµένη λειτουργία που επιτελούν, την διασύνδεση µεταξύ των FUs καθώς και το bandwidth µεταξύ της µονάδας δεδοµένων και της µονάδας Εισόδου/Εξόδου. Η µονάδα Εισόδου/Εξόδου Ροής αναλαµβάνει όλες τις αρµοδιότητες που έχουν να
7 7 κάνουν µε την µεταφορά δεδοµένων µεταξύ της κύριας µνήµης και του επιταχυντή. Αυτές οι αρµοδιότητες είναι η δηµιουργία των διευθύνσεων µνήµης, ευθυγράµµιση και ταξινόµηση δεδοµένων από και προς τον επιταχυντή καθώς και προσαρµογή µεταξύ του επιταχυντή και του διαύλου του συστήµατος (system bus). Η µονάδα Εισόδου/Εξόδου Ροής αποτελείται από µία ή περισσότερες µονάδες Εισόδου και Εξόδου. Όπως και για την µονάδα Δεδοµένων, έτσι και εδώ το SOpenCL συνθέτει το κύκλωµα έτσι ώστε να ταιριάζει στα χαρακτηριστικά της εφαρµογής και στις απαιτήσεις του υπόλοιπου συστήµατος. Ροή του αλγορίθµου SOpenCL Αναφερόµενος στην Εικόνα 3, βλέπουµε ότι το εργαλείο SOpenCL ακολουθεί µια σειρά από βήµατα στον µεταγλωττιστή LLVM για να παράγει το τελικό κύκλωµα του επιταχυντή σε Verilog. Εν συντοµία, τα πιο σηµαντικά βήµατα είναι τα εξής: a) Compiler optimizations and Predication. Το πρώτο βήµα είναι να µετατρέψουµε τον κώδικα C σε εσωτερική µορφή του LLVM. Ο ίδιος ο LLVM εφαρµόζει µια σειρά από στάνταρντ βελτιστοποιήσεις του κώδικα όπως constant propagation, dead code elimination, strength reduction, κοκ. To predication είναι µία τεχνική του µεταγλωττιστή η οποία µετατρέπει εξαρτήσεις ελέγχου (control dependencies) σε εξαρτήσεις δεδοµένων (data dependencies). Το predication εξαλείφει όλες τις εντολές διακλάδωσης (branches) στον κώδικα C µε την χρήση επιπλέον µεταβλητών του 1-bit οι οποίες ονοµάζονται Boolean guards. O βασικός σκοπός του predication είναι η εξάλειψη όλων των διακλαδώσεων που προέρχονται από εντολές if-then-else, και η προετοιµασία του κώδικα για την επόµενη φάση του modulo scheduling. b) Code slicing. O κώδικας C µετά το πρώτο βήµα εµπεριέχει εντολές Εισόδου/Εξόδου δηλ. εντολές φορτώµατος και αποθήκευσης στην µνήµη καθώς και εντολές υπολογισµού. Το βήµα του code slicing διαχωρίζει τον κώδικα σε 3 κοµµάτια: (i) το κοµµάτι κώδικα που κάνει µόνο υπολογισµούς, (ii) το κοµµάτι κώδικα που περιέχει όλες τις εντολές φορτώµατος (load) από την µνήµη και τις εντολές υπολογισµού της διεύθυνσης φορτώµατος, και (iii) το κοµµάτι κώδικα που περιέχει όλες τις εντολές αποθήκευσης (store) από την µνήµη και τις εντολές υπολογισµού της διεύθυνσης αποθήκευσης. Ο λόγος που εκτελούµε αυτό το βήµα είναι επειδή κάθε ένα από τα 3 κοµµάτια του κώδικα αντιστοιχεί και σε διαφορετικό κοµµάτι της αρχιτεκτονικής: το υπολογιστικό κοµµάτι αντιστοιχεί στην µονάδα επεξεργασίας δεδοµένων, ενώ τα κοµµάτια για load και store αντιστοιχούν στην µονάδα Εισόδου/Εξόδου Ροής. Με το να ξεχωρίσουµε τον κώδικα σε 3 διακριτά µέρη, µπορούµε να διαµορφώσουµε κάθε ένα τµήµα του επιταχυντή ανεξάρτητα χρησιµοποιώντας πληροφορία από το αντίστοιχο τµήµα του κώδικα. c) Swing Modulo Scheduling (SMS). Η τεχνική SMS είναι µια τεχνική χρονοπρογραµµατισµού εντολών (instruction scheduling) η οποία
8 8 εκµεταλλεύεται τον παραλληλισµό µεταξύ εντολών που ανήκουν σε διαφορετικές επαναλήψεις ενός loop και τις προγραµµατίζει να εκτελεσθούν παράλληλα [SMS]. O αλγόριθµος SMS χρησιµοποιεί ευριστικές µεθόδους για να ελαχιστοποιήσει το Iteration Interval (II), που είναι το σταθερό διάστηµα αριθµού κύκλων µηχανής στο οποίο ξεκινάµε διαδοχικές επαναλήψεις του loop. Το SMS εφαρµόζεται σε κάθε loop και χωριστά σε κάθε ένα από τα τρία τµήµατα του κώδικα όπως αυτά έχουν παραχθεί από το code slicing. d) Δηµιουργία υλικού. Το τελικό βήµα της δεύτερης φάσης του SOpenCL είναι η δηµιουργία του επιταχυντή υλικού σε Verilog χρησιµοποιώντας την έξοδο που δηµιουργεί το SMS και το αρχιτεκτονικό πρότυπο που περιεγράφηκε προηγουµένως. Εκτός από το υλικό του επιταχυντή, το SOpenCL δηµιουργεί ακόµα και ένα αρχείο ελέγχου (testbench) το οποίο χρησιµοποιείται για την αυτοµατοποίηση της διαδικασίας ελέγχου του παραχθέντος κυκλώµατος. H Εικόνα 5 δείχνει το διάγραµµα του επιταχυντή που υλοποιεί τον αλγόριθµο για LU Decomposition. O συγκεκριµένος αλγόριθµος αποτελείται από πολλαπλά loops τα οποία δηµιουργούν και παραπάνω του ενός επιταχυντές. System Bus Arbiter CLUSTER0 Arbiter CE0 (B0_0, B0_1) CE_g (D0) PE (L0_3) PE (L0_2) CLUSTER1 CE1 PE (L1_0) CLUSTER2 PE (L2_0) CE2 (B2_0, B2_1) PE (L2_1) Arbiter Εικόνα 5. Το αρχιτεκτονικό διάγραµµα ενός επιταχυντή που υλοποιεί τµήµα ενός αλγορίθµου LU Decomposition.
9 Τεχνική Έκθεση 2014 Τελική Τεχνική Έκθεση t=0 t=1 * t=2 t=3 K t=0 t=1 * (a) * 9 t=2 t=3 K * (b) να 5. Χρονοδρομολόγηση εντολών σε ένα Data Flow Graph (DFG) Εικόνα 6. Χρονοδροµολόγηση εντολών σε ένα Data Flow Graph (DFG) µε a) κές και απλές εντολές Η μακροεντολή K υλοπο βασικές και απλές και εντολέςb) καιμε b) µεμακροεντολές. µακροεντολές. Η µακροεντολή K υλοποιείται το MFU Κ που είναι ένας 3-bit προσθετής µε αρχιτεκτονική διοχέτευσης ο MFU Κ µε που είναι ένας 3-bit προσθετής με αρχιτεκτονική διοχέτ (pipelined). elined). α 6. Το αρχιτεκτονικό διάγραμμα ενός επιταχυντή που υλοποιεί τμήμ 2.3. Instruction clustering ρίθμου LU Decomposition..3. Μία επιπλέον βελτιστοποίηση του SOpenCL είναι η οµαδοποίηση (clustering) εντολών για την δηµιουργία Macro Functional Units (MFUs), δηλ. λειτουργικών µονάδες που συνδυάζουν παραπάνω από µια απλούστερες λειτουργικότητες [6]. Ο λόγος που δηµιουργούµε τέτοια MFUs είναι για να µειώσουµε τον αριθµό των διασυνδέσεων µεταξύ µικρών λειτουργικών µονάδων. Με άλλα λόγια, θέλουµε να µειώσουµε την επιβάρυνση των διασυνδέσεων σε σχέση µε τις λειτουργικές µονάδες. Είναι γνωστό µάλιστα ότι τις περισσότερες φορές, ή έλλειψη επαρκούς αριθµού καναλιών διασύνδεσης είναι και ο κυριότερος λόγος για το ότι ένα κύκλωµα δεν µπορεί να υλοποιηθεί σε µια FPGA. Instruction clustering α επιπλέον βελτιστοποίηση του SOpenCL είναι η ομαδοποίηση (clu ών για την δημιουργία Macro Functional Units (MFUs), δηλ. λειτου Χρησιµοποιούµε µία µέθοδο που από βασίζεται σε grammar-induction τεχνικές για να δες που συνδυάζουν παραπάνω μια απλούστερες λειτουργικότητες οµαδοποιήσουµε βασικές εντολές σε µακρο-εντολές (macroinstructions) οι οποίες µε που δημιουργούμε τέτοια σαν MFUs είναι για να σεμειώσουμε την σειρά τους υλοποιούνται MFUs µε µικρότερες απαιτήσεις πολυπλοκότητα τον αριθ διασυνδέσεων. νδέσεων μεταξύ μικρών λειτουργικών μονάδων. Με άλλα λόγια, θέλο Η Εικόνα 6 δείχνει ένα παράδειγµα για το πώς δύο διαδοχικές προσθέσεις (µέσα σουμε την επιβάρυνση των διασυνδέσεων σεεκτέλεση σχέση μεmfu τιςαντί λειτουργικές μ στα κόκκινα κουτιά) µπορούν να συγχωνευθούν για σε ένα να εκτελεσθούν σε ένα FU που κάνει πρόσθεση. Η βασική ιδέα είναι ότι µία µεγαλύτερη γνωστό μάλιστα ότι τις περισσότερες έλλειψη λειτουργική µονάδα µειώνει την ανάγκη για πολλέςφορές, διασυνδέσειςήµεταξύ µικρότερωνεπαρκούς α µονάδων καιείναι συνεπώς και αυξάνειοτηνκυριότερος πιθανότητα να έχουµε ένα κύκλωµα το οποίο να ένα κύκλω λιών διασύνδεσης λόγος για το ότι µπορεί να πραγµατοποιηθεί σε µία FPGA. εί να υλοποιηθεί σε μια FPGA. ρησιμοποιούμε μία μέθοδο που βασίζεται σε grammar-induction τεχνικές οποιήσουμε βασικές εντολές σε μακρο-εντολές (macroinstructions) οι οπ ειρά τους υλοποιούνται σαν MFUs με μικρότερες απαιτήσεις σε πολυπλο νδέσεων. Εικόνα 5 δείχνει ένα παράδειγμα για το πώς δύο διαδοχικές προσθέσει
10 Αποτελέσµατα του SOpenCL στα µετροπρογράµµατα OpenDwarfs Το εργαλείο SOpenCL χρησιµοποιήθηκε για την υλοποίηση επιταχυντών υλικού για εφαρµογές που ανήκουν στα Dwarfs. Τα 13 Dwarfs είναι σύνολα εφαρµογών που κάθε ένα από αυτά τα σύνολα µπορούν να χαρακτηρισθούν από ένα κοινό πρότυπο (pattern) υπολογισµών και επικοινωνίας. Για παράδειγµα, ένα από τα 13 Dwarfs είναι to Dense Linear Algebra το οποίο περιλαµβάνει αλγορίθµους που επεξεργάζονται πυκνούς πίνακες (dense arrays). Ένας τέτοιος αλγόριθµος που έχουµε χρησιµοποιήσει για να αναπτύξουµε επιταχυντές υλικού είναι ο LU Decomposition [3]. Για να είµαστε πιο ακριβείς, χρησιµοποιούµε ένα σύνολο από µετροπρογράµµατα, τα OpenDwarfs, που είναι open-source υλοποιήσεις σε OpenCL των Dwarfs. Χωρίς να µπούµε σε λεπτοµέρειες σχετικά µε την υλοποίηση των OpenDwarfs µε την χρήση του SOpenCL, τα αποτελέσµατα δείχνουν ότι οι FPGAs είναι ανταγωνιστικές µε τις GPUs όσον αφορά την ταχύτητα εκτέλεσης τέτοιων αλγορίθµων. Εάν λάβουµε υπόψιν µας και την κατανάλωση ενέργειας, στις οποίες οι FPGA υπερτερούν εµφανώς των GPUs, µπορούµε να βγάλουµε το συµπέρασµα ότι η χρήση εργαλείων σαν το SOpenCL έχουν την δυνατότητα να κάνουν τις FPGA πολύ ελκυστικές για την υλοποίηση παρόµοιων εφαρµογών. Περισσότερες πληροφορίες σχετικά µε το SOpenCL και τις FPGAs µπορείτε να βρείτε στο [3]. 3. Βιβλιογραφία 1. Khronos OpenCL Working Group. Editor: A. Munshi, The OpenCL Specification, Version: 1.1 Document Revision: June 11, Konstantinos Krommydas, Wu-Chun Feng, Muhsen Owaida, Christos D. Antonopoulos and Nikolaos Bellas. On the Portability of OpenCL Dwarfs on Fixed and Reconfigurable Parallel Platforms. 25th IEEE International Conference on Application-specific Systems, Architectures and Processors (ASAP). June 18-20, 2014, Zurich, Switzerland. 3. C. Lattner and V. Adve. LLVM: A Compilation Framework for Lifelong Program Analysis Transformation, Proceedings of the International Symposium on Code Generation and Optimization (CGO'04), March 2004, pp , Palo Alto, CA. 4. J. Llosa, A. Gonzalez, E. Ayguade, and M. Valero. Swing Modulo Scheduling: A Lifetime-Sensitive Approach, Proceedings of the 1996 Conference on Parallel Architectures and Compilation Techniques (PACT), October, 1996, pp , Boston, MA.
11 11 5. Muhsen Owaida, Nikolaos Bellas, Konstantis Daloukas, Christos D Antonopoulos. Synthesis of Platform Architectures from OpenCL Programs. IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM), May 1-3, 2011, Salt Lake City, UT 6. Muhsen Owaida, Christos D. Antonopoulos, Nikolaos Bellas. A Grammar Induction Method for Clustering of Operations in Complex FPGA Designs. IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM), Regular paper. May 11-13, Boston, MA
Τελική Τεχνική Έκθεση
Τελική Τεχνική Έκθεση Έτος 2013 ΘΑΛΗΣ Πολυτεχνείο Κρήτης Πλατφόρµα προηγµένων µαθηµατικών µεθόδων και λογισµικού για την επίλυση προβληµάτων πολλαπλών πεδίων (multi physics, multidomain) σε σύγχρονες υπολογιστικές
Ετήσια Τεχνική Έκθεση
Ετήσια Τεχνική Έκθεση Έτος 2012 ΘΑΛΗΣ Πολυτεχνείο Κρήτης Πλατφόρµα προηγµένων µαθηµατικών µεθόδων και λογισµικού για την επίλυση προβληµάτων πολλαπλών πεδίων (multiphysics, multidomain) σε σύγχρονες υπολογιστικές
Διαφορές single-processor αρχιτεκτονικών και SoCs
13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό
Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.
Γλώσσες Περιγραφής Μοντέλα Ένα µοντέλο ενός κυκλώµατος είναι µία αναπαράσταση που παρουσιάζει χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Τα τυπικά µοντέλα έχουν καλά ορισµένη σύνταξη. Τα αυτόµατα
Παράλληλος Προγραμματισμός με OpenCL
Παράλληλος Προγραμματισμός με OpenCL Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Δεκέμβριος 2017 1 Γενικά για OpenCL 2 Platform Model 3 Execution Model
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές
Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC
Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.
Αρχιτεκτονική Υπολογιστών
Αρχιτεκτονική Υπολογιστών Παραλληλισμός Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic,
ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I
ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία
Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού
Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή
Εισαγωγή Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ Σκοπός του εργαστηρίου είναι να γνωρίσουµε την εσωτερική δοµή και αρχιτεκτονική της κεντρικής µονάδας επεξεργασίας, να κατανοήσουµε τον τρόπο µε τον οποίο λειτουργεί
Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ
Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή
Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών &
Data Path Allocation Σύνθεση Data Path Το DataPath είναι ένα netlist που αποτελείται από τρεις τύπους µονάδων: (α) Λειτουργικές Μονάδες, (β) Μονάδες Αποθήκευσης και (γ) Μονάδες ιασύνδεσης Αριθµό Μονάδων
FORTRAN και Αντικειμενοστραφής Προγραμματισμός
FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών
MPSoCs για εφαρμογές Video
MPSoCs για εφαρμογές Video Αρχιτεκτονικές επεξεργασίας video SIMD (single instruction multiple data). Βασίζονται στον παραλληλισμό των δεδομένων. Χαρακτηρίζονται από πολλαπλά datapaths τα οποία εκτελούν
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ ΥΠΟΣΤΗΡΙΞΗ ΣΕ ΕΠΙΠΕΔΟ ΜΕΤΑΓΛΩΤΤΙΣΗΣ ΚΑΙ ΣΥΣΤΗΜΑΤΟΣ ΧΡΟΝΟΥ ΕΚΤΕΛΕΣΗΣ ΤΟΥ ΜΟΝΤΕΛΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ OpenCL ΣΕ ΕΠΕΞΕΡΓΑΣΤΕΣ
ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2
ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 6ο μάθημα: χρονοπρογραμματισμός, αλγόριθμος Tomasulo, εικασία Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου InstrucDon- Level
Α. Ερωτήσεις Ανάπτυξης
οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;
Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή
Κεφάλαιο 3 Το υλικό του υπολογιστή Εισαγωγή Τµήµατα του Η/Υ καιοργάνωση Μονάδα Κεντρικής Μνήµης Κεντρική Μονάδα Επεξεργασίας (CPU) Μονάδα Εισόδου Εξόδου ίαυλοι Επικοινωνίας Εναλλακτικές αρχιτεκτονικές
ΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789
ΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789 Γενικά Οι compilers προσφέρουν μία σειρά από τεχνικές βελτιστοποίησης Στόχοι: Αύξηση ταχύτητας εκτέλεσης Μείωση μεγέθους Εφικτές
Αρχιτεκτονική υπολογιστών
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 4 : Κρυφή Μνήμη Καρβούνης Ευάγγελος Δευτέρα, 30/11/2015 Χαρακτηριστικά Θέση Χωρητικότητα Μονάδα Μεταφοράς
ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων
ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2018-2019 Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD ΗΥ220 - Βασίλης Παπαευσταθίου 1 Transistor: Δομική μονάδα κυκλωμάτων Τα ολοκληρωμένα κυκλώματα
Εισαγωγή στην Πληροφορική
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων
ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD ΗΥ220 - Γιώργος Καλοκαιρινός & Βασίλης Παπαευσταθίου 1 Transistor: Δομική μονάδα κυκλωμάτων Τα
Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ
ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ Βιβλιογραφία Ενότητας Kehtarnavaz [2005]: Chapter 3 Kuo [2005]: Chapters 1 & 4-5 Lapsley [2002]: Chapter 4 Hayes [2000]: Κεφάλαιo 8
Τεχνικές βελτιστοποίησης µε σκοπό την επίτευξη χαµηλής κατανάλωσης ισχύος
Low power techniques Τεχνικές βελτιστοποίησης µε σκοπό την επίτευξη χαµηλής κατανάλωσης ισχύος Γενικά Τεχνικές βιοµηχανίας Μείωση χωρητικοτήτων chip και package Μέσω process development πολύ αποτελεσµατική
Προγραµµατισµός Συστηµάτων Πραγµατικού Χρόνου
Προγραµµατισµός Συστηµάτων Πραγµατικού Χρόνου Εφαρµογές σε µικρά ενσωµατωµένα συστήµατα Ιωάννης Καλόµοιρος Αναπληρωτής Καθηγητής Τµήµα Μηχανικών Πληροφορικής Μάθηµα 2ο Περίληψη και σηµαντικά σηµεία Τα
Μοντέλα Αρχιτεκτονικής στην Σύνθεση
Μοντέλα Αρχιτεκτονικής στην Σύνθεση Σχεδιαστικά Στυλ & Αρχιτεκτονική Ο σχεδιαστής επιλέγει Σχεδιαστικό στυλ prioritized interrupt instruction buffer bus-oriented datapath serial I/O direct memory access
Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07
Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή
ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων. Βιβλιογραφία Ενότητας
ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Βελτιστοποίηση κώδικα σε επεξεργαστές ΨΕΣ Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kehtarnavaz [2005]: Chapter
Εισαγωγή στη Σχεδίαση Λογισμικού
Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του
Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος
ΕΣ 08 Επεξεργαστές Ψηφιακών Σημάτων Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος Κλήμης Νταλιάνης Λέκτορας Π.Δ.407/80 Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου Αρχιτεκτονική
Παραλληλισμός σε επίπεδο εντολών
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης
ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων
ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές
Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός;
Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός; Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή
ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?
Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή
1 Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή μνήμη(cache). Η cache είναι πολύ σημαντική, πολύ γρήγορη,
1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών
ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ι Γ. Τσιατούχας 2 ο Κεφάλαιο ιάρθρωση 1. Οργάνωση της 2. εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο
VHDL Εισαγωγικές έννοιες
VHDL Εισαγωγικές έννοιες ρ. Κ. Καραφασούλης ckaraf@aegean.gr Σχεδίαση Αρχικά ψηφιακά κυκλώµατα µπορούν να σχεδιασθούν µε το κατάλληλο λογισµικό. Μεγαλύτερα κυκλώµατα µπορούν να σχεδιασθούν ιεραρχικά από
Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης
Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,
Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:
Ας ξεκινήσουμε. Macro-instructions. (Assembly level) Micro-instructions Main memory. (micro-code)
Ας ξεκινήσουμε Τι χρειαζόμαστε για να υλοποιήσουμε έναν επεξεργαστή? Macro-instructions ALU (Assembly level) Register File Micro-instructions Main memory (micro-code) Control signals and microcode (control
Αρχιτεκτονική Υπολογιστών
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Γ ) Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών
EM 361: Παράλληλοι Υπολογισμοί
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ EM 361: Παράλληλοι Υπολογισμοί Ενότητα #2: Αρχιτεκτονική Διδάσκων: Χαρμανδάρης Ευάγγελος ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΠΙΣΤΗΜΩΝ
Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος
Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν
ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ
Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας
Προχωρηµένα Θέµατα Αρχιτεκτονικής
Προχωρηµένα Θέµατα Αρχιτεκτονικής Μάθηµα 2 ο : Instruction Set Principles and Examples Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 1 Σχεδιασµός Συνόλου Εντολών Θέµατα που θα συζητηθούν ιαφορετικές επιλογές
ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση
ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση Γιατί χρησιμοποιείται μοντελοποίηση των περιορισμών με ακεραίους? Υπάρχουν ήδη εργαλεία για τον υπολογισμό και την χρήση
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU
9. Συστολικές Συστοιχίες Επεξεργαστών
Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 208 9. Συστολικές Συστοιχίες Επεξεργαστών Οι συστολικές συστοιχίες επεξεργαστών είναι επεξεργαστές ειδικού σκοπού οι οποίοι είναι συνήθως προσκολλημένοι σε
ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ
ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ ΜΕΤΡΑ ΑΠΟ ΟΣΗΣ & ΕΞΙΣΟΡΡΟΠΗΣΗ ΦΟΡΤΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΨΗΛΩΝ ΕΠΙ ΟΣΕΩΝ ΒΑΘΜΟΣ ΠΑΡΑΛΛΗΛΙΣΜΟΥ Η υλοποίηση
ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ιεραρχία συχνά και το
Εφαρμογές μικροελεγκτών
Μικροελεγκτές Έναν ορισμό που θα μπορούσαμε να δώσουμε για τους μικροελεγκτές είναι ο εξής: Μικροελεγκτής είναι ένα προγραμματιζόμενο ολοκληρωμένο κύκλωμα το οποίο διαθέτει επεξεργαστή, μνήμη, διάφορα
http://www.cslab.ece.ntua.gr/diplom/
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr/ ιπλωµατική
; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική
Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.
Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης,
Πολυπύρηνοι επεξεργαστές Multicore processors
Πολυπύρηνοι επεξεργαστές Multicore processors 1 Μετάβαση στους πολυπύρηνους(1) Απόδοση των µονοεπεξεργαστών 25% ετήσια βελτίωση της απόδοσης από το 1978 έως το 1986 Κυρίως από την εξέλιξη της τεχνολογίας
i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 6-7 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας
FORTRAN και Αντικειμενοστραφής Προγραμματισμός
FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών
Χρ. Καβουσιανός Επίκουρος Καθηγητής
Σχεδίαση Μνηµών Χρ. Καβουσιανός Επίκουρος Καθηγητής Εισαγωγή Η Μνήµη είναι ένας πίνακας από θέσεις αποθήκευσης συγκεκριµένου µεγέθους, κάθε µία από τις οποίες έχει µία διακριτή διεύθυνση Θέση 0 Θέση 1
Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική
Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι
Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη
Ευρετήρια 1 Αρχεία Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη µνήµη. Η µεταφορά δεδοµένων από το δίσκο στη µνήµη και από τη
ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.
ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.
ΕΙΣΑΓΩΓΗ Υλισµικό (Hardware) Επεξεργαστής-ΚΜΕ (Processor, CPU): εκτέλεση εντολών Μνήµη (Memory): προσωρινή αποθήκευση πληροφοριών Μονάδες ε/ε (I/O devices): Μονάδες δίσκων: Μόνιµη αποθήκευση πληροφοριών
Βασική δοµή και Λειτουργία Υπολογιστή
Βασική δοµή και Λειτουργία Υπολογιστή Η τεχνολογία των Η/Υ έχει βασιστεί στη λειτουργία του ανθρώπινου οργανισµού. Οπως ο άνθρωπος πέρνει εξωτερικά ερεθίσµατα από το περιβάλλον τα επεξεργάζεται και αντιδρά
Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης
ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών Εισαγωγή στους Μικροεπεξεργαστές MIPS-32 ( ιάλεξη 1) ιδάσκων: Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών
Εργαστήριο Ψηφιακών Κυκλωμάτων
ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD Χειμερινό Εξάμηνο 2009 2010 Design flow? ΗΥ220 University of Crete 2 Ροή Σχεδίασης (Design Flow) Requirements Verilog, VHDL
Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών
Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος
Αρχιτεκτονική Υπολογιστών
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Α ) Ενσωματωμένα Συστήματα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Αρχιτεκτονική Υπολογιστών. ηµήτρης Γκιζόπουλος Καθηγητής
Αρχιτεκτονική Υπολογιστών ΙI ηµήτρης Γκιζόπουλος Καθηγητής Γενικά ηµήτρης Γκιζόπουλος, Καθηγητής http://www.di.uoa.gr/~dgizop γραφείο Α32 ιδασκαλία στο αµφιθέατρο Α2 ευτέρα 11 00 13 00 Πέµπτη 13 00 15
Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας
Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει
ς Ποιότητα ξιολόγηση Α
Αξιολόγηση Ποιότητας Μέτρα Αξιολόγησης Τα µέτρα αξιολόγησης είναι απαραίτητα κατά την διαδικασία της σύνθεσης. Τα ακριβή µέτρα καθορίζουν την ποιότητα του τελικού κυκλώµατος και εντοπίζουν προβλήµατα.
Προγραµµατισµός Ι (ΗΥ120)
Προγραµµατισµός Ι (ΗΥ120) Διάλεξη 1: Εισαγωγή ΑΝΑΚΟΙΝΩΣΗ 2 Το αυριανό µάθηµα θα πραγµατοποιηθεί στο αµφιθέατρο Σαράτση Ποιος είµαι εγώ! 3 Ναύπλιο, 4/1976-9/1993 Πάτρα, 9/1993-6/2004 Williamsburg, VA, USA,
Εισαγωγή στην Πληροφορική
Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή στην Πληροφορική 1 Γενικές πληροφορίες Εισαγωγή στην Πληροφορική ιδασκαλία: Παναγιώτης Χατζηδούκας Email:
Κεφάλαιο 10 ο Υποπρογράµµατα
Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,
Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το
Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.
Κεντρική Μονάδα Επεξεργασίας
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Μονάδα Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU
Προβλήματα, αλγόριθμοι, ψευδοκώδικας
Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι
Επιτεύγµατα των Λ.Σ.
Επιτεύγµατα των Λ.Σ. ιεργασίες ιαχείριση Μνήµης Ασφάλεια και προστασία δεδοµένων Χρονοπρογραµµατισµός & ιαχείρηση Πόρων οµή Συστήµατος ιεργασίες Ένα πρόγραµµα σε εκτέλεση Ένα στιγµιότυπο ενός προγράµµατος
Παρουσίαση 2 ης Άσκησης:
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 2 ης Άσκησης: Ανάπτυξη παράλληλου κώδικα και μελέτη της επίδοσης του αλγορίθμου
ΗΥ 232. Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 1. Εισαγωγή στο μάθημα. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων
ΗΥ 232 Διάλεξη 1 Εισαγωγή στο μάθημα Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Διδάσκων: Οργανωτικά Θέματα Νίκος Μπέλλας, Κτήριο Γκλαβάνη, Γραφείο Β3.7, 2 ος όροφος Προσωπική ιστοσελίδα:
Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις
Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού
Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική
Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Ταχύτητα εκτέλεσης Χρόνος εκτέλεσης = (αριθμός εντολών που εκτελούνται) Τί έχει σημασία: Χ (χρόνος εκτέλεσης εντολής) Αριθμός
ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΑΝΤΩΝΗΣ ΠΑΣΧΑΛΗΣ
ΕΘΝΙΚΟΝ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟΝ ΠΑΝΕΠΙΣΤΗΜΙΟΝ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΠΣ Πληροφορικής και Τηλεπικοινωνιών, E Εξάμηνο
Σύνθεση σε επίπεδο Αρχιτεκτονικής
Σύνθεση σε επίπεδο Αρχιτεκτονικής Εισαγωγή Αρχιτεκτονική Σύνθεση: κατασκευή της µακροσκοπικής δοµής ενός ψηφιακού κυκλώµατος από µοντέλα συµπεριφοράς (ακολουθιακοί γράφοι γράφοι ροής δεδοµένων). Αποτέλεσµα
QuakeTM: Parallelizing a Complex Sequential Application Using Transactional Memory (Gajinov et al., 2009)
Quake I QuakeTM: Parallelizing a Complex Sequential Application Using Transactional Memory (Gajinov et al., 2009) Είναι όντως χρήσιμη η transactional memory σε μεγάλες εφαρμογές; Παράλληλη υλοποίηση μιας
Ε-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1
Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα
και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath
O επεξεργαστής: Η δίοδος δεδοµένων (path) και η µονάδα ελέγχου (control) Σχεδίαση path 4 κατηγορίες εντολών: Αριθµητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη µνήµη (lw, sw) I
Αρχιτεκτονικές Συνόλου Εντολών
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (Instruction Set Architectures - ISA) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ο
Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική
Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Για βελτίωση της απόδοσης
Λογισµικό (Software SW) Γλώσσες
Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής
Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης
Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης Αρης Ευθυμίου Το σημερινό μάθημα Execu9on scheduling wake- up and select specula9ve wake- up Εκτέλεση εντολών