Was bringt mir NCQ oder AHCI?

morgen

New member
Themenstarter
Registriert
5 Dez. 2006
Beiträge
2.411
Dieser Beitrag stammt von einem anderen Harware Forum, sehr interessant wie ich finde!
Diese Frage ist hier im Board schon mehrfach aufgeworfen worden, jedoch vielfach mit Halbweisheiten oder falsch beantwortet worden.
Es wär vielleicht mal an der Zeit, alle Fakten darzustellen und den blühenden Unsinn, der da oft darüber verbreitet wird, auszumerzen.

2008-05-15 10:22 Lektion 1 - Was ist AHCI

AHCI ist ein neuer Schnittstellen-Standard für Serial-ATA-Controller.
Um diesen zu nutzen, sind eigene Treiber zu verwenden.
Alternativ dazu kann man im BIOS die Controller-Funktion auf "IDE" oder "Native Mode" oder "Legacy Mode" einstellen, dann arbeitet der Controller mit den altbewährten Standardtreibern. Will man die AHCI-Treiber verwenden, muss man im BIOS für diesen Controller "AHCI-Mode" aktivieren.
Das bedingt auch, dass bei Neuinstallation eines Betriebssystems diese Treiber, die noch nicht in der Grundausstattung der Installation enthalten sind, extra eingebunden werden müssen.
Für alle, die schon ein laufendes System ohne AHCI betreiben, und bei denen das Neuaufsetzen des Systemes nicht zum täglichen Brot gehört, existieren mehrere Threads, die die Vorgangsweise zur Umstellung beschreiben.

IDE Mode, Native Mode und Legacy Mode bedeuten jedenfalls NICHT-AHCI; Der Unterschied hat mit IRQ-Zuordnung, PnP, und Interrupt sharing zu tun; näher will ich jetzt hier nicht drauf eingehen, weil es für AHCI unerheblich ist

2008-05-15 13:30 Lektion 2: Wozu brauche ich AHCI?

AHCI wird benötigt, wenn folgende Geräte/Controller Eigenschaften vorhanden sind und/oder genutzt werden wollen:

- Abkehr von der 2 Channel/4 Device Master/Slave Problematik
- SATA/300 Übertragungsbandbreite 3Gbit/s
- Hot Plugging
- Port Multipliers

Speziell für Platten:
- RAID (wenn es der verbaute Controller unterstützt)
- neue HDD-Techniken, welche unter Extrembedingungen Performanceverbesserungen bewirken, u.a. NCQ.

Unter nicht-AHCI mode
- täuscht der verbaute Controller ICHx, sofern er mehr als 4 SATA Ports hat, die Anwesenheit von zwei Controllern vor – wie im Device Manager ersichtlich wird – denn die Standardtreiber unterstützen nur 4 Geräte. Am ersten gibt es primary/secondary Master und Slave, am zweiten primary/secondary Master.
- Im BIOS gibt es die Einschränkung, dass von den zwei Ports der Slave-Devices nicht gebootet werden kann.
Der Controller arbeitet mit einer max. Bandbreite von SATA/150, also 1,5Gbit/s. (Update 25.07.2008 nach neuesten Erkenntnissen) mit der höchsten Übertragungsrate, die sowohl von Device als auch Controller unterstützt wird.
Der Übertragungsmode der angeschlossenen Geräte (soferne sie es unterstützen) wird als UDMA 5 oder UDMA 6 ausgewiesen, was aber ohne Bedeutung ist.
- Die Master/Slave Devices behindern sich gegenseitig bei gleichzeitiger Datenübertragung

Unter AHCI mode
- Steht an jedem SATA-Port die volle Übertragungsbandbreite von bis zu 3Gbit/s zur Verfügung
- können theoretisch 32 Ports vom Controller bedient werden
- an jeden Port kan die Übertragungsbandbreite von bis zu 3Gbit/s mittels Port Multiplier auf mehrere Geräte aufgeteilt werden
- kann das Gerät im laufenden Betrieb an-oder abgestöpselt werden. (Wenn es nicht funktioniert, ist ein BIOS- oder Treiber-Fehler daran schuld).
- sind zusätzliche Performance-Enhancements möglich, wenn die Device diese unterstützt, u.a. NCQ
- ist der Betrieb von RAID-Arrays möglich, wenn der Controller das unterstützt und der Treiber dafür installiert ist. Am ICHx Controller gibt es eigene AHCI und RAID-Treiber, am jMicron erfüllt ein Treiber beide Funktionen.

