7. Interfejsy dysków twardych

Każdy magnetyczny dysk twardy ma układ kontrolera, którego głównymi elementami są: separator danych, układ formatujący, bufor danych, układ sterowania głowicami oraz adapter systemu nadrzędnego (Rys. 36).  Zadaniem separatora danych jest zamiana odczytanego, analogowego sygnału z głowic na postać cyfrową. Następnie formowane są słowa danych i buforowane w pamięci urządzenia. Odczyt musi następować spod określonych adresów, zatem sterownik musi umieć odpowiednio pozycjonować głowice. Dane są przesyłane do szyny systemu nadrzędnego za pośrednictwem adaptera systemu nadrzędnego. W przypadku standardu SATA adapter systemu nadrzędnego jest scalony z chipsetem, w przypadku standardu SCSI jest to dedykowany kontroler.
Transfer danych pomiędzy dyskiem i pamięcią RAM może być zrealizowany na dwa sposoby. Pierwszym z nich jest programowane wejście-wyjście (PIO). Sposób ten w znacznym stopniu angażuje procesor. Komunikacja przebiega w następujący sposób:
•    System operacyjny ustawia adres na liniach adresowych.
•    Po określonym czasie aktywowana jest linia odczyt/zapis i jednocześnie jest podawany sygnał o szerokości słowa danych 8/16 bitów.
•    Dla zapisu system operacyjny umieszcza dane na liniach danych, przy odczycie dane dostarcza sterownik dysku.
•    Wczytanie danych przez sterownik dysku lub system operacyjny.
•    Linie adresowe są zwalniane.

 
Rys. 36. Kontroler dysku twardego

Obecnie dyski pracują w trybie DMA (ang. direct memory access), z tym, że wykorzystywany jest wbudowany w dysk kontroler DMA i technika bus masteringu. Kontroler dysku przejmuje we władanie magistralę systemową i następuje transfer danych:
•    System operacyjny aktywuje sygnał DMARQ – inicjalizacja transmisji DMA.
•    Sterownik ustawia sygnał DMAACK – potwierdzenie transmisji DMA.
•    Transmisja DMA (może być przesyłanych wiele słów danych).
Dyski są dołączane do systemu z użyciem dwóch głównych interfejsów. Pierwszy z nich to standard SATA (ang. Serial ATA), przeznaczony głównie do komputerów domowych, drugi SAS (ang. Serial Attached SCSI), przeznaczony do serwerów.