ΠΡΟΣΟΜΟΙΩΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ. Διαφάνειες από το MicroArch 35 Tutorial του Simics

Σχετικά έγγραφα
ΠΡΟΟΜΟΙΩΗ ΑΡΧΙΣΕΚΣΟΝΙΚΗ

ΠΡΟΣΟΜΟΙΩΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ

ΠΡΟΟΜΟΙΩΗ ΑΡΧΙΣΕΚΣΟΝΙΚΗ

ΠΡΟΣΟΜΟΙΩΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ

KOIOS SUMMER INTERNSHIP NETWORKS ON CHIP (NoC)

Αρχιτεκτονική Υπολογιστών. ηµήτρης Γκιζόπουλος Καθηγητής

ΠΡΟΟΜΟΙΩΗ ΑΡΧΙΣΕΚΣΟΝΙΚΗ

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

Λειτουργικά Συστήματα. Εισαγωγή

Κεφάλαιο 1 Αφαιρετικότητα και Τεχνολογία Υπολογιστών (Computer Abstractions and Technology)

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

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

ProcSim οδηγίες χρήσης.

Τεχνικές για διαμοιρασμό φορτίου και μακροεντολές Broadcast - Scatter για αποδοτικές πολύ-επεξεργαστικές εφαρμογές

Chapter 4 ( ή 1 στο βιβλίο σας)

ProcSim οδηγίες χρήσης.

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Διακλαδώσεις. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

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

ΜΕΛΕΤΗ ΗΛΕΚΤΡΟΝΙΚΟΥ ΕΞΟΠΛΙΣΜΟΥ

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

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

ProcSim οδηγίες χρήσης.

Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών

Ειδική Επιστημονική Εργασία. Σχεδίαση και υλοποίηση Θέσεως Εργασίας ενός Εργαστηρίου DSPs από Απόσταση για Λήψη και Επεξεργασία Εικόνας

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

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. SimuMIPS: ΕΝΑΣ ΠΡΟΣΟΜΟΙΩΤΗΣ ΤΟΥ ΕΠΕΞΕΡΓΑΣΤΗ MIPS ΣΤΟ SIMULINK

Κεφάλαιο 5: Εισαγωγή στην Προσομοίωση

ProcSim οδηγίες χρήσης.

Πολυνηματικές Αρχιτεκτονικές. «Μη-Παραδοσιακός» Παραλληλισμός

Προχωρηµένα Θέµατα Αρχιτεκτονικής

Περιορισμοί των βαθμωτών αρχιτεκτονικών

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ενότητα 1 η : Ανάπτυξη Λογισμικού & Προγραμματισμός

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ

Αρχιτεκτονική Υπολογιστών Ι (ένα)

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

ΕΙΣΑΓΩΓΗ στους Η/Υ. Δρ. Β Σγαρδώνη. Τμήμα Τεχνολογίας Αεροσκαφών ΤΕΙ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ. Χειμερινό Εξάμηνο

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

Table 1: Performance of Camellia (updated on October 31, 2008) Software Performance

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

ΥΠΗΡΕΣΙΑ ΕΙΚΟΝΙΚΟΥ ΕΡΓΑΣΤΗΡΙΟΥ ΣΧΕ ΙΑΣΜΟΥ

Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές

Επιτεύγµατα των Λ.Σ.

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

Υ- 01 Αρχιτεκτονική Υπολογιστών Εισαγωγή

ΠΡΟΛΟΓΟΣ... xxi ΣΗΜΕΙΩΣΗ ΠΡΟΣ ΤΟΝ ΔΙΔΑΣΚΟΝΤΑ... xxiv ΣΗΜΕΙΩΣΗ ΠΡΟΣ ΤΟΝ ΑΝΑΓΝΩΣΤΗ... xxv ΣΗΜΕΙΩΣΗ ΠΡΟΣ ΤΟΥΣ ΦΟΙΤΗΤΕΣ... xxv

Λογισμικό - Προγράμματα

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

MPSoCs για εφαρμογές Video

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Απόδοση Υπολογιστικών Συστημάτων

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

Τέτοιες λειτουργίες γίνονται διαμέσου του

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP

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

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

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο

ΕΠΛ 605: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2018 ΕΡΓΑΣΙΑ 3 (13/10/2018) Ηµεροµηνία Παράδοσης δεύτερου µέρους: 18/10/2018

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

Processor-Memory (DRAM) ιαφορά επίδοσης

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

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

Εισαγωγικά & Βασικές Έννοιες

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

ΑρχιτεκτονικήΥπολογιστών. Ι (ένα) Δημήτρης Γκιζόπουλος. Καθηγητής

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


Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΠΕΡΙΓΡΑΦΗ ΥΛΙΚΟΥ AVR 1. ΕΙΣΑΓΩΓΗ 1.1 ΓΕΝΙΚΗ ΔΟΜΗ 1.2 ΟΙΚΟΓΕΝΕΙΕΣ 1.3 ΤΥΠΟΙ 1.4 ΕΡΓΑΛΕΙΑ

Εισαγωγικά & Βασικές Έννοιες

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

Αρχιτεκτονικη υπολογιστων

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

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

Πολυνηματικές Αρχιτεκτονικές & «Μη-Παραδοσιακός» Παραλληλισμός

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

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

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 5: Εισαγωγή στην Προσομοίωση

Επίπεδο δικτύου IP Forwading κτλ

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Εισαγωγικές έννοιες για σχεδιασμό με τη VHDL

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ

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

Συνάφεια Κρυφής Μνήµης σε Επεκτάσιµα Μηχανήµατα

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

Υπερβαθµωτή Οργάνωση Υπολογιστών

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

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

Parallel Architectures

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

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

(Branch Prediction Mechanisms)

Τίτλος Διδακτικού Σεναρίου: «Σχεδίαση και Ανάλυση Τοπικών Δικτύων Υπολογιστών»

Transcript:

ΠΡΟΣΟΜΟΙΩΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Διαφάνειες από το MicroArch 35 Tutorial του Simics http://www.cs.pitt.edu/~cho/cs2410/currentsemester/handouts/simics cho/cs2410/currentsemester/handouts/simics_tutorial.pdftutorial.pdf 1

Εισαγωγή Αρχιτεκτονική Υπολογιστών Σχεδίαση επεξεργαστή για την εκτέλεση 1 thread (pipeline, branch prediction) Σχεδίαση για την εκτέλεση n threads (SMT resource allocation, threads scheduling) Ετερογενείς αρχιτεκτονικές (Cell) Παράλληλα συστήματα Ιεραρχία μνήμης (cache sharing, coherence protocols, NUMA architectures) Δίκτυα διασύνδεσης (on-chip interconnection networks) Virtualization ti Παράγωγή παράλληλου κώδικα (synchronization costs, locks, Transactional Memory, automatic parallelization) 2

Εισαγωγή Αρχιτεκτονική Σχεδίαση Υλοποίηση Δοκιμή/Έλεγχος Ανάλυση Ανάπτυξη (Deployment) Εκπαίδευση χρηστών 3

Εισαγωγή Χρήση υπαρχόντων μηχανημάτων Μεγάλο κόστος (πχ. Sun SPARC Enterprise T5120 server (64 threads, 128GB mem) ~ 12.800 $) Αδυναμία παρέμβασης στο υλικό τους (συγκεκριμένο pipeline, caches, interconnection ti network) Περιορισμένη δυνατότητα παρακολούθησης και μετρήσεων (π.χ. performance counters : λίγοι, μικρό documentation) Περιορισμός στοσήμερα. Πώς μελετάς μελλοντικές αρχιτεκτονικές (π.χ. chipμε 100 ή 1000 threads;) Λύση : Simulation (προσομοίωση) 4

Προσομοίωση Αρχιτεκτονικής (1) Απαιτήσεις Γενικότητα (Generality)» Μπορεί το εργαλείο να αναλύσει τα workloads?» Parallel Systems, Multithreading, Multiple address spaces, OS code, Network Systems, etc. Πρακτικότητα (Practicality)» Μπορεί το εργαλείο να χρησιμοποιηθεί αποδοτικά;» Host assumptions, compiler assumptions, OS modifications, workload language assumptions Εφαρμοσιμότητα (Applicability)» Μπορεί το εργαλείο να απαντήσει στα ερωτήματα μας;» Restricted state that can be monitored, restrictions on parameter visibility, restricted length of observations. 5

Προσομοίωση Αρχιτεκτονικής (2) Προσομοίωση = SW studying SW Το σημείο στο οποίο συναντώνται οι software και hardware engineers. Είναι το πιο χαμηλό επίπεδο στο οποίο έχει πρόσβαση το software και ταυτόχρονα είναι το πιο σταθερό (stable), καλύτερα ορισμένο (best defined) και λιγότερο πολύπλοκο (least complicated) επίπεδο. 6

Προσομοίωση Αρχιτεκτονικής (3) Ταχύτητα (Speed) vs. Ακρίβεια (Accuracy) 7

Προσομοίωση Αρχιτεκτονικής (4) Πλεονεκτήματα Early availability Ευκολία χρήσης» Πλήρης διαφάνεια και ευκολία παρακολούθησης και μετρήσεων» Διαφορετικά επίπεδα λεπτομέρειας και ακρίβειας Pipelines, caches, branch predictors, Hardware devices (timer, drives, cards, )» Έλεγχος καινοτόμων προτάσεων/ιδεών Κόστος» Open source (Free)» Academic licenses (Free ή μικρό κόστος για support) 8

Προσομοίωση Αρχιτεκτονικής (5) Προκλήσεις Χρόνος ανάπτυξης των μοντέλων (modeling time) Έλεγχος ορθότητας μοντέλων (validation) Ταχύτητα προσομοίωσης Active research field Πληθώρα επιλογών Virtutech t Simics i (x86, SPARC, MIPS, Leon, ) AMD SimNow (x86) Simplescalar (Alpha) SMTSIM (Alpha SMT) 9

Πλατφόρμες Προσομοίωσης Διάφοροι τύποι προσομοιωτών Trace-driven vs. Execution-driven Cycle-level accurate vs. Functional models Full system simulators (π.χ. Simics) Διάφοροι τύποι προσομοίωσης Πλήρης εκτέλεση εφαρμογής Χρήση στατιστικών μεθόδων 10

Functional vs. Timing Simulation Functional Simulation Προσομοίωση της λειτουργικότητας των εντολών (instructions semantics and functionality) Μεταβολή του state (registers, memory, ) Σωστό program output Timing Simulation Functional simulation Λεπτομερής υλοποίηση των διαφορετικών δομών που χρησιμοποιούνται Χρονισμός γεγονότων, προκειμένου να υπολογισθεί ο χρόνος εκτέλεσης του προγράμματος Functional simulation πολύ πιο γρήγορο 11

Full System Simulator Πολλοί διαδεδομένοι προσομοιωτές (π.χ. Simplescalar) προσομοιώνουν μόνο τον κώδικα της εφαρμογής που επιλέγει ο χρήστης Έλλειψη OS Hack για την προσομοίωση system calls Full system simulators Ρεαλιστικοί Εκτέλεση πραγματικών εφαρμογών Προσομοίωση OS (π.χ. Simics boots Linux) Ακρίβεια (accuracy) ; Ταχύτητα ; 12

Παράδειγμα χρόνων προσομοίωσης spec2k with gcc and small inputs 13

Επιλογή περιβάλλοντος προσομοίωσης Κριτήρια Επιλογής Modularity simulator Extensibility simulator Επίπεδο ακρίβειας simulator Ταχύτητα simulator Μέγεθος του design space που θέλουμε να μελετήσουμε Επιλογή κατάλληλων benchmarks 14

Στατιστικά Προσομοίωσης Ο σκοπός ενός timing simulation είναι η συγκέντρωση πληροφοριών καιμέτρηση διαφόρων μεγεθών IPC Memory access cycles On-chip network contention Τα προγράμματα παρουσιάζουν διαφορετικές φάσεις Initialization phase Main phase Wrap-up phase Πότε παίρνουμε τα στατιστικά που μας ενδιαφέρουν; 15

Στατιστικά Προσομοίωσης 16

Simics Full system simulator Υποστήριξη διαφορετικών συστημάτων (x86, Sun, ARM, ) Εκτέλεση OS και workloads χωρίς προσθήκες/αλλαγές Εύχρηστο interface για microarchitecture modeling O Simics παρέχει το functional simulation και ο χρήστης αποφασίζει για το timing των διαφόρων γεγονότων Υλοποιήσεις cache memories Ενορχήστρωση για συγκέντρωση πληροφοριών κατά το run time Ευρέως αποδεκτός στο architecture research community Θα τον χρησιμοποιήσουμε στις ασκήσεις Academic license for NTUA 17

18

Simics Instruction Set Level Simulation Οι πραγματικές εφαρμογές παίρνουν ώρες σε πραγματικά μηαχνήματα Χρειαζόμαστε αρκετά μεγάλες ταχύτητες για να τρέξουμε ένα σημαντικό κομμάτι αυτών των εφαρμογών. 19

Simics 20

Simics Pipeline 21

Ultra SPARC III Pipeine 22

Simics Simics Functional Simulation Instruction Set semantics Devices User Timing Ο χρήστης μπορεί να καθορίζει το timing. Υπάρχουν modules τα οποία παρέχουν αυτή τη δυνατότητα.» GEMS Ruby Memory Hierarchy» GEMS Opal Processor pipeline» SimFlex Memory Hierarchy 23

Simics Terminology Host machine Το μηχάνημα/os στο οποίο τρέχει ο Simics Target machine Το μηχάνημα/os το οποίο προσομοιώνει ο Simics Δεν απαιτείται η αρχιτεκτονική και το OS των 2 μηχανημάτων ημ να είναι τα ίδια Compile σε διαφορετικά μηχανήματα! Steps vs. cycles vs. instructions 24

Simics Environment Command line interface, παρόμοιο με το gdb Scripting Δυνατότητα scripting και σε Python Ανάπτυξη μοντέλων (C, Python) Checkpointing Δαφορε Διαφορετικοίοί τρόποι προσομοίωσης οί σης Fast,stalls,MAI Speed vs. accuracy 25

Simics Major Components Functional Modules» C, Python, DML» Devices, components, boards, machines Ενεργοποιούνται με Simics ή Python scripts Timing Memory, caches, Simics MAI Ο χρήστης ορίζει τις καθυστερήσεις του κάθε module 26

Simics Demo 27