Berechnung der Lesezeit des Festplattenblockmodells

8

Mein Professor hat eine Folie veröffentlicht, in der erläutert wird, wie der Datenabruf von der Festplatte mithilfe des Blockmodells berechnet wird. Die Spezifikationen waren:

  • 7200 U / min
  • 5ms SUCHEN
  • 80 MB / s ÜBERTRAGUNGSRATE
  • BLOCKMODELL: Blockgröße 4 KB

Ich verstehe nicht, wie er die folgende Berechnung durchgeführt hat oder woher einige der Zahlen stammen:

5 ms + 1000/240 ms + 0,05 ms = 9,216 ms zum Lesen des Blocks.

Kann mir jemand sagen, woher 1000/240 ms und 0,05 ms kommen?

EDIT: WENN die Zahlen völlig falsch wären, wie würden Sie das dann tun?

Trommel
quelle
Es gibt drei Komponenten. Die Suchzeit, die Zeit, in der sich die Daten unter dem Lesekopf drehen (er hat die Hälfte der gesamten Rotationszeit als Durchschnitt genommen) und die Übertragungszeit.
David Marshall
Tatsächlich gibt es eine vierte Komponente, die "Übertragungszeit" besteht aus zwei unterschiedlichen, nicht überlappenden Operationen. Zuerst wird vom Plattenteller in den Sektorpuffer gelesen. Dann erfolgt eine weitere Übertragung vom Sektorpuffer zum Host über die Laufwerksschnittstelle (z. B. SATA). Es gibt ein weit verbreitetes Missverständnis, dass diese beiden Übertragungen gleichzeitig auftreten können. Sie können nicht. Die Sektordaten müssen nach dem Lesen und vor dem Senden an den Host validiert werden. @Hennes erwähnt dies als Teil ignorierter Elemente.
Sägemehl
Beachten Sie, dass die Feinheiten der Suchzeit von fast jedem schlecht verstanden werden. Die Suchzeit ist keine lineare Funktion, sondern eine Kurve, die auf der Anzahl der Zylinder basiert. Die Suche (unter Verwendung eines Schwingspulenaktuators) besteht aus einer Beschleunigungsphase und einer Verzögerungsphase und, wenn die Suche lang genug ist, einer Phase maximaler Geschwindigkeit dazwischen. Eine durchschnittliche Suchzeit muss gewichtet werden , um nur 2 mögliche Volltaktsuchen zu berücksichtigen, aber 2 * (NCYL-1) einspurige Suchen, 2 * (NCYL-2) 2-Spur-Suchen ... und NCYL "sucht". von Null Zeit, wenn kein Kopfweg notwendig ist.
Sägemehl

Antworten:

11

Die betreffende Festplatte hat eine Übertragungsrate von 80 MiB / s oder 81920 kiB / s oder 20480 Blöcken / s. Hier werden wir auf 20.000 Blöcke / Sekunde abrunden, da dies anscheinend das ist, was Ihr Professor getan hat. Dies entspricht 0,05 ms für die Übertragung eines Blocks, wodurch der letzte Term in der Gleichung erläutert wird.

Zusätzlich zur Zeitsuche (Zeit, um den Laufwerkskopf auf die Spur zu bewegen) gibt es schließlich auch die Rotationslatenz der Platte selbst, mit der umgegangen werden muss. Bei 7200 U / min müssen wir im schlimmsten Fall 1 volle Umdrehung warten, aber im Durchschnitt müssen wir eine halbe Umdrehung warten - oder 4,166 ms (7200 U / min = 120 U / s = 8,333 ms / U).

Um also einen Block auf den Computer zu übertragen, müssen wir das entsprechende Seek Time+ Rotational Latency+ warten Transfer Time:

5 ms + 4.166 ms + 0.05 ms = 9.216 ms

Beachten Sie, dass bei Solid-State-Laufwerken zwar keine Rotationslatenz zu berücksichtigen ist, jedoch sicherlich noch eine messbare Suchzeit (um den Inhalt der Sektoren im Flash-Speicher tatsächlich zu adressieren) und eine Übertragungszeit (weitgehend durch den Bus begrenzt) vorhanden sind wird verwendet, um die Daten selbst zu übertragen, z. B. SATA).

Im Allgemeinen beträgt die Gesamtzugriffszeit zum Lesen eines einzelnen Sektors für ein Laufwerk (Vernachlässigung der Software):

Rotational/Hard Drive:  Seek Time + Rotational Latency + Transfer Time

Solid-State Drive:      Seek Time + Transfer Time
Durchbruch
quelle
5

Die Suchzeit von 5 ms ist die Zeit, in der die Festplatte ihren Kopf auf die richtige Spur bewegt (und den richtigen Kopf auswählt, was ebenfalls Zeit kostet, von Ihrem Professor jedoch ignoriert wird).


Sobald sich der Kopf über der richtigen Spur befindet, muss er warten, bis der richtige Sektor unter dem R / W-Kopf verläuft. Wir erhalten, dass es sich um ein Laufwerk mit 7200 U / min handelt. Das bedeutet:

  • Im schlimmsten Fall wurden die Daten gerade übergeben und müssen eine vollständige Drehung abwarten.
  • Im besten Fall ist der Datensektor gerade angekommen. Alles ist glücklich.
  • Im Durchschnitt muss der Antrieb eine halbe Umdrehung warten.

So erhalten Sie die Zeit für eine vollständige Laufwerksdrehung auf einem Laufwerk mit 7200 U / min:

  • 7200 Umdrehungen pro Minute (auch bekannt als 7200 U / min)
  • Oder 7200/60 mal pro Sekunde.
  • Oder 120 Mal pro Sekunde.
  • Oder eine einzelne Drehung dauert 1 / 120 th einer Sekunde.
  • Welches ist 8,3 ms

So eine halbe Umdrehung sollte die Hälfte dieser Zeit nehmen, 1 / 240 th einer Sekunde.

1 Sekunde ist 1000 ms

Das ist Ihre 1000 / 240 ms.


All dies ist die Zeit, bis das Laufwerk mit dem Lesen der Daten beginnen kann. Es muss es noch lesen und an den Host weitergeben.

Das Lesen vom Laufwerk ist normalerweise viel schneller als das Übergeben, daher werde ich mich auf den langsameren Teil konzentrieren:

Gegeben sind:

1) 80 MB / s ÜBERTRAGUNGSRATE
2) BLOCKMODELL: Blockgröße 4 KB

  • 80 MiB in einer Sekunde oder 80 * 1024 KiB in einer Sekunde oder 4 * 20 * 1024 KiB / Sekunde.
  • Teilen Sie durch 20480.
  • 4 KB pro 1 / 20480 th einer Sekunde.
  • Oder 0,488281 ms, das sind Ihre letzten 0,05 ms .


Beachten Sie, dass diese Antwort Folgendes ignoriert:

  1. Das Laufwerk muss die Daten lesen, bevor es sie übertragen kann. Dadurch wird es etwas langsamer.
  2. Es gibt jedoch keine Informationen darüber, wie schnell die Daten vom Plattenteller gelesen werden. (Dies ist eine Frage der Rotationsgeschwindigkeit, der Länge der zu lesenden Daten, der Länge der Prüfsummen-Daten und der Lücken zwischen den Sektoren. (4 KB können 8 Lesevorgänge von "Header | Daten | Prüfsumme | Lücke" oder ein einzelner Lesevorgang sein.
  3. Es wird auch ignoriert, dass die Daten möglicherweise bereits im Laufwerkscache vorhanden sind.
  4. Und es wird davon ausgegangen, dass die Berechnung der Prüfsumme keine Zeit in Anspruch nimmt.
Hennes
quelle
Dies ist wahrscheinlich das erste Mal, dass ich eine korrekte Erwähnung der Datenträgerübertragungszeit sehe, die zwischen dem Lesen des Plattentellers und der (Schnittstellen-) Übertragung unterscheidet. Die "Prüfsumme" ist wirklich ein Fehlerkorrekturcode (ECC), der einen kurzen Burst-Fehler erkennen und korrigieren kann.
Sägemehl