Festplatte - Wie beeinflusst die Art des E / A-Zugriffs die Zugriffszeit?

1

Ich versuche besser zu verstehen, wie die Art des E / A-Zugriffs die Zugriffszeit beeinflusst. Kann eine herkömmliche Festplatte sowohl Direktzugriff als auch sequentiellen Zugriff ausführen?

Wenn ja, warum sollten Sie für beide Vorsorge treffen? Nachdem ich diesen Beitrag gelesen habe, habe ich die Idee, dass sequentieller Zugriff besser ist als wahlfreier Zugriff. Wie ist das? Da ich beim sequentiellen Zugriff den gesamten vorherigen Speicherort durchlaufen muss, um an meinem gewünschten Ort anzukommen. Während des wahlfreien Zugriffs kann ich einfach darauf "springen". Der Direktzugriff bietet also alle Möglichkeiten des sequentiellen Zugriffs.

Auch unter welchen Umständen greift eine Festplatte auf zufälligen / sequentiellen Zugriff zu?

Sreyan
quelle

Antworten:

2

Kann eine herkömmliche Festplatte sowohl Direktzugriff als auch sequentiellen Zugriff ausführen?

Eine Festplatte wird als Gerät mit wahlfreiem Zugriff eingestuft. Die Sektoren der Festplatte sind adressierbar, und für einen Lese- oder Schreibvorgang muss eine Sektoradresse angegeben werden. Der AR / W-Betrieb hängt nicht vom Standort des vorherigen Betriebs ab.

Geräte mit sequenziellem Zugriff wie Magnetbänder (Rollen oder Kassetten) und Lochbänder (Papier oder Mylar) verfügen über keine adressierbaren Datensätze oder Blöcke. Die Datensätze / Blöcke sind positionsabhängig und der Lese- / Schreibzugriff muss am Anfang des Mediums beginnen. Es gibt einige Tricks (z. B. Dateimarkierungen auf Magnetbändern), um eine schnelle Suche zu ermöglichen, aber Geräte mit sequenziellem Zugriff existieren heutzutage hauptsächlich aufgrund der Vorratsdatenspeicherung und der Kosten-pro-Byte-Vorteile. Mit der modernen Verbreitung von Festplatten und SDDs können Geräte mit sequenziellem Zugriff keine Leistung als Allzweck-Speichergerät (z. B. für ein Dateisystem) erbringen.

Wenn ja, warum sollten Sie für beide Vorsorge treffen?

Sequentieller Zugriff ist eine natürliche Fähigkeit eines Geräts mit wahlfreiem Zugriff.
Während ein Gerät mit sequenziellem Zugriff Probleme hat (dh viele zusätzliche Operationen erfordert und Zeit verbraucht), um einen wahlfreien Zugriff durchzuführen.

Technisch gesehen führt eine Festplatte keinen sequentiellen Zugriff durch. Die Kommandoschnittstelle hat kein "read next" oder "write next". Es muss eine explizite Sektoradresse angegeben werden.

Nachdem ich diesen Beitrag gelesen habe, habe ich die Idee, dass sequentieller Zugriff besser ist als wahlfreier Zugriff. Wie ist das?

Besser auf welche Weise?
(Übrigens sind diese Antworten nicht 100% genau.)

Einige Anwendungen (z. B. ein Datenrekorder / -logger oder die Archivierung einer Festplatte) funktionieren mit sequenziellem Zugriff einwandfrei und würden mit wahlfreiem Zugriff überhaupt nicht profitieren.
Einige Anwendungen benötigen unbedingt einen wahlfreien Zugriff, um ihre Aufgabe rechtzeitig zu erledigen (z. B. Datenbankabfrage oder Dateisystem).

Beachten Sie, dass der typische PC kein Speichergerät mit sequenziellem Zugriff hat.
Im Allgemeinen ist ein Gerät mit wahlfreiem Zugriff nützlicher als ein Gerät mit sequenziellem Zugriff. Aus diesem Grund ist die Festplatte (oder SDD) (beides Direktzugriffsgeräte) ein wesentliches Peripheriegerät für die Massenspeicherung von Computern, während Geräte mit sequenziellem Zugriff wie z. B. Bänder als optional gelten und in erster Linie für Archivierungsfunktionen verwendet werden.

Der Direktzugriff bietet also alle Möglichkeiten des sequentiellen Zugriffs.

Richtig.

Auch unter welchen Umständen greift eine Festplatte auf zufälligen / sequentiellen Zugriff zu?

Die Festplatte führt aufgrund ihrer Befehlsschnittstelle immer einen wahlfreien Zugriff durch.
Um auf den Sektor "next sequential" zuzugreifen, muss der Host-Computer den Sektor "previous sector + 1" anfordern. Es gibt keinen Befehl zum "Lesen (oder Schreiben) als nächstes". Jeder R / W-Befehl muss eine Sektoradresse angeben.

Beachten Sie, dass die Betriebssystem-Dateisystemsoftware dieses Merkmal der Festplatte verdeckt. Auf die meisten Dateien wird sequenziell zugegriffen: Sie beginnen mit dem Schreiben oder Lesen einer Datei an ihrem Anfang und greifen nacheinander (dh nacheinander) jeweils auf einen Datensatz oder eine Zeile zu. Das Kopieren einer Datei erfolgt immer durch sequentielles Lesen der Quelldatei. Lesen Sie diese Antwort, um zu verstehen, wie das Dateisystem und die Festplatte zusätzliche Direktzugriffe ausführen müssen, um dieses sequentielle Kopieren von Dateiinhalten durchzuführen.

Wie beeinflusst die Art des E / A-Zugriffs die Zugriffszeit?

Zuerst müssen wir die "Zugriffszeit" der Festplatte richtig definieren (da die Antworten in dem von Ihnen erwähnten Beitrag ungenau sind). Es gibt verschiedene Komponenten für die Zugriffszeit, die einem Festplattenvorgang entsprechen:

  1. Der Lese- oder Schreibbefehl muss vom Host-Computer über die Schnittstelle zwischen Host und Laufwerk (z. B. SATA) an die Festplatte gesendet werden.
  2. Der HDD-Controller verarbeitet den Befehl. Wenn eine Leseanforderung aus dem Cache erfüllt werden kann, sind die Sektordaten bereits verfügbar. gehe zu Schritt 8. Für eine Schreibanforderung müssen auch die Sektordaten übertragen werden, und dann werden ECC-Bytes berechnet.
  3. Die eigentliche Plattenoperation würde mit einer optionalen Suchoperation beginnen.
    Wenn die R / W-Kopfbaugruppe nicht bereits am angeforderten Zylinder positioniert ist, muss ein Suchvorgang ausgeführt werden. Das Zeitintervall zum Ausführen dieser R / W-Kopfbewegungsoperation wird als Suchzeit bezeichnet . Beachten Sie, dass die Suche (dh die Bewegung der R / W-Köpfe) eine Beschleunigung, eine optionale Phase mit maximaler Geschwindigkeit und eine anschließende Verzögerung erfordert. Die Geschwindigkeit ist nicht konstant und die Suchzeiten sind nicht linear proportional zur Anzahl der gefahrenen Zylinder. Diese Tatsachen machen die meisten Kurzhubberechnungen falsch.
    Wenn die R / W-Kopfanordnung bereits am angeforderten Zylinder positioniert ist, ist keine Suche erforderlich und die Suchzeit ist effektiv Null.
  4. Sobald sich die R / W-Kopfanordnung am angeforderten Zylinder befindet, wird der R / W-Kopf ausgewählt, der der angeforderten Spur entspricht.
  5. Während sich die Platten "unter" den R / W-Köpfen drehen, muss der Controller warten, bis der angeforderte Sektor vorbeikommt. Diese Wartezeit wird als Rotationslatenz bezeichnet . Sofern Sie nicht vorhersagen können, wann der Controller das Warten in Bezug auf die Rotationsposition des angeforderten Sektors startet, beträgt die durchschnittliche Rotationslatenz die Hälfte der Rotationsperiode. (Die Periode ist die Umkehrung der Drehzahl.)
  6. Sobald der angeforderte Sektor lokalisiert ist, wird die tatsächliche Lese- oder Schreiboperation ausgeführt. Für eine Leseoperation werden die von der Plattentelleroberfläche gelesenen Bits als Bytes in einen Sektorpuffer geschrieben. Für eine Schreiboperation werden die Daten im Sektorpuffer serialisiert und auf die Plattentelleroberfläche geschrieben.
  7. Nachdem der gesamte Sektor in den Sektorpuffer (der Steuerung) eingelesen wurde, werden die Daten mit dem ECC validiert. Bei Bedarf wird eine Korrektur durchgeführt (ein weicher Fehler). Wenn die Fehler nicht behoben werden können, wird ein erneuter Leseversuch versucht.
  8. Die R / W-Anforderung wird abgeschlossen, indem auf den Host-Computer mit den Sektordaten geantwortet wird, die gelesen wurden, oder indem über die Schnittstelle zwischen Host und Laufwerk eine Bestätigung "Schreiben in Ordnung" gesendet wird.

Die Zugriffszeit ist die gesamte verstrichene Zeit, um alle diese Vorgänge auszuführen. Mit Ausnahme von # 3, Suchzeit und # 5, Rotationslatenz, neigen die anderen Operationen dazu, im Vergleich zu diesen beiden Operationen relativ kurze und vorhersagbare Dauern zu haben.

Ein wahlfreier Festplattenzugriff würde tendenziell eine lange Zugriffszeit haben, da eine Suche mit unbekannter Spanne und eine Rotationslatenz erforderlich wären.
Ein sequentieller Festplattenzugriff kann eine minimale Zugriffszeit haben, da keine Suche wahrscheinlich ist (es sei denn, der vorherige Zugriff war der letzte Sektor des Zylinders) und die Rotationslatenz Null sein kann, wenn die Anforderung bereits in der Warteschlange steht oder der vorherige Lesevorgang "read ahead" ausgeführt wurde. . Wenn das Timing für das Senden von sequentiellen Anforderungen an die Festplatte schlecht ist (dh, wenn zu spät der nächste Sektor fehlt), würden die Zugriffszeiten aufgrund der Rotationslatenzzeit, die einer nahezu vollständigen Rotationszeit entspricht, erhöht. Diese Latenz wäre ungefähr so ​​groß wie eine Suche nach einem Zylinder.

Sägespäne
quelle
"Wenn die R / W-Kopfbaugruppe bereits am angeforderten Zylinder positioniert ist, ist keine Suche erforderlich und die Suchzeit ist praktisch Null." Ich weiß nicht, das ist kein rein zufälliger Zugriff, obwohl die Verwendung der absoluten Adressierung bedeutet, dass es auch nicht streng sequentiell ist. Ich würde sagen, es hat Elemente von beiden, was man von einem mechanischen Gerät erwarten würde.
Marshall Eubanks
@ MarshallEubanks "Ich weiß nicht, das ist kein rein zufälliger Zugriff" - Sie scheinen sich Ihre eigenen Definitionen auszudenken . Trotz Ihrer Zweifel sind die Konzepte des wahlfreien und sequentiellen Zugriffs und der Geräte in der Computerindustrie seit Jahrzehnten weit verbreitet. Der Satz, den Sie zitiert haben, unterstützt nicht, was Sie behaupten. Ein Zylinder kann zwei oder mehr Spuren enthalten (und bis zu 19 Spuren für die SMD-Einheiten, für die ich die Controller-Firmware geschrieben habe). Daher war eine Suche nie obligatorisch, um einen "zufälligen" Zugriff durchzuführen.
Sägemehl
Sie selbst sagen: "Sequentieller Zugriff ist eine natürliche Funktion eines Geräts mit wahlfreiem Zugriff." Es ist also wirklich nicht klar, was Sie anders als allgemeine Pedanterie zu argumentieren versuchen. Ich muss diesen Satz übersehen haben, denn das einzige, was ich "behauptete", ist semantisch identisch mit dem zitierten Satz, obwohl er vielleicht schlecht formuliert ist.
Marshall Eubanks
1

Sequentieller Zugriff bedeutet nicht, alles bis zu einem bestimmten Punkt zu lesen, sondern eine Gruppe von Sektoren oder Clustern nacheinander zu lesen, dh "sequentiell".

Tatsächlich können Sie sich das als einen "zufälligen" Zugriff vorstellen, gefolgt von einer Ansammlung aufeinanderfolgender Zugriffe.

Um zu demonstrieren, warum der sequentielle Zugriff besser ist als der vollständig zufällige Zugriff, müssen Sie verstehen, was beim Lesen von einer Festplatte erforderlich ist.

Wenn Sie die Festplatte nach einem einzelnen Cluster fragen, muss das Laufwerk den Kopf einrasten und warten, bis sich der sich drehende Plattenteller dreht, damit der Cluster unter dem Kopf liegt und zum Lesen bereit ist. Dies ist als "Suchzeit" für die Platte bekannt. Bei den meisten Festplatten liegt die Suchzeit in der Größenordnung von durchschnittlich 9 Millisekunden.

Für echte zufällige Zugriffe ( jede Anforderung bezieht sich auf einen nicht sequentiellen Sektor / Cluster) hat jede Anforderung eine durchschnittliche Suchzeit von 9 Millisekunden, da der Kopf sich bewegen und dann jedes Mal auf den richtigen Sektor warten muss. Diese Verzögerung schränkt den gesamten Datendurchsatz erheblich ein wie hast du einen zyklus von

seek
data
seek
data
seek
data
seek
data

Für 4 zufällige Lesevorgänge. Bei einem Lesevorgang von 4 KB müssen Sie mindestens 36 Millisekunden warten (zuzüglich der vernachlässigbaren Zeit zum Lesen der einzelnen Blöcke), bevor Sie den letzten Datenblock abrufen.

Für einen sequentiellen Zugriff können Sie einen Startpunkt angeben und dann "weiterlesen für X-Blöcke" sagen. Sie müssen nicht mehr warten, bis sich der Kopf oder der Plattenteller unter dem Kopf bewegt, der Kopf befindet sich bereits an der richtigen Stelle für den nächsten Datenblock, sobald er den vorherigen abgeschlossen hat, sodass Sie einfach weiterlesen können. Sie entfernen effektiv die 9-Millisekunden-Suchzeit zwischen jeder Datenanforderung.

Für ein sequentielles Lesen erhalten Sie

seek
data
data
data
data

Das gibt Ihnen 9 Millisekunden plus vier kleine Datenübertragungszeiten für jeden Block.

Angenommen, das Lesen von 4 KB dauert 1 ms (dies ist ein Standardwert), bedeutet dies im Grunde, dass Sie bei 4-KB-Lesevorgängen einen Datendurchsatz in der Größenordnung von haben

  • 32 KB in 40 ms für zufällige Lesevorgänge und
  • 32 KB in 13 ms für sequentielle Lesevorgänge

Sequentielle Lesevorgänge sind also viel schneller.

SSD-Laufwerke unterscheiden sich, da sie keine bewegliche Platte haben, ist die Suchzeit fast nicht vorhanden. Zufällige Zugriffe sind im Wesentlichen so schnell wie sequentielle Zugriffe.

Mokubai
quelle