Die Windows 7 Problematiken


Problemzone 1: die USB Installations-Falle:

Im Netz wird von einigen Medien berichtet, dass Windows 7 und AMD Ryzen ein Problem mit USB besäßen. Das ist prinzipiell richtig, aber nicht neu und auch kein Alleinstellungs-Problem von AMD Ryzen. Windows 7 hat wegen der fehlenden nativen Unterstützung (Legacy USB) noch nie Treiber während der Installation des Betriebssystems für USB 3.0 bereitgestellt. Insofern wird es natürlich schwierig, während der Installation von Windows 7 auf entsprechend angeschlossene Eingabegeräte oder Installationsmedien ohne integrierte USB Treiber zurückzugreifen. Und wie gesagt, das Thema ist definitiv kein AMD Ryzen Problem, auf aktuellen Intel Z170 oder Z270 Plattformen sieht es exakt genauso aus. Das Problem ist nur das spätestens seit Intel Skylake die Mainboard Hersteller sogar den Noteinstieg gestrichen haben und der hieße zumindest USB 2.0, aber auch diese Option ist inzwischen gecancelt worden, so dass Windows 7 weder für die aktuellen Intel Systeme noch für die AM4 Plattformen usb-technisch zu nutzen wäre.

Aber USB 3.0 ist doch rein technisch betrachtet schon fast als anachronistisch anzusehen im Vergleich zu USB 3.1 und Thunderbolt 3 oder nicht ?

Allein technisch betrachtet mag das zutreffen, aber darum geht es nicht, es existieren leider immer noch nennenswerte und stellenweise sogar sehr ärgerliche Stolpersteine, denen wir uns in diesem Artikel widmen möchten, zumal uns gerade seit der Veröffentlichung von Windows 10 wieder vermehrt Emails erreichen, die auf neue/alte Probleme verweisen...


Ein Beispiel aus der Praxis:
Ein Anwender kauft sich ein aktuelles Intel Z 170 oder Intel Z270 oder AMD AM4 Mainboard, eine schnelle SSD als System-Datenträger, 16 GB Arbeitsspeicher, eine schnelle dezidierte Grafikkarte und versorgt dieses System mit einem hochwertigen 500 Watt Netzteil. Das Ganze erhält Windows 8.1 als Betriebssystem, was kurz danach auf Windows 10 aktualisiert wird und eigentlich könnte sich der Anwender doch jetzt völlig entspannt zurücklehnen und die Performance von so einem schnellen aktuellen System genießen oder ?
Leider nicht, denn er wird schnell feststellen, das angeschlossene USB 3.0 Geräte, so sie denn überhaupt erkannt werden, relativ langsam agieren, d.h. die USB 3.0 Festplatte, die man eigentlich als schnelles Backup Medium nutzen wollte, "dümpelt" mit sequentiellen Transfers um die 180 bis 200 MB/sec herum, obwohl sie eigentlich annähernd doppelt so schnell agieren könnte oder sollte...

Wo ist das Problem ?
Dazu muss man etwas differenzieren, weil dies sowohl hardware-also auch software-bedingt anzusehen ist. Einerseits bringt Windows 7 zu wenig Substanz mit, um ohne Treiberergänzung eine solide USB 3.0 Basis zu ermöglichen. Andererseits macht es genau dieser Umstand stellenweise sehr schwierig, Windows 7 auf aktuellen Systemen überhaupt noch zu installieren.


Das stimmt nicht ?
dazu ein typisches Beispiel aus unserem Forum: Intel Z170, kein USB Support bei der Installation ? Wie man unschwer erkennen kann, war es ohne Tricks kaum möglich auf einem Intel Z170 Mainboard Windows 7 überhaupt zu installieren, weil das Windows 7 Setup keinen Zugriff auf die angeschlossenen USB Geräte erhielt. Es mußte auf PS/2 ausgewichen werden.


Woran liegt das ?
Windows 7 bringt nicht mehr die Voraussetzungen mit, die aktuelle Intel Systeme erfordern, dazu gehört in erster Linie der Wechsel vom EHCI Modus zum neuen xHCI Modus, der entsprechende USB Treiber voraussetzt und die besitzt Windows 7 nicht.
EHCI (enhanced host controller interface) ->Das Enhanced Host Controller Interface (EHCI) ist eine Treiber-Software für USB 2.0.
xHCI (Extensible host controller interface) ->Das Enhanced Host Controller Interface (EHCI) ist eine Treiber-Software für USB 3.0.