2008-05-15 15:30 Lektion 3: Wozu brauche ich AHCI nicht unbedingt?

- um eSATA Geräte anzuschließen, wenn ich HotPlugging nicht brauche.
Denkbare Situation: PC wird nur stundenweise kurz betrieben, und vor dem Einschalten ein Betrieb des eSATA-Gerätes vorhersehbar ist - wenn es z.B. nur zum Sichern benutzt wird.
- wenn meine SATA HDD(s) geringe Transferraten aufweisen – etwa unter 50MB/s – ist kaum eine Performanceverbesserung erzielbar.
- wenn ich nicht alle Ports belegt habe, und die Slave-Ports nicht benutze
- wenn ich ohnehin nur ein oder zwei SATA-HDD’s angeschlossen habe

2008-05-15 15:30 Lektion 4: Vorteile, nicht AHCI zu betreiben:

- Die Treiber- und BIOS-Versionen stecken (je nach Hersteller) teilweise noch voller Fehler bzw es schleichen sich bei neuen Versionen immer wieder andere ein. Kein Ärger mit Latenzzeiten, Nichtverfügbarkeit von SMART-Daten, sekundenlangen Freezes, nichtansprechbaren DVD-Laufwerken u.a.m.
- Der BIOS-Startup ist schneller, weil bei der Geräteerkennung nicht so lange gewartet wird. Bei manchen BIOS können durch Angabe der Wartezeit und deaktivieren nicht benutzter SATA Ports diese Verzögerungen in Grenzen gehalten werden

2008-05-15 15:30 Lektion 5: Gründe, um AHCI einzusetzen:

- Verwendung von RAID
- Verwendung von I/O- intensiven Applikationen mit großem Datenvolumen (z.B. Multimedia, HTPC)
- mehrere Benutzer über Netzwerk
- eSATA Geräte mit großem Zugriffsvolumen hoher Zugriffsaktivität
- Port Multiplier, um eine größere Anzahl an Devices betreiben zu können

Erzielbare Performanceverbesserungen sind abhängig von der Verwendung.
Schlecht oder gar nicht getunte Systeme (das hat nichts mit OC zu tun!) werden dadurch nicht besser. Hauptaugenmerk sollte auf ein gut getuntes System gelegt werden – da ist weit mehr an Verbesserungspotential vorhanden !!!

------------ N E U ------------

2008-05-20 11:00 Lektion 6: Die Bedingungen auf einer modernen HDD
• die im Normalfall bearbeiteten Bereiche auf einer Spur haben die Größe eines Fliegenschisses – ein 4K Cluster (=8x512-Byte Blöcke) ist unter 1mm einer Spur in einem Sektor von ca. 1° einer ganzen 360°Umdrehung. Auf alten Platten mit wesentlich geringerer Speicherdichte war das noch eine Viertelumdrehung (90°) oder mehr.

• der Zugriff auf einen derartigen Bereich dauert für die Kopfpositionierung 1-15ms, die Wartezeit, bis er unter dem Kopf durchflutscht, 0-8ms. In 8ms könnte der Kopf im Idealfall auf bis zu 7 anderen benachbarten Spuren was sinnvolles arbeiten, um trotzdem noch rechtzeitig an der richtigen Stelle zu sein, um dort seinen Auftrag zu erledigen.

• Die Größe des internen HDD-Caches beträgt auf heutigen Devices zwischen 16MB und 32MB, welcher bei einer Clustergröße von 4K 4000 – 8.000, bei 64K 250-500 I/O Paketen entspricht. Die Verwendung wird durch die Logik der Firmware gesteuert.

• Mit einem einzigen I/O können aber bis zu 4096 512-Byte hintereinanderliegende Blöcke an Daten, also 2MB, gleichzeitig übertragen werden, was im Normalfall nur von speziellen Utilities oder Benchmarkprogrammen ausgenutzt wird.

• Pro Volume können sich je nach Kapazität bis zu 1 Million Spuren, die sich auf bis zu 8 Oberflächen verteilen, mit einer Einzelkapazität von max 1,4MB(aussen)-0,7 MB(innen) befinden

2008-05-20 11:00 Lektion 7: herkömmliche Performanceverbesserungen

Read-ahead und Write-Caching Methode ist schon seit längerer Zeit von HDD’s unterstützt und funktioniert auch im EIDE-Controllermodus. Die Read-ahead Methode ist effizient bei sequentiell gelesenen Dateien, nachdem auch bei fortgeschrittenen fragmentierten Dateien in den meisten Fallen trotzdem noch mehrere Cluster physisch hintereinanderliegen und dazwischenliegende I/O’s an andere Plattenbereiche keine Positionierung und Rotationswartezeiten erfordern, die Daten werden sofort aus dem Cache übertragen, soferne der Zugriff auf den nächsten Cluster bald erfolgt und nicht hunderte andere Requests dazwischenlagen und dieser Cachebereich noch nicht anderweitig verwendet wurde.

Bei Schreibvorgängen werden, wenn der Benutzer es nicht verbietet, die Daten im Cache zwischengespeichert, bis sie verzögert auf die Plattenoberfläche geschrieben werden. Dieses Verbot kann über eine ganze HDD oder eine einzelne Datei (vom Programm) verhängt werden.

Die I/O s werden vom Betriebssystem je Device in Warteschlangen gereiht (normale und dringende) und in der Reihenfolge des Eintreffens abgearbeitet. Ein I/O-Vorgang ist beim Lesen mit der Datenübertragung in den Speicher beendet, beim gecachten Schreiben nach Übertragung der Daten in den HDD-cache, sonst nach Schreiben auf die Oberfläche

2008-05-20 11:00 Lektion 8: Performanceverbesserungen durch PCIe

Der ICH9 kann seine Datenübertragung des SATA-AHCI-Controllers auf 4 PCIe-Lanes, der JMB36x nur über eine einzige PCIe-Lane direkt mit dem Speichercontroller abwickeln, und das mit einer Übertragungsrate von über 200MB/s je Lane. Damit ist die Übertragungsbandbreite weit höher als am PCI-bus, wo alle gleichzeitig aktiven Devices zusammen mit ca. 120MB/s auskommen mussten. Im EIDE-Kompatibilitätsmodus ist aber weiterhin der gleichzeitige Datenverkehr von Master und Slave nicht möglich.
Prinzipiell ist der jMicron Treiber weniger performant, was aber nicht unmittelbar an der zur Verfügung stehenden Bandbreite, sondern am Overhead der verwendeten Methode (SCSI Miniports) liegt.

2008-05-20 11:00 Lektion 9: neue Performancestrategien

Für neue Performancestrategien ist der SATA-Controllermode erforderlich, welcher vor allem mit den neuen AHCI-konformen Treibern realisiert wird. Wie effizient diese neuen Methoden umgesetzt werden, hängt von der Implementation im BIOS, in den Controller-Treibern, aber auch von der Firmwareunterstützung der HDD’s ab. In den weiteren Ausführungen wird dafür die Anmerkung (B)ios, (C)ontroller oder (D)isk bzw. eine Kombination daraus, wie (B,C) oder (C,D) stehen.

2008-05-20 11:00 Lektion 10: Native Command Queuing (NCQ)

Im Falle der Unterstützung(B;C;D) werden die anstehenden Aufträge vom Treiber am Controller gestapelt, an die Device geschickt und dort in eine weitere Warteschlange gereiht. Derzeit können bis zu max. 32 Befehle gequeued werden, deren Abarbeitung noch nicht beendet ist, die Höchstanzahl kann geringer sein (C,D)

Es hängt von der Arbeitsweise des Treibers ab, in welcher Reihenfolge neue Aufträge in den Stapel bereits angenommener aber noch nicht an die Device übermittelten Aufträge eingebaut werden, und in welcher Rehenfolge sie später an die Device geschickt werden. Dies ist nur möglich, wenn die Device gerade nicht mit Datenübertragung (DMA) beschäftigt ist.

Die Device selbst versucht nach eigenen Algorithmen (D) eine optimale Reihenfolge der an sie bekanntgegebenen Befehle zur kürzestmöglichen Abarbeitung zu finden – unter Kalkulation der Positionier- und Undrehungslatenzen.Danach wird die Abarbeitung der Befehle gereiht und der Datentransport (DMA) zwischen RAM und HDD Cache von der Device selbst gesteuert.

Die Daten eines Befehles (Start LBA,#Blocks) müssen nicht mehr kontinuierlich übertragen werden. Bei z.B. einem Bereich, der über eine komplette Spur reicht, kann nach dem Positionieren des Kopfes mit den gerade darunterliegenden LBA’s begonnen werden, und bei der nächsten Umdrehung dann mit dem eigentlichen Beginn dieses Bereiches fortgesetzt werden. Damit wird die Umdrehungslatenz verkürzt.

Wenn mehrere Anforderungen in einer kurzen Zeitspanne erledigt wurden, können diese gesammelt in einem Interrupt mitgeteilt werden, womit sich der Overhead durch Aufruf der Interrupt-Routine verringert (weniger Interrupts als I/O’s)

2008-05-20 11:00 Lektion 11: welche Auswirkungen hat AHCI/NCQ

Der System-Overhead wird durch die neue Architektur verringert.
Die Abarbeitung der I/O’s wird bei hoher konkurrierender Last verkürzt beschleunigt.

Aber: Verbessert sich das Systemverhalten insgesamt? NEIN, im Gegenteil!

Microsoft hat schon vor 2 Jahren an Softwarehersteller, HDD-Hersteller und Treiberentwickler appelliert, die neuen Performancestrategien von Vista zu implementieren, um eine prioritätsmäßige Behandlung von I/O’s auf diesen Ebenen zu ermöglichen.
Bisher ohne Ergebnis.

So kommt es – auf nicht durchdachten Kleinsystemen – z.B. zu folgenden merkwürdigen Effekten:

System bestehend aus zwei Platten, auf einer davon die Systempartition.
a) - Es wird ein großer Kopiervorgang mehrerer Gigabytes von Device A nach Device B gestartet
b) - Es wird ein Multimediaprogramm gestartet, welches ein Video abspielen soll
c) - Es wird versucht, weitere Programme mit großem Speicherbedarf zu starten.

Der Kopiervorgang a) belastet beide Devices A und B enorm in Plattenbereichen, die weit entfernt von jenen Bereichen liegen, von denen
d) - die entsprechende Applikationen b) und c) geladen werden müssen,
e) - zum Laden von b) und c) erstmal Platz geschaffen und etwas anderes auf den Pagefile geräumt werden muss
f) - Daten zur Videowiedergabe von b) kontinuierlich rechtzeitig in den Speicher gebracht werden müssen

Unter Vista würden die I/O’s von a) niedrige Priorität, die von d) hohe, e) höchste, und f) mittlere Priorität erhalten.

Nachdem der AHCI/NCQ Mechanismus sich darum aber nicht schert, „erschlagen“ die massenhaften I/O’s von a) alle anderen und werden bevorzugt. Die HDD-Logik müsste die anderen I/O’s erledigen und sie nicht „verhungern“ lassen, aber dorthin kommen sie meist gar nicht, weil sie schon am Controller(HBA) durch mangelnde Selektionsmechanismen nie oder nur selten an die HDD weitergeleitet werden, solange ständig neue Anforderungen von a) dazukommen und die HDD durch ständige DMA-Transfers für a) eine Übertragung sämtlicher anstehender Befehle an die HDD verhindern.

Das hat den Effekt,
- dass neu gestartete Programme ewig brauchen, bis sie in die Gänge kommen
- Multimediazeug stottert oder ruckel

2008-05-20 11:00 Lektion 12 – Wie kann der Unsinn gestoppt werden?

Wenn man auf AHCI nicht verzichten will (Hot-Plug, Power Management)
- Keine Verwendung von HDD’s gleichzeitig als System-, Paging- und Datenplatten
- auf kleinen, schnellen Platten System/Programmordner und Paging getrennt betreiben
- Bei Controllern, welche mit SCSI Miniport arbeiten, (z.B. jMicron) kann NCQ(bei SCSI - TCQ) je Device deaktiviert werden
- Bei NVIDIA-Controllern kann NCQ für alle Devices des Controllers gemeinsam deaktiviert werden
- für Multimediaapplikationen kann der read-ahead Wert vergrößert werden, womit Aussetzer verhindert werden können

Wahre Meister der Materie verwenden aber z.B. nicht die hirnrissigen Windows-Filecopyfunktionen und können auch sonst die Systemlasten beobachten und mit Schiebereglern bequem nach eigenem Ermessen dirigieren.
lg ...cc
 
Habe beim Aufsetzen meines neuen Desktop-Systems auch gleich von Anfang an AHCI (mit NCQ) Treiber integriert...


Rein subjektiv merkt man (merke ich) keinen Unterschied zum True-IDE-Modus, zumindest bei 99% der Nutzung! :)

Trotzdem hören sich die verschiedenen Vorteile so gut an, dass ich nicht darauf verzichten möchhte... Man weiß ja nie... :D
 
Für mich kommt AHCI ohnehin nicht mehr in Frage wegen der OCZ Core am TP.

lg ...cc
 
  • ok1.de
  • IT Refresh - IT Teile & mehr
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben