Σύγχρονες μηχανικές συσκευές ⁇ από φορητές ιατρικές οθόνες έως βιομηχανικούς αισθητήρες IoT ⁇ απαιτούν λειτουργικά συστήματα που κάνουν περισσότερα από τη διαχείριση εργασιών ⁇ πρέπει να δίνουν προσοχή σε κάθε χιλιοστόβατ. Καθώς το υλικό συρρικνώνεται και οι προσδοκίες απόδοσης αυξάνονται, το λειτουργικό σύστημα έχει γίνει ο κεντρικός διαιτητής της κατανάλωσης ενέργειας. Σχεδιάζοντας ένα λειτουργικό σύστημα που ελαχιστοποιεί την έλξη ενέργειας χωρίς να θέτει σε κίνδυνο την ανταπόκριση ή την αξιοπιστία είναι μια πολύπλοκη αλλά ουσιαστική πειθαρχία.

Ο Ρόλος του Λειτουργικού Συστήματος στην Ενεργειακή Απόδοση

Σε αντίθεση με τις βελτιστοποιήσεις σε επίπεδο εφαρμογών, το λειτουργικό σύστημα έχει ορατότητα σε όλο το σύστημα: ελέγχει τις συχνότητες της ΚΜΕ, τις καταστάσεις αδράνειας, την κατανομή μνήμης και την περιφερειακή δραστηριότητα. Ένα καλά σχεδιασμένο ενεργειακό σύστημα μπορεί να μειώσει την συνολική ισχύ του συστήματος κατά 30 ⁇ 50% σε σύγκριση με μια αφελή εφαρμογή, ειδικά σε συσκευές με μεταβλητό φόρτο εργασίας. Για συσκευές μηχανικής που πρέπει να λειτουργούν για χρόνια σε μια ενιαία μπαταρία ή συγκομιδή ενέργειας από το περιβάλλον, αυτή η διαφορά είναι κρίσιμη.

Αντί να αναγκάζει κάθε πρόγραμμα να διαχειρίζεται καταστάσεις ύπνου υλικού, ο πυρήνας παρέχει μηχανισμούς πολιτικής (κυβερνήτες, topping ισχύος, runtime PM) που προσαρμόζονται σε συνθήκες πραγματικού χρόνου. Αυτός ο διαχωρισμός της πολιτικής από το μηχανισμό επιτρέπει στους ολοκληρωτές συστημάτων να συντονίζουν την ενεργειακή συμπεριφορά χωρίς να ξαναγράφουν λογισμικό.

Βασικές τεχνικές για την ενεργειακή αποδοτική OS Design

Δυναμική κλιμάκωση τάσης και συχνότητας (DVFS)

Η DVFS παραμένει ακρογωνιαίος λίθος της διαχείρισης ισχύος σε επίπεδο OS. Με την προσαρμογή της συχνότητας τάσης και ⁇ ολογιού του επεξεργαστή σε απάντηση στη ζήτηση φόρτου εργασίας, το OS εμπορεύεται την μέγιστη απόδοση για εξοικονόμηση ενέργειας. Σύγχρονοι κυβερνήτες DVFS ⁇ όπως το Linux ⁇ χρησιμοποιήστε τα μετρικά χρήσης της ΚΜΕ για να επιλέξετε τα βέλτιστα σημεία λειτουργίας. Η τετραγωνική σχέση μεταξύ τάσης και ισχύος σημαίνει ότι ακόμη και οι μέτριες μειώσεις συχνότητας αποδίδουν σημαντικά κέρδη ενέργειας. Για παράδειγμα, η λειτουργία ενός πυρήνα σε συχνότητα 80% αντί για 100% μπορεί να μειώσει την ισχύ κατά σχεδόν 36% ενώ μόνο ελαφρώς αυξανόμενη λατινότητα.

Ωστόσο, η αποτελεσματικότητα της PVFS εξαρτάται από τη κοκκιοποίηση του φόρτου εργασίας. Σύντομες εκρήξεις υπολογισμών μπορεί να μην ωφεληθούν από αλλαγές συχνότητας λόγω των γενικών εξόδων μετάβασης. Το λειτουργικό σύστημα πρέπει να προβλέψει μελλοντική ζήτηση ή να αντιδράσει μέσα σε μικροδευτερόλεπτα. Πρόσφατες εργασίες στη χρήση μετρητών απόδοσης υλικού και ιστοριών ειδικών εργασιών βελτίωσαν την ακρίβεια της DFFS. Για περισσότερες λεπτομέρειες σχετικά με τις trade-offs υλοποίησης, δείτε [[LFT:0]Linux CPU Συχνότητας κλιμάκωσης τεκμηρίωσης.

Προχωρημένες καταστάσεις ύπνου και διαχείριση αδράνειας

Όταν ένας επεξεργαστής δεν έχει έτοιμες εργασίες, το λειτουργικό σύστημα πρέπει να μεταβεί σε κατάσταση χαμηλής ισχύος αδράνειας. Οι σύγχρονες ΚΜΕ προσφέρουν πολλαπλές καταστάσεις ύπνου (C-states) με διαφορετικές κενώσεις και εξοικονόμηση ισχύος. Ο χειριστής OS αδρανής επιλέγει τη βαθύτερη κατάλληλη κατάσταση με βάση την προβλεπόμενη διάρκεια αδράνειας. Για συσκευές μηχανικής που περνούν τον περισσότερο χρόνο τους περιμένοντας για είσοδο αισθητήρων ή πακέτα δικτύου, η αποτελεσματική διαχείριση αδράνειας κυριαρχεί στην εξοικονόμηση ενέργειας.

Πέρα από την ΚΜΕ, το λειτουργικό σύστημα πρέπει να διαχειρίζεται τα συστατικά του συστήματος σε chip (SoC): οι ελεγκτές μνήμης, οι διασυνδέσεις και τα περιφερειακά μπορούν να εισέλθουν σε καταστάσεις αυτοαναζωογόνησης ή με πύλες ισχύος. Η έννοια διαχείριση ισχύος σε λειτουργία[[LFT:1]] επιτρέπει στον πυρήνα να αναστείλει μεμονωμένες συσκευές όταν δεν χρησιμοποιούνται, ακόμη και αν η κύρια ΚΜΕ παραμένει ενεργή. Αυτός ο λεπτοφυής έλεγχος είναι απαραίτητος για συσκευές με πολλά περιφερειακά, όπως ένα ενσωματωμένο χειριστήριο με Wi-Fi, Bluetooth, και πολλαπλούς αισθητήρες.

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

Οι αλγόριθμοι παραδοσιακού προγραμματισμού δίνουν προτεραιότητα στη δικαιοσύνη ή στην υπερβολή. Οι προγραμματιστές ενέργειας-γνωστοποίησης προσθέτουν ισχύ ως στόχο προγραμματισμού. Οι τεχνικές περιλαμβάνουν:

  • Αγώνα-to-idle:[[LFT:1]] Πλήρης εργασία όσο το δυνατόν γρηγορότερα, στη συνέχεια, εισάγετε βαθύ ύπνο. Αυτό λειτουργεί καλά για τα εκρηκτικά φόρτους εργασίας όπου η δύναμη ύπνου είναι πολύ χαμηλή.
  • Ενεργειακά αποδοτική επιλογή συχνότητας: Ο προγραμματιστής επιλέγει τη χαμηλότερη συχνότητα που πληροί τους περιορισμούς προθεσμίας για εργασίες πραγματικού χρόνου.
  • Μετανάστευση με κλίστρα: Στις ετερογενείς αρχιτεκτονικές (π.χ., ARM big.LITTLE), το OS μεταναστεύει σε πυρήνες υψηλής απόδοσης για ελαφριά εργασία και μεγάλους πυρήνες για βαριά φορτία.

Ο προγραμματισμός της ενεργειακής αντίληψης πρέπει επίσης να εξηγεί τη θερμική σύζευξη μεταξύ των πυρήνων και των προτύπων πρόσβασης στη μνήμη. Για παράδειγμα, η μετακίνηση μιας εργασίας σε έναν πυρήνα πιο κοντά στα δεδομένα της ιεραρχίας cache μειώνει την ισχύ της μνήμης. Η [[LFT:0]]Linux Energy-Aware Scheduling documentation[[LFT:1]]] παρέχει μια εις βάθος ματιά στον τρόπο με τον οποίο αυτές οι πολιτικές εφαρμόζονται στην πράξη.

Διαχείριση ισχύος μνήμης και I/O

Η μνήμη (DRAM) καταναλώνει σημαντική ισχύ, ειδικά κατά τη διάρκεια της ενεργού πρόσβασης. Το λειτουργικό σύστημα μπορεί να μειώσει την ενέργεια μνήμης μέσω:

  • Κατανομή της τράπεζας-γνωστοποίηση: Διάδοση πρόσβασης σε τράπεζες μνήμης για να αποφευχθούν οι συγκρούσεις τραπεζών και να επιτραπεί στις τράπεζες να παραμείνουν σε χαμηλούς όρους για περισσότερο.
  • Σύνδεση σελίδας και συσπειρωσιμότητα: Ομαδοποίηση ενεργών σελίδων σε λιγότερες περιοχές μνήμης, ώστε οι αχρησιμοποίητες περιοχές να μπορούν να τοποθετηθούν σε αυτοαναζωογόνηση.
  • NUMA-γνωστοποίηση προγραμματισμού: Σε συστήματα πολλαπλών θυρών, διατήρηση νημάτων και δεδομένων στον ίδιο κόμβο για την ελαχιστοποίηση της κίνησης απομακρυσμένης μνήμης.

Για τον I/O, το λειτουργικό σύστημα χρησιμοποιεί τεχνικές όπως το δίκτυο καρβουνοποίησης διακόπτει, γράφει ο δίσκος παρτίδας και κλείνει τους μη χρησιμοποιημένους ελεγκτές μέσω του ACPI. Η πρόκληση είναι η διατήρηση της ανταπόκρισης: η καθυστέρηση ενός διακοπτόμενου κατά μερικά χιλιοστά του δευτερολέπτου μπορεί να σώσει την ισχύ, αλλά μπορεί να παραβιάσει μια προθεσμία ανάγνωσης αισθητήρων.

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

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

Μία προσέγγιση είναι να χρησιμοποιήσετε χαλαρό χρόνο: μετά από μια εργασία ολοκληρώνει νωρίς, το υπόλοιπο χαλαρό χρησιμοποιείται για τη μείωση της συχνότητας ή την είσοδο στον ύπνο. Αυτό απαιτεί ακριβή ανάλυση χρονισμού και χαμηλό ύψος. Μια άλλη πρόκληση είναι ότι οι καταστάσεις βαθιάς νάρκης έχουν μεγάλες ώρες αφύπνισης. Αν μια εργασία πρέπει να ανταποκριθεί μέσα σε 100 μs, το λειτουργικό σύστημα δεν μπορεί να εισέλθει σε μια κατάσταση C με 500 μs λανθάνουσας εξόδου. Το λειτουργικό σύστημα πρέπει επομένως να επιλέξει βάθη ύπνου με βάση το συντομότερο χρόνο αδράνειας που θα συμβεί πριν την επόμενη προθεσμία.

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

Αναδυόμενες Τεχνολογίες και Μελλοντικές Οδηγίες

Μηχανική Μάθηση για την Προβλεψιμότητα Διαχείρισης Ενέργειας

Η παραδοσιακή διαχείριση ισχύος OS βασίζεται σε σταθερή ευκρίνεια (π.χ., όρια χρήσης). Η μηχανική μάθηση προσφέρει τη δυνατότητα προσαρμογής πολιτικών σε πρότυπα φόρτου εργασίας που αλλάζουν με την πάροδο του χρόνου. Για παράδειγμα, ένα νευρωνικό δίκτυο μπορεί να προβλέψει μελλοντική ζήτηση ΚΜΕ με βάση προηγούμενες αφίξεις εργασιών και ενεργοποιήσεις αισθητήρων, επιτρέποντας στο OS να θέτει προληπτικά συχνότητες ή καταστάσεις αδράνειας.

Το λειτουργικό σύστημα πρέπει είτε να εκφορτώνει έναν ειδικό επιταχυντή χαμηλής ισχύος είτε να χρησιμοποιεί ελαφρά μοντέλα (π.χ. δέντρα αποφάσεων) που χωράνε στον πυρήνα. Το χαρτί έρευνας ⁇ Διαχείριση ισχύος με βάση τη μάθηση για πολλαπλούς επεξεργαστές ⁇ [ παρέχει μια λεπτομερή αξιολόγηση αυτών των προσεγγίσεων. Καθώς το ενσωματωμένο υλικό ML γίνεται πιο κοινό, μπορούμε να αναμένουμε από τους διαχειριστές ισχύος του OS να ενσωματώνουν τις πολιτικές μάθησης ως πρότυπο χαρακτηριστικό.

Συνέργειες υλικού χαμηλής ισχύος

Το λειτουργικό σύστημα δεν μπορεί να επιτύχει μέγιστη ενεργειακή απόδοση χωρίς στενή ολοκλήρωση με το υλικό. Αναδυόμενες SOCs προσφέρουν λεπτο-κοκκινισμένα πεδία ισχύος, ανά-πυρήνα ρυθμιστές τάσης, και μη-εμβολική μνήμη που διατηρεί την κατάσταση κατά τη διάρκεια του βαθύ ύπνο. Το λειτουργικό σύστημα πρέπει να εκθέσει αυτές τις δυνατότητες μέσω πλαισίων διαχείρισης ισχύος, ενώ το χειρισμό των σφαλμάτων υλικού και των τροποποιήσεων.

Τεχνολογίες όπως ο υπολογιστής εγγύς-threshold (NTC) επιτρέπουν στους επεξεργαστές να τρέχουν σε πολύ χαμηλές τάσεις, αλλά είναι ευαίσθητες στη θερμοκρασία και την μεταβολή της διεργασίας. Το λειτουργικό σύστημα πρέπει να παρακολουθεί τους αισθητήρες επί του chip και να προσαρμόζει τα περιθώρια τάσης ⁇ μια εργασία που απαιτεί βρόχους ελέγχου σε πραγματικό χρόνο. Επιπλέον, ετερογενείς αρχιτεκτονικές (π.χ., μεγάλη ARM.LITTLE, x86 υβριδικοί πυρήνες) επιτρέπουν στο λειτουργικό σύστημα να αναθέτει εργασίες στον πιο ενεργειακά αποδοτικό πυρήνα για κάθε φόρτο εργασίας.Η ]ARM μεγάλη.

Μια άλλη υποσχόμενη κατεύθυνση είναι η χρήση συσκευών συλλογής ενέργειας που συγκεντρώνουν ενέργεια από πηγές ηλιακής ενέργειας, κραδασμών ή RF. Αυτές οι συσκευές έχουν διαλείπουσα παροχή ρεύματος. Το λειτουργικό σύστημα πρέπει να διαχειρίζεται τον υπολογισμό σε κύκλους ισχύος, εξοικονομώντας κατάσταση σε μη πτητική μνήμη πριν από μια διακοπή ρεύματος. Αυτό ⁇ διαλείπουσα υπολογιστική ⁇ απαιτεί μηχανισμούς ελέγχου σε επίπεδο OS, μια αλλαγή παραδείγματος από τη συνεχή λειτουργία ισχύος.

Συμπέρασμα

Η σχεδίαση λειτουργικών συστημάτων για ενεργειακά αποδοτικές μηχανολογικές συσκευές είναι μια πολυδιάστατη πρόκληση που καλύπτει την DVFS, την άσκοπη διαχείριση, τον προγραμματισμό, τη μνήμη και τη βελτιστοποίηση I/O, και τους περιορισμούς σε πραγματικό χρόνο. Τα επιτυχημένα σχέδια ενσωματώνουν αυτές τις τεχνικές σε μια συνεκτική πολιτική που προσαρμόζεται στο φόρτο εργασίας, το υλικό και τις περιβαλλοντικές συνθήκες. Καθώς η μάθηση μηχανών και οι νέες δυνατότητες υλικού ωριμάζουν, το λειτουργικό σύστημα θα παίξει ακόμα μεγαλύτερο ρόλο στη συμπίεση της τελευταίας πτώσης ενέργειας από κάθε συσκευή ⁇ που θα ενεργοποιεί μεγαλύτερη διάρκεια ζωής μπαταρίας, μικρότερους παράγοντες μορφής, και ευρύτερη ανάπτυξη αυτόνομων συστημάτων από απομακρυσμένες περιβαλλοντικές οθόνες έως ιατρικά εμφυτεύματα. Οι μηχανικοί που θα κυριαρχούν αυτές τις αρχές θα είναι στην πρώτη γραμμή της δημιουργίας βιώσιμης, υψηλής απόδοσης τεχνολογίας.