Obsługa dysku twardego 265
Rozdział 6.
Obsługa dysku twardego
Można śmiało powiedzieć, że udział dysku twardego w pracy całego systemu jest nie mniejszy od wkładu, jaki wnosi sam procesor. Pakiety oprogramowania o monstrualnych rozmiarach tylko dlatego mogą znaleźć nabywców, że od czasów wprowadzenia na rynek pierwszego dysku twardego o pojemności 10 MB (w cenie 4000 dolarów) wiele się w tej dziedzinie zmieniło.
Przez wiele lat dominował standard ST412/506, którego nazwa wywodziła się od pierwszych modeli tego systemu. W miarę upływu czasu i wzrostu wymagań stawianych dyskom twardym, zwłaszcza w dziedzinie zastosowań profesjonalnych, opracowane zostały nowocześniejsze systemy (IDE, ESDI, SCSI). Jednemu z nich - standardowi IDE, nazywanemu również AT-BUS - udało się zdominować również rynek komputerów powszechnego użytku. Wszystko wskazuje na to, że został on wyparty przez standard Enhanced IDE (EIDE), który stanowi jego rozwinięcie.
Budowa kontrolera
W obudowie klasycznego dysku twardego zintegrowane sąjedynie układy bardzo ściśle współpracujące z elementami wykonawczymi sterowania części ruchomych napędu dysku, jak silniki krokowe i liniowe, oraz systemy bezpośrednio związane z głowicami odczytująco-zapisującymi. Skomplikowane zadanie sterowania tymi elementami i obróbkę danych przejmuje kontroler dysku. Jest to układ podobny do kontrolera napędu dysków elastycznych.
Z logicznego punktu widzenia kontroler dysku twardego wymienia dane z magistralą systemową komputera PC tak samo, jak każde inne urządzenie. Procesor wysyła do odpowiednich rejestrów sterujących dane i rozkazy, a pozostający w kontakcie z dyskiem
266 Anatomia PC
kontroler odpowiada danymi i informacjami dodatkowymi. Sam kontroler składa się z mikroprocesora otoczonego niezbędnymi układami dodatkowymi, jak pamięci RAM i ROM, dekodery adresów i specjalistyczne układy obróbki danych.
Każdy kontroler zawiera dodatkowo pamięć mogącą pomieścić dane jednego pełnego sektora wraz z tzw. kodami ECC (ang. Error Correction Code), nazywaną buforem sektora. Systemy kontroli i korekcji ECC są również rozwiązaniami sprzętowymi.
Spróbujmy prześledzić działanie kontrolera w trakcie realizacji operacji odczytu sektora dysku.
Procesor przekazuje kontrolerowi grupę bajtów zawierającą rozkaz odczytu wraz
z niezbędnymi parametrami lokalizującymi żądany sektor.
Po rozpoznaniu rozkazu mikroprocesor kontrolera przechodzi do wykonywania
odpowiadającego mu fragmentu programu zapisanego w jego pamięci stałej.
Ze strumienia danych napływających z głowic wyławiane są metryki adresowe
(ID). Pozwala to na określenie aktualnego położenia głowic. Na tej podstawie
obliczana jest liczba impulsów sterujących, które należy przesłać do silnika kro
kowego ramienia głowic, by znalazły się one nad żądaną ścieżką.
Jeżeli założymy, że poprzednia operacja została przeprowadzona bezbłędnie (co
nie zawsze musi mieć miejsce), rozpoczyna się oczekiwanie na pojawienie się w
strumieniu danych ścieżki metryki adresowej poszukiwanego sektora.
W zależności od stosowanego systemu zapisu magnetycznego (MFM, RLL),
dane podlegają różnym przekształceniom do form pośrednich (np. NRZ). W koń
cowej fazie odseparowany blok danych kontrolowany jest przez system ECC.
Kod ECC spełnia podobną rolę do opisanych w poprzednim rozdziale sum kon
trolnych CRC. Główna różnica polega na stopniu komplikacji generatora (wielo
mianu) kodu. Dyski twarde systemu ST412 stosują najczęściej generator 32
stopnia postaci 100010100000010100000010001000110. Wielomian taki produ
kuje 4-bajtowe kody ECC mające zdolność nie tylko do wykrywania, ale również
- co dużo bardziej interesujące - korekcji błędów. Korygowane mogą być nie
tylko pojedyncze błędy, lecz również błędne ciągi o długości nie przekraczającej
11 bitów.
Odczytane, sprawdzone i ewentualnie poprawione dane lokowane są w buforze
sektora i mogą być przekazane do pamięci operacyjnej. Kontroler komputera
PC/XT posługuje się kanałem 3 DMA, natomiast modele AT korzystają z przer
wań. Po odczytaniu sektora kontroler modelu AT wyzwala przerwanie na linii
IRQ14. Procedura obsługi tego przerwania rozpoczyna, wykorzystując rozkaz
in, żmudną operację przenoszenia krok po kroku wszystkich 512 (a czasem 516,
tj. dane wraz z ECC) bajtów z portu danych kontrolera do pamięci operacyjnej.
Obsługa dysku twardego
267
Systemy kodowania MFM i RLL
Z poprzedniego rozdziału, poświęconego dyskom elastycznym, pamiętamy, że sama zmiana systemu kodowania danych z FM na MFM przyniosła znaczne zwiększenie upakowania danych przy tej samej gęstości zapisu magnetycznego. Nic więc dziwnego, że poszukiwane były nadal metody pozwalające na jeszcze większy wzrost pojemności tego samego nośnika wyłącznie kosztem komplikacji towarzyszącej mu elektroniki. Jednym z takich nowych systemów, któremu udało się ugruntować swoją pozycję, jest standard RLL (ang. Run Length Limited).
Powróćmy na chwilę do metody MFM. Punktem wyjścia do naszych rozważań będzie przykładowy bajt danych o wartości 00101110, reprezentowany przez przebieg (1) na rysunku 6.1.
Rysunek 6.1.
Sposób zapisu informacji na dysku twardym w standardzie MFM i RLL
BAJT DANYCH
00101110
ZEGAR MFM |
|
r |
|
|
|
|
|
|
L |
_ 0 (T) |
|
|
|
|
|
|
|
|
|
|
|
|
|
DANE MFM |
|
i t |
D |
[ |
D |
[ |
D [ |
D |
|
' |
0 |
tmfm _ KOD ~ RLL 2,7 ZEGAR RLL 2,7 |
J 0 0 J l |
|
|
|
|
|
|
|
|
L © © © |
|
|
|
1 0 i i |
|
|
1 |
0 |
|
) |
1 n |
0 0 _ II |
|
|
|
|
0 1 Jl l |
3 0 |
|
|
0 0 |
|
|
|
|
|
|
|
|
1 |
l |
l |
l |
|
|
||
DANE RLL 2,7 |
|
|
l |
|
|
|
l |
|
0 |
||
T RLL 2.7 |
|
|
|
|
|
|
|
|
|