Low-Cost-Hardware

Arduino als IoT-Maschine - Teil 2

5. Dezember 2014, 11:14 Uhr | Von Dr. Claus Kühnel
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

CPU-Takt beeinflussen

Linux bietet die Möglichkeit, die Taktfrequenz des Prozessors auszulesen und, wenn notwendig, auch zu modifizieren bzw. den aktuellen Bedürfnissen an die Rechenleistung anzupassen. Dies wird normalerweise vollautomatisch erledigt [4]. Während die Taktfrequenzstufen und -grenzen durch die Hardware vorgegeben sind, entscheidet ein sogenannter „(Scaling) Governor“ über die Art und Weise der Frequenzeinstellung. Die folgenden Governors stehen zur Verfügung:

  • ondemand – Standard bei den meisten Systemen. Die CPU-Frequenz wird den aktuellen Bedürfnissen an die Rechenleistung angepasst. Dabei wird die CPU-Frequenz u.U. sprunghaft angehoben oder abgesenkt.
  • conservative – Die CPU-Frequenz wird den aktuellen Bedürfnissen an die Rechenleistung angepasst. Die Taktfrequenz wird aber Schritt für Schritt angehoben bzw. abgesenkt.
  • performance – CPU läuft permanent auf der höchsten erlaubten Taktfrequenz. powersave – CPU läuft permanent auf der niedrigsten erlaubten Taktfrequenz.

Nach dem Booten sind die Governors für jeden Core auf ondemand eingestellt und die CPU-Frequenz wird automatisch an die Performance-Anforderungen angepasst.

passend zum Thema

Listing 4. Das Script max_cpu_freq.sh stellt die CPU-Taktfrequenz erst auf performance, dann wird die CPU-Frequenz zurückgelesen
Listing 4. Das Script max_cpu_freq.sh stellt die CPU-Taktfrequenz erst auf performance, dann wird die CPU-Frequenz zurückgelesen.
© QIAGEN Instruments AG

In der Regel wird man sich also darum nicht kümmern müssen. Wenn allerdings Benchmarks oder andere Ergebnisse, die direkt taktfrequenzabhängig sind, interpretiert werden sollen, dann sind definierte CPU-Frequenzen notwendig

Im Beispiel boardinfo.sh war zu Beginn mit Hilfe des Scripts max_cpu_freq.sh die CPU auf maximale Taktfrequenz eingestellt worden. Listing 4 zeigt den Quelltext des Scripts max_cpu_freq.sh. In der ersten Schleife wird der Governor eines jeden Core auf performance, also maximale Taktfrequenz gesetzt, während in der zweiten Schleife die CPU-Taktfrequenz jedes Core zurückgelesen wird.

Die Ausgaben der Frequenzeinstellungen waren am Anfang und am Ende der Ausgaben gemäß Bild 5 zu sehen. Am Ende des Scripts war der Governor wieder auf ondemand zurück gestellt worden. Bis die Frequenz wieder reduziert wird, dauert es aber geraume Zeit.

 

Literatur

[1] Kühnel, Claus: Arduino als IoT-Maschine. Teil 1. Elektronik 2014, H. 13, S. 42 bis 45. WEKA Fachmedien, 2014
[2] Brühlmann, Thomas: Arduino Praxiseinstieg. [Behandelt Arduino 1.0]. mitp-Verlag, München, 2012. ISBN 978-3-8266-9116-4 (Print); ISBN 978-3-8266-8342-8 (PDF)
[3] Kühnel, Claus: Arduino: Hard- und Software Open Source Plattform. Skript-Verlag Kühnel, 2011. ISBN 978-3 907857-16-8 (Print); ISBN 978-3-8448-9134-8 (eBook).
[4] Prozessortaktung: http://wiki.ubuntuusers.de/Prozessortaktung.

 

Der Autor

Dr.-Ing. Claus Kühnel 
studierte und promovierte an der Technischen Universität Dresden auf dem Gebiet der Informationselektronik und bildete sich später in Biomedizintechnik weiter. Seit 2004 ist er bei der QIAGEN Instruments AG in Hombrechtikon (CH) als Director Electronic Engineering & Embedded Systems für die Entwicklung von Elektronik-Hardware und Hardware-naher Software verantwortlich.

info@ckuehnel.ch



  1. Arduino als IoT-Maschine - Teil 2
  2. Externe Steuerung
  3. CPU-Takt beeinflussen

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!