Wie gesagt, entweder umgeht man das Problem für die Installation per PS/2 Notbehelf und/oder man führt einer Windows 7 Installation die passenden Treiber zu. Das kann über die Mainboard CD des Herstellers erfolgen, oder man erstellt vor der Installation einen USB Installations Stick oder eine Installations-CD/DVD, der diese Treiber schon enthält. Einige Mainboard Hersteller haben die Problematik inzwischen verstanden und bieten diese Treiber respektive unterstützenden Tools zumindest dezidiert an:

Asrock USB Installation Tool für Windows 7


Gigabyte USB Installation Tool für Windows 7


MSI USB Installation Tool für Windows 7


Windows 7 USB 3.0-Creator-Utility


Über diese Tools lassen sich dann passende USB Sticks und/oder Installations-DVDs erstellen (nicht nur für AMD Systeme, auch für Intel), um Windows 7 erfolgreich zu installieren und das auch ohne USB Unterstützung. Eine weitere Option wäre diese jeweiligen USB Modi im BIOS zu differenzieren, auf guten Mainboards mit aktuellem BIOS ist das oftmals möglich, so dass man beispielsweise EHCI aktiviert und xHCI deaktiviert. Oder man bewerkstelligt das Ganze über das windows-eigene Werkzeug pnputil, auch damit lassen sich Treiber in die Installation einbinden bzw. nachreichen. Weitere Installations-Optionen wäre die Nutzung von WSUS Offline, oder auch das Erstellen einer individuellen Boot.wim, oder per Unattended Installation. Wir haben dazu einige relevante Links zusammengestellt:

Windows7: Installation per USB-Stick


Windows 7: Installation per USB-Stick Part II


Windows 7: LIVE DVD erstellen - Workaround


Rufus - das USB-Tool und der Workaround -


Pnputil zur Treiber Integration nutzen


WSUS Offline Treiber Integration


Windows Automated Installation Kit (Windows AIK) für Windows 7


UEFI-Windows-Setup vom USB-Stick


Treiber in WIM Image einbinden



Nachdem dieser wichtige Aspekt für die Installation abgearbeitet ist, steht einer problemfreien Installation von Windows 7 kaum noch etwas im Weg. Verzichtet dabei bitte unbedingt auf eine Migration früherer Systeme, dies gilt insbesondere dann, wenn ihr vorher auf Intel gesetzt habt. Sicherlich wäre das technisch möglich, aber die Gefahr das hinterher dann eben doch noch Altlasten das System nachhaltig stören, ist extrem hoch und wer hat schon Zeit geschweige denn Lust auf eine wochenlange und wenig zielführende Fehlersuche. Mit anderen Worten: der System-Datenträger wird frisch formatiert und Windows 7 SP1 komplett neu aufgesetzt. Damit das nicht unnötig ausartet solltet ihr einen aktualisierten Datenträger verwenden:

Windows 7: Convenience Rollup (SP2) nutzen


Nach diesem Schritt, dem Aufspielen der noch fehlenden Updates und der Installation aller notwendigen Systemtreiber (Chipsatz, Grafik, Netzwerk, Sound usw.) können wir uns ein paar Gedanken zur System-Optimierung machen, auch dazu hätten wir einiges an passenden Artikeln zu bieten:

Windows 7: Tipps, Tricks, Artikel, Tutorials und Workshops


Schaut einfach mal in Ruhe durch diese Liste, dort warten an die 250 Artikel für Windows 7 auf euch. Wir stellen jetzt ganz bewusst keine speziellen Passagen heraus, schließlich wollen wir im Windows 1o Kapitel noch einiges beleuchten und Überschneidungen vermeiden.



Problemzone 2: der Task Scheduler, Interrupts, Core Parking und Micro-Codes:

Der veraltete Windows 7 Task Scheduler ist der nächste Problem-Bär, den es zu erwähnen gilt. Dabei geht es darum, dass Windows 7 die Prozessoren nicht korrekt erkennt und dementsprechend die Ressourcen nicht ideal zuweisen kann. Das bedeutet in der Praxis, dass Windows 7 die Multithreaded-Performance drosselt, egal ob nun Intels neuer Kaby Lake oder AMD Ryzen Prozessoren verbaut wurden. Windows 7 besitzt einen völlig veralteten Task Scheduler, der durch seine aufgeblähte Overhead Verwaltung viel dazu beiträgt, dass moderne Prozessoren nicht optimal angesprochen werden. Windows 8.1 ist da schon einen Schritt weiter und Windows 10 ohnehin, benötigt aber zumindest noch ergänzende Patches zum Thema AMD Ryzen respektive BIOS Updates usw.
Nun könnte man einwenden, dass Windows 7 den gleichen Kernel nutzt wie Windows Server 2008 und da laufen ja immerhin Multi-Socket-Systeme mit jeweils 24 Kernen. In der Theorie stimmt das, aber nicht in der Praxis, denn die Server Variante verfügt über einen modifizierten Task Scheduler und der ist weder mit dem von Windows 7 vergleichbar, noch könnte man ihn einfach austauschen.
Man kann es nun drehen und wenden wie man möchte, dieses Problem kann nur und ausschließlich durch Microsoft gelöst werden, das wäre allerdings aufwendig und es steht zu befürchten, dass sich Microsoft diesen nicht unerheblichen Aufwand ersparen wird. Fazit für diesen Bereich: Der Scheduler von Windows 10 wird vermutlich besser mit einer größeren Anzahl an physischen und logischen Kernen zurecht kommen als Windows 7.

Kommen wir noch zum Thema Windows 7 Interrupts, einem seit Jahren immer wieder hochköchelnden Ärgernis. Dazu sollte zumindest bekannt sein, was Interrupts überhaupt bedeuten: Ein Interrupt ist grundsätzlich ein Signal, das den Prozessor in seiner aktuellen Arbeit unterbricht (englisch: to interrupt), oder besser gesagt stört. Dies führt dazu, dass das Betriebssystem jetzt entscheidet, wie auf diese Unterbrechung reagiert werden soll. Das kann dazu führen, dass bestimmte Maßnahmen sofort ergriffen oder auf einen späteren Zeitpunkt verschoben werden. So oder so spielt dies alles eine große Rolle, denn das Zusammenspiel und die Kommunikation zwischen dem Prozessor und dem ausführenden Betriebssystem müssen diesbezüglich reibungslos und möglichst schnell aufeinander abgestimmt harmonieren. Ist dies nicht Fall, werden die Interrupt-Phasen länger und das System stoppt, ruckelt oder freirt möglicherweise auch ein. Mit anderen Worten, alles eine Frage des Miteinanders, also fast wie im richtigen Leben.
Das Ganze steht und fällt in erster Linie durch die korrekte Erkennung der vorhandenen Hardware, wird also ein neuer Prozessor wie der AMD Ryzen oder Intels Kaby Lake mangels Informations-Defiziten nicht gut genug zugeordnet, wird es schwierig für Windows 7 (und natürlich auch Windows 10) angemessen und schnell auf Interrupts zu reagieren. Schon haben wir exakt das Dilemma um das es geht. Würden Intel und AMD also ihre neuen Prozessoren mit Windows 7 bekannt machen und aktuelle BIOS Versionen respektive Chipsatztreiber liefern, dass den entsprechenden Microcode enthält, könnte Windows 7 einen sehr viel besser auf diese Prozessoren abgestimmten Job ausführen. Sollten auf dem Windows 7 SP1 System zudem noch die AMD Bulldozer Patches KB2645594 für den Scheduler und KB2646060 aus 2012 für das Core Parking installiert sein, potenzieren sich die Erkennungs-Defizite zusätzlich.

Ihr ahnt sicherlich schon was gleich kommt oder ? ganz genau, wer jetzt Windows 7 mit externer 3rd-party Software zukleistert, verschärft die Problematik zusätzlich. Dazu gehören insbesondere Hersteller-Tools wie die Asus AISuite, externe Virenscanner, Sicherheits Suiten, Tuning Tools, aufwendige Brenn Programme, kurzum alles was sich ins System drängelt und stringent seinen Platz beansprucht. Wer sich mal im Process Explorer von Sysinternals oder auch im Ressourcen Manager von Windows 7 in Echtzeit angeschaut hat, was auf dem System passiert, wenn externe Softwares das Geschehen auf dem Betriebssystem dominieren, der versteht sicherlich um was es dabei geht. Mehr Arbeitsspeicher, eine schnellere SSD können dies nicht abfedern, weil sie auf die Interrupts keinen Einfluss haben.

Wir müssen das Thema Microcodes und das CPU Core Parking noch etwas näher beleuchten, weil hier hat AMD beim Ryzen Launch leider komplett geschlafen. Hätte man sich rechtzeitig mit Microsoft zusammengesetzt und die ersten BIOS Versionen richtig bestückt, dann wäre uns möglicherweise einiges erspart geblieben. Über die Microcodes erfolgt u.a. auch die Identifizierung der Prozessoren. Wird dies nicht hinreichend implementiert, interpretiert das Desktop Betriebssystem nur die zur Verfügung stehenden veralteten Daten und nicht den neuen Prozessor. Vereinfacht formuliert: AMD Ryzen steht vor der Tür und klingelt, das Betriebssystem macht aber nicht auf, weil es die Klingel nicht hören kann.
Daraus folgen zwangsläufig Erkennungs-Defizite und so überrascht es kaum, das sowohl Windows 7 als auch Windows 10 die neue Ryzen CPU nur als AMD Bulldozer CPU identifizieren, also den Vorgänger. Das kann weitreichende Konsequenzen zur Folge haben, der bereits erwähnte Task Scheduler erkennt natürlich auch nichts anderes und selektiert darum mutmaßliche Bulldozer Attribute wie beispielsweise einen 8 MiByte L3-Cache, obwohl real 16 MiByte L3-Cache vorhanden wären. Der nächste Punkt wäre die SMT (simultanes Multithreading) Zuordnung, Windows reagiert auch hier nicht ideal und interpretiert durch die Bulldozer Erkennung keinen SMT Modus. Das Ziel von SMT ist es, die bereits aufgrund der Pipeline-Architektur redundant vorhandenen Ressourcen eines Prozessors noch besser auszulasten, was aber im Falle von Ryzen nicht anläuft, eben weil er nicht korrekt erkannt wird. Ein weiterer Punkt wäre die Zuweisung von CCX, einem Indikator für die Zuweisung von Prozessor Ressourcen. Dabei geht es vorrangig um die Kommunikation zwischen den CPU-Complexes (CCX) in den Ryzen-CPUs und wiederum Windows in allen Schattierungen, was natürlich auch Auswirkungen auf die optimale Spiele Performance hat. Da CCX nicht erkannt wird, weist Windows entsprechende Threads hin-und-her, anstatt sie der CCC Verwaltung zu überlassen, das führt in der Summe zu wenig effizienten Abläufen und limitiert die zur Verfügung stehenden Ressourcen zusätzlich.
Das Core Parking, also das Abschaltung nicht benötigter Prozessorkerne ist eine weitere Hürde die zu minimalen Systemverzögerungen führen kann, per Core-Parking “geparkte” Kerne benötigen einige Taktzyklen zum Aufwachen, was etwas Performance kostet. AMD empfiehlt zur Zeit darum die Energieoptionen von Windows auf Höchstleistung zu stellen, was dieses Parking verhindert. Die Kehrseite dieser Medaille liegt auf der Hand, mit einem Mehrverbrauch an Strom sollte gerechnet werden. Verallgemeinern darf man das Thema aber nicht, Windows 7 behandelt das Core Parking anders als Windows 10 und legt die Prozessor-Kerne nach einem anderen Algorithmus schlafen. Der Vorschlag von AMD kann aber bestenfalls als vorläufige Notlösung betrachtet werden, die Jungs aus Sunnyvale können nicht ernsthaft davon ausgehen, dass die Kunden freiwillig auf ihre Stromspar-Modi verzichten, bei Intel funktioniert dies ja schließlich auch...