Ist die ATA Version nur von der HD/SSD abhängig oder auch vom EIDE/SATA Controller?



  • Wenn ich also wissen möchte, ob ein älterer Computer zu dem ich keinen Zugriff habe das ATA Protocol Version ATA-8 unterstützt, genügt es dann, wenn ich in die Doku von der HD/SSD reinschaue oder muss ich mir hierzu auch die Doku des Mainboard Chipsatzes durchsehen?

    Wenn das nämlich auch vom MB Chipsatz abhängt, dann dürfte letzteres zutreffen.

    Oder ist es eher so, dass das nur eine reine Treibersache ist, d.h. neue ATA Version => neuen Treiber oder OS installieren und schon kann der ganze Rechner die neue ATA Version?



  • Was ich herausfinden will ist eigentlich folgendes, also wie man allein durch die Doku präzise ermitteln kann, ob ein Rechner Trim bietet.

    Trim Support wurde nämlich erst im ATA Protocol Version 8 spezifiziert.
    Es ist als Commmand Code 06xh zugänglich.

    Dass es erst Seit Version 8 verfügbar ist, lässt sich leicht im Working Draft zum ATA/ATAPI Command Set nachlesen:

    http://www.t13.org/Documents/UploadedDocuments/docs2013/d2161r5-ATAATAPI_Command_Set_-_3.pdf

    Relevant wäre hier z.B. die Command Set Matrix auf Seite 74, da ist erkennbar, dass es diesen Code erst ab Version 8 gibt, nicht aber davor.
    Wer sich eine ältere Spec ansieht, z.B. Version 7, der wird feststellen, dass dort 06xh zwar reserviert, aber noch nicht näher definiert/spezifiziert ist.

    Im Unterpunkt 7.5 unter DATA SET MANAGEMENT ist diese TRIM Funktion dann näher erläutert.

    So weit ich bis jetzt herausgefunden habe, muss das Zieldevice, z.B. eine SSD diesen Code natürlich verstehen, also der Datenträger muss HW Seitig das ATA Protokoll Version 8 also verstehen oder zumindest davon, was Code 06xh machen soll.

    Dieser Seite ist zu entnehmen, dass Parallel ATA und Serial ATA sich darin unterscheiden, dass SATA das ATA Protokoll versteht, aber das Protokoll selbst in Pakete zum Device geschickt wird, weshalb es dann auf OS Seite eine gemeinsame Herstellerunabhängige Schnittstelle gibt, die ATA Commandos zum Device zu schicken kann.

    Bei PATA (also IDE) ist das nicht so, dort werden die Kommandos nicht paketorientiert versendet, sondern irgendwie als Signale direkt auf dem BUS, was es erforderlich macht, dass jeder PATA (bzw. EIDI) Controller seinen eigenen Treiber benötigt.
    https://ata.wiki.kernel.org/index.php/Developer_Resources

    Wenn dem so ist, dann stellt sich im Bezug auf PATA zumindest folgende zwei Fragen:
    1. Muss die HW des PATA Controllers überhaupt eine bestimmte PATA Version verstehen
    oder
    2. Ist dies allein Sache des Treibers?

    Wenn nämlich letzteres zutrifft, dann wäre es eine reine* Treibersache ob die TRIM Funktion über PATA und damit über den EIDI Anschluss funktioniert. (*natürlich vorrausgesetzt, dass das End Device selbst Trim beherrscht)
    Und genau das versuche ich gerade herauszufinden.

    Windows 7 liefert erstmals TRIM Support mit, das dürfte daher auch für den IDE Controller Treiber gelten, den MS mitliefert. Nutzt man also diesen, dann müsste, wenn Punkt 2. zutrifft, TRIM funktionieren, auch dann, wenn man nur einen Rechner mit EIDI Anschlüssen hat.

    Ist man gezwungen einen anderen IDE Treiber zu verwenden, z.B. weil der Chipsatz nicht vom MS Standardtreiber unterstützt wird, dann wäre es von diesem Treiberhersteller abhängig, ob Trim funktioniert.

    Bei SATA ist die Frage eigentlich weitgehend klar, da dort die ATA Kommandos sowieso als Paket zum Enddevice durchgetunnelt werden.
    Der SATA Controller kann hier also weitgehend dumm bleiben und das Know How steckt nur im Windows ATA Protokolltreiber und natürlich im Enddevice.

    Aber bei PATA ist das halt nicht ganz klar, siehe oben.


Anmelden zum Antworten