Sehr beliebt bei den meisten Custom-ROMs ist das sogenannte „Undervolting“. Dabei wird die CPU einfach mit einer geringeren Versorgungsspannung betrieben. Dadurch nimmt sie weniger Strom auf, wird nicht so warm und verbraucht weniger Energie – der Akku hält länger. Möglicherweise kann das aber zu Instabilitäten führen, da manche CPUs durch die Fertigungstoleranzen das Undervolting mal besser und mal schlechter vertragen. Da hilft einfach nur experimentieren.
Zudem gibt es (meistens bei den Angaben zum Kernel) die Abkürzungen „SVS“ und „HAVS“
SVS – „Static Voltage Scaling“
- die Versorgungsspannungen der CPU sind in einer Tabelle fest eingestellt, für jede Frequenz gibt es genau eine Spannung für die CPU. So kann man das ganze recht gut auf eine CPU optimieren.
HAVS – „Hybrid Adaptive Voltage Scaling“
- es gibt eine Tabelle, in der zu jeder möglichen Frequenz, auf der die CPU läuft, ein Spannungsbereich festgelegt ist. Dies bietet mehr Energiesparpotential, ist aber auf einigen Handys sehr instabil. Die CPU-Spannung wird zusätzlich in Abhängigkeit von der Temperatur geregelt. Bei einer höheren Temperatur wird die CPU instabil. Man muss dann die Spannung erhöhen um sie wieder in einen Stabilen Bereich zu bekommen. Natürlich bedeutet eine höhere Spannung zum einen mehr Akkuverbrauch, zum anderen ebenfalls einen Temperaturanstieg, was wiederum (bis zu einer in der Tabelle festgelegten Höchstspannung) wieder eine CPU-Spannungserhöhung nach sich zieht. Wegen dieses Teufelskreises sind HAVS-Kernels im allgemeinen etwas instabiler als SVS-Kernels, sparen aber auf der anderen Seite mehr Energie, wenn die CPU sich nicht stark erwärmt.
ui, schöner Artikel! Interessant. Hab ich auch noch nicht gewusst 😉
Danke!
wie siehts den mit den spannungs-angaben aus?
wodurch unterscheidet sich ein havs@875mV vom havs@925mV in der praktischen handhabung?
/offtopic: feiner blog, lese schon länger mit
na, bei dem ersten wird die CPU mit 875mV versorgt und beim zweiten mit 925mV. Der erste Kernel ist stromsparender, aber eventuell auch instabiler 😉
Wenn ein Prozessor aus einer guten Charge verbaut wurde, dann kann man mit dem HAVS@875mV auch noch bis 1113MHz stabil übertakten. Also im Prinzip könnte man noch Kernel basteln (kompilieren), die noch niedrigere Spannungen ermöglichen.
Man kann sogar bei den havs kernels die Tabellen für Takt und Spannung selbst anpassen.
Wie das geht, steht bei den xda developern bei einem der aosp-kernels beschrieben…
ah ok. kuhl, danke 🙂
Wenn bei einem Kernel keine Info über dessen Versorgungsspannung steht. Wie kann man das herausbekommen?
Gibts evtl auch eine App die mir das am Desire anzeigt?
wenn bei einem Kernel keine Infos stehen würde ich sagen, der wird nicht undervoltet. Mir ist keine App bekannt, die die CPU-Spannung auslesen kann.
@ brain
Hast du nen link zu xda mit der Beschreibung zur anpassung von spannung und takt einer HAVS kernel?
Thx
http://forum.xda-developers.com/showthread.php?t=893484Zwar
Danke werde gleich mal schaun.
ich hab mal ne andere frage bei dieser kernel: Beta kernel jan 21 http://www.ziggy471.com/
gibts eine HAVS und eine SVS. in der beschreibung steht das man die VDDs in einer datei nachschaun kann.
zurzeit habe ich die SVS version installiert. und im von ziggy beschriebenem verzeichnis steht für jeden takt eine andere spannung.
Oben in deiner erklärung steht das bei SVS eine spannung für jeden takt ist. bei HAVS für jeden takt eine andere spannung.
meine frage ist jetz warum bei der kernel von ziggy in der SVS version trotzdem eine takt/spannung tabelle vorhanden ist.
Beispiel: 806mhz 1200mV ; 1228mhz 1400 mV bei SVS
läut die CPU, wenn ich 806mhz mit setcpu einstelle, dann mit 1200mV??
hab grade die HAVS drauf gemacht 😛
da steht in der VDD Tabelle für machen Freqenzen eine von bis Spannung
zb: 806 mhz 1175-1225
ich habe den Artikel mal aktualisiert, meine Ausführungen waren bisher einfach nicht ganz korrekt. Danke an Matthias für deine Mails mit den entscheidenden Hinweisen ;o)
hi brain
ich hab das was da alles im xda unter dem link steht gemacht. umd zu testen obs geht hab ich einfach die spannungen vom kleinten takt geändert. unter adb hat mir keinen fehler angezeigt und mit dem befehl „cat“ konnte man die aktuellen spannungen auslesen, dies hat mir dann auch angezeigt das es geändert wurde aber beim neustart hab ich mitm root explorer nachgeschaut in der tabelle… nix verändert 🙁
brauch ich s-off dafür? ich konnte nichts lesen im artikel.
danke
Mit der App „IncrediControl“ kann man die Spannungen der CPU verändern…muss man n bißchen rumspielen und gucken wie die cpu reagiert, aber n Versuch wert.
Btw. würdest du dann im Allgemeinen immer zu svs-bfs Kernels raten?
Ich nutze momentan Runnymede AIO als ROM und habe mit verscheidenen Kernels rumgespielt. Alle bfs no2way. Performance und Benchmarksieger ist der SNQ Kernel (svs). Verglichen hab ich mit verscheidenen Gingercakesversionen (alle HAVS). Dass bfs>cfs ist, leuchtet mir ein, aber wo jetzt die Vorteile bei unserem Desire und einzelnen ROM’s zwischen HAVS und SVS liegen ist mir noch nicht ganz klar. Kann man sagen, dass eins besser als das andere ist oder hängt das immer vom ROM und den einzelnen OV/UV Einstellungen ab? Jetzt in bezug auf max. battery und smooth performance.
Ich hoffe dir wird klar, was ich meine. Würd mich über ne Antwort freuen.
Es hängt immer vom einzelnen Handy ab, was darauf geht und was nicht. Man muss es selbst ausprobieren.
HAVS kann unter umständen ein wenig mehr Akku sparen, hat aber eher die Tendenz instabil zu sein. Die Unterschiede sind aber minimal und auf jedem Handy anders.