Dynamic power είναι η κατανάλωση ενέργειας που προκύπτει από τη δραστηριότητα των τρανζίστορ της CPU, και οφείλεται στη φόρτιση και αποφόρτιση των πυκνωτών εντός τους.
Ισχύει η σχέση: Pdyn = C⋅V2⋅f
όπου V είναι η τάση λειτουργίας, f η συχνότητα του ρολογιού, και C η συνολική χωρητικότητα.
Leakage είναι η κατανάλωση ενέργειας που οφείλεται στη διαρροή ρεύματος εντός των transistor, λόγω του γεγονότος ότι δεν έχουν τέλειες επαφές. Το μέγεθος αυτής της κατανάλωσης εξαρτάται από τα γεωμετρικά χαρακτηριστικά των transistor, τις φυσικές τους ιδιότητες και την θερμοκρασία τους. Η γενική τάση είναι ότι το leakage αυξάνεται για μικρότερα transistors και υψηλότερες θερμοκρασίες.
Αν δεν χρησιμοποιηθούν τεχνικές gating και dynamic frequency scaling, το dynamic power δεν επηρεάζεται από το είδος του προγράμματος που τρέχει, καθώς όλες οι παράμετροι που το επηρεάζουν μένουν σταθερές. Αν χρησιμοποιηθούν τα παραπάνω, το dynamic power εξαρτάται από τη δομή του προγράμματος και το ενδεχόμενο χρήσης πολλαπλών πυρήνων. Όσον αφορά το leakage, η κύρια παράμετρος που μπορεί να μεταβληθεί και να το επηρεάσει είναι η θερμοκρασία. Άρα για όσο περισσότερο χρόνο τρέχει ένα πρόγραμμα, τόσο ανεβαίνει η θερμοκρασία και άρα τόσο αυξάνεται το leakage.
Υπάρχει περίπτωση ένας επεξεργαστής που καταναλώνει 40W να μας δώσει μεγάλυτερη διάρκεια μπαταρίας από τον επεξεργαστή που καταναλώνει 4W, με την προϋπόθεση ότι κλείνουμε τους επεξεργαστές μετά το πέρας της εκτέλεσης των προγραμμάτων. Έτσι, ο επεξεργαστή με κατανάλωση 40W θα εκτελέσει το πρόγραμμα γρηγορότερα και άρα μπορεί να έχει λιγότερες συνολικές απώλειες από το leakage.
Το McPAT μας δίνει δεδομένα για την ισχύ που καταναλώνει ο επεξεργαστής αλλά όχι για τον χρόνο εκτέλεσης του προγράμματος. Συνεπώς, δεν γίνεται να υπολογιστούν οι συνολικές απώλειες σε κάθε περίπτωση.
Τα αποτελέσματα που προκύπτουν από την εκτέλεση του McPAT φαίνονται στον ακόλουθο πίνακα:
Xeon | ARM A9 | |
---|---|---|
Total Leakage | 36.83 W | 0.109 W |
Runtime Dynamic | 72.91 W | 2.960 W |
Ορίζοντας Δt το χρονικό διάστημα το οποίο απαιτείται για την εκτέλεση κάποιας εφαρμογής στον Xeon και με δεδομένο ότι ο ARM A9 χρειάζεται 40 φορές περισσότερο χρόνο για το πέρας της. Εξετάζωντας τις απώλειες στο πέρας της εφαρμογής για τον ARM A9 προκύπτει:
ΕXeon = Pdyn_Xeon ⋅Δt + Pleak_Xeon ⋅40⋅Δt = 1546.11⋅Δt
ΕA9 = Pdyn_A9 ⋅40⋅Δt + Pleak_A9 ⋅40⋅Δt = 7.32⋅Δt
Παρατηρούμε μία πολύ μεγάλη διαφορά η οποία οφείλεται στο γεγονός ότι το Pleak_Xeon συνεχίζει να υπάρχει ακόμα και μετά το πέρας εκτέλεσης της εφαρμογής, αφού θεωρούμε δεδομένο από την εκφώνηση πως δεν διακόπτεται η λειτουργία του συστήματος μετά την ολοκλήρωση εκτέλεσης. Συμπεραίνουμε, λοιπόν, πως ο Xeon δεν μπορεί να είναι περισσότερο energy-efficient από τον ARM A9, παρά την διαφορά στην απόδοση.
Στα ακόλουθα γραφήματα παρουσιάζεται η μεταβολή της συνολικής ενέργειας, καθώς και της μέγιστης ισχύς, σε σχέση με κάθε παράμετρο του υποσυστήματος μνήμης. Η συνολική ενέργεια υπολογίζεται ως:
TotalPower = RuntimeDynamic + SubthresholdLeakage + GateLeakage
Peak Power | Total Power |
---|---|
Peak Power | Total Power |
---|---|
Peak Power | Total Power |
---|---|
Peak Power | Total Power |
---|---|
Peak Power | Total Power |
---|---|
Peak Power | Total Power |
---|---|
Peak Power | Total Power |
---|---|
Στο παρακάτω διάγραμμα παρατηρούμαι την μεταβολή του EDP σε σχέση με κάθε χαρακτηριστικό του υποσυστήματος μνήμης για το bechmark sjeng.
Παραθέτουμε για σύγκριση και την μεταβολή του CPI για το sjeng, καθώς υπάρχει αναλογική σχέση ανάμεσα σε αυτό και τον χρόνο εκτέλεσης.
CPUtime = InstructionsNumber⋅CPI⋅ClockCycleTime
Παρατηρώντας τα παραπάνω διαγράμματα με σκοπό την επίτευξη του ελάχιστου EDP επιλέγουμε τα ακόλουθα:
Μέγεθος I-Cache | Μέγεθος D-Cache | Μέγεθος L2 | Μέγεθος Cache Line | I-Cache Assoc | D-Cache Assoc | L2 Assoc |
---|---|---|---|---|---|---|
16 Kb | 16 Kb | 128 Kb | 16 B | Direct-mapped | Two-way | Direct-mapped |
και παίρνουμε τελικά τα ακόλουθα αποτελέσματα:
Χρόνος εκτέλεσης | CPI | Peak Power | Total Power | EDP |
---|---|---|---|---|
0.000776 sec | 1.551759 | 1.40187 W | 0.6734 W | 5.22⋅10-4 |
Οι προβλέψεις του McPAT πιθανώς να περιέχουν σημαντικό σφάλμα λόγω ελλειπούς μοντελοποίησης, μοντελοποίησης πολύ υψηλού επιπέδου ή λόγω υποθέσεων για την υλοποίηση του επεξεργαστή, οι οποίες δε συνάδουν με το μοντέλο που προσομοιώνεται. Πιο συγκεκριμένα, το μοντέλο ισχύος του McPAT είναι αναλυτικό, όχι εμπειρικό, και άρα αγνοεί λεπτομέρειες της υλοποίησης για χάρη της ευελιξίας και της ταχύτητας. Ορισμένα παραδείγματα είναι:
- Δυσκολία μοντελοποίησης της κατανάλωσης ενέργειας που προκύπτει από τη δραστηριότητα των λογικών πυλών
- Το McPAT μπορεί να μην συμπεριλαμβάνει συγκεκριμένες εντολές του πραγματικού επεξεργαστή.
- Το McPAT υποθέτει ότι κάθε εντολή απαιτεί δύο read ports, πράγμα που δεν είναι απαραίτητα αληθές καθώς κάποιες εντολές (immediate) χρειάζονται μόνο έναν καταχωρητή πέρα από το operand.
- Τέλειο clock-gating and data-gating.
- Για μια δομή cache, το McPAT κάποιες φορές διπλασιάζει το εμβαδόν πυριτίου του στοιχείου, χωρίς να να αυξάνει την per access ενέργεια που καταναλώνει.
- Πιθανώς κάποια προγραμματιστικά λάθη
Η χρήση δύο προγραμμάτων για την προσομοίωση διαφορετικών πτυχών της ίδιας CPU μπορεί να αποτελέσει πηγή σφάλματος, καθώς τα προγράμματα μπορεί να κάνουν αντικρουόμενες υποθέσεις. Ταυτόχρονα υπερδιπλασιάζεται και η πιθανότητα να επηρεάσει την προσομοίωση κάποιο bug.
https://www.samxi.org/papers/xi_hpca2015.pdf
https://ieeexplore.ieee.org/abstract/document/7273512
https://www.hpl.hp.com/research/mcpat/McPATAlpha_TechRep.pdf