Bufor dysku

Read-ahead/read-behindEdit

gdy kontroler dysku wykonuje fizyczny odczyt, siłownik przesuwa głowicę odczytu/zapisu do (lub w pobliżu) WŁAŚCIWEGO cylindra, po pewnym osiadaniu i ewentualnie dokładnym uruchomieniu głowica Odczytu zaczyna pobierać dane toru, a pozostaje tylko poczekać, aż obrót talerza przyniesie żądane dane.

dane odczytane przed żądaniem podczas tego oczekiwania nie są wymagane, ale są wolne, więc zazwyczaj są zapisywane w buforze dysku na wypadek, gdyby zażądano ich później.

podobnie, dane mogą być odczytywane za żądanym, jeśli głowica może pozostać na dobrej drodze, ponieważ nie ma innego odczytu do wykonania lub następne uruchamianie może rozpocząć się później i nadal zakończyć w czasie.

jeśli kilka żądanych odczytów odbywa się na tej samej ścieżce (lub w pobliżu na ścieżce spiralnej), większość niewyrażonych danych między nimi zostanie odczytana zarówno z przodu, jak i z tyłu.

speed matchingEdit

prędkość interfejsu I/O dysku do komputera prawie nigdy nie odpowiada prędkości, z jaką bity są przesyłane do iz talerza dysku twardego. Bufor dysku jest używany tak, aby Zarówno interfejs We/Wy, jak i głowica do odczytu/zapisu dysku mogły pracować z pełną prędkością.

akceleracja Zapisówedit

wbudowany mikrokontroler dysku może sygnalizować komputerowi głównemu, że zapis na dysku jest zakończony natychmiast po otrzymaniu danych zapisu, zanim dane zostaną faktycznie zapisane na talerzu. Ten wczesny sygnał pozwala na kontynuowanie pracy głównego komputera, mimo że dane nie zostały jeszcze zapisane. Może to być nieco niebezpieczne, ponieważ jeśli zasilanie zostanie utracone, zanim dane zostaną trwale zamocowane w nośniku magnetycznym, dane zostaną utracone z bufora dysku, a system plików na dysku może pozostać w niespójnym stanie.

na niektórych dyskach ten podatny okres między sygnalizacją zakończenia zapisu a poprawieniem danych może być arbitralnie długi, ponieważ zapis może być odroczony na czas nieokreślony przez nowo przybyłe żądania. Z tego powodu użycie przyspieszenia zapisu może być kontrowersyjne. Spójność można jednak zachować, korzystając z systemu pamięci zasilanej baterią do buforowania danych, chociaż zwykle występuje to tylko w wysokiej klasy kontrolerach RAID.

alternatywnie, buforowanie można po prostu wyłączyć, gdy integralność danych jest uważana za ważniejszą niż wydajność zapisu. Inną opcją jest wysyłanie danych na dysk w starannie zarządzanej kolejności i wydawanie poleceń „Cache flush” w odpowiednich miejscach, co jest zwykle określane jako implementacja barier zapisu.

kolejkowanie Poleceńedytuj

nowsze dyski SATA i większość dysków SCSI mogą przyjmować wiele poleceń, podczas gdy jedno polecenie jest w działaniu poprzez „kolejkowanie poleceń” (patrz NCQ i TCQ). Polecenia te są przechowywane przez wbudowany kontroler dysku, dopóki nie zostaną ukończone. Jedną z zalet jest to, że polecenia mogą być ponownie uporządkowane, aby były przetwarzane bardziej efektywnie, tak że polecenia dotyczące tego samego obszaru dysku są zgrupowane razem. Jeśli odczyt odwołuje się do danych w miejscu docelowym zapisu w kolejce, dane do zapisu zostaną zwrócone.

NCQ jest zwykle używany w połączeniu z włączonym buforowaniem zapisu. W przypadku polecenia odczytu / zapisu FPDMA z bitem Force Unit Access (FUA) ustawionym na 0 i włączonym buforowaniem zapisu, system Operacyjny może zobaczyć zakończenie operacji zapisu przed fizycznym zapisem danych na nośniku. W przypadku bitu FUA ustawionego na 1 i włączonego buforowania zapisu, operacja zapisu zwraca się dopiero po fizycznym zapisaniu danych na nośnik.



+