Obliczanie czasu odczytu modelu bloku dysku twardego


8

Mój profesor opublikował slajd o tym, jak obliczyć pobieranie danych z dysku twardego za pomocą modelu blokowego. Dane techniczne to:

  • 7200 obr./min
  • 5 ms SZUKAJ
  • STAWKA TRANSFERU 80 MB / s
  • MODEL BLOKU: Rozmiar bloku 4KB

Nie rozumiem, w jaki sposób wykonał następujące obliczenia lub skąd się wzięły niektóre liczby:

5 ms + 1000/240 ms + 0,05 ms = 9,216 ms do odczytu bloku.

Czy ktoś może mi powiedzieć, skąd się wzięło 1000/240 ms i 0,05 ms?

EDYCJA: JEŻELI liczby okazały się całkowicie błędne, jak byś to zrobił?


Istnieją trzy elementy. Czas wyszukiwania, czas, w którym dane obracają się pod głowicą odczytu (wziął połowę całkowitego czasu obrotu jako średnią) i czas przesyłania.
David Marshall

W rzeczywistości jest czwarty element, „czas transferu” obejmuje dwie różne, nie nakładające się operacje. Najpierw jest odczyt z talerza do bufora sektora. Następnie następuje kolejny transfer z bufora sektora do hosta przez interfejs napędu (np. SATA). Istnieje powszechne błędne przekonanie, że te dwa transfery mogą odbywać się jednocześnie; oni nie mogą. Dane sektora należy zweryfikować po ich odczytaniu i wysłaniu do hosta. @Hennes wspomina o tym jako część ignorowanych elementów.
trociny

Uważaj, że drobiazgi czasu poszukiwania są słabo rozumiane przez prawie wszystkich. Czas wyszukiwania nie jest funkcją liniową, ale krzywą opartą na liczbie cylindrów. Poszukiwanie (przy użyciu elementu wykonawczego z cewką głosową) składa się z fazy przyspieszania i fazy zwalniania, a gdy poszukiwanie jest wystarczająco długie, między nimi znajduje się faza maksymalnej prędkości. Średni czas musi być ważone na koncie tylko 2 ewentualnego dąży pełnoskokowych ale 2 * (NCYL-1) jednotorowa stara, 2 * (NCYL-2) 2-track stara ... i NCYL "stara" zerowego czasu, kiedy nie jest konieczne przesunięcie głowy.
trociny

Odpowiedzi:


11

Dysk ma prędkość transferu 80 MiB / s lub 81920 kiB / s lub 20480 bloków / s. Zaokrąglimy tutaj do 20 000 bloków na sekundę, ponieważ wydaje się, że tak właśnie zrobił twój profesor. Odpowiada to 0,05 ms na przesłanie bloku, wyjaśniając ostatni termin w równaniu.

Wreszcie, oprócz szukania czasu (czasu do przesunięcia głowicy napędu na ścieżkę), istnieje również opóźnienie obrotowe samego dysku, z którym trzeba sobie poradzić. Przy 7200 obr./min, w najgorszym przypadku, musimy czekać 1 pełny obrót, ale średnio musimy czekać pół obrotu - lub 4,166 ms (7200 obr./min = 120 obr / s = 8333 ms / obr).

Tak więc, aby przenieść jeden blok do komputera, musimy poczekać równowartość Seek Time+ Rotational Latency+ Transfer Time:

5 ms + 4.166 ms + 0.05 ms = 9.216 ms

Należy pamiętać, że w przypadku dysków półprzewodnikowych, mimo że nie trzeba brać pod uwagę opóźnień obrotowych, z pewnością nadal istnieje mierzalny czas wyszukiwania (w celu uwzględnienia zawartości sektorów w pamięci flash) i czas przesyłania (w dużej mierze ograniczony przez magistralę używane do przesyłania samych danych, np. SATA).

Tak więc ogólnie całkowity czas dostępu do odczytu pojedynczego sektora dla dysku wynosi (zaniedbując oprogramowanie):

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

Solid-State Drive:      Seek Time + Transfer Time

5

Czas wyszukiwania wynoszący 5 ms to czas, w którym dysk twardy przesunie głowę do właściwej ścieżki (i do wyboru właściwej głowy, co również wymaga czasu, ale które Twój profesor zignorował).


Gdy głowica znajdzie się nad właściwym torem, musi poczekać, aż odpowiedni sektor przejdzie pod głowicą R / W. Daje się nam, że jest to dysk o prędkości 7200 obr./min. To znaczy:

  • W najgorszym przypadku dane właśnie przeszły i muszą czekać na pełną rotację.
  • W najlepszym przypadku sektor danych właśnie przybył. Wszystko jest szczęśliwe.
  • W przeciętnym przypadku napęd musi czekać pół obrotu.

Aby uzyskać czas na pełny obrót dysku na dysku 7200 RPM:

  • 7200 obrotów na minutę (inaczej 7200 RPM)
  • Lub 7200/60 razy na sekundę.
  • Lub 120 razy na sekundę.
  • Lub jeden obrót trwa 1 / 120 th sekundy.
  • Który wynosi 8,3 ms

Więc pół rotacja powinna zajmie połowę tego czasu, 1 / 240 th sekundy.

1 sekunda to 1000 ms

To twoi 1000 / 240 ms.


Wszystko to jest czas, zanim dysk może rozpocząć odczyt danych. Nadal będzie musiał go przeczytać i przekazać hostowi.

Czytanie z dysku jest zwykle znacznie szybsze niż przechodzenie, więc skupię się na wolniejszej części:

Podane są:

1) 80 MB / s PRĘDKOŚĆ TRANSFERU
2) MODEL BLOKU: Rozmiar bloku 4KB

  • 80 MiB w ciągu jednej sekundy lub 80 * 1024 KiB w jedną sekundę lub 4 * 20 * 1024 KiB / sekundę.
  • Podziel przez 20480.
  • 4 KB na 1 / 20480 TH sekundy.
  • Lub 0,488281 ms, co jest ostatnim 0,05 ms .


Pamiętaj, że ta odpowiedź ignoruje:

  1. dysk musi odczytać dane, zanim będzie mógł je przesłać, dzięki czemu będzie nieco wolniejszy.
  2. Ale nie ma informacji o tym, jak szybko dane są odczytywane z talerza. (co jest kwestią prędkości obrotowej, długości danych do odczytu, długości danych sumy kontrolnej i przerw między sektorami. (4KiB może być 8 odczytami „Nagłówka | danych | sumy kontrolnej | przerwy” lub pojedynczym odczytem.
  3. Ignoruje również, że dane mogą już być obecne w pamięci podręcznej napędów.
  4. Zakłada się, że obliczenie sumy kontrolnej nie zajmuje wcale czasu.

To chyba pierwszy raz, kiedy widziałem poprawną wzmiankę o czasie transferu dysku, który rozróżnia odczyt płyt i transfer (interfejs). „Suma kontrolna” jest tak naprawdę kodem korekcji błędów (ECC), który może wykryć i skorygować błąd krótkiej serii.
trociny
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.