Dyski

Co wpływa na wydajność dysku

Prędkość obrotowa: Determinuje głównie i bezpośrednio tzw. średnie opóźnienie. A, więc jedna ze składowych innego ważnego parametru, a mianowicie czasu dostępu. Tak naprawdę średnie opóźnienie jest połową czasu jaki dany dysk potrzebuje na dokonanie pełnego obrotu talerzami. Brzmi dość zawile. Im większa jest prędkość obrotowa, tym średnie opóźnienie jest mniejsze, ponieważ dysk potrzebuje mniej czasu na pełny obrót talerzami. Jako że jest to składowa czasu dostępu, maleje on wraz ze wzrostem prędkości obrotowej. Dla przykładu, średnie opóźnienie dla dysków 15.000 rpm wynosi: 2 ms, dla dysków 10.000 rpm, 3 ms, dla dysków 7.200 rpm, 4.2 ms, dla dysków 5.400 rpm, 5.5 ms. Prędkość obrotowa jest również pośrednio odpowiedzialna za prędkość liniowego transferu danych. Wiadomo, iż im szybciej talerze przemykają pod głowicami tym szybciej te ostatnie mogą odczytać z nich dane.


Czas dostępu: Najważniejszy parametr jeśli chodzi o wydajność dysków twardych. Można go rozbić na dwie składowe, pozycjonowanie głowicy (seek time) oraz pozycjonowanie talerzy (latency). Sumując oba te czasy, otrzymujemy czas dostępu. Latency zależy właściwie tylko od prędkości obrotowej, o czym pisałem wyżej. Nieco inaczej sprawa wygląda z pozycjonowaniem głowic(y). Tutaj znowu musimy wziąć pod uwagę kilka parametrów cząstkowych. Oczywistym jest, iż samo pozycjonowanie głowic zależy od wydajności aktuatora, jednak bardzo ważna jest również wielkość talerzy, a więc liniowe odległości jakie przemierzają głowice. Im mniejsze są talerze, tym mniejszy zasięg ruchu ma aktuator, a więc tym szybciej potrafi dostarczyć głowice w odpowiednie miejsce. To właśnie dlatego producenci najszybszych dysków twardych stosują coraz mniejsze talerze. Ostatnim czynnikiem wpływającym na szybkość pozycjonowania głowic jest gęstość upakowania danych. Im jest ona większa, tym "trudniej" trafić głowicą w odpowiednie miejsce. Bystry czytelnik zauważył tutaj już pewnie mały paradoks. Zwiększanie gęstości upakowania danych wpływa pozytywnie na pojemność i liniowy odczyt danych, jednak negatywnie na czas dostępu.


Prędkość liniowego transferu danych: Wbrew pozorom, głównym wyznacznikiem tego parametru nie jest prędkość obrotowa, a gęstość upakowania danych. Proszę zauważyć, iż w popularnych dyskach IDE prędkość obrotowa pozostaje właściwie nie zmieniona na poziomie 7200 obr/min od paru dobrych lat. Prędkość odczytu i zapisu danych rośnie jednak z pokolenia na pokolenie. Dzieje się tak właśnie za sprawą wzrostu gęstości upakowania danych. Nie powinno więc dziwić, iż nowy dysk 5400 obr/min potrafi pod względem prędkości odczytu danych wyprzedzić niejeden starszy model 7200 obr/min


Pamięć podręczna (cache): po co ona w ogóle jest potrzebna? Aby wspomagać proces zapisu danych na dysk twardy. Bzdurą jest twierdzenie, iż od jej wielkości zależy prędkość odczytu danych. Współczesne dyski twarde, całkiem nieźle radzą sobie z odczytem danych, inaczej jest jednak z zapisem. Wystarczy spojrzeć na wyniki HDtacha, zielona linia oznacza prędkość zapisu danych. Najlepsze dyski osiągają wyniki na poziomie 32MB/s czyli o ponad połowę mniej niż prędkość odczytu. Standardem w obecnych topowych dyskach twardych, jest 8MB cache. Modele budżetowe maja jej najczęściej 2MB. Swego czasu Seagate miał w swojej ofercie specjalne modele Cheetah z 16MB cache, i jest to absolutny rekord. Bardzo szybko jednak inżynierowie doszli do wniosku, że zwiększanie pamięci podręcznej w nieskończoność nie przynosi wymiernych zysków w wydajności. Znacznie lepszym rozwiązaniem, jest buforowanie danych na specjalizowanych kontrolerach, gdzie można jej zainstalować zdecydowanie więcej mniejszym kosztem. Nikogo nie dziwią kontrolery posiadające 256 czy 512MB pamięci podręcznej. Mało tego, taką pamięć można samemu rozbudować, wymieniając po prostu kostkę pamięci. Najczęściej stosuje się w tej roli moduły SD-RAM, jednak powoli zaczynają się pojawiać kontrolery, które jako cache używają DDR SD-RAM.


Interfejs: Wydawać by się mogło, że wydajność interfejsu dysku twardego ma bardzo duży wpływ na jego osiągi. Nie jest to jednak prawda. Żaden z obecnie produkowanych dysków z interfejsami do ATA133 włącznie, nie ma dostatecznej wydajności aby przeciążyć choćby podstarzały już ATA 66. Postaramy się wytłumaczyć dlaczego tak się dzieje. Na początek szczypta teorii. Należy zdać sobie sprawę, że teoretyczna wydajność interfejsów danych ma się nijak do ich rzeczywistej wydajności. Interfejs dysku twardego nie jest wykorzystywany tylko i wyłącznie do przesyłania nim danych, ale także do komunikacji kontrolera z dyskiem twardym. Taka komunikacja, ze względu na kompatybilność wstecz zawsze odbywa się w trybie PIO-0, a więc z prędkością maksymalnie około 2MB/s. Do tego dochodzą jeszcze inne czynniki, jak powtórzenia źle przesłanych paczek danych, dane synchronizacyjne i wiele, wiele innych. To wszystko doprowadza do tego, że rzeczywista wydajność interfejsów danych w dyskach twardych osiąga jakieś 85-90% wartości teoretycznej. Im wyższa teoretyczna wydajność interfejsu, tym mniejsza jego efektywność. Prościej jest zakłócić szybko przesyłane dane. Większość zmian wprowadzanych w specyfikacjach coraz to kolejnych interfejsów ma charakter raczej ewolucyjny niż rewolucyjny. Dlatego różnice w wydajności miedzy dyskami ATA100 a ATA133 są małe. To samo dotyczy modnego ostatnio Serial-ATA. Często dostajemy pytania typu: czy dysk xxx z interfejsem ATA133 będzie dużo wolniejszy od tego samego dysku z interfejsem Serial-ATA. Odpowiedź jest właściwie oczywista, takie same dyski z innymi interfejsami będą miały taką samą wydajność. Zmiana samego interfejsu na szybszy nie pociąga za sobą wzrostu wydajności danego napędu.

Tak naprawdę, jeszcze do niedawna nie było na rynku dysków z natywnym interfejsem Serial-ATA. Wszystkie obecnie dostępne napędy korzystają z translatorów Paralel<->Serial-ATA, włącznie z najnowszym Raportem WD740GD. Mało tego. Większość specjalizowanych kontrolerów Serial-ATA, jak choćby bardzo drogie kontrolery 3ware, to tak naprawdę kontrolery Paralel-ATA z podłączonymi fabrycznie translatorami.

Oczywiście zdarzają się wyjątki, gdzie wydajność samego interfejsu ma znaczenie. Dzieje się tak np. gdy korzystamy z magistrali SCSI. Celowo użyłem słowa magistrala, a nie interfejs. To jednak temat wykraczający nieco poza ramy tego artykułu.