Ich bin mir übrigens nicht mal mehr so sicher, dass Write Combining wirklich so böse ist - obwohl ich das am Anfang auch als Feindbild #1 propagiert habe. Aber seit dem Artikel von PcPer ist einige Zeit ins Land gegangen, und einiges an Informationen hier im Forum und in externen Artikeln neu aufgetaucht.
Zum einen scheint in vielen Fällen schlichtweg der Leistungsabfall nach dem Erstbefüllen der Zellen für 95% der von Usern beschriebenen Verlangsamungen zu sein. Dabei ist es völlig irrelevant, ob Write Combining eingesetzt wird.
Bei dem Verfahren handelt es sich nämlich letztendlich um nichts weiter als eine Form des Zwischenpufferns. Zwar hat die Intel keinen Data Buffer (sie verwendet ihren RAM nur für die Arbeit des Controllers selbst), aber Chipintern sorgt Write Combining dafür, dass viele kleine Schreibzugriffe zunächst gruppiert, und dann erst gemeinsam ausgeführt werden. Daher ist die Intel auch so pervers gut in 4k Random Write Benchmarks - eben weil diese Benchmarks dem Chip mit genau der Art von Zugriffen füttern, die der Algorithmus am liebsten frisst.
Ein weiteres von PcPer dokumentiertes Verhalten der Intel-SSD ist die seltsame Angewohnheit, durch große sequentielle Schreibzugriffe 'verlorene' Leistung wieder herzustellen. Hat das vielleicht etwas mit durch Write Combining hervorgerufener Blockfragmentierung zu tun?
Wohl eher nicht... Denn dem Intel-Controller wird nachgesagt, dass er sich dynamisch auf das dominante Zugriffsmuster des Users einstellt. Wir haben ja z.B. beim Indilinx-Controller gesehen, dass sich über die Firmware einstellen lässt, wieviele IOPs und welche sequentiellen Transferraten der Controller bringt. Und dabei stellte man fest, dass sich jeweils der eine Wert verringerte, wenn man den anderen erhöht hat. Entweder tolle sequentielle Raten mit grausigen IOPs, oder tolle IOPs mit sehr grausigen Raten. (Ja ich weiß, auch da hat sich einiges getan in den letzten Wochen, aber der grundlegende Trend ist da.)
Was wäre, wenn der Intel-Controller ähnlich gestrickt ist - nur, er kann sich selbst entscheiden, in welchem Modus er fährt? Wenn man ihn z.B. mit IOMeter malträtiert, könnte sich der Controller entscheiden, seine sequentiellen Raten zu opfern, da von ihm im Moment nur hohe IOPs verlangt werden. Lässt man das eine Weile so laufen, und bencht dann die sequentiellen Raten - oh Schreck, sie sind massiv eingebrochen!
Wenn man jetzt aber die von PcPer gezeigte Recovery-Methode anwendet und fleißig sequentiell auf die Platte schreibt, dann könnte sich der Controller genötigt fühlen, seine IOPs-Werte zu verringern und stattdessen sich auf maximalen Durchsatz zu konzentrieren. Bencht man dann die sequentiellen Raten wieder - oh Wunder, die SSD ist geheilt! Das im Hintergrund der IOPs-Wert auf einem historischen Tiefstand sitzt, merkt in dem Moment aber keiner; wie auch, denn es wird ja nur sequentiell gebencht. Und schließlich hat die Intel-Disk generell sehr gute IOPs-Werte, also dürfte sie selbst im Fokus auf sequentielle Raten keinerlei Probleme mit anstehenden Operationen haben.
Ich möchte jetzt natürlich nicht behaupten, das Write Combining toll und schön und ohne jede Nachteile ist... dazu kenn ich mich nicht genug aus. Aber mir bleiben wie gesagt die oben dargestellten Zweifel, ob es diese ominöse Blockfragmentierung wirklich gibt, oder ob lediglich der Intel-Controller etwas Optimierung bei der Reaktionszeit seiner Profilanpassungen benötigt?
Intel hat ja zumindest "ein Problem" mehr oder weniger offiziell anerkannt und arbeitet an "einer Lösung". Was genau gemeint ist, ist unklar - wir werden sehen, denke ich. Und über Kommentare zu meinen Gedanken freue ich mich natürlich immer!