Δπέκηαζη Πποζομοιυηή Απσιηεκηονικήρ Τπολογιζηών SESC

Σχετικά έγγραφα
Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

Ενδεικτικά Θέματα Στατιστικής ΙΙ

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

Σήκαηα Β Α Γ Γ Δ Λ Η Σ Ο Ι Κ Ο Ν Ο Μ Ο Υ Γ Ι Α Λ Δ Ξ Η - ( 2 ) ΕΙΣΑΓΨΓΗ ΣΤΙΣ ΤΗΛΕΠΙΚΟΙΝΨΝΙΕΣ

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

Η αξρή ζύλδεζεο Client-Server

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

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

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX

Κεθάιαην 20. Ελαχιστοποίηση του κόστους

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) =

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

Κεθάλαιο 7. Πξνζθνξά ηνπ θιάδνπ Μ. ΨΥΛΛΑΚΗ

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

Constructors and Destructors in C++

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP

Μορθές Κακόβοσλοσ Κώδικα (Malicious Code)

Βιομησανικόρ ζσεδιαζμόρ πποϊόνηων από ανακςκλωμένερ ζςζκεςαζίερ

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H )

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

Τηλζφωνο: Ε-mail: Ώρες διδασκαλίας: 16:00 19:15 μμ

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο κόζηος ανά μονάδα παραγωγής. Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο ζηαθερό κόζηος ανά μονάδα παραγωγής

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014

ΑΙΟΛΙΚΑ ΠΑΡΚΑ. Δρώτηση 1

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

Οργάνωση και Δομή Παρουσιάσεων

10). ΣΤΠΟΠΟΙΗΜΕΝΕ ΠΑΡΟΥΕ ΜΣ ΚΑΙ ΥΣ

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

ΑΞΙΟΘΕΑΣΑ ΣΟΤ ΥΩΡΙΟΤ ΜΑ

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

Intel Accelerate Your Code

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

ΠΛΗ36. Άσκηση 1. Άσκηση 2. Οη δηεπζύλζεηο ησλ 4 σλ ππνδηθηύσλ είλαη νη αθόινπζεο. Υπνδίθηπν Α: /27 Υπνδίθηπν Β:

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0

Εηζαγσγή ζηελ επηζηήκε ησλ ππνινγηζηώλ. Λνγηζκηθό Υπνινγηζηώλ Κεθάιαην 7ν Λεηηνπξγηθά Σπζηήκαηα

Διατείριση Φσσικών Καταστρουών: ACTIVE LANDSLIDE INVENTORY MAPPING AND SUSCEPTIBILITY ZONING

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

ΘΔΜΑ 1 ο Μονάδες 5,10,10

Εισαγωγή στοςρ κβαντικούρ ςπολογιστέρ και αλγόπιθμοςρ. Γηδάζθωλ : Φνπληνπιάθεο Αληώληνο

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

ΑΓΩΜΘΡΘΙΞΘ ΤΩΠΞΘ ΡΘΡ ΛΘΙΠΕΡ ΗΚΘΙΘΕΡ ΛΘΤΑΗΚΘΔΗΡ Τ.

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Εισαγωγή στη Φωτογραυία. Χριζηάκης Σαζεΐδης - EFIAP

ΠΡΩΣΟΚΟΛΛΑ ΓΙΑΥΔΙΡΗΗ ΣΩΝ ΣΔΡΗΓΟΝΙΚΩΝ ΒΛΑΒΩΝ Δ ΔΝΗΛΙΚΔ

Επωηήζειρ Σωζηού Λάθοςρ ηων πανελλαδικών εξεηάζεων Σςναπηήζειρ

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ

T A E K W O N D O. Δ. ΠπθαξΨο. ΔπΫθνπξνο ΘαζεγεηΪο ΑζιεηηθΪο ΦπζηθνζεξαπεΫαο ΡΔΦΑΑ - ΑΞΘ

EL Eνωμένη στην πολυμορυία EL A8-0046/319. Τροπολογία

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γεσηέρα 10 Ηοσνίοσ 2019 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

ύζηεκα Ωξνκέηξεζεο Πξνζσπηθνύ (Έθδνζε 2) ΤΠΗΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΤΣΗΜΑΣΩΝ

Γίθησα ποσ παρέτοληαη από τρήζηες: Κίλεηρα, ηετλοιογίες θαη αλοητηά δεηήκαηα Λεσηέρες Μακάηας

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ

ΠΕΤΡΕΛΑΙΟ ΧΑΡΑΛΑΜΠΟΤ ΜΑΡΙΑ ΣΖΑΜΟΤΡΑΝΗ ΕΛΕΝΗ ΟΤΣΖΙΟΤ ΑΤΓΕΡΙΝΗ ΧΑΙΔΕΜΕΝΑΚΗ ΝΑΣΑΛΙΑ

3 ΑΠΙΔ ΑΘΖΔΗ ΘΟΚΟΙΟΓΗΑ ΠΟΤ ΑΛΣΗΚΔΣΩΠΗΕΟΛΣΑΗ ΚΔ ΦΤΗΘΖ ΘΑΗ ΚΑΘΖΚΑΣΗΘΑ ΙΤΘΔΗΟΤ

Κάζε functional unit ρξεζηκνπνηείηαη κηα θνξά ζε θάζε θύθιν: αλάγθε γηα πνιιαπιό hardware = θόζηνο πινπνίεζεο!

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ

Αντισταθμιστική ανάλυση

Αιγόξηζκνη Δνκή επηινγήο. Απιή Επηινγή ύλζεηε Επηινγή. Εηζαγσγή ζηηο Αξρέο ηεο Επηζηήκεο ησλ Η/Τ. introcsprinciples.wordpress.

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

ΠΑΝΕΛΛΑΔΙΚΕ ΕΞΕΣΑΕΙ Γ ΣΑΞΗ ΗΜΕΡΗΙΟΤ ΓΕΝΙΚΟΤ ΛΤΚΕΙΟΤ & ΠΑΝΕΛΛΗΝΙΕ ΕΞΕΣΑΕΙ Γ ΣΑΞΗ ΗΜΕΡΗΙΟΤ ΕΠΑΛ (ΟΜΑΔΑ Β )

x x x x tan(2 x) x 2 2x x 1

Ονομαηεπώνυμο: Μάθημα: Υλη: Δπιμέλεια διαγωνίζμαηος: Αξιολόγηζη :

ΙNCOFRUIT - (HELLAS).

Transcript:

ΔΘΝΙΚΟ ΚΑΙ ΚΑΠΟΓΙΣΡΙΑΚΟ ΠΑΝΔΠΙΣΗΜΙΟ ΑΘΗΝΧΝ ΥΟΛΗ ΘΔΣΙΚΧΝ ΔΠΙΣΗΜΧΝ ΣΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΔΠΙΚΟΙΝΧΝΙΧΝ ΠΡΟΓΡΑΜΜΑ ΜΔΣΑΠΣΤΥΙΑΚΧΝ ΠΟΤΓΧΝ ΓΙΠΛΧΜΑΣΙΚΗ ΔΡΓΑΙΑ Δπέκηαζη Πποζομοιυηή Απσιηεκηονικήρ Τπολογιζηών SESC Γεώπγιορ Δ. Ανδπιανάκηρ Δπιβλέπονηερ: Ανηώνιορ Παζσάληρ, Καζεγεηήο ΔΚΠΑ ΑΘΗΝΑ ΙΑΝΟΤΑΡΙΟ 2010

ΓΙΠΛΧΜΑΣΙΚΗ ΔΡΓΑΙΑ Δπέθηαζε Πξνζνκνησηή Αξρηηεθηνληθήο Τπνινγηζηώλ SESC Γεώπγιορ Δ. Ανδπιανάκηρ Α.Μ.: Μ1004 ΔΠΙΒΛΔΠΟΝΣΔ: Ανηώνιορ Παζσάληρ, Καζεγεηήο ΔΚΠΑ ΔΞΔΣΑΣΙΚΗ ΔΠΙΣΡΟΠΗ: Ανηώνιορ Παζσάληρ, Καζεγεηήο ΔΚΠΑ Μαπία Γπηγοπιάδος, Καζεγήηξηα ΔΚΠΑ

ΠΔΡΙΛΗΦΗ ε απηή ηελ δηπισκαηηθή εξγαζία ηξνπνπνηείηαη ν πξνζνκνησηήο αξρηηεθηνληθήο ππνινγηζηώλ SESC, πξνθεηκέλνπ λα θαηαζηεί ιεηηνπξγηθόο θαη λα κπνξνύλ λα εμαρζνύλ δεδνκέλα πνπ αθνξνύλ ηελ θαηαλάισζε ηζρύνο θαη ηελ ζεξκνθξαζία κνλνπύξελσλ θαη πνιππύξελσλ επεμεξγαζηώλ. Αλ θαη νη δπλαηόηεηεο απηέο ππάξρνπλ ζηνλ θώδηθα ηνπ SESC, εληνύηνηο επεηδή δελ δηαζέηεη επίζεκε θαη ζπλερή ππνζηήξημε, ε ρξήζε ηνπο είλαη αδύλαηε ρσξίο πξνεγνύκελε ηξνπνπνίεζε ηνπ θώδηθά ηνπ. ην θείκελν αλαθέξνληαη όια ηα πξνβιήκαηα πνπ αληηκεησπίζηεθαλ θαη αλαιύνληαη δηεμνδηθά ηα αίηηα ησλ πξνβιεκάησλ απηώλ θαζώο θαη νη ιύζεηο πνπ εθαξκόζηεθαλ πξνθεηκέλνπ λα μεπεξαζηνύλ. Με ρξήζε ηνπ ηξνπνπνηεκέλνπ πξνζνκνησηή, εθηεινύληαη ζηελ ζπλέρεηα πξνζνκνηώζεηο ηξηώλ δηαθνξεηηθώλ επεμεξγαζηώλ κε κεηαβιεηά αξρηηεθηνληθά ραξαθηεξηζηηθά θάλνληαο ρξήζε δύν γλσζηώλ ζνπηηώλ κεηξνπξνγξακκάησλ. Η επηινγή ησλ επεμεξγαζηώλ είλαη ηέηνηα ώζηε λα θαιύπηεηαη νιόθιεξν ην θάζκα ησλ ζύγρξνλσλ επεμεξγαζηώλ. Από ηηο πξνζνκνηώζεηο εμάγνληαη δεδνκέλα πνπ αθνξνύλ ηνπο ρξόλνπο εθηέιεζεο, ηελ θαηαλάισζε ηζρύνο θαη ηελ ζεξκνθξαζία θαη κε βάζε απηά γίλεηαη αμηνιόγεζε ησλ επηιεγκέλσλ επεμεξγαζηώλ. ΘΔΜΑΣΙΚΗ ΠΔΡΙΟΥΗ: Πξνζνκνησηέο Αξρηηεθηνληθήο Τπνινγηζηώλ ΛΔΞΔΙ ΚΛΔΙΓΙΑ: SESC, πξνζνκνίσζε, πνιππύξελνη επεμεξγαζηέο, θαηαλάισζε ηζρύνο, ζεξκνθξαζία

ABSTRACT In this diploma thesis the computer architecture simulator SESC is altered in order to make it capable of capturing power and thermal data for single and multi core processors. These capabilities exist in the original SESC code, but due to lack of official and constant support, it is not possible to use them correctly without making the necessary alterations. This text describes all the problems encountered with SESC and consequently proceeds to analyse their causes and solutions. The altered simulator is then used to simulate three processors with varying architectural characteristics using two well known benchmark suites. The processors are selected in such a way that they cover the design space of modern processors. The timing, power and thermal results extracted from those simulations are finally used to evaluate the selected processors. SUBJECT AREA: Computer Architecture Simulator KEYWORDS: SESC, simulation, multicore processors, power consuption, temperature

ηελ Υξπζή γηα ηελ ζπλερή ηεο ζηήξημε ΑΦΙΔΡΧΔΙ

ΔΤΥΑΡΙΣΙΔ Η ζπγθεθξηκέλε δηπισκαηηθή εξγαζία εθπνλήζεθε ζην εξγαζηήξην Φεθηαθώλ πζηεκάησλ θαη Αξρηηεθηνληθή Τπνινγηζηώλ ηνπ Σκήκαηνο Πιεξνθνξηθήο θαη Σειεπηθνηλσληώλ ηνπ Δζληθνύ θαη Καπνδηζηξηαθνύ Παλεπηζηεκίνπ Αζελώλ ππό ηελ επίβιεςε ηνπ Καζεγεηή Αληώληνπ Παζράιε. Θα ήζεια πξώηα απ όια λα επραξηζηήζσ ζεξκά ηνλ θύξην Παζράιε θαη ηνλ Μεηαδηδαθηνξηθό Δξεπλεηή, Νεθηάξην Κξαλίηε πνπ κνπ έδσζαλ ηελ επθαηξία λ αζρνιεζώ κε απηό ην εμαηξεηηθά ελδηαθέξνλ θαη ζύγρξνλν ζέκα θαζώο θαη γηα ηελ ζηήξημε θαη θαζνδήγεζε πνπ κνπ παξείραλ θαηά ηελ πνξεία ηεο εθπόλεζεο ηεο εξγαζίαο. ηε ζπλέρεηα ζα ήζεια λα επραξηζηήζσ ζεξκά ηνλ Τπνςήθην Γηδάθηνξα Αλδξέα Μεξεληίηε θαζώο ρσξίο ηελ άκεζε επηθνηλσλία θαη ηελ ζπλερή παξνρή ηερληθήο θαη ινηπήο θύζεσο βνήζεηαο εθ κέξνπο ηνπ, ε νινθιήξσζε ηεο εξγαζίαο ζα ήηαλ αδύλαηε.

ΠΔΡΙΔΥΟΜΔΝΑ ΠΔΡΙΛΗΦΗ... 3 ABSTRACT... 4 ΑΦΙΔΡΧΔΙ... 5 ΔΤΥΑΡΙΣΙΔ... 6 ΠΔΡΙΔΥΟΜΔΝΑ... 7 ΔΤΡΔΣΗΡΙΟ ΔΙΚΟΝΧΝ ΚΑΙ ΥΗΜΑΣΧΝ... 9 ΔΤΡΔΣΗΡΙΟ ΠΙΝΑΚΧΝ... 10 ΚΔΦΑΛΑΙΟ 1 ΠΡΟΟΜΟΙΧΣΔ... 14 1.1 Δπηζθόπεζε πξνζνκνησηώλ αξρηηεθηνληθήο ππνινγηζηώλ... 14 1.2 Δπηζθόπεζε ηνπ πξνζνκνησηή SESC... 18 1.3 Γνκή ηνπ SESC... 20 1.4 Δπηπξόζζεηα ζηνηρεία γηα ηνλ SESC... 24 ΚΔΦΑΛΑΙΟ 2 ΚΑΣΑΝΑΛΧΗ ΙΥΤΟ... 25 2.1 εκαζία ηεο θαηαλάισζεο ηζρύνο... 25 2.2 Δμίζσζε θαηαλάισζεο ηζρύνο... 29 2.3 Βαζηθνί ηξόπνη κείσζεο ηεο θαηαλάισζεο ηζρύνο... 30 2.4 Μεηξηθέο επίδνζεο πνπ ιακβάλνπλ ππόςε ηνπο ηελ θαηαλάισζε ηζρύνο... 32 ΚΔΦΑΛΑΙΟ 3 ΣΡΟΠΟΠΟΙΗΔΙ ΣΟΝ SESC... 34 3.1 Δηζαγσγή... 34 3.2 Βαζηθά ζηνηρεία γηα ηελ κεηαγιώηηηζε θαη ηελ εθηέιεζε πξνγξακκάησλ ζηνλ SESC... 34 3.3 ρεηηθά κε ηελ κέηξεζε ηεο θαηαλάισζεο ηζρύνο θαη ζεξκνθξαζίαο ζηνλ SESC... 36 3.4 Αληηκεηώπηζε πξνβιήκαηνο πξνζνκνίσζεο ηζρύνο ζε πνιππύξελνπο επεμεξγαζηέο... 37 Γεώξγηνο Δ. Αλδξηαλάθεο 7

3.5 Αληηκεηώπηζε ζθάικαηνο CacheCore.cpp... 41 3.6 Αληηκεηώπηζε πξνβιεκάησλ θαηά ην cross-compilation... 41 3.7 Αληηκεηώπηζε πξνβιεκάησλ ηνπ sescspot... 44 ΚΔΦΑΛΑΙΟ 4 ΑΠΟΣΔΛΔΜΑΣΑ ΜΔΣΡΟΠΡΟΓΡΑΜΜΑΣΧΝ... 47 4.1 Δηζαγσγή... 47 4.2 πγθεληξσηηθά Απνηειέζκαηα... 49 4.3 Γηαγξάκκαηα ζύγθξηζεο... 66 4.4 Θεξκνθξαζηαθά απνηειέζκαηα... 74 ΟΡΟΛΟΓΙΑ... 78 ΤΝΣΜΗΔΙ ΑΡΚΣΙΚΟΛΔΞΑ... 80 ΒΙΒΛΙΟΓΡΑΦΙΚΔ ΑΝΑΦΟΡΔ... 81 Γεώξγηνο Δ. Αλδξηαλάθεο 8

ΔΤΡΔΣΗΡΙΟ ΔΙΚΟΝΧΝ ΚΑΙ ΥΗΜΑΣΧΝ Δηθόλα 1: Δίδε πξνζνκνησηώλ αξρηηεθηνληθήο ππνινγηζηώλ... 16 Δηθόλα 2: Αξρηηεθηνληθή ζρεδίαζε ηνπ SESC... 20 Δηθόλα 3: Γηαξξύζκηζε ηεο κλήκεο... 45 Δηθόλα 4: Θεξκηθή απεηθόληζε επεμεξγαζηή AMD 2GHz... 76 Δηθόλα 5: Θεξκηθή απεηθόληζε επεμεξγαζηή AMD 3GHz... 76 Δηθόλα 6: Θεξκηθή απεηθόληζε επεμεξγαζηή AMD 5GHz... 77 ρήκα 1: Καηαλάισζε ηζρύνο ζε επεμεξγαζηέο... 26 ρήκα 2: crafty - PDP... 67 ρήκα 3: crafty - PD 2 P... 67 ρήκα 4: fft - PDP... 68 ρήκα 5: fft - PD 2 P... 68 ρήκα 6: lu - PDP... 69 ρήκα 7: lu - PD 2 P... 69 ρήκα 8: mcf - PDP... 70 ρήκα 9: mcf - PD 2 P... 71 ρήκα 10: ocean - PDP... 71 ρήκα 11: ocean - PD 2 P... 72 ρήκα 12: water-ns - PDP... 72 ρήκα 13: water-ns - PD 2 P... 73 Γεώξγηνο Δ. Αλδξηαλάθεο 9

ΔΤΡΔΣΗΡΙΟ ΠΙΝΑΚΧΝ Πίλαθαο 1: πλάξηεζε δεκηνπξγίαο πνπ πξνζηέζεθε ζηελ θιάζε GStatsEnergyNull... 39 Πίλαθαο 2: πλάξηεζε θαηαζηξνθήο πνπ δηαζέηεη ε θιάζε GStats... 39 Πίλαθαο 3: πλάξηεζε subscribe ηεο θιάζεο GStats... 40 Πίλαθαο 4: πλάξηεζε unsubscribe ηεο θιάζεο GStats... 40 Πίλαθαο 5: Makefile γηα πξόγξακκα OCEAN... 43 Πίλαθαο 6: ηνηρεία κεηξνπξνγξακκάησλ... 47 Πίλαθαο 7: Μεηαβιεηά ζηνηρεία επεμεξγαζηώλ... 49 Πίλαθαο 8: AMD 1-ππξήλαο, 2GHz, κηθξέο cache... 50 Πίλαθαο 9: AMD 1-ππξήλαο, 3GHz, κηθξέο cache... 50 Πίλαθαο 10: AMD 1-ππξήλαο, 5GHz, κηθξέο cache... 50 Πίλαθαο 11: AMD 1-ππξήλαο, 2GHz, κεγάιεο cache... 50 Πίλαθαο 12: AMD 1-ππξήλαο, 3GHz, κεγάιεο cache... 51 Πίλαθαο 13: AMD 1-ππξήλαο, 5GHz, κεγάιεο cache... 51 Πίλαθαο 14: AMD 2-ππξήλεο, 2GHz, κηθξέο cache... 51 Πίλαθαο 15: AMD 2-ππξήλεο, 3GHz, κηθξέο cache... 51 Πίλαθαο 16: AMD 2-ππξήλεο, 5GHz, κηθξέο cache... 52 Πίλαθαο 17: AMD 2-ππξήλεο, 2GHz, κεγάιεο cache... 52 Πίλαθαο 18: AMD 2-ππξήλεο, 3GHz, κεγάιεο cache... 52 Πίλαθαο 19: AMD 2-ππξήλεο, 5GHz, κεγάιεο cache... 52 Πίλαθαο 20: AMD 4-ππξήλεο, 2GHz, κηθξέο cache... 52 Πίλαθαο 21: AMD 4-ππξήλεο, 3GHz, κηθξέο cache... 53 Πίλαθαο 22: AMD 4-ππξήλεο, 5GHz, κηθξέο cache... 53 Πίλαθαο 23: AMD 4-ππξήλεο, 2GHz, κεγάιεο cache... 53 Πίλαθαο 24: AMD 4-ππξήλεο, 3GHz, κεγάιεο cache... 53 Πίλαθαο 25: AMD 4-ππξήλεο, 5GHz, κεγάιεο cache... 53 Γεώξγηνο Δ. Αλδξηαλάθεο 10

Πίλαθαο 26: AMD 8-ππξήλεο, 2GHz, κηθξέο cache... 54 Πίλαθαο 27: AMD 8-ππξήλεο, 3GHz, κηθξέο cache... 54 Πίλαθαο 28: AMD 8-ππξήλεο, 5GHz, κηθξέο cache... 54 Πίλαθαο 29: AMD 8-ππξήλεο, 2GHz, κεγάιεο cache... 54 Πίλαθαο 30: AMD 8-ππξήλεο, 3GHz, κεγάιεο cache... 54 Πίλαθαο 31: AMD 8-ππξήλεο, 5GHz, κεγάιεο cache... 55 Πίλαθαο 32: EV6 1-ππξήλαο, 1GHz, κηθξέο cache... 55 Πίλαθαο 33: EV6 1-ππξήλαο, 2GHz, κηθξέο cache... 55 Πίλαθαο 34: EV6 1-ππξήλαο, 3GHz, κηθξέο cache... 55 Πίλαθαο 35: EV6 1-ππξήλαο, 1GHz, κεγάιεο cache... 56 Πίλαθαο 36: EV6 1-ππξήλαο, 2GHz, κεγάιεο cache... 56 Πίλαθαο 37: EV6 1-ππξήλαο, 3GHz, κεγάιεο cache... 56 Πίλαθαο 38: EV6 2-ππξήλεο, 1GHz, κηθξέο cache... 56 Πίλαθαο 39: EV6 2-ππξήλεο, 2GHz, κηθξέο cache... 57 Πίλαθαο 40: EV6 2-ππξήλεο, 3GHz, κηθξέο cache... 57 Πίλαθαο 41: EV6 2-ππξήλεο, 1GHz, κεγάιεο cache... 57 Πίλαθαο 42: EV6 2-ππξήλεο, 2GHz, κεγάιεο cache... 57 Πίλαθαο 43: EV6 2-ππξήλεο, 3GHz, κεγάιεο cache... 57 Πίλαθαο 44: EV6 16-ππξήλεο, 1GHz, κηθξέο cache... 58 Πίλαθαο 45: EV6 16-ππξήλεο, 2GHz, κηθξέο cache... 58 Πίλαθαο 46: EV6 16-ππξήλεο, 3GHz, κηθξέο cache... 58 Πίλαθαο 47: EV6, 16-ππξήλεο, 1GHz, κεγάιεο cache... 58 Πίλαθαο 48: EV6, 16-ππξήλεο, 2GHz, κεγάιεο cache... 58 Πίλαθαο 49: EV6, 16-ππξήλεο, 3GHz, κεγάιεο cache... 59 Πίλαθαο 50: EV6, 32-ππξήλεο, 1GHz, κηθξέο cache... 59 Πίλαθαο 51: EV6, 32-ππξήλεο, 2GHz, κηθξέο cache... 59 Γεώξγηνο Δ. Αλδξηαλάθεο 11

Πίλαθαο 52: EV6, 32-ππξήλεο, 3GHz, κηθξέο cache... 59 Πίλαθαο 53: EV6, 32-ππξήλεο, 1GHz, κεγάιεο cache... 59 Πίλαθαο 54: EV6, 32-ππξήλεο, 2GHz, κεγάιεο cache... 60 Πίλαθαο 55: EV6, 32-ππξήλεο, 3GHz, κεγάιεο cache... 60 Πίλαθαο 56: Σ1, 1-ππξήλαο, 1GHz, κηθξέο cache... 60 Πίλαθαο 57: Σ1, 1-ππξήλαο, 2GHz, κηθξέο cache... 61 Πίλαθαο 58: Σ1, 1-ππξήλαο, 3GHz, κηθξέο cache... 61 Πίλαθαο 59: Σ1, 1-ππξήλαο, 1GHz, κεγάιεο cache... 61 Πίλαθαο 60: Σ1, 1-ππξήλαο, 2GHz, κεγάιεο cache... 61 Πίλαθαο 61: Σ1, 1-ππξήλαο, 3GHz, κεγάιεο cache... 62 Πίλαθαο 62: Σ1, 2-ππξήλεο, 1GHz, κηθξέο cache... 62 Πίλαθαο 63: Σ1, 2-ππξήλεο, 2GHz, κηθξέο cache... 62 Πίλαθαο 64: Σ1, 2-ππξήλεο, 3GHz, κηθξέο cache... 62 Πίλαθαο 65: Σ1, 2-ππξήλεο, 1GHz, κεγάιεο cache... 62 Πίλαθαο 66: Σ1, 2-ππξήλεο, 2GHz, κεγάιεο cache... 63 Πίλαθαο 67: Σ1, 2-ππξήλεο, 3GHz, κεγάιεο cache... 63 Πίλαθαο 68: Σ1, 16-ππξήλεο, 1GHz, κηθξέο cache... 63 Πίλαθαο 69: Σ1, 16-ππξήλεο, 2GHz, κηθξέο cache... 63 Πίλαθαο 70: Σ1, 16-ππξήλεο, 3GHz, κηθξέο cache... 64 Πίλαθαο 71: Σ1, 16-ππξήλεο, 1GHz, κεγάιεο cache... 64 Πίλαθαο 72: Σ1, 16-ππξήλεο, 2GHz, κεγάιεο cache... 64 Πίλαθαο 73: Σ1, 16-ππξήλεο, 3GHz, κεγάιεο cache... 64 Πίλαθαο 74: Σ1, 32-ππξήλεο, 1GHz, κηθξέο cache... 64 Πίλαθαο 75: Σ1, 32-ππξήλεο, 2GHz, κηθξέο cache... 65 Πίλαθαο 76: Σ1, 32-ππξήλεο, 3GHz, κηθξέο cache... 65 Πίλαθαο 77: Σ1, 32-ππξήλεο, 1GHz, κεγάιεο cache... 65 Γεώξγηνο Δ. Αλδξηαλάθεο 12

Πίλαθαο 78: Σ1, 32-ππξήλεο, 2GHz, κεγάιεο cache... 65 Πίλαθαο 79: Σ1, 32-ππξήλεο, 3GHz, κεγάιεο cache... 65 Πίλαθαο 80: ύγθξηζε πβξηδηθνύ θαη "πξαγκαηηθνύ" T1... 66 Πίλαθαο 81: Θεξκνθξαζηαθά απνηειέζκαηα... 75 Γεώξγηνο Δ. Αλδξηαλάθεο 13

ΚΔΦΑΛΑΙΟ 1 ΠΡΟΟΜΟΙΧΣΔ 1.1 Δπιζκόπηζη πποζομοιυηών απσιηεκηονικήρ ςπολογιζηών Η πξνζνκνίσζε απνηειεί έλα απαξαίηεην ζηάδην ηνπ ζρεδηαζκνύ θαη ηεο θαηαλόεζεο πνιύπινθσλ ζπζηεκάησλ. Δμ αηηίαο ηεο ηδηαίηεξεο ζεκαζίαο ηεο, ε πξνζνκνίσζε είλαη έλα πεδίν ελδηαθέξνληνο γηα επηζηήκνλεο θαη κεραληθνύο πνιιώλ θιάδσλ. Η όιν έλα θαη απμαλόκελε εμάξηεζε ησλ δηαθόξσλ πεξηνρώλ έξεπλαο από ηελ πξνζνκνίσζε, έρεη νδεγήζεη ζηελ ζπλερή βειηίσζε ησλ ήδε ππαξρόλησλ αιιά θαη ζηελ δεκηνπξγία λέσλ εξγαιείσλ πξνζνκνίσζεο. Υαξαθηεξηζηηθό παξάδεηγκα απηήο ηεο ηάζεο απνηειεί ε αξρηηεθηνληθή ππνινγηζηώλ όπνπ ην πιήζνο ησλ ζρεηηθώλ εξγαιείσλ αλέξρεηαη ζε αξθεηέο δεθάδεο. Δθόζνλ ν ζθνπόο ηεο δηπισκαηηθήο απηήο εξγαζίαο είλαη ε ηξνπνπνίεζε θαη ρξεζηκνπνίεζε ελόο πξνζνκνησηή αξρηηεθηνληθήο ππνινγηζηώλ (computer architecture simulator), θξίλεηαη ζθόπηκν λα παξνπζηαζηνύλ γη απηνύο νξηζκέλα βαζηθά ζηνηρεία. Έλαο πξνζνκνησηήο αξρηηεθηνληθήο ππνινγηζηώλ είλαη έλα πξνγξάκκαηα πνπ αλαιακβάλεη λ αλαπαξάγεη ηελ ζπκπεξηθνξά κηαο ζπζθεπήο ελόο ππνινγηζηηθνύ ζπζηήκαηνο (θπξίσο ηνλ επεμεξγαζηή αιιά ελδερνκέλσο θαη ηηο κλήκεο), ή αθόκα θη νιόθιεξνπ ηνπ ππνινγηζηηθνύ ζπζηήκαηνο. Η αλαπαξαγσγή ηεο ζπκπεξηθνξάο ηεο ζπζθεπήο ή ηνπ ζπζηήκαηνο ζπλίζηαηαη ζηελ παξαγσγή ησλ ζεκάησλ εμόδνπ ή/θαη ζηελ παξαγσγή δεδνκέλσλ πνπ αθνξνύλ ηηο επηδόζεηο ηεο ζπζθεπήο ή ηνπ ζπζηήκαηνο ππό πξνζνκνίσζε, γηα δεδνκέλεο ηηκέο ησλ ζεκάησλ εηζόδνπ. Σα δεδνκέλα πνπ αθνξνύλ ηηο επηδόζεηο κπνξεί λα είλαη ρξόλνη εθηέιεζεο, θαηαλάισζε ηζρύνο, θ.α. Η ρξήζε πξνζνκνησηώλ ζηελ εξεπλεηηθή πεξηνρή ηεο αξρηηεθηνληθήο ππνινγηζηώλ έρεη ηα παξαθάησ πιενλεθηήκαηα. Δπηηξέπεη ηελ αμηνιόγεζε πνιιώλ ελαιιαθηηθώλ ζρεδηαζκώλ hardware ρσξίο λα είλαη απαξαίηεηε ε θαηαζθεπή ηνπο, πνπ ελδέρεηαη λα είλαη ρξνλνβόξα θαη αθξηβή δηαδηθαζία Καζηζηά δπλαηή ηελ ρξήζε θαη αμηνιόγεζε (ζε επίπεδν πξνζνκνίσζεο) ππνινγηζηηθώλ ζπζηεκάησλ πνπ δελ ππάξρνπλ ζηελ πξάμε Γίλεη ηελ δπλαηόηεηα λα ζπιιερζνύλ πνιιαπιά δεδνκέλα πνπ αθνξνύλ ηηο επηδόζεηο ηνπ ζπζηήκαηνο κε κία θαη κόλν εθηέιεζε Γεώξγηνο Δ. Αλδξηαλάθεο 14

Παξ όια ηα πιενλεθηήκαηα πνπ αλαθέξζεθαλ παξαπάλσ, ε ρξήζε πξνζνκνησηώλ έρεη θαη νξηζκέλα κεηνλεθηήκαηα ηα νπνία αλαθέξνληαη παξαθάησ. Οη ρξόλνη εθηέιεζεο πξνγξακκάησλ εληόο ησλ πξνζνκνησηώλ είλαη ππνρξεσηηθά πνιύ κεγαιύηεξνη από ηνπο ρξόλνπο εθηέιεζεο ησλ ίδησλ πξνγξακκάησλ ζην πξαγκαηηθό ππνινγηζηηθό ζύζηεκα. Αλάινγα κε ην είδνο ηνπ θαζώο θαη ηνλ ζπγθεθξηκέλν πξνζνκνησηή πνπ ρξεζηκνπνηείηαη, ν ρξόλνο εθηέιεζεο ηεο πξνζνκνίσζεο κπνξεί λα είλαη από κεξηθέο εθαηνληάδεο σο θαη εθαηνκκύξηα θνξέο κεγαιύηεξνο από ηνλ ρξόλν εθηέιεζεο ζην πξαγκαηηθό ππνινγηζηηθό ζύζηεκα ή ζπζθεπή. Σα απνηειέζκαηα πνπ παξάγνληαη από ηνπο πξνζνκνησηέο θαη αθνξνύλ ηηο επηδόζεηο ηνπ ππνινγηζηηθνύ ζπζηήκαηνο ή ηεο ζπζθεπήο, ζε θακία πεξίπησζε δελ κπνξνύλ λα ιεθζνύλ σο πιήξσο αμηόπηζηα ζηελ πεξίπησζε πνπ ρξεζηκνπνηνύληαη απόιπηεο ηηκέο επηδόζεσλ. Αληίζεηα νη πξνζνκνησηέο έρνπλ ηελ δπλαηόηεηα λα θαηαγξάθνπλ αξθεηά θαιά ηα ζρεηηθά απνηειέζκαηα πνπ πξνθύπηνπλ από ηελ ζύγθξηζε δηαθόξσλ ππό πξνζνκνίσζε ζπζθεπώλ ή ζπζηεκάησλ. Απηόο είλαη ν ιόγνο πνπ πνιιέο από ηηο εξεπλεηηθέο εξγαζίεο πνπ ρξεζηκνπνηνύλ πξνζνκνησηέο αξρηηεθηνληθήο ππνινγηζηώλ παξνπζηάδνπλ θαλνληθνπνηεκέλεο ηηκέο απνηειεζκάησλ γηα ηηο επηδόζεηο ησλ επεμεξγαζηώλ. Ο ιόγνο πνπ νη πξνζνκνησηέο δελ κπνξνύλ λα παξάγνπλ αμηόπηζηεο απόιπηεο ηηκέο είλαη όηη ηα ππνινγηζηηθά ζπζηήκαηα ή νη ζπζθεπέο πνπ θαινύληαη λα πξνζνκνηώζνπλ είλαη εμαηξεηηθά πνιύπινθεο νπόηε ππνρξεσηηθά γηα ηελ κνληεινπνίεζή ηνπο γίλνληαη απινπνηήζεηο. Δπίζεο νη πξνζνκνησηέο ζπλήζσο δελ κνληεινπνηνύλ ηελ επίδξαζε ηνπ ιεηηνπξγηθνύ ζπζηήκαηνο, γεγνλόο πνπ αλαπόθεπθηα νδεγεί ζε ιηγόηεξν αμηόπηζηα απνηειέζκαηα. Οη πξνζνκνησηέο αξρηηεθηνληθήο ππνινγηζηώλ κπνξνύλ λα θαηαηαρζνύλ ζε θαηεγνξίεο κε βάζε δηάθνξα θξηηήξηα. ηελ εηθόλα 1 δίλεηαη ζρεκαηηθά ν ρώξνο πνπ αλαπαξηζηά ηα είδε ησλ πξνζνκνησηώλ αξρηηεθηνληθήο ππνινγηζηώλ. Γεώξγηνο Δ. Αλδξηαλάθεο 15

Computer Architecture Simulator Functional Performance Trace Driven Execution Driven Instruction Scheduler Cycle Accurate Simulator Δικόνα 1: Δίδη πποζομοιυηών απσιηεκηονικήρ ςπολογιζηών Όπσο θαίλεηαη από ηελ εηθόλα 1 νη πξνζνκνησηέο κπνξνύλ λα ρσξηζηνύλ ζε ιεηηνπξγηθνύο πξνζνκνησηέο (functional simulators) θαη ζε πξνζνκνησηέο επηδόζεσλ (performance simulators). Οη functional simulators αξθνύληαη ζην λα πξνζνκνηώζνπλ ην θνκκάηη ηεο ζπζθεπήο πνπ είλαη νξαηό ζηνλ πξνγξακκαηηζηή. ηελ πεξίπησζε ηεο πξνζνκνίσζεο ελόο επεμεξγαζηή απηό ζεκαίλεη όηη ν πξνζνκνησηήο ζα πξνζνκνηώλεη κόλν ηελ αξρηηεθηνληθή ζπλόινπ εληνιώλ (instruction set architecture) θαη όρη ηελ κηθξναξρηηεθηνληθή (microarchitecture) ηνπ επεμεξγαζηή. Απηνύ ηνπ είδνπο νη πξνζνκνησηέο δελ κπνξνύλ λα παξέρνπλ αθξηβείο πιεξνθνξίεο γηα ηηο επηδόζεηο ηεο ππό πξνζνκνίσζε ζπζθεπήο. Ο ζθνπόο ηνπο είλαη θπξίσο λα κπνξεί λα ειεγρζεί όηη πξνγξάκκαηα πνπ έρνπλ γξαθηεί γηα παιαηόηεξεο αξρηηεθηνληθέο κπνξνύλ λα ιεηηνπξγήζνπλ θαη ζε λεόηεξεο. Αληίζεηα ν ζθνπόο ησλ performance simulators είλαη λα πξνζνκνηώλνπλ όζν δπλαηόλ αθξηβέζηεξα ηελ ζπζθεπή. ηελ πεξίπησζε ελόο επεμεξγαζηή απηό ζεκαίλεη πσο ζα πξνζνκνηώλεηαη όζνλ ην δπλαηόλ θαιύηεξα ε κηθξναξρηηεθηνληθή ηνπ επεμεξγαζηή, ελδερνκέλσο ιακβάλνληαο πιήξσο ππόςε ζηνηρεία όπσο ην πιήζνο ησλ θαηαρσξεηώλ (registers) ηνπ επεμεξγαζηή, ε ύπαξμε ζσιήλσζεο (pipeline) ην πιήζνο ησλ ιεηηνπξγηθώλ κνλάδσλ, ε ύπαξμε δπλαηόηεηαο εθηέιεζε εληνιώλ εθηόο ζεηξάο (out of order execution) θ.α. Ο ζθνπόο απηνύ ηνπ είδνπο ησλ πξνζνκνησηώλ είλαη λα παξάγνπλ όζν ηνλ δπλαηόλ πεξηζζόηεξα θαη πην πηζηά ζηνηρεία γηα ηηο επηδόζεηο ηεο ππό πξνζνκνίσζε ζπζθεπήο. ηελ εηθόλα 1 βιέπνπκε πσο νη functional simulators θαηεγνξηνπνηνύληαη αλάινγα κε ην είδνο ηεο εηζόδνπ πνπ δέρνληαη ζε πξνζνκνησηέο νδεγνύκελνπο από ίρλε (trace driven) θαη ζε πξνζνκνησηέο νδεγνύκελνπο από εθηέιεζε (execution driven). Η πξώηε θαηεγνξία Γεώξγηνο Δ. Αλδξηαλάθεο 16

δηαβάδεη έλα ίρλνο εληνιώλ κε δεδνκέλεο εηζόδνπο πνπ έρεη παξαρζεί από κηα πξνεγνύκελε εθηέιεζε (είηε πξνζνκνησκέλε είηε θαλνληθή). Η δεύηεξε θαηεγνξία δηαβάδεη έλα αξρείν εθηειέζηκνπ θώδηθα θαη εθηειεί ην πξόγξακκα θαλνληθά, όπσο ζα εθηεινύληαλ από έλα πξαγκαηηθό ππνινγηζηηθό ζύζηεκα. Σα πιενλεθηήκαηα πνπ έρεη ε πξώηε θαηεγνξία είλαη ε κεγαιύηεξε επθνιία αλάπηπμεο ηνπ πξνζνκνησηή θαη ε κεγαιύηεξε ηαρύηεηα εθηέιεζεο ηεο πξνζνκνίσζεο. Έλα ζεκαληηθό πιενλέθηεκα ηεο δεύηεξεο θαηεγνξίαο είλαη ε δπλαηόηεηα εθηέιεζεο (ζρεδόλ) νπνηνπδήπνηε πξνγξάκκαηνο εληόο ηνπ πξνζνκνησηή αξθεί λα έρεη κεηαγισηηηζηεί γηα ηελ ζπγθεθξηκέλε αξρηηεθηνληθή ζπλόινπ εληνιώλ πνπ πξνζνκνηώλεη ν πξνζνκνησηήο. Σν πην ζεκαληηθό πιενλέθηεκα απηήο ηεο θαηεγνξίαο όκσο, είλαη ην γεγνλόο όηη ε πξνζνκνίσζε είλαη πνιύ πην αθξηβήο θαζώο ιακβάλεη ππόςε δπλακηθά γεγνλόηα όπσο ν πεξηνξηζκέλνο αξηζκόο πόξσλ ηνπ επεμεξγαζηή πνπ δηακνξθώλνπλ ην κνλνπάηη εθηέιεζεο. Οη perfomance simulators ρσξίδνληαη ζε πξνζνκνησηέο πνπ πξνζνκνηώλνπλ επαθξηβώο ηελ ιεηηνπξγία ελόο επεμεξγαζηή γηα θάζε θύθιν ηνπ ξνινγηνύ (cycle accurate simulators) θαη ζε πξνζνκνησηέο πνπ απιά πξνγξακκαηίδνπλ ηελ εθηέιεζε ησλ εληνιώλ (instruction schedulers). Η πξώηε θαηεγνξία πξνζνκνησηώλ δηαηεξεί αλά πάζα ζηηγκή δεδνκέλα γηα ηελ θαηάζηαζε όισλ ησλ ηκεκάησλ ηεο κηθξναξρηηεθηνληθήο ηνπ επεμεξγαζηή. Με απηό ηνλ ηξόπν είλαη δπλαηή ε πξνζνκνίσζε επεμεξγαζηώλ πνπ δηαζέηνπλ ραξαθηεξηζηηθά όπσο ε εθηόο ζεηξάο εθηέιεζε, ε ύπαξμε πνιιαπιώλ ιεηηνπξγηθώλ κνλάδσλ (superscalar) θ.α. Η δεύηεξε θαηεγνξία απιά δηαηεξεί πιεξνθνξίεο ζρεηηθέο κε ηελ δηαζεζηκόηεηα ησλ ιεηηνπξγηθώλ κνλάδσλ θαη επηηξέπεη ηνλ πξνγξακκαηηζκό ηεο εθηέιεζεο ησλ εληνιώλ, ζπλήζσο εληόο ζεηξάο. Οξηζκέλνη από ηνπο πην επξύηεξα ρξεζηκνπνηνύκελνπο πξνζνκνησηέο αξρηηεθηνληθήο ππνινγηζηώλ είλαη νη εμήο: Ο πξνζνκνησηήο SimpleScalar έρεη ρξεζηκνπνηεζεί επξέσο ζε εξεπλεηηθέο εξγαζίεο θαη σο δηδαθηηθό εξγαιείν από ηελ εκθάληζή ηνπ ην 1995. Η βαζηθή έθδνζε ηνπ SimpleScalar κνληεινπνηεί έλαλ κνλνύ ππξήλα pipelined επεμεξγαζηή πνπ δηαζέηεη δπλαηόηεηα out of order execution. Έθηνηε ν SimpleScalar έρεη επεθηαζεί από δηάθνξεο νκάδεο πξνθεηκέλνπ λα ππνζηεξίμεη επεμεξγαζηέο πνιιαπιώλ ππξήλσλ. Ο πξνζνκνησηήο Simics έρεη ηελ δπλαηόηεηα λα πξνζνκνηώζεη έλα νιόθιεξν ππνινγηζηηθό ζύζηεκα. Χο απνηέιεζκα, κπνξεί λα ηξέμεη εληόο ηνπ πξνζνκνησηή έλα θαλνληθό ιεηηνπξγηθό ζύζηεκα. Γεώξγηνο Δ. Αλδξηαλάθεο 17

Ο πξνζνκνησηήο SESC (ν νπνίνο ρξεζηκνπνηείηαη ζε απηή ηελ εξγαζία) έρεη ηελ δπλαηόηεηα λα πξνζνκνηώζεη πνιινύο ηύπνπο επεμεξγαζηώλ θαη απνηειεί κηα από ηηο λεόηεξεο πξνζζήθεο ζηνλ ρώξν ησλ πξνζνκνησηώλ αξρηηεθηνληθήο ππνινγηζηώλ. Η παξνπζίαζή ηνπ ζα γίλεη μερσξηζηά ζηελ ακέζσο επόκελε ελόηεηα. 1.2 Δπιζκόπηζη ηος πποζομοιυηή SESC Ο SESC είλαη έλαο cycle accurate simulator πνπ κπνξεί λα πξνζνκνηώζεη ηνπο παξαθάησ ηύπνπο επεμεξγαζηώλ: Μνλνπύξελν επεμεξγαζηή πνπ δηαζέηεη όιεο ηηο ηερληθέο πνπ ρξεζηκνπνηνύλ νη ζύγρξνλνη επεμεξγαζηέο γηα ηελ εθκεηάιιεπζε ηεο παξαιιειίαο ζε επίπεδν εληνιήο (Instruction Level Parallelism - ILP), επεμεξγαζηή πνπ έρεη ηελ δπλαηόηεηα λα εθηειεί πνιιά λήκαηα ηαπηόρξνλα (Simultaneous Multi-Threading - SMT), πνιππύξελν επεμεξγαζηή (Chip Multi-processor, CMP) θαη επεμεξγαζηή κε ηελ δπλαηόηεηα λα δεκηνπξγεί λήκαηα από ηνλ θώδηθα θαη λα ηα εθηειεί κε ηελ εηθαζία όηη κπνξεί λα απνηεινύλ κέξνο ηνπ ηειηθνύ κνλνπαηηνύ εθηέιεζεο (Thread Level Speculation). Δπίζεο ν SESC έρεη ηελ δπλαηόηεηα λα πξνζνκνηώζεη έλα ζύζηεκα κε πνιινύο επεμεξγαζηέο (Simultaneous Multi-Processor - SMP). Η αξρηηεθηνληθή ζπλόινπ εληνιώλ ησλ επεμεξγαζηώλ πνπ πξνζνκνηώλεη ν SESC είλαη ε αξρηηεθηνληθή MIPS. Απηό ζεκαίλεη πσο γηα λα εθηειεζηεί έλα πξόγξακκα ζηνλ SESC ζα πξέπεη λα έρεη κεηαγισηηηζηεί κε ηελ βνήζεηα ηνπ ζρεηηθνύ cross compiler. Γύν είλαη νη θύξηνη ζηόρνη πνπ πξνζπαζεί λα επηηύρεη ν SESC: Η πηζηόηεηα ησλ απνηειεζκάησλ θαη ε ηαρύηεηα εθηέιεζεο. Η πηζηόηεηα ησλ απνηειεζκάησλ επηηπγράλεηαη (ζην κέηξν πνπ απηό είλαη δπλαηό γηα πξνζνκνησηέο) κνληεινπνηώληαο θαη δηαηεξώληαο ζπλερώο πιεξνθνξίεο γηα όια ηα κηθξναξρηηεθηνληθά ραξαθηεξηζηηθά πνπ δηαζέηνπλ νη ζύγρξνλνη επεμεξγαζηέο. Σα ραξαθηεξηζηηθά απηά πεξηιακβάλνπλ εθηόο ησλ άιισλ, όιεο ηηο κεζόδνπο εθκεηάιιεπζεο ηεο παξαιιειίαο ζε επίπεδν εληνιήο, ηελ ηεξαξρία κλήκεο, ηα πξσηόθνιια ζπλάθεηαο ησλ θξπθώλ κλεκώλ (cache coherency protocols) θαη ηα δίθηπα δηαζύλδεζεο ζηελ πεξίπησζε ησλ επεμεξγαζηώλ πνιιώλ ππξήλσλ θαη ησλ ζπζηεκάησλ κε πνιινύο επεμεξγαζηέο. Η ηαρύηεηα εθηέιεζεο ηνπ πξνζνκνησηή είλαη εμαηξεηηθά ζεκαληηθό ραξαθηεξηζηηθό θαζώο ζπρλά παξνπζηάδεηαη ε αλάγθε εθηέιεζεο ρξνλνβόξσλ κεηξνπξνγξακκάησλ (benchmarks). Από κεηξήζεηο πνπ έρνπλ γίλεη, έρεη δεηρζεί πσο ν πξνζνκνησηήο SESC επηηπγράλεη ηθαλνπνηεηηθά ηνλ ζηόρν ηεο ηαρύηεηαο θαζώο είλαη αξθεηά πην γξήγνξνο από άιινπο πξνζνκνησηέο όπσο ν SimpleScalar. Γεώξγηνο Δ. Αλδξηαλάθεο 18

Έλα ζεκαληηθό πιενλέθηεκα ηνπ SESC είλαη ην γεγνλόο πσο παξάγεη έλαλ πνιύ κεγάιν αξηζκό δεδνκέλσλ πνπ αθνξνύλ ηηο επηδόζεηο ηνπ ππό πξνζνκνίσζε επεμεξγαζηή. Σα πην ζεκαληηθά από απηά ηα δεδνκέλα είλαη ν ζπλνιηθόο ρξόλνο πξνζνκνίσζεο, ν ζπλνιηθόο αξηζκόο θύθισλ, ην πιήζνο ησλ εληνιώλ πνπ νινθιεξώζεθαλ αλά θύθιν (instructions per cycle - IPC), ε θαηαλνκή ησλ εθηειεζκέλσλ εληνιώλ ζε ηύπνπο, ην πνζνζηό επηηπρίαο ηνπ πξνβιεπηή δηαθιαδώζεσλ θαη ηα πνζνζηά επηηπρώλ αλαδεηήζεσλ ζηηο θξπθέο κλήκεο. Δπίζεο ν SESC έρεη ηελ δπλαηόηεηα λα εμάγεη δεδνκέλα πνπ αθνξνύλ ηελ θαηαλάισζε ηζρύνο θαζώο θαη ζεξκνθξαζηαθά δεδνκέλα ηνπ επεμεξγαζηή. Όζνλ αθνξά ηελ αξρηηεθηνληθή ζρεδίαζε ηνπ θώδηθα ηνπ SESC δύν είλαη ηα θπξηόηεξα ραξαθηεξηζηηθά. Πξώηνλ, ν SESC δηαρσξίδεη ηελ εθηέιεζε ηνπ θώδηθα ηνπ πξνγξάκκαηνο πνπ ηξέρεη κέζα απηόλ, από ηελ θαηαγξαθή ζηνηρείσλ ζρεηηθώλ κε ηηο επηδόζεηο ηνπ ππό πξνζνκνίσζε επεμεξγαζηή, δειαδή δεδνκέλα όπσο ν ρξόλνο εθηέιεζεο ηεο εληνιήο από ηνλ ππό πξνζνκνίσζε επεμεξγαζηή, ε θαηαλάισζε ηζρύνο ηνπ θηι. Σν γεγνλόο απηό πξαθηηθά ζεκαίλεη πσο ν SESC ρξεζηκνπνηεί έλαλ απιό αιιά ηαρύ εμνκνησηή (emulator) γηα ηελ εθηέιεζε ησλ MIPS πξνγξακκάησλ, ν νπνίνο επηζηξέθεη αληηθείκελα εληνιώλ πνπ ζηε ζπλέρεηα ρξεζηκνπνηνύληαη από ηνλ πξνζνκνησηή γηα ηελ εμαγσγή δεδνκέλσλ πνπ αθνξνύλ ηηο επηδόζεηο ηνπ ππό πξνζνκνίσζε επεμεξγαζηή. Σα αληηθείκελα εληνιώλ πνπ επηζηξέθνληαη από ηνλ εμνκνησηή είλαη θιάζεηο πνπ πεξηέρνπλ πιεξνθνξίεο όπσο νη ρξεζηκνπνηεκέλνη θαηαρσξεηέο, νη ρξεζηκνπνηεκέλεο ιεηηνπξγηθέο κνλάδεο (όπσο πρ ε ALU), νη δηεπζύλζεηο απ όπνπ ελδερνκέλσο έγηλαλ load ή store θ.α. Χο εμνκνησηή MIPS ν SESC ρξεζηκνπνηεί ηνλ MINT. Ο SESC θάλεη απηό ηνλ δηαρσξηζκό γηα δύν ιόγνπο. Πξώηνλ ε εθηέιεζε ησλ εληνιώλ θαζίζηαηαη πνιύ πην γξήγνξε όηαλ γίλεηαη από έλαλ απιό εμνκνησηή. Γεύηεξνλ ν πξνγξακκαηηζκόο θαη ε απνζθαικάησζε ηνπ πξνζνκνησηή θαζίζηαληαη επθνιόηεξεο. Σν δεύηεξν ζεκαληηθό αξρηηεθηνληθό ζηνηρείν ηνπ θώδηθα ηνπ SESC είλαη ην γεγνλόο όηη πνιιέο ιεηηνπξγίεο ηνπ είλαη νδεγνύκελεο από ηα γεγνλόηα (event driven). Τπάξρνπλ δειαδή ιεηηνπξγίεο πνπ εθηεινύληαη (θαη ζπλεπώο ζπλαξηήζεηο ηνπ πξνζνκνησηή πνπ θαινύληαη) κόλν όηαλ ζπκβνύλ ζπγθεθξηκέλα γεγνλόηα, ζε αληίζεζε κε ηηο ιεηηνπξγίεο πνπ ζπκβαίλνπλ ζε θάζε θύθιν ηνπ ξνινγηνύ (όπσο ε αλάγλσζε εληνιώλ από ηελ κλήκε). Γηα παξάδεηγκα ε εηδνπνίεζε γηα ηελ εύξεζε κηαο δηεύζπλζεο ζηελ ηεξαξρία κλήκεο είλαη κηα ιεηηνπξγία πνπ νδεγείηαη από έλα γεγνλόο (ηεο εύξεζεο ηεο δηεύζπλζεο) θαζώο δελ είλαη εθ ησλ πξνηέξσλ γλσζηό ζε πνην επίπεδν ηεο ηεξαξρίαο ζα βξεζεί, ζπλεπώο δελ είλαη γλσζηό ζε πόζνπο θύθινπο ζα ηειεηώζεη ε αλαδήηεζε ηεο. Υξεζηκνπνηώληαο απηό ηνλ Γεώξγηνο Δ. Αλδξηαλάθεο 19

ηξόπν θιήζεο νξηζκέλσλ ζπλαξηήζεσλ ν ηαρύηεηα εθηέιεζεο ηνπ πξνζνκνησηή απμάλεηαη θαζώο δελ είλαη απαξαίηεην λα θαινύληαη ζε θάζε θύθιν όιεο νη ζπλαξηήζεηο πνπ ρεηξίδνληαη ηηο δηάθνξεο ιεηηνπξγίεο. 1.3 Γομή ηος SESC ηελ εηθόλα 2 παξαηίζεηαη ε αξρηηεθηνληθή ζρεδίαζε ηνπ SESC ζε πςειό επίπεδν. SESC Simulator Execution Flow (MINT) Fetch P P... P L1 L1 L1 Lower Level Memory System Δικόνα 2: Απσιηεκηονική ζσεδίαζη ηος SESC Όπσο θαίλεηαη θαη ζηελ εηθόλα, ν SESC απνηειείηαη από ηξία βαζηθά ηκήκαηα. Σν πξώην από απηά είλαη ην ηκήκα ηεο ξνήο εθηέιεζεο πνπ ειέγρεηαη από ηνλ πξνζνκνησηή MINT. Σν ηκήκα απηό αλαιακβάλεη ηελ εθηέιεζε ησλ MIPS εληνιώλ πνπ πεξηέρνληαη ζην δπαδηθό (binary) αξρείν ηνπ πξνγξάκκαηνο πνπ εθηειείηαη εληόο ηνπ SESC. Σν δεύηεξν ηκήκα είλαη ην κνληέιν ηνπ επεμεξγαζηή. Σν ηκήκα απηό αλαιακβάλεη ηελ κνληεινπνίεζε ηεο ζσιήλσζεο ηνπ επεμεξγαζηή θαζ όιε ηελ δηάξθεηα ξνήο εληνιώλ εληόο απηήο. Σν ηξίην βαζηθό κέξνο ηεο αξρηηεθηνληθήο ηνπ SESC είλαη ην ζύζηεκα κλήκεο. Απηό ην ηκήκα κνληεινπνηεί ηηο ηεξαξρίεο κλήκεο πνπ δηαζέηεη θάζε επεμεξγαζηήο αιιά θαη ηα ηκήκαηα κλήκεο πνπ κνηξάδνληαη νη επεμεξγαζηέο. Δπίζεο κνληεινπνηείηαη ην δίθηπν δηαζύλδεζεο ησλ επεμεξγαζηώλ κε ηηο κλήκεο θαη ηα πξσηόθνιια δηαηήξεζεο ηεο ζπλάθεηαο ησλ θξπθώλ κλεκώλ. Γεώξγηνο Δ. Αλδξηαλάθεο 20

ηελ ζπλέρεηα απηήο ηεο ελόηεηαο ζα πεξηγξάςνπκε κε αξθεηή ιεπηνκέξεηα ηελ αιιειεπίδξαζε απηώλ ησλ ηξηώλ πξναλαθεξζέλησλ κεξώλ ηνπ SESC. Όπσο αλαθέξζεθε θαη παξαπάλσ ην ηκήκα πνπ κνληεινπνηεί ηελ ξνή εθηέιεζεο εθηειεί ζηελ πξάμε ηεο εληνιέο ηνπ δπαδηθνύ αξρείνπ θώδηθα. Όηαλ ην ηκήκα απηό νινθιεξώζεη ηελ εθηέιεζε κηαο εληνιήο επηζηξέθεη έλα αληηθείκελν πνπ πεξηέρεη πνιιέο πιεξνθνξίεο ζρεηηθά κε ηελ εθηέιεζε ηεο εληνιήο. Σν αληηθείκελν απηό ρξεζηκνπνηείηαη από ην κνληέιν ηνπ επεμεξγαζηή πξνθεηκέλνπ λα εμαρζεί ν ρξόλνο πνπ απαηηείηαη γηα ηελ ξνή ηεο αληίζηνηρεο εληνιήο κέζα από ηε ζσιήλσζε θαη ε επίδξαζε ηεο εθηέιεζήο ηεο ζηα άιια απνηειέζκαηα επίδνζεο (όπσο π.ρ. ε επηηπρία ηνπ πξνβιεπηή δηαθιαδώζεσλ). Σν κνληέιν ηνπ επεμεξγαζηή ζπληνλίδεη ηελ αιιειεπίδξαζε ησλ δηαθόξσλ ζηαδίσλ ηεο ζσιήλσζεο. Αξρηθά θαιεί κηα ζπλάξηεζε πνπ πξνζθνκίδεη (fetch) κηα ή πεξηζζόηεξεο εληνιέο ζηελ νπξά εληνιώλ (instruction queue). ε απηή ηελ θάζε ιακβάλεηαη ππόςε θαη ε πξόβιεςε δηαθιαδώζεσλ (branch prediction). ηνλ SESC ππνζηεξίδνληαη πνιινί ηύπνη πξνβιεπηώλ δηαθιαδώζεσλ θαη ν θαζνξηζκόο ηνπ ηύπνπ αιιά θαη ηνπ κεγέζνπο ηνπο γίλεηαη θαηά ηνλ ρξόλν εθηέιεζεο. Αθνύ ηειεηώζεη ε θάζε ηεο εηζαγσγήο εληνιώλ ζηελ νπξά εληνιώλ, θαιείηαη κηα ζπλάξηεζε πνπ θάλεη εθθίλεζε (issue) εληνιώλ από απηή ηελ νπξά ζην παξάζπξν ρξνλνπξνγξακκαηηζκνύ (scheduling window). Οη εληνιέο ζε απηό ην ζηάδην ρσξίδνληαη ζε εληνιέο πνπ επηδξνύλ ζε αθέξαηνπο (integer) θαη θηλεηήο ππνδηαζηνιήο αξηζκνύο θαη εηζάγνληαη ζην αληίζηνηρε ζπζηνηρία (cluster). εκεηώλεηαη πσο θάζε ζπζηνηρία δηαζέηεη ην δηθό ηεο παξάζπξν ρξνλνπξνγξακκαηηζκνύ. Γηα λα κπνξεί λα εθθηλήζεη κηα εληνιή ζα πξέπεη ηα δεδνκέλα εηζόδνπ πνπ ρξεηάδεηαη λα είλαη έηνηκα. Δθόζνλ θάηη ηέηνην έρεη νξηζηεί, ε εθθίλεζε ησλ εληνιώλ κπνξνύλ λα γίλεη εθηόο ζεηξάο, πξνθαιώληαο έηζη ηελ εθηόο ζεηξάο εθηέιεζε εληνιώλ. Μηα εληνιή πνπ έρεη πξνεγνπκέλσο εθθηλήζεη, εθηειείηαη όηαλ νη απαξαίηεηεο ιεηηνπξγηθέο κνλάδεο είλαη δηαζέζηκεο. Σέινο νη εληνιέο πνπ νινθιεξώλνπλ ηελ εθηέιεζε ηνπο κπαίλνπλ ζε κηα πξνζσξηλή κλήκε αλαδηάηαμεο εληνιώλ (reorder buffer) από ηελ νπνία θαη ππνβάιινληαη (retire - commit) εληόο ζεηξάο. Όπσο αλαθέξζεθε λσξίηεξα, ην κνληέιν ηνπ ζπζηήκαηνο κλήκεο αλαιακβάλεη ηελ πξνζνκνίσζε ηνπ ζπζηήκαηνο κλήκεο. Σν ζύζηεκα κλήκεο κπνξεί λα απνηειείηαη από πνιιά επίπεδα θξπθήο κλήκεο, όπσο γηα παξάδεηγκα επίπεδν 1 (L1) μερσξηζηό γηα δεδνκέλα θαη εληνιέο, θνηλό επίπεδν 2 (L2), αθόκα θαη επίπεδν 3 (L3). ε πεξηπηώζεηο πνιππύξελσλ επεμεξγαζηώλ ή ζπζηεκάησλ κε πνιινύο επεμεξγαζηέο ηα δηάθνξα επίπεδα κπνξεί λα είλαη θνηλά κεηαμύ ησλ ππξήλσλ ή επεμεξγαζηώλ ή ν θάζε έλαο λα Γεώξγηνο Δ. Αλδξηαλάθεο 21

δηαζέηεη μερσξηζηά επίπεδα. Ο θαζνξηζκόο ησλ επηπέδσλ απηώλ θαζώο θαη ηα δηάθνξα ραξαθηεξηζηηθά ηνπο (όπσο ην κέγεζνο ηνπο, νη ζηξαηεγηθέο αληηθαηάζηαζεο, νη ρξόλνη επηηπρεκέλεο θαη απνηπρεκέλεο αλαδήηεζεο) γίλεηαη ζρεδόλ εμ νινθιήξνπ ζηνλ ρξόλν εθηέιεζεο. Δπεηδή ην ζύζηεκα κλήκεο δηαθαηέρεηαη από κε πξνβιέςηκεο θαζπζηεξήζεηο (θαζώο δελ είλαη γλσζηό εθ ησλ πξνηέξσλ γηα κηα δηεύζπλζε κλήκεο ζε πνην/πνηα επίπεδν/α ηεο ηεξαξρίαο βξίζθεηαη), ζηελ πινπνίεζή ηνπ πνιιέο θιήζεηο ζπλαξηήζεσλ γίλνληαη κε ηελ νινθιήξσζε νξηζκέλσλ γεγνλόησλ (event-driven). ηνλ θώδηθα ηνπ SESC ε θιάζε Callback θαζώο θαη νη ππνθιάζεηο ηεο δίλνπλ ηελ δπλαηόηεηα ζηνλ πξνγξακκαηηζηή λα νξίζεη ηελ θιήζε κηαο ζπλάξηεζεο ζε νπνηαδήπνηε κειινληηθή ρξνληθή ζηηγκή θαη ρξεζηκνπνηνύληαη θαηά θόξνλ ζηελ πινπνίεζε ηνπ ζπζηήκαηνο κλήκεο. Όηαλ ν επεμεξγαζηήο πξέπεη λα αιιειεπηδξάζεη κε ηελ κλήκε δεκηνπξγεί κηα αίηεζε κλήκεο. Ο ηύπνο ηεο αίηεζεο (δειαδή ε ππνθιάζε ηεο θιάζεο MemoryRequest) εμαξηάηαη από παξάγνληεο όπσο ην επίπεδν ηεο ηεξαξρίαο κλήκεο πνπ ζα εμεηαζηεί πξώην, ε πιεξνθνξία αλ ε αίηεζε είλαη γηα αλάγλσζε ή εγγξαθή θ.α. εκεηώλεηαη όηη ην ζύζηεκα κλήκεο πνπ κνληεινπνηεί ν SESC δελ δηαηεξεί θακία πιεξνθνξία γηα ην πεξηερόκελν ησλ δηεπζύλζεσλ κλήκεο θαζώο ζθνπόο ηνπ είλαη ε κνληεινπνίεζε ηεο ξνή ησλ αηηήζεσλ θαη ε ζπιινγή δεδνκέλσλ πνπ αθνξνύλ ηηο επηδόζεηο ηνπ ζπζηήκαηνο κλήκεο. Αθνύ δεκηνπξγεζεί ε αίηεζε κλήκεο, ν θώδηθαο ηνπ κνληέινπ ηνπ επεμεξγαζηή θαιεί κηα ζπλάξηεζε πνπ εμεηάδεη αλ ε δηεύζπλζε ζηελ νπνία αληηζηνηρεί ε αίηεζε ππάξρεη ζην επίπεδν ηεο ηεξαξρίαο κλήκεο ζην νπνίν αλαθέξεηαη ε αίηεζε. Ο θώδηθαο πνπ είλαη ππεύζπλνο γηα απηό ην επίπεδν εμεηάδεη ηελ ύπαξμε ηεο δηεύζπλζεο θαη ζηε ζεηηθή πεξίπησζε ππνδεηθλύεη ζηνλ θώδηθα ηνπ κνληέινπ ηνπ επεμεξγαζηή κέζσ ηεο θιάζεο Callback, λα θαιέζεη κηα ζπλάξηεζε ζε ζπγθεθξηκέλε κειινληηθή ρξνληθή ζηηγκή πξνθεηκέλνπ λα ζεκάλεη ηελ νινθιήξσζε ηεο αλαθνξάο ζηελ κλήκε (κνληεινπνηώληαο έηζη ηελ θαζπζηέξεζε αλάγλσζεο ή εγγξαθήο ζηελ πεξίπησζε πνπ ε δηεύζπλζε ππήξρε ζην πξώην εμεηαζζέλ επίπεδν ηεο ηεξαξρίαο). ηελ πεξίπησζε πνπ ε δηεύζπλζε ζηελ νπνία αληηζηνηρεί ε αίηεζε δελ βξίζθεηαη ζην επίπεδν πνπ αλαθέξεηαη ε αίηεζε, θαιείηαη κηα ζπλάξηεζε πνπ εμεηάδεη ην επόκελν επίπεδν ηεο ηεξαξρίαο κλήκεο. Η επηζηξνθή ζην πξνεγνύκελν επίπεδν γίλεηαη θαη πάιη κέζσ ηνπ κεραληζκνύ Callback. Απηό ζηε ζπλέρεηα θαη πάιη κέζσ ηνπ Callback ππνδεηθλύεη ζην κνληέιν ηνπ επεμεξγαζηή πόηε λα θαιέζεη κηα ζπλάξηεζε πξνθεηκέλνπ λα νινθιεξώζεη ηελ κνληεινπνίεζε ηεο θαζπζηέξεζεο ηεο ζπγθεθξηκέλεο αλαθνξάο ζηελ κλήκε. Γεώξγηνο Δ. Αλδξηαλάθεο 22

ε επεμεξγαζηέο κε πνιινύο ππξήλεο ή ζε ζπζηήκαηα κε πνιινύο επεμεξγαζηέο, είλαη απαξαίηεηε ε ύπαξμε ελόο πξσηνθόιινπ δηαηήξεζεο ηεο ζπλάθεηαο ησλ δεδνκέλσλ ησλ θξπθώλ κλεκώλ. Όζνλ αθνξά ηνλ SESC, ε κνληεινπνίεζε ηνπ πξσηνθόιινπ απηνύ γίλεηαη κόλν γηα λα ζπκπεξηιεθζνύλ ζηα δεδνκέλα πνπ αθνξνύλ ηηο επηδόζεηο ηνπ επεμεξγαζηή/επεμεξγαζηώλ νη επηβαξύλζεηο πνπ πξνθαινύλ 1 νλ ην κνληέιν ηαπηόρξνλεο εθηέιεζεο ζε πνιινύο επεμεξγαζηέο πνπ δηαζέηνπλ θνηλή κλήκε (πνπ πξνθαινύληαη από ηελ αλάγθε αθύξσζεο δεδνκέλσλ πνπ βξίζθνληαη ζηηο θξπθέο κλήκεο) θαη 2 νλ νη επηπιένλ επηβαξύλζεηο ηνπ ίδηνπ ηνπ πξσηνθόιινπ. Πξέπεη λα ηνληζηεί όηη ε ηπρόλ κε ζπκπεξίιεςε ηνπ πξσηνθόιινπ δηαηήξεζεο ηεο ζπλάθεηαο ησλ θξπθώλ κλεκώλ ζηνλ πξνζνκνησηή δελ ζα επεξέαδε ζε ηίπνηα ηελ νξζόηεηα ησλ παξαγόκελσλ εμόδσλ ησλ πξνγξακκάησλ πνπ ηξέρνπλ εληόο ηνπ πξνζνκνησηή, θαζώο ε εθηέιεζε ησλ εληνιώλ έηζη θη αιιηώο γίλεηαη ζηελ ζεηξά πνπ απαληώληαη ζην δπαδηθό αξρείν θώδηθα από έλα θαη κνλαδηθό εμνκνησηή. ηελ κνληεινπνίεζε πνπ θάλεη ν SESC, θάζε επίπεδν ηεο ηεξαξρίαο κλήκεο ζπλδέεηαη ζε έλα θνηλό δίαπιν πάλσ ζηνλ νπνίν κεηαδίδνληαη απ όια ηα επίπεδα νη δηεπζύλζεηο κλήκεο πνπ ρξεζηκνπνηνύληαη. ηελ ζπλέρεηα κε βάζε ην πξσηόθνιιν MESI νη θξπθέο κλήκεο αθπξώλνπλ όηαλ ρξεηαζηεί, θάπνηα από ηα δεδνκέλα πνπ δηαζέηνπλ. Σν γεγνλόο απηό έρεη σο απνηέιεζκα ν επεμεξγαζηήο λα πξέπεη λ αλαδεηήζεη δεδνκέλα ζε θαηώηεξα επίπεδα ηεο ηεξαξρίαο κλήκεο όηαλ απηά λαη κελ βξίζθνληαη ζε αλώηεξα επίπεδα αιιά έρνπλ αθπξσζεί από ην πξσηόθνιιν δηαηήξεζεο ηεο ζπλάθεηαο ησλ δεδνκέλσλ ηεο θξπθήο κλήκεο. Όπσο έρεη αλαθεξζεί θαη ζηα πξνεγνύκελα, ν SESC έρεη ηελ δπλαηόηεηα λα κνληεινπνηήζεη ην δίθηπν δηαζύλδεζεο κεηαμύ επεμεξγαζηώλ/ππξήλσλ θαη κλήκεο ζηελ πεξίπησζε ζπζηεκάησλ κε πνιινύο επεμεξγαζηέο/ππξήλεο. Απηό ην επηηπγράλεη ρξεζηκνπνηώληαο δύν βαζηθέο θιάζεηο. Η πξώηε θιάζε είλαη ε Router πνπ αλαπαξηζηά ηνπο δξνκνινγεηέο ηνπ δηθηύνπ. Γνπιεηά ησλ δξνκνινγεηώλ είλαη λα πξνσζνύλ ηα παθέηα πνπ εηζέξρνληαη ζηηο δεύμεηο εηζόδνπ, ζηηο θαηάιιειεο εμόδνπο αλάινγα κε ηνλ πίλαθα πξνώζεζεο πνπ δηαζέηνπλ θαη ηνλ βαζκό ρξεζηκνπνίεζεο ησλ δεύμεσλ εμόδνπ. Η δεύηεξε βαζηθή θιάζε ηνπ SESC πνπ ρξεζηκνπνηείηαη γηα ηελ κνληεινπνίεζε ηνπ δηθηύνπ δηαζύλδεζεο είλαη ε θιάζε RoutingPolicy. Η θιάζε απηή αλαιακβάλεη λα θαηαζθεπάδεη ηνπο πίλαθεο πξνώζεζεο ησλ θιάζεσλ πνπ αλαπαξηζηνύλ ηνπο δξνκνινγεηέο. Δπεθηείλνληαο απηή ηελ θιάζε κπνξνύλ λα νξηζηνύλ ζπγθεθξηκέλεο ηνπνινγίεο κεηαμύ ησλ επεμεξγαζηώλ όπσο γηα παξάδεηγκα ε ηνπνινγία ηνπ ππεξθύβνπ. Γεώξγηνο Δ. Αλδξηαλάθεο 23

1.4 Δπιππόζθεηα ζηοισεία για ηον SESC ηελ ελόηεηα απηή παξνπζηάδνληαη νξηζκέλα επηπξόζζεηα ζηνηρεία γηα ηνλ πξνζνκνησηή SESC πνπ αθνξνύλ ηελ εθηέιεζε πξνγξακκάησλ ζε απηόλ. Όπσο έρεη ήδε αλαθεξζεί, ν SESC εθηειεί πξνγξάκκαηα πνπ ρξεζηκνπνηνύλ ηελ αξρηηεθηνληθή ζπλόινπ εληνιώλ MIPS. Γηα ηνλ ζθνπό ηεο κεηαγιώηηηζεο πξνγξακκάησλ ζε απηή ηελ αξρηηεθηνληθή, καδί κε ηνλ πξνζνκνησηή δηαηίζεηαη θαη ην παθέην sescutils. Σν παθέην απηό απνηειείηαη από ηα εξγαιεία ηνπ gcc ηξνπνπνηεκέλα ώζηε λα θάλνπλ crosscompile πξνγξάκκαηα ζε αξρηηεθηνληθή MIPS. Σα εξγαιεία απηά ραξαθηεξίδνληαη σο cross-compilation εξγαιεία εμ αηηίαο ηνπ γεγνλόηνο όηη ηα ίδηα ηξέρνπλ ζε αξρηηεθηνληθή x86 αιιά δεκηνπξγνύλ πξνγξάκκαηα γηα αξρηηεθηνληθή MIPS. Δηδηθή κλεία πξέπεη λα γίλεη ζηνλ ηξόπν ρεηξηζκνύ ησλ θιήζεσλ ζπζηήκαηνο ησλ πξνγξακκάησλ πνπ ηξέρνπλ ζηνλ SESC. Δπεηδή ν πξνζνκνησηήο SESC δελ παξέρεη ιεηηνπξγηθό ζύζηεκα ζηα πξνγξάκκαηα πνπ ηξέρνπλ ζε απηόλ, ζα πξέπεη λα πινπνηεί ν ίδηνο ηηο θιήζεηο ζπζηήκαηνο (system calls) πνπ ρξεζηκνπνηνύληαη από ηα πξνγξάκκαηα. Ο SESC ην θάλεη απηό «ππνθιέπηνληαο» (θάλνληαο δειαδή trap) ηηο θιήζεηο ζπζηήκαηνο κεηαηξέπνληαο ηηο ζε θιήζεηο ζπλαξηήζεσλ ηνπ εμνκνησηή MINT. Τπάξρνπλ όκσο νξηζκέλεο θιήζεηο ζπζηήκαηνο πνπ δελ ππνζηεξίδνληαη όπσο ε fork θαη ε sproc. Γηα ηελ ππνζηήξημε πξνγξακκάησλ πνπ δηαζέηνπλ πνιιαπιέο νληόηεηεο εθηέιεζεο (ζηελ ζπγθεθξηκέλε πεξίπησζε λήκαηα) ν SESC δηαζέηεη ηελ βηβιηνζήθε (library) libapp. Δθηόο από ηελ δηαρείξηζε λεκάησλ (threads) ε βηβιηνζήθε απηή παξέρεη θαη ζπλαξηήζεηο γηα ηνλ ζπγρξνληζκό ηνπο. Πεξηζζόηεξα ζηνηρεία γηα ηελ κεηαγιώηηηζε πξνγξακκάησλ κε ρξήζε ησλ sescutils θαη ηεο βηβιηνζήθεο libapp, ζα παξαηεζνύλ θαη ηελ ελόηεηα 3.6. Γεώξγηνο Δ. Αλδξηαλάθεο 24

ΚΔΦΑΛΑΙΟ 2 ΚΑΣΑΝΑΛΧΗ ΙΥΤΟ 2.1 ημαζία ηηρ καηανάλυζηρ ιζσύορ Η θαηαλάισζε ηζρύνο έρεη αλαρζεί ηα ηειεπηαία ρξόληα ζε έλαλ από ηνπο ζεκαληηθόηεξνπο παξάγνληεο πνπ νθείιεη λα ιακβάλεη ππόςε ηεο ε αξρηηεθηνληθή ππνινγηζηώλ. Απηό δηόηη επεξεάδεη ζεκαληηθά νιόθιεξε ηελ γθάκα ησλ ππνινγηζηηθώλ ζπζηεκάησλ, από θνξεηέο (mobile) θαη ελζσκαησκέλεο (embedded) ζπζθεπέο κέρξη θαη πςειώλ επηδόζεσλ εμππεξεηεηέο (servers) πνπ δηαζέηνπλ νη κεγάιεο επηρεηξήζεηο γηα ηελ εμππεξέηεζε ίδησλ αλαγθώλ ή παξνρή ππεξεζηώλ πξνο ηνπο πειάηεο ηνπο. Η θαηαλάισζε ηζρύνο κεηξηέηαη ζε Watt θαη απνηειεί ηνλ ξπζκό θαηαλάισζεο ηεο ελέξγεηαο (πνπ κεηξηέηαη ζε Joule) πνπ παξέρεηαη ζε έλα ζύζηεκα. Όπσο ζ αλαθεξζεί θαη παξαθάησ, ζηηο θνξεηέο ζπζθεπέο ε ελέξγεηα απνηειεί ην ζεκαληηθόηεξν κέγεζνο πνπ πξέπεη λα ιακβάλεηαη ππόςε ελώ ζηηο ππόινηπεο ππνινγηζηηθέο ζπζθεπέο ε θαηαλάισζε ηζρύνο είλαη απηή πνπ επεξεάδεη πεξηζζόηεξν ηελ ζρεδίαζε. Η κεγάιε ζεκαζία πνπ έρεη ε θαηαλάισζε ηζρύνο αληηθαηνπηξίδεηαη πιένλ θαη ζηελ βηνκεραλία παξαγσγήο επεμεξγαζηώλ. Οη εηαηξίεο παξαγσγήο επεμεξγαζηώλ δηαπίζησζαλ ζηα κέζα ηεο πξνεγνύκελε δεθαεηίαο όηη δελ κπνξνύζαλ λα ζπλερίζνπλ ηελ ηάζε ηεο αύμεζεο ηεο θαηαλάισζεο ηζρύνο ζηα πξντόληα ηνπο, κε απνηέιεζκα λα αθπξώζνπλ ηα πξνγξακκαηηζκέλα κνληέια πνπ αθνινπζνύζαλ απηή ηελ ηάζε θαη λα ζηξαθνύλ ζηνπο πνιππύξελνπο επεμεξγαζηέο. ην ρήκα 1θάλμα! Σο απσείο πποέλεςζηρ ηηρ αναθοπάρ δεν βπέθηκε. θαίλεηαη ε εμέιημε ηεο ππθλόηεηαο ηεο θαηαλάισζεο ηζρύνο (δειαδή ην πνζό ηεο θαηαλαισκέλεο ηζρύνο αλά ηεηξαγσληθό εθαηνζηό) ζε νξηζκέλα κνληέια επεμεξγαζηώλ. Γεώξγηνο Δ. Αλδξηαλάθεο 25

σήμα 1: Καηανάλυζη ιζσύορ ζε επεξεπγαζηέρ Η εηθόλα δείρλεη ηελ ηάζε πνπ ππήξρε κέρξη ηα κέζα πεξίπνπ ηεο πξνεγνύκελεο δεθαεηίαο. Δίλαη μεθάζαξν πσο ε ηάζε απηή δελ κπνξνύζε λα ζπλερηζηεί θαζώο νη επεμεξγαζηέο είραλ θηάζεη λα έρνπλ ηόζν ππθλή θαηαλάισζε ηζρύνο (ζρεδόλ ζηα επίπεδα ππξεληθνύ αληηδξαζηήξα) πνπ ε απαγσγή ηεο ζεξκόηεηαο ηνπο είρε αξρίζεη λ απνηειεί ζνβαξό θαη δπζεπίιπην πξόβιεκα. ηελ ζπλέρεηα απηήο ηεο ελόηεηαο αλαθέξνληαη γηα θάζε θαηεγνξία ππνινγηζηηθνύ ζπζηήκαηνο νη ιόγνη γηα ηνπο νπνίνπο είλαη ζεκαληηθή ε θαηαλάισζε ηζρύνο. ε όηη αθνξά ηηο θνξεηέο θαη ελζσκαησκέλεο ζπζθεπέο ν θπξηόηεξνο ιόγνο πνπ ε θαηαλάισζε ηζρύνο είλαη ζεκαληηθή, είλαη όηη επεξεάδεη ηελ δηάξθεηα δσήο ηεο κπαηαξίαο πνπ ηξνθνδνηεί κε ελέξγεηα ηε ζπζθεπή. Όζν κεγαιύηεξε είλαη ε θαηαλάισζε ηζρύνο ηόζν γξεγνξόηεξα θαηαλαιώλεηαη ε ελέξγεηα ηεο κπαηαξίαο κε απνηέιεζκα λα κεηώλεηαη ε δηάξθεηα δσήο ηεο. Έλα θνξεηό ζύζηεκα όκσο κε κηθξόηεξε θαηαλάισζε ηζρύνο δελ έρεη απαξαίηεηα κεγαιύηεξε δηάξθεηα δσήο ηεο κπαηαξίαο από έλα άιιν κε κεγαιύηεξε θαηαλάισζε ηζρύνο. Απηό δηόηη ην ζύζηεκα κε ηελ πςειόηεξε θαηαλάισζε κπνξεί λα εθηειεί ηηο απαξαίηεηεο εξγαζίεο ζε κηθξό ρξόλν κε απνηέιεζκα ε ζπλνιηθή ελέξγεηα πνπ ζα θαηαλαιώλεη λα είλαη κηθξόηεξε. Γίλεηαη ινηπόλ αληηιεπηό πσο ζε απηώλ ησλ εηδώλ ηα ππνινγηζηηθά ζπζηήκαηα ην ζπλνιηθό πνζό ηεο ελέξγεηαο πνπ θαηαλαιώλεηαη είλαη ζεκαληηθόηεξν κέηξν από ηελ θαηαλάισζε ηζρύνο. Γεώξγηνο Δ. Αλδξηαλάθεο 26

ηα επηηξαπέδηα (desktop) ππνινγηζηηθά ζπζηήκαηα θαζώο θαη ζηνπο εμππεξεηεηέο ε θαηαλάισζε ηζρύνο είλαη ζεκαληηθή θαζώο νδεγεί ζε αύμεζε ηεο ζεξκόηεηαο ηνπ επεμεξγαζηή πνπ κε ηελ ζεηξά ηνπ έρεηο ηηο εμήο ζπλέπεηεο: Πξώηνλ δεκηνπξγείηαη ε αλάγθε ύπαξμεο εμειηγκέλσλ ζπζηεκάησλ ςύμεο, ηερληθώλ ζπζθεπαζίαο θαη ζπζηεκάησλ ξύζκηζεο ησλ επηδόζεσλ ηνπ επεμεξγαζηή πνπ αλαπόθεπθηα απμάλνπλ ην ηειηθό ηνπ θόζηνο. Έρεη ππνινγηζηεί πσο γηα θάζε Watt ελέξγεηαο ηεο εθιπόκελεο ζεξκόηεηαο ελόο επεμεξγαζηή πςειώλ επηδόζεσλ, απαηηνύληαη έλα έσο ηξία δνιάξηα γηα ηελ απαγσγή ηεο ζεξκόηεηαο απηήο. Μέρξη πξόζθαηα, ηα ζπζηήκαηα ςύμεο πνπ ρξεζηκνπνηνύληαλ ζηνπο επεμεξγαζηέο όθεηιαλ λα απάγνπλ ηελ ζεξκόηεηα αθόκα θαη ζε αθξαίεο πεξηπηώζεηο ζεξκνθξαζηώλ ηνπ επεμεξγαζηή, κε απνηέιεζκα λα είλαη αθξηβά αιιά θαη ππεξβνιηθά γηα πεξηπηώζεηο ηππηθήο ρξήζεο ηνπ επεμεξγαζηή. Οη ζεκεξηλνί επεμεξγαζηέο δηαζέηνπλ ζπζηήκαηα ςύμεο πνπ κπνξνύλ λ απάγνπλ ηελ ζεξκόηεηα ζηελ πιεηνλόηεηα ησλ πεξηπηώζεσλ, γηα ηηο αθξαίεο πεξηπηώζεηο ζεξκνθξαζίαο όκσο δηαζέηνπλ ζπζηήκαηα πνπ κεηώλνπλ ηηο επηδόζεηο ηνπ επεμεξγαζηή. Γεύηεξνλ, όζν απμάλεηαη ε ζεξκνθξαζία ηνπ επεμεξγαζηή, απηόο πθίζηαηαη ηαρύηεξε γήξαλζε (aging) κε απνηέιεζκα λα κεηώλεηαη ε αμηνπηζηία (reliability) ηνπ. Η αμηνπηζηία ελόο επεμεξγαζηή κεηξηέηαη κε ηελ κεηξηθή MTTF (Mean Time To Fail κέζνο ρξόλνο κέρξη ηελ απνηπρία). Η ζρέζε πνπ ζπλδέεη ηελ κεηξηθή MTTF κε ηελ ζεξκνθξαζία, ζύκθσλα κε ην κνληέιν ηνπ electromigration είλαη ε εμήο: MTTF J) EaEM ( n kt e (1) όπνπ J είλαη ε ππθλόηεηα ηνπ ξεύκαηνο ζηηο δηαζπλδέζεηο ηνπ επεμεξγαζηή, Δ aem είλαη ε ελέξγεηα πνπ απαηηείηαη γηα ηελ ελεξγνπνίεζε ηνπ electromigration, k είλαη ε ζηαζεξά ηνπ Boltzmann θαη T ε ζεξκνθξαζία ζε Kelvin. ηελ ζρέζε (1) ηα κεγέζε Δ aem θαη n είλαη ζηαζεξέο πνπ εμαξηώληαη από ην κέηαιιν πνπ ρξεζηκνπνηείηαη ζηηο δηαζπλδέζεηο ηνπ επεμεξγαζηή. Η ζρέζε (1) δείρλεη πσο ε ζύλδεζε κεηαμύ MTTF θαη ζεξκνθξαζίαο είλαη εθζεηηθή. πλεπώο όζν απμάλεηαη ε θαηαλάισζε ηζρύνο κεηώλεηαη ζεκαληηθά ε αμηνπηζηία ηνπ επεμεξγαζηή, εθόζνλ ε αύμεζε ηεο θαηαλάισζεο ηζρύνο νδεγεί ζηελ αύμεζε ηεο ζεξκνθξαζίαο ηνπ επεμεξγαζηή. Η κείσζε απηή έρεη αλαγθάζεη ηελ αξρηηεθηνληθή ππνινγηζηώλ λα ρξεζηκνπνηήζεη δηάθνξεο ηερληθέο όρη κόλν γηα ηελ κείσζε ηεο θαηαλάισζεο ηζρύνο θαη ηεο εθιπόκελεο ζεξκόηεηαο, αιιά θαη επζέσο γηα ηελ αύμεζε ηεο αμηνπηζηία ηνπ επεμεξγαζηή. Απηό ην Γεώξγηνο Δ. Αλδξηαλάθεο 27

γεγνλόο απνηειεί αιιαγή από ηελ παιαηά ηεο θηινζνθία όηη ε αμηνπηζηία απνηεινύζε δήηεκα κόλν ηεο ηερλνινγίαο θαηαζθεπήο ησλ νινθιεξσκέλσλ θπθισκάησλ. Πξέπεη λα ζεκεησζεί πσο πέξα από ηελ ηαρύηεξε γήξαλζε ηνπ θπθιώκαηνο, ε ππεξβνιηθά πςειή ζεξκνθξαζία πνπ κπνξεί λ αλαπηπρζεί ηνπηθά ζε θάπνην θύθισκα ηνπ επεμεξγαζηή, κπνξεί λα θαηαζηξέςεη ην ζπγθεθξηκέλν θύθισκα ζε πνιύ κηθξό ρξνληθό δηάζηεκα, αρξεζηεύνληαο έηζη ηνλ επεμεξγαζηή. ηηο «θάξκεο εμππεξεηεηώλ» (server farms) ε πςειή θαηαλάισζε ηζρύνο εθηόο από ηνπο ιόγνπο πνπ αλαθέξζεθαλ πξνεγνπκέλσο, είλαη ζεκαληηθή θαη γηα έλαλ άιιν ιόγν. Ο ιόγνο απηόο είλαη όηη απμάλεη ην (ήδε πςειό) θόζηνο παξνρήο ελέξγεηαο πνπ πξνθύπηεη από ηελ αλάγθε ηξνθνδόηεζεο κεγάινπ πιήζνπο, εμαηξεηηθά ελεξγνβόξσλ εμππεξεηεηώλ. Δθηόο από ηελ παξνρή ελέξγεηαο, πςειό είλαη θαη ην θόζηνο πνπ πξνθύπηεη από ηελ αλάγθε ςύμεο απηώλ ησλ κνλάδσλ. ε κειέηεο πνπ έρνπλ γίλεη έρεη δεηρζεί όηη ζηελ θαηαλάισζε ηζρύνο νθείιεηαη ην 25% ηνπ ζπλνιηθνύ θόζηνπο ιεηηνπξγίαο κηαο «θάξκαο εμππεξεηεηώλ». Δίλαη ινηπόλ πξνο ην ζπκθέξνλ κεγάισλ εηαηξηώλ πνπ δηαζέηνπλ ηέηνηεο «θάξκεο» λα ρξεζηκνπνηνύλ εμππεξεηεηέο πνπ λαη κελ έρνπλ πςειέο επηδόζεηο αιιά πνπ ε θαηαλάισζή ηνπο είλαη όζν ην δπλαηόλ κηθξόηεξε. Η κνλαδηθή ίζσο θαηεγνξία ππνινγηζηηθώλ ζπζηεκάησλ όπνπ ε θαηαλάισζε ηζρύνο δελ έρεη εμέρνπζα ζεκαζία είλαη ε θαηεγνξία ησλ ππεξ-ππνινγηζηώλ (supercomputers). Απηνί θαηαζθεπάδνληαη κε γλώκνλα ηελ επίηεπμε εμαηξεηηθά πςειώλ επηδόζεσλ θαη ζηνρεύνπλ ζηελ επίιπζε δηάθνξσλ επηζηεκνληθώλ, ηερληθώλ ή νηθνλνκηθώλ πξνβιεκάησλ. Υαξαθηεξηζηηθά παξαδείγκαηα ηέηνησλ ζπζηεκάησλ είλαη ηα ζπζηήκαηα πνπ πεξηιακβάλνληαη ζηηο ιίζηεο ηνπ νξγαληζκνύ top500. Η ιίζηα απηή εθδίδεηαη δύν θνξέο ηνλ ρξόλν θαη πεξηέρεη ηνπο ηαρύηεξνπο ππεξ-ππνινγηζηέο ζηνλ θόζκν. Παξόιν πνπ ε θαηαλάισζε ηζρύνο δελ είλαη από ηα πην ζεκαληηθά ραξαθηεξηζηηθά απηώλ ησλ ζπζηεκάησλ, αθόκα θαη απηή ε ιίζηα από ηνλ Ινύλην ηνπ 2008 θαη έπεηηα, πεξηέρεη ζηνηρεία γηα ηελ θαηαλάισζε ηζρύνο ησλ ζπζηεκάησλ, θαηαδεηθλύνληαο έηζη ηελ ζεκαζία πνπ έρεη απηή γεληθόηεξα. Αμίδεη λα ηνληζηεί επίζεο όηη ππάξρνπλ πεξηπηώζεηο πνπ ε αξρηηεθηνληθή ηνπ ππέξ-ππνινγηζηή θαζνξίδεηαη ελ κέξεη από ηηο από ηηο απαηηήζεηο ζε ελέξγεηα, πξνθεηκέλνπ ην θόζηνο ιεηηνπξγίαο ηνπ ζε κηα σθέιηκε δηάξθεηα δσήο 5 εηώλ λα κελ μεπεξάζεη ζεκαληηθά ην θόζηνο απόθηεζεο. Η θαηαλάισζε ηζρύνο ησλ ππνινγηζηηθώλ ζπζηεκάησλ είλαη ζεκαληηθή θαη γηα έλαλ επηπιένλ ιόγν. Ο ιόγνο απηόο είλαη πεξηβαιινληηθέο επηπηώζεηο πνπ πξνθαιεί, γεγνλόο πνπ αθνξά θπξίσο «θάξκεο εμππεξεηεηώλ» θαη ππεξ-ππνινγηζηέο. Όζν απμάλεηαη ν Γεώξγηνο Δ. Αλδξηαλάθεο 28

αξηζκόο απηώλ ησλ ζπζηεκάησλ καδί ηνπ απμάλνληαη θαη νη απαηηήζεηο παξαγσγήο ελέξγεηαο γηα ηελ ηξνθνδόηεζή ηνπο. Δθόζνλ κηθξό πνζνζηό ηεο ελέξγεηαο παξάγεηαη κε κεζόδνπο θηιηθέο πξνο ην πεξηβάιινλ, γίλεηαη θαηαλνεηό πσο η απαηηεηηθά ζε ηζρύο ππνινγηζηηθά ζπζηήκαηα επηδεηλώλνπλ ηελ θαηάζηαζε. 2.2 Δξίζυζη καηανάλυζηρ ιζσύορ Η εμίζσζε κε βάζε ηελ νπνία εθηηκάηαη ε θαηαλάισζε ηζρύνο ησλ CMOS θπθισκάησλ ζηελ αξρηηεθηνληθή ππνινγηζηώλ είλαη ε εμήο: P ACV 2 f AVI short f VI leak (2) Η εμίζσζε απηή απνηειείηαη από ηξία κέξε. Σν πξώην κέξνο αλαπαξηζηά ηελ ηζρύ πνπ θαηαλαιώλεηαη θαηά ηελ θόξηηζε θαη εθθόξηηζε ηνπ θνξηίνπ ησλ ππθλσηώλ ζηελ έμνδν θάζε πύιεο. Σν κέξνο απηό νλνκάδεηαη dynamic capacitive power θαη απνηειεί ην κεγαιύηεξν κέξνο ηεο θαηαλάισζεο ηζρύνο ελόο επεμεξγαζηή. Όπσο θαίλεηαη ζηελ εμίζσζε (2), ην dynamic capacitive power είλαη αλάινγν ηεο ζπρλόηεηαο ιεηηνπξγίαο f θαη ηνπ ηεηξαγώλνπ ηεο ηάζεο ηξνθνδνζίαο V. Σν δεύηεξν κέξνο ηεο εμίζσζεο νλνκάδεηαη dynamic short-circuit power θαη αλαπαξηζηά ηελ θαηαλάισζε ηζρύνο πνπ νθείιεηαη ζηα ξεύκαηα βξαρπθύθισζεο πνπ αλαπηύζζνληαη παξνδηθά όηαλ ηα transistor αιιάδνπλ θαηάζηαζε. Σν κέξνο απηό είλαη κηθξό θαη ζπαλίσο ιακβάλεηαη ππόςε ζε έξεπλεο πνπ αθνξνύλ ηελ θαηαλάισζε ηζρύνο ζηνπο επεμεξγαζηέο. Σν ηειεπηαίν κέξνο ηεο εμίζσζεο αλαπαξηζηά ηελ θαηαλάισζε ηζρύνο πνπ νθείιεηαη ζηα ξεύκαηα δηαξξνήο (leakage currents) θαη νλνκάδεηαη leakage power. Όπσο ζ αλαθεξζεί θαη ζηε ζπλέρεηα, νη κηθξέο ηάζεο ηξνθνδνζίαο ησλ ζύγρξνλσλ επεμεξγαζηώλ έρνπλ νδεγήζεη ζε αύμεζε ηνπ κέξνπο απηνύ κε απνηέιεζκα λα είλαη απαξαίηεηε ε ζπκπεξίιεςή ηνπ ζηηο έξεπλεο πεξί θαηαλάισζεο ηζρύνο ησλ επεμεξγαζηώλ. ηελ εμίζσζε (2) ε επίδξαζε ηεο κεζνδνινγίαο θαηαζθεπήο ησλ transistor αληηθαηνπηξίδεηαη από ηελ κεηαβιεηή C πνπ αληηπξνζσπεύεη ηελ ρσξεηηθόηεηα (capacitance). Όζν βειηηώλεηαη ε κεζνδνινγία θαηαζθεπήο θαη κεηώλεηαη ην κέγεζνο ησλ transistor, ε κεηαβιεηή απηή κηθξαίλεη. Η επίδξαζε ηεο αξρηηεθηνληθήο αληηθαηνπηξίδεηαη ζηελ εμίζσζε (2) από ηα κεγέζε V θαη f. Όπσο θαίλεηαη ζε απηή ηελ εμίζσζε, αλ κεησζεί ζην κηζό ε ηάζε ηξνθνδνζίαο V, ην κέγεζνο dynamic capacitive power κεηώλεηαη ζην έλα ηέηαξην. H ηεηξαγσληθή επίδξαζε ηεο ηάζεο ηξνθνδνζίαο ζηελ θαηαλάισζε ηζρύνο είλαη θαη ν ιόγνο πνπ νη ζεκεξηλνί Γεώξγηνο Δ. Αλδξηαλάθεο 29

επεμεξγαζηέο ιεηηνπξγνύλ κε ηάζεηο ηξνθνδνζίαο πνιύ κηθξόηεξεο ησλ παιαηνηέξσλ (ζήκεξα είλαη πεξίπνπ 1V ζε αληίζεζε κε ηα 5V πνπ ήηαλ παιαηόηεξα). Η κείσζε όκσο ηεο ηάζεο ηξνθνδνζίαο V επεξεάδεη κε γξακκηθό ηξόπν ηελ κέγηζηε δπλαηή ζπρλόηεηα ιεηηνπξγίαο ηνπ επεμεξγαζηή f max. Απηό ζεκαίλεη όηη κείσζε θαηά ην ήκηζπ ηεο ηάζεο ηξνθνδνζίαο κεηώλεη ζην κηζό ηελ ζπρλόηεηα ιεηηνπξγίαο, ζπλεπώο κεηώλεη ζην κηζό θαη ηηο επηδόζεηο ηνπ επεμεξγαζηή. πκπεξαζκαηηθά, κηα κείσζε ζην κηζό ηεο ηάζεο ηξνθνδνζίαο κεηώλεη ζην κηζό ηηο επηδόζεηο ηνπ επεμεξγαζηή αιιά κεηώλεη ηελ θαηαλάισζε ηζρύνο ζην έλα ηέηαξην πεξίπνπ (αθνύ ην κέγεζνο ηνπ dynamic capacitive power είλαη ην θπξίαξρν κέγεζνο ζηελ εμίζσζε (2)). Σν παξαπάλσ ζπκπέξαζκα είλαη έλαο από ηνπο βαζηθνύο ιόγνπο πνπ πιένλ ε βηνκεραλία ησλ επεμεξγαζηώλ έρεη ζηξαθεί ζηελ εθκεηάιιεπζε ηεο παξαιιειίαο ζε επίπεδν λεκάησλ (έλαληη ηεο παξαιιειίαο ζε επίπεδν εληνιήο) κε ηελ ρξήζε επεμεξγαζηώλ πνιιαπιώλ ππξήλσλ. Με απιά ιόγηα κε βάζε ην παξαπάλσ ζπκπέξαζκα, όηαλ δελ ππάξρνπλ εμαξηήζεηο κεηαμύ ησλ λεκάησλ εθηέιεζεο, δύν επεμεξγαζηέο ν έλαο κε δύν ππξήλεο πνπ έρνπλ ην ήκηζπ ησλ επηδόζεσλ αιιά ην έλα ηέηαξην ηεο θαηαλάισζεο ελόο άιινπ κνλνπύξελνπ επεμεξγαζηή κπνξνύλ λα έρνπλ ηηο ίδηεο επηδόζεηο. Παξ όιν πνπ ε κείσζε ηεο ηάζεο ηξνθνδνζίαο είλαη έλαο απιόο ηξόπνο γηα ηελ κείσζε ηεο θαηαλάισζεο ηζρύνο εληνύηνηο δελ κπνξεί λα εθαξκνζηεί απεξηόξηζηα. Απηό δηόηη ε κείσζε ηεο επηθέξεη αύμεζε ηνπ ξεύκαηνο δηαξξνήο κε απνηέιεζκα ηελ αύμεζε ηνπ όξνπ leakage power ηεο εμίζσζεο (2). Γηα κηθξέο ηηκέο ηεο ηάζεο θαησθιίνπ (V threshold ) ην κέγεζνο απηνύ ηνπ όξνπ γίλεη ζπγθξίζηκν κε ην κέγεζνο ηνπ όξνπ dynamic capacitive power. 2.3 Βαζικοί ηπόποι μείυζηρ ηηρ καηανάλυζηρ ιζσύορ Σξόπνη κείσζεο ηεο θαηαλάισζεο ηζρύνο ππάξρνπλ ζε όια ηα επίπεδα ηεο ππνινγηζηηθήο ηεξαξρίαο (από ην επίπεδν ησλ transistor κέρξη ην επίπεδν ηνπ ινγηζκηθνύ). Σα παιαηόηεξα ρξόληα επεηδή ήηαλ δύζθνιε ε κνληεινπνίεζε ηεο θαηαλάισζεο ηζρύνο ζε όια ηα επίπεδα εθηόο ηνπ επηπέδνπ ησλ transistor, όιεο νη πξνζπάζεηεο κείσζήο ηεο επηθεληξώλνληαλ ζε απηό ην επίπεδν. Η θαηάζηαζε απηή έρεη αληηζηξαθεί ζήκεξα όπνπ βιέπνπκε όηη ε ζρεηηθή έξεπλα εθηείλεηαη ζε όια ηα επίπεδα. ην επίπεδν ησλ transistor ε θαηαλάισζε ηεο ηζρύνο κεηώλεηαη όζν κεηώλεηαη ην κέγεζνο ησλ transistor. Η κείσζε ηνπ κεγέζνπο ησλ transistor νδεγεί ζπγθεθξηκέλα ζηελ κείσζε ηνπ κέξνπο dynamic capacitive power ηεο θαηαλάισζεο ηζρύνο. Η ζπξξίθλσζε ησλ Γεώξγηνο Δ. Αλδξηαλάθεο 30

transistor αθνινπζεί ην λόκν ηνπ Moore θαη ρξεζηκνπνηείηαη εδώ θαη πνιιά ρξόληα από ηελ βηνκεραλία παξαγσγήο επεμεξγαζηώλ θπξίσο γηα ηελ αύμεζε ησλ επηδόζεσλ ησλ επεμεξγαζηώλ (κε ηελ πξνζζήθε πεξηζζόηεξσλ transistor ζηνλ επεμεξγαζηή). Λόγσ όκσο ηεο κεγάιεο ζεκαζίαο πνπ έρεη πιένλ ε θαηαλάισζε ηζρύνο ε βηνκεραλία έρεη έλαλ αθόκε ιόγν λα επελδύεη ζηελ έξεπλα γηα ηελ ζπξξίθλσζε ησλ transistor. ην επίπεδν ηεο ινγηθήο ζρεδίαζεο ν θπξηόηεξνο ηξόπνο κείσζεο ηεο θαηαλάισζεο ηζρύνο είλαη ε δηαθνπή ηεο παξνρήο ηνπ ζήκαηνο ηνπ ξνινγηνύ (clock gating) ζε latches θαη flip flops όηαλ απηά δελ ρξεζηκνπνηνύληαη. ην επίπεδν ηεο ινγηθήο ζρεδίαζεο αλήθεη θαη ε ηερληθή ηεο ρξεζηκνπνίεζεο αζύγρξνλεο ινγηθήο όπνπ απηό είλαη εθηθηό. Σα αζύγρξνλα θπθιώκαηα εμαηηίαο ηνπ γεγνλόηνο όηη δελ ρξεζηκνπνηνύλ ξνιόη, κπνξνύλ λα εμνηθνλνκήζνπλ αξθεηή ηζρύ. Η ρξήζε όκσο απηνύ ηνπ είδνπο θπθισκάησλ παξνπζηάδεη αξθεηέο δπζθνιίεο όζνλ αθνξά ηελ ζρεδίαζε θαη ηνλ έιεγρό ηνπο. ην επίπεδν ηεο αξρηηεθηνληθήο δύν είλαη νη θύξηνη ηξόπνη πνπ ρξεζηκνπνηνύληαη γηα ηελ κείσζε ηεο θαηαλάισζεο ηζρύνο. Πξώηνλ ε δηαίξεζε ησλ επηπέδσλ ηεο θξπθήο κλήκεο ζε ηκήκαηα πνπ ελεξγνπνηνύληαη κόλν θαηόπηλ πξνζπέιαζήο ηνπο. Παξόκνηα ηερληθή κπνξεί λα εθαξκνζηεί θαη ζηελ πινπνίεζε ηνπ αξρείνπ θαηαρσξεηώλ (register file). Γεύηεξνλ ε ζηξνθή ζηελ εθκεηάιιεπζε ηεο παξαιιειίαο ζε επίπεδν λεκάησλ έλαληη ηεο παξαιιειίαο ζε επίπεδν εληνιώλ. Η εθκεηάιιεπζε απηή γίλεηαη κε ηελ ζρεδίαζε επεμεξγαζηώλ πνπ εθηεινύλ ηαπηόρξνλα (concurrently) πνιιαπιά λήκαηα ζηoλ ίδηα ππξήλα ή/θαη κε ηελ ζρεδίαζε επεμεξγαζηώλ πνπ δηαζέηνπλ πνιιαπινύο ππξήλεο. Με απηό ηνλ ηξόπν θαηαξγνύληαη νη ζσιελώζεηο κεγάινπ βάζνπο θαη νη πςειόηαηεο ζπρλόηεηεο ιεηηνπξγίαο πνπ απηέο ζπλεπάγνληαη θαη πνπ αλαπόθεπθηα νδεγνύλ ζε κεγάιεο θαηαλαιώζεηο ηζρύνο. Η ζηξνθή απηή απαηηεί πιένλ από ηνλ πξνγξακκαηηζηή λα δεκηνπξγεί πνιπλεκαηηθέο εθαξκνγέο ζε πεξίπησζε πνπ ζέιεη λα εθκεηαιιεπηεί πιήξσο ηνπο επεμεξγαζηέο πνπ κπνξνύλ λα εθηεινύλ παξάιιεια ή/θαη ηαπηόρξνλα πνιιά λήκαηα. Μηα αθόκε ηερληθή πνπ εθαξκόδεηαη θπξίσο ζε ελζσκαησκέλα ζπζηήκαηα είλαη ε ρξήζε εηδηθώλ ζπλεπεμεξγαζηώλ πνπ κπνξνύλ λα εθηεινύλ ζπγθεθξηκέλεο ιεηηνπξγίεο ζε πνιύ κηθξό ρξνληθό δηάζηεκα, κε απνηέιεζκα λα θαηαλαιώλεηαη κηθξό πνζό ελέξγεηαο γηα ηελ νινθιήξσζή ηνπο. Οη ιεηηνπξγίεο απηέο ζα κπνξνύζαλ λα εθηειεζηνύλ από ηνλ επεμεξγαζηή γεληθνύ ζθνπνύ ηνπ ζπζηήκαηνο, όκσο ελδερνκέλσο λ απαηηνύζαλ πνιύ ρξόλν γηα λα νινθιεξσζνύλ κε απνηέιεζκα ε θαηαλάισζε ελέξγεηαο λα ήηαλ πςειή. Γεώξγηνο Δ. Αλδξηαλάθεο 31

Σν ιεηηνπξγηθό ζύζηεκα κπνξεί λα ζπκβάιεη ζηελ κείσζε ηεο θαηαλάισζεο ηζρύνο κε ην λα ξπζκίδεη ηελ ηάζε ηξνθνδνζίαο ή/θαη ηελ ζπρλόηεηα ιεηηνπξγίαο ηνπ επεμεξγαζηή αλάινγα κε ην θόξην ηνπ ζπζηήκαηνο θάζε ζηηγκή. Με απηήλ ηελ ηερληθή, όηαλ ν επεμεξγαζηήο πξέπεη λα ιεηηνπξγεί ζην κέγηζην ησλ δπλαηνηήησλ ηνπ, ζα θαηαλαιώλεη κεγαιύηεξε ηζρύ ελώ ζηηο ππόινηπεο πεξηπηώζεηο ζα ιεηηνπξγεί κε κεησκέλεο επηδόζεηο αιιά θαη κεησκέλε θαηαλάισζε ηζρύνο. Σέινο ζπκβνιή ζηελ θαηαλάισζε ηεο ηζρύνο κπνξεί λα έρεη θαη ν κεηαγισηηηζηήο. Με ηελ θαηάιιειε επηινγή ησλ εληνιώλ ηεο αξρηηεθηνληθήο ζπλόινπ εληνιώλ, ηνπ πιήζνπο θαζώο θαη ηεο δηάηαμήο ηνπο είλαη δπλαηόλ λα κεησζεί ε θαηαλάισζε ηζρύνο. 2.4 Μεηπικέρ επίδοζηρ πος λαμβάνοςν ςπότη ηοςρ ηην καηανάλυζη ιζσύορ Δθόζνλ ε θαηαλάισζε ηζρύνο παίδεη ζεκαληηθό ξόιν ζηελ αξρηηεθηνληθή ππνινγηζηώλ είλαη απαξαίηεηε ε ρξεζηκνπνίεζε κεηξηθώλ πνπ ηελ ιακβάλνπλ ππόςε ηνπο θαη θαζηζηνύλ δπλαηή ηελ πνζνηηθή ζύγθξηζε δηαθόξσλ επεμεξγαζηώλ. Η πην απιή ίζσο κεηξηθή πνπ ζπκπεξηιακβάλεη ηηο ρξνληθέο επηδόζεηο ελόο επεμεξγαζηή θαη ηελ θαηαλάισζε ηζρύνο είλαη ν ιόγνο MIPS/Watt, δειαδή ην πιήζνο ησλ εθηειεζκέλσλ εληνιώλ (εθθξαζκέλν ζε εθαηνκκύξηα) αλά δεπηεξόιεπην πξνο ηελ ζπλνιηθή θαηαλάισζε ηζρύνο. Όζν κεγαιύηεξνο είλαη ν ιόγνο απηόο, ηόζν πην απνδνηηθόο είλαη ν επεμεξγαζηήο. ηηο πεξηπηώζεηο πνπ νη ρξνληθέο επηδόζεηο ηνπ επεμεξγαζηή είλαη πην ζεκαληηθέο από ηελ θαηαλάισζε ηζρύνο κπνξνύλ λα ρξεζηκνπνηεζνύλ νη ιόγνη MIPS 2 /Watt ή MIPS 3 /Watt γηα ηελ ζύγθξηζε δηαθόξσλ επεμεξγαζηώλ. ηελ πεξίπησζε ησλ επεμεξγαζηώλ πνπ ελζσκαηώλνληαη ζε θνξεηέο ζπζθεπέο όπνπ ε θαηαλάισζε ηζρύνο είλαη ζεκαληηθόηεξε από ηηο ρξνληθέο επηδόζεηο (αξθεί λα ηεξνύληαη νξηζκέλεο ρξνληθέο πξνζεζκίεο), γηα ηελ ζύγθξηζε δηαθόξσλ επεμεξγαζηώλ κπνξεί λα ρξεζηκνπνηεζεί ν ιόγνο MIPS/Watt 2. Μηα άιιε θαηεγνξία κεηξηθώλ πνπ ρξεζηκνπνηείηαη πνιύ ζπρλά είλαη απηέο πνπ πξνθύπηνπλ από ην γηλόκελν ηνπ ρξόλνπ εθηέιεζεο θαη ηεο ελέξγεηαο ή ηεο θαηαλάισζεο ηζρύνο. Όζν κηθξόηεξν είλαη ην γηλόκελν, ηόζν θαιύηεξνο είλαη ν επεμεξγαζηήο. πγθεθξηκέλα ρξεζηκνπνηνύληαη νη εμήο κεηξηθέο: Πξώηνλ ε κεηξηθή PDP (power delay product) πνπ απνηειεί ην γηλόκελν ηνπ ρξόλνπ εθηέιεζεο θαη ηεο ζπλνιηθήο θαηαλάισζεο ηζρύνο. Η κεηξηθή απηή απνηειεί ην αληίζηξνθν ηεο κεηξηθήο MIPS/Watt ζηελ πεξίπησζε πνπ ν ρξόλνο εθηέιεζεο αλαθέξεηαη ζηνλ κέζν ρξόλν εθηέιεζεο θάζε εληνιήο. Αληίζηνηρα κε ηε κεηξηθή PDP ππάξρεη θαη ε κεηξηθή EDP (energy delay product) πνπ απνηειεί ην Γεώξγηνο Δ. Αλδξηαλάθεο 32