Schummelprogramme
Der Skandal um VW hat nun ja Wellen geschlagen und er veranlasst mich zu meinem Blog über Programme die ein sagen wir mal etwas geschöntes Bild der Wirklichkeit bieten. In der Automobilindustrie ist dass vielleicht die Ausnahme, vielleicht auch die Regel, das wird sich zeigen, aber in der Informationstechnologie ist es die Regel. Hier mal einige Beispiele von „Schummelprogrammen“.
Schon zu DOS Zeiten ging das los. Spätestens als der IBM AT erschien brauchte man einen Benchmark um die Computer zu vergleichen. Sehr bald etablierte sich der Norton Sysinfo Index (SI) als Maßstab. Die Norton Utilities hatten ein Programm das neben Systeminformationen auch einen Geschwindigkeitsindex relativ zum IBM PC (1.0). Einige (von Herstellern gepatchte) DOS-Versionen erkannten das Programm und verstellten den Systemtimer der zur Zeitmessung diente. Diese Maßnahme ist eigentlich nicht nötig, denn das Programm selbst kann man als Schummelprogramm einstufen. Die Programmierer haben es sich sehr einfach gemacht und die Messung erfolgt in einer kleinen Schleife. In dieser kamen zwei Befehle vor für die der 8086 sehr lange brauchte: IMUL und IDIV. Diese Befehle kamen in normalen Programmen relativ selten vor und die Nachfolger des 8086 beschleunigten gerade diese sehr stark. So hatte ein 8086 bei gleicher Taktfrequenzeinen SI-Wert der sechsmal höher als beim IBM PC war. In Wirklichkeit war er aber nur etwa dreimal schneller.
Mit Windows gerieten dann auch die Grafikkarten ins Visier der Trickserei. Hier wurde bald ein Benchmark der Ziff-Davis-Gruppe bedeutend die in den USA viele Computerzeitschriften herausbrachte. Sehr bald erschienen Grafikkarten die erkannten dass man immer die gleichen Operationen durchführte und sie bei einer schleife nur einmal durchführten und danach nur noch die letzten Ergebnisse anzeigten. Beim Anzeigen von Text benutzten einige bei dem immer gleichen Text sogar oft ein vorgerendertes Pixelmuster wiedergaben. Änderte man nur einen Buchstaben so brach die Performance enorm ein.
Das setzte sich bei den 3D-Fähigkeiten fort. Hier fragten die Treiber den Dateinamen ab und ersetzten die Ausgabe des Programms durch eine vorher berechnete. Benannte man die Benchmarkprogramme um, so fiel es schon auf. Das Schummelprogramm für mich schlechthin ist „Softram 95“, für das die ct‘ die den Skandal aufdeckte die Bezeichnung Placebosoftware erfand. Als Windows 95 erschien hatten die meisten Rechner zu wenig RAM. Windows 95 brauchte etwa 16 MB um flüssig zu laufen, da damals RAM durch eine Verknappung der Produktion teuer war, hatten selbst neue Computer nur 8 MB. Syncronys Softcorp der Hersteller brachte nun das Programm Softram 95 aus, das versprach durch Umschaufeln kritischen Speicher freizugeben und den Speicherinhalt zu komprimieren. In Wirklichkeit vergrößerte es nur die Auslagerungsdatei und bog die Ausgabe der Windows Systemsteuerung über die benutzten Ressourcen um, so dass der Anwender sah dass er angeblich mehr freies RAM und Ressourcen hatte.
Geschummelt wird auch heute noch, selbst bei offiziellen Einstufungen. Nehmen wir die Intel-Prozessoren seit der Einführung der iCore Serie vor 5 Jahren. Glaubt man Intel, so haben sie seitdem mit jeder Generation um durchschnittlich 25% an Geschwindigkeit zugelegt. Schaut man sich das reale Verhalten von Anwendungsprogrammen an, so merkt man nichts davon. Skylake ist nach ersten Ergebnissen nur noch 1-3% schneller als die letzte Generation Broadwell. Der Grund liegt in der Berücksichtigung von neuen Befehlen die z.B. Verschlüsselungsoperationen oder im wissenschaftlichen Bereich wichtig die AVX Befehle. Die findet man auch im Linpack Benchmark der für die Einstufung der Performance bei Supercomputern genutzt wird. Er ist extrem prozessorfreundlich und in ihm ist die wichtigste Operation eine Matrixmultiplikation. Weiß man dass selbst bei den Intel-Compilern eine Matrixmultiplikation durch den Compiler übersetzt viermal langsamer abläuft als die Bibliotheksfunktion so weiß man wo da geschummelt wird. Nichts gegen optimierte Bibliotheken, doch im täglichen Leben kann man eben nicht nur Bibliotheken nutzen. Auf der anderen Seite ist die x64 Architektur weitestgehend durchoptimiert. Die Änderungen in den letzten Generationen sind eher klein und so auch der Gewinn. Intel konzentriert sich inzwischen mehr auf andere Aspekte wie Energieeffizienz und die Performance der integrierten Grafik die weitaus stärker in den letzten Jahren an Geschwindigkeit zulegte (allerdings auch nur durch mehr Shadereinheiten).
Zurück zu VW. Das es hier Jahre dauerte bis der Trick herauskam (installiert wurde die Software schon 2008) liegt an zwei Dingen. Das eine ist die Computerarchitektur eines PKW, das andere das Testverfahren. Auch wenn heute ein Mittelklassewagen mehrere Dutzend Steuergeräte beinhaltet ist es keine saubere Umgebung. Jedes Gerät kann von einem anderen Zulieferer stammen. Sie kommunizieren über den CAN-Bus aber jeder versteht nur bestimmte Botschaften, es gibt also kein gemeinsames Protokoll. Daneben versucht die gesamte Industrie Sicherheit durch Obfuscation zu bekommen, also indem sie nicht offenlegt wie etwas funktioniert. Der Kilometerstand ist z.B. nicht so abgesichert, dass er nur hochgezählt werden kann wenn sich das auto bewegt, sondern als Wert abgelegt – zur Sicherheit vor Fälschung aber mehrmals an verschiedenen Stellen. Letztes Jahr deckte die ct auf, dass die Kommunikation zum Entsperren des Wagens mit diesem Pieper auch wichtige Zugangsdaten für weitere Subsysteme übermittelte – super geeignet um den Wagen zu starten und zu klauen.
Das zweite war das Messverfahren. Soweit ich informiert bin musste sie Schummelsoftware nicht besonders komplex sein. Ein Abgastest auf einem Prüfstand zeichnet sich durch zwei Dinge aus die im normalen Betrieb nicht vorkommen: Das Lenkrad wird nicht bewegt und es bewegen sich nur die Vorderräder wo der Antrieb sitzt. Nun kann auf einer langen geraden Strecke das Lenkrad nicht bewegt werden, aber dann bewegen sich die Hinterräder. Es kann bei einem feststehenden Wagen der im Schlamm steckt sich die Vorderräder durchdrehen, doch dann wird man das Lenkrad drehen um herauszukommen, vor allem aber wird man so nicht lange den Motor betrieben, weil man sonst nur noch tiefer in den Schlamm kommt. Es reichte also beide Dinge festzustellen um zu „schummeln“. Bewegte man bei den Tests nur das Lenkrad so gab es schon realistische Werte.
Meine Kritik richtet sich aber gegen diese synthetischen Tests genauso wie synthetische Computerbenchmarks. Schon lange weiß man dass die Verbrauchsdaten von Neuwagen viel höher sind als die Herstellerangeben. Ein Test mit einem neuen Gold und einem uralten Golf II im Mix von Stadt und Autobahn ergab dass der Golf II sparsamer war, obwohl die Herstellerangaben etwas anderes aussagten. Der einfache Grund: Bei den Tests wird kein Verbraucher zugeschaltet, keine Heizung, keine Klimaanlage, keine Scheinwerfer, nur der Motor läuft. Die brauchen heute aber eine Menge Energie. Daneben wiegt ein neuer Golf erheblich mehr als der Golf II. Realistisch wäre das Messen eines Profils auf einer realen Strecke durch die Stadt und die Autobahn, gerne auch mit Staus, die soll es im wirklichen Leben auch geben, in jedem Falle aber mit Ampelstopps und Überholmanövern. Sicher schwanken so je nach verkehr die Meßwerte, doch dann wendet man das an was man immer in solchen Fällen tut: man wiederholt die Messungen und bildet Mittelwerte. Es ist aber in jedem Falle aufwendiger als das Auto einfach auf den Prüfstand zu stellen. Geschummelt wird auch so. Neben dem Messen ohne Verbraucher dürfen für den Gesamt CO2-Ausstoß ihrer Flotte die Hersteller auch die Elektroautos hinzunehmen und die haben per Definition keinen CO2-Ausstoß und werden sogar mit dem Faktor 1,5 bewertet: 1 Million Elektroautos entsprechen so 1,5 Millionen Autos ohne Kohlendioxydemission die für den Mittelwert aller Wagen hinzugenommen werden. Angesichts der wenigen Elektroautos die in Deutschland produziert werden, nützt das aber vor allem den ausländischen Herstellern. Von den 2014 zugelassenen wurden übrigens mehr als die Hälfte von den Fahrzeugbauern selbst zugelassen – tja so senkt man seine Abgasemissionen….
Zuletzt noch zum Schummeln selbst. Die prinzipielle Reduktion der Stickoxyde erfolgte nach VW-Angaben durch einen Sammelbehälter der sie sammelte und periodisches Einspritzen von Kraftstoff zur Nachverbrennung in dem Behälter. Das sie funktioniert zeigen ja die niedrigen Messungen im Prüfstand. Warum wird es dann nicht immer so gemacht? Zwei Erklärungen gäbe es: entweder steigt so im Routinebetrieb der Kraftstoffverbrauch unmäßig an, was auch nicht gewünscht ist oder das geht nur so solange es kurzzeitig erfolgt, dauerndes Einspritzen und Nachverbrennen konnte den Behälter, einen umgerüsteten Katalysator wohl überhitzen und beschädigen. Immerhin will VW ja nun das Problem hardwaretechnisch lösen und nicht nur durch ein Softwareupdate.
Uraltes Thema – war schon 2001 ein offenes Geheimnis, als ich bei der hiesigen TU mal mit den Jungs dort über Fahrzeuge auf Prüfständen philosophiert habe… Es gibt noch deutlich einfachere Dinge, die einen Testzyklus auszeichnen, als keine Lenkradbewegungen:
a) der Zyklus ist genormt (d.h. das Geschwindigkeits/Beschleunigungsprofil ist im vorhinein exakt bekannt). Light-Hybrids von deutschen Herstellern können damit „vorrausschauend“ optimieren, zB die
Batterie in einem deutlich weiteren Bereich durchfahren (weil sie die vor dem Ende des Tests wieder garantiert aufladen können) als im Realbetrieb -> geringerer Kraftstoffverbrauch, weil Lastspitzen besser aufgefangen werden.
b) Maximalgeschwindigkeit und Maximalbeschleunigung sind deutlich geringer als im Normalbetrieb – der sprichwörtliche Sonntagsfahrer beschleunigt schneller, als dies im Testzyklus passiert, und Geschwindigkeiten gehen nicht über 120 km/h. Die Kollegen damals (~2002) hatten alle gewusst, das die komplette Abgasnachbehandlung spätestens bei 130 km/h bei so gut wie allen deutschen Markenherstellern ausgeschaltet wird.
Und aus erster Hand, ein Bericht aus der Zeit:
http://if-blog.de/guestauthor/mein-freund-der-softwarebetrueger/
(was ebenfalls den Studenten der TU Fachrichtung Motorenbau bekannt war, das es „interessante“ Phänomene mit Kat, Speicher-Kat etc gab…).
Interessanter ist ja eigentlich, dass dieses Thema jetzt hochgekocht wird…. Ein Schelm der Böses dabei denkt.
Dazu kommen dann noch die in der Werbung verwendeten hochgedrehten Angaben. So wird bei Festplatten mit 1000 statt mit den in der Informatik üblichen 1024 gerechnet. Oder die Geschwindigkeit von RAM-Modulen. Da werden gewaltige Werte genannt. Was nicht gesagt wird: Diese Werte gelten für Cl 0,5. Es gibt aber keinen Speicher, der wirklich so schnell ist. In der Praxis sind eher Werte um die 10 üblich.
Oder der Alkoholgehalt von Getränken. Üblich ist hier die Angabe von Volumen-Prozent statt Gewichts-Prozent. Dadurch steigt der Zahlenwert, ohne daß mehr drin ist.
@ Elendsoft
Na das ist ja mal eine gute Nachricht, endlich mal ein Produkt, das gesünder ist, als man es laut Aufschrift vermuten kann.
Na dann… Prost!
Hicks!
Ralf mit Z 😉
Dass es so lange gedauert hat bis man das entdeckt hat ist auch erstaunlich. Zumindest in den USA wusste man schon vor einem Jahr davon. Wahrscheinlich auch länger. Ich denke auch das VW kein Einzelfall ist. Vielleicht haben sie es nur mit der Schummelei übertrieben, aber geschönte Werte wird es bei allen anderen Fahrzeugherstellern (nicht nur aus Deutschland) geben.
Bei der Lebensmittelbranche wird „geschummelt“ (nach dem Gesetz nennen man das dort Täuschung) was nur möglich gibt, vor allem in der Werbung aber auch bei angaben. So wird Eis in Millilitern verkauft, in Gramm wiegt es oft nur noch die Hälfte. Noch schlimmer sind die Angaben auf den Packungen und in der Werbung. Da wird mit Selbstverständlichkeiten oder Phrasen beworben oder Stoffe einfach umdeklariert z.B. vom Konservierungsmittel zum Säuerungsmittel.
Tarnen, tricksen, täuschen ist nicht nur das Prinzip beim Militär, sondern leider auch in der Industrie. VW ist jetzt sicher ein Negativ-Beispiel, weil die Abgaswerte real gleich zehnfach höher sind als im genormten Testzyklus, und es nicht „nur“ 30% mehr sind, wie wir es von den Verbrauchswerten gewohnt sind. Dass es gerade jetzt hochkocht, ist zum einen den Zufälligkeiten der Medienlandschaft geschuldet, zum anderen dem Umstand, dass hochrangige Ermittler in den USA darauf aufmerksam geworden sind…
Eine kleine technische Korrektur: Die Stickoxide werden nicht durch extra Kraftstoff „verbrannt“, sondern durch Harnstoff. Das Zeug – die Autohersteller nennen es „AdBlue“ – ist zwar recht billig, aber man möchte den Dieselfahrern halt ersparen, dauernd zwei Flüssigkeiten (nämlich Diesel und AdBlue) tanken zu müssen. Also „optimiert“ man den Verbrauch von AdBlue, indem man die Abgasnachbehandlung im Regelfall ausschaltet und nur im Sonderfall (Prüfstand!) einschaltet. So kommen die Autos durch die Zulassungstests und auch alle zwei Jahre durch die ASU (die meist sogar ja im Leerlauf erfolgt, nicht mal auf dem Prüfstand), und rotzen ansonsten die Stickoxide mehr oder weniger ungefiltert raus.
Vor dem Stickoxid-Speicherkat sitzt übrigens der Rußfilter. Der wird, wenn er voll ist, tatsächlich mit zusätzlich eingespritztem Treibstoff abgebrannt (bzw. bei einer längeren Autobahnfahrt auch ohne zusätzlichen Treibstoff, weil er dann heiß genug wird). Den Rußfilter wirkungslos zu machen, würde aber den Stickoxid-Filter beschädigen (da dort dann zu viel Ruß ankommt), und das würde dann bei der ASU auffallen. So hat die harte Euro-6-Norm also immerhin den Vorteil, dass die Autohersteller dauerhaft funktionierende Rußfilter einbauen. Der Stickoxid-Wert wird zwar nicht eingehalten, aber der Rußwert wenigstens halbwegs.
So weit man am Verbrennungsmotor (noch) festhält, wäre es sicherlich das beste, auf einen Motor mit kontinuierlicher Verbrennung umzustellen. Dafür braucht man zwei Turbinen, letztendlich ähnlich wie beim Turbolader: Eine Turbine verdichtet die einströmende Luft, dann kommt ein Ölbrenner (Diesel ist ja letztendlich dasselbe wie Heizöl) und dahinter eine Turbine, die der heißen Luft wieder die Energie abnimmt. Im direkten Antrieb an die Räder sind solche Turbinen extrem ungünstig, weil der Drehzahlbereich, der für einen Wechsel von Standgas zu Vollgas durchfahren werden muss, zu extrem ist (von ca. 1000 U/Min rauf auf ca. 30000 U/Min). In einem Hybridfahrzeug sollte es aber kein Problem sein, wenn die Turbine erst mit zwei oder drei Sekunden Verzögerung Energie liefert, oder nach dem Gaswegnehmen noch ähnlich lange nachrotiert. Das kann dann ja die Batterie puffern.