Urządzenia techniki komputerowej
Pamięci dyskowe
Cz. 2
W stacjach dysków elastycznych głowica odczytu-zapisu
jest przykładana bezpośrednio do wirującego dysku.
Z tego też powodu, stosowane prędkości obrotowe są
niewielkie, a więc i szybkości zapisu i odczytu są
ograniczone. Dyski twarde zostały tak nazwane,
z powodu swej sztywnej konstrukcji. Są one umieszczone
w odpowiednio skonstruowanym pyłoszczelnym zespole
napędowym, zawierającym ponadto układy sterowania
silnikiem napędu dysków, silnikiem przesuwu głowic
(pozycjonerem), układy sterowania głowicami zapisu,
układy odczytu oraz inne układy sterujące i kontrolne
zespołu napędowego.
W dyskach twardych głowica odczytu-zapisu, nie dotyka dysku
w czasie pracy, jest utrzymywana w małej odległości od niego
(ok. 1µm) na poduszce powietrznej powstającej automatycznie
na skutek ruchu obrotowego. Prędkość obrotowa dysku twardego
jest bardzo duża, dzięki temu osiąga się duże prędkości transmisji
danych. Najważniejsze parametry techniczne dysków twardych:
pojemność,
liczba głowic odczytu-zapisu (od 4 do kilkunastu),
liczba cylindrów (od 615 do kilkunastu tysięcy),
średni czas dostępu - na średni czas dostępu składają się dwa
elementy: średni czas poszukiwania potrzebny do umieszczenia
głowicy na wybranej ścieżce oraz opóźnienie rotacyjne
potrzebne do umieszczenia głowicy nad odpowiednim sektorem,
prędkość obrotowa dysku,
prędkość transmisji danych,
zasilanie (+12V, +5V)
ścieżki tworzące
cylinder
sektor
dyski wirujące
z szybkością
3600 obr/min
głowica zapisu/odczytu
mechanizm
pozycjonujący
ramię głowicy
silnik liniowy
unoszona na "poduszce"
powietrznej nad
powierzchnią dysku
Napęd dysków twardych łączony jest z systemem mikroprocesorowym
(z płytą główną) poprzez sterownik dysku twardego (ang. Hard Disk
Controller, HDC) za pomocą interfejsu HDD.
Większość dysków twardych składa się z następujących komponentów:
obudowy, pozycjonera głowicy, ramion głowic, głowic odczytu/zapisu
oraz kilku dysków. Każdemu dyskowi pamięci przyporządkowane są
dwie głowice (dla jego dolnej i górnej powierzchni). Głowice
utrzymywane są na sprężynujących ramionach, przy czym wszystkie
ramiona głowic są ze sobą połączone i poruszają się synchronicznie,
napędzane pozycjonerem. W stanie spoczynku głowice znajdują się
na ścieżce na wysokości około 1 mikrometra. Zadaniem pozycjonera
jest przemieszczenie głowic na wybrany cylinder. Pozycjonery
zbudowane w oparciu o silnik liniowy, same parkują głowice po
wyłączeniu zasilania, gdyż sprężyna automatycznie odciąga je do
położenia parkowania. Pozycjonery z silnikiem krokowym wymagają
zaparkowania głowic za pomocą specjalnego programu.
Jednym z najbardziej odpowiedzialnych elementów składowych
dysków twardych jest układ zawieszenia głowicy. Składa się nań
specjalnie ukształtowany ślizgacz przymocowany do płaskiej sprężyny.
Sprężyna nośna musi być lekka, mieć odpowiednią charakterystykę
mechaniczną i dużą sztywność poprzeczną.
System ten ma za zadanie utrzymanie głowicy w stałej odległości
od powierzchni dysku. Rolę elastycznego bufora oddzielającego
te dwa elementy spełnia poduszka powietrzna wytwarzająca się
w trakcie pracy. Powstaje ona na wskutek wirowania talerzy.
Można wyróżnić dwa rodzaje ślizgaczy:
dodatni – siły aerodynamiczne odpychają go od powierzchni. Dla
zapewnienia stabilizacji wysokości lotu głowicy potrzebna jest
silnie działająca sprężyna. Wadą takiego rozwiązania jest to,
iż silna sprężyna może powodować uderzenia głowicy
o powierzchnie dysku oraz następuje opóźnienie momentu startu
głowicy,
ujemny – siły aerodynamiczne działają w kierunku powierzchni
dysku. Ślizgacz ujemny lepiej stabilizuje wysokość lotu głowicy
oraz zapewnia tzw. wczesny start (głowica odrywa się od
powierzchni dysku praktycznie bezpośrednio po jego starcie).
Aby skutecznie zapisać twardy materiał magnetyczny potrzebne
są stosunkowo duże wielkości pola przy jednoczesnym zachowaniu
małych rozmiarów głowicy .Wymagania dużej gęstości zapisu realizuje
się poprzez dobór odpowiedniego kształtu pola oraz możliwie
minimalnego odstępu głowicy od powierzchni dysku.
Głowice ferrytowe
Są to głowice starszej generacji. Zbudowane były w postaci prostego
elektromagnesu, w którym zarówno rdzeniem jak i nośnikiem
uzwojenia jest sam materiał ferrytowy. Wadami tych głowic są:
ferryt jest materiałem o stosunkowo dużym ciężarze własnym,
co powodowało, że głowice miały dużą bezwładność co
wymagało pozycjonerów o dużych mocach i wydłużało czas
dostępu,
uzwojenia wykonywane były w sposób klasyczny poprzez
nawijanie cienkiego drutu, co uniemożliwiało dalszą modernizację.
Głowice cienkowarstwowe
Technologia wytwarzania tych głowic zapożyczona została
od technologii stosowanej w cyklu wytwarzania układów scalonych.
W technice tej wszystko powstaje jako wynik kolejnego nanoszenia
i usuwania różnorodnych warstw materiałów: w zależności od potrzeb
mogą to być półprzewodniki, domieszki, metale lub izolatory.
Kolejne procesy odbywają się za pośrednictwem tzw. masek,
które ograniczają obszar nanoszenia lub usuwania materiału warstwy.
W przypadku głowic cienkowarstwowych uzwojenia wykonuje się
poprzez precyzyjne trawienie napylonej warstwy metalicznej.
Uzwojenia są zwykle jedno lub dwuwarstwowe o liczbie zwojów 20-30
odpowiada to indukcji rzędu 600 nH. Szczelinę głowicy
stanowi warstwa tlenku krzemu. Również bieguny magnetyczne
kształtowane są w procesach napylania i usuwania odpowiednich warstw.
Ten sposób wykonania oznacza redukcję wymiarów i wagi głowicy,
o conajmniej rząd wielkości.
Pozycjonery dysków twardych
Ścisłe upakowanie danych na powierzchni dysku wymusza ogromną
precyzję wykonania mechanizmu pozycjonowania głowic. Jeżeli dysk
jest wielopłytowy, dochodzą do głosu zniekształcenia termiczne
materiału nośnego wywołując mimośrodowość całego mechanizmu
wirującego.
Powszechnie stosowane systemy napędowe pozycjonerów można
zaliczyć do jednej z trzech grup:
silnik krokowy,
silnik liniowy z mechanizmem przesuwnym,
silnik liniowy z mechanizmem obrotowym.
Silnik krokowy
Wirnik silnika krokowego może przyjmować tylko ściśle określone
położenia, oddalone od siebie w równej odległości kątowej. Jeżeli
silnik taki potrzebuje np. 100 impulsów do pełnego obrotu osi, możliwe
są następujące położenia 0º, 3.6º, 7.2º, ...356.4º. Żadne z położeń
pośrednich (np. 5º) nie jest możliwe do uzyskania. Silnik taki może
pracować w obydwu kierunkach.
Oś silnika sprzężona jest z mechanizmem napędowym poprzez
przekładnię cierną. Przekładnia zębata jest wykluczona ze względu
na luz. Stopień przełożenia całego mechanizmu jest tak dobrany,
że pojedynczy skok silnika krokowego przesuwa głowicę na następną
ścieżkę.
Silnik liniowy
Współczesne dyski twarde o dużej gęstości zapisu wymagają
mechanizmów znacznie bardziej precyzyjnych od silników krokowych,
dlatego też ich miejsce zajęły różne wersje silników liniowych.
Budowa tego typu pozycjonera przypomina układ magnetoelektryczny
miernika wskazówkowego. W polu silnego magnesu stałego znajduje
się uzwojenie. Ramka z uzwojeniem umieszczona jest na
ułożyskowanym (specjalne łożyska ceramiczne) wózku. Do ramki
przytwierdzony jest uchwyt trzymający ramiona głowic.
Cały zespół ma możliwość poruszania się w takim zakresie,
by znajdujące się na końcu ramion głowice obejmowały swym
zasięgiem całą aktywną powierzchnię dysku.
Odmiana obrotowa pozycjonera z silnikiem liniowym jest spotykana
znacznie częściej w konstrukcjach dysków ze względu na jej zalety.
Dzięki mechanizmowi dźwigni ramiona z głowicami osiągają duże
przyspieszenia przy minimalnych nakładach energetycznych
po stronie uzwojenia daje to widoczne skrócenie czasu pozycjonowania
głowic. Niewątpliwą wadą tego typu pozycjonera jest zmienny
w stosunku do osi ścieżki kąt położenia głowic.
Mechanizm parkowania głowic
Głowice dysku, który nie wiruje z dostateczną prędkością spoczywają
na jego powierzchni. Za każdym razem, gdy uruchamiany jest napęd
dysków głowice szlifują powierzchnie tak długo, aż wirnik osiągnie
pewną minimalną prędkość, przy której głowice oderwą się od
powierzchni. Proces odwrotny ma miejsce przy wyłączeniu dysku.
Dla zabezpieczenia obszaru będącego nośnikiem informacji przed
takimi mechanicznymi uszkodzeniami ze strony głowic wspomniany
pas startowy umieszcza się w bezpiecznym miejscu. Jest nim na ogół
najbardziej wewnętrzny z cylindrów dysku. Cylinder ten zostaje
pozbawiony prawa do składowania danych i stanowi tzw. strefę
parkowania.
Istnieje kilka sposobów sprowadzania głowicy do strefy parkowania:
dyski (szczególnie MFM) posiadały specjalny program, który
wysyłał rozkaz do kontrolera przesunięcia głowic do strefy
parkowania,
dyski zostały wyposażone w sprężynę, która powodowała
odsuwanie głowicy do strefy parkowania,
układ z elektromagnesem. Jest to bardzo pewna i niezawodna
konstrukcja. System składa się z zamka i mechanizmu
sprężynowego odblokowywanego przy pomocy elektromagnesu.
Elektromagnes otwiera zamek i wypuszcza głowicę dopiero
po uzyskaniu przez dysk odpowiedniej prędkości wirowania.
Przy zaniku napięcia opada kotwica elektromagnesu co wyzwala
sprężynę wciągającą pozycjoner do zamka.
Organizacja danych w dyskach twardych
Słowniczek:
Partycja (partition) – jest to obowiązkowy poziom organizacji
przestrzeni dyskowej. Partycje dzielą dysk twardy na rozłączne obszary,
którym system operacyjny przypisuje litery napędów. Rozróżniamy
przy tym partycje pierwotne (primary) i rozszerzone (extended).
Informacje o wielkości i rodzaju partycji przechowuje tablica partycji
w pierwszym sektorze dysku.
Klaster (cluster) – jednostka alokacji, najmniejsza logiczna jednostka
zarządzana przez FAT i inne systemy plików. Fizycznie klaster
składa się z jednego lub więcej sektorów.
FAT (File Allocation Table) – tablica alokacji plików, która powstaje
przy formatowaniu partycji. FAT przechowuje informacje
o odwzorowaniu plików na numery klastrów.
Ścieżki (tracks) – koncentrycznie położone okręgi na każdym
talerzu twardego dysku, które podzielone są z kolei na sektory.
Cylindry (cylindres) – zbiór wszystkich sektorów dysku twardego,
osiągalnych bez przemieszczenia głowicy. Termin często lecz błędnie,
stosowany jako zamiennik ścieżki - także w programie Setup BIOS'u.
Sektory(sectors) – najmniejsze adresowalne jednostki na twardym
dysku. Całkowitą liczbę sektorów otrzymujemy, mnożąc liczbę
głowic przez liczbę ścieżek razy liczbę sektorów na ścieżce.
Fizyczna organizacja danych zapisanych na ścieżce dysku twardego
jest analogiczna jak dla dyskietki. Główna różnica polega na tym,
że w obudowie dysku znajduje się nie jeden, lecz kilka talerzy
powleczonych warstwą nośnika magnetycznego i obsługiwanych
przez odpowiednie zespoły głowic, poruszane jednym mechanizmem.
Z tego też względu w przypadku dysków twardych nie mówi się
o pojedynczych ścieżkach, lecz tzw. cylindrach, w skład których
wchodzą ścieżki o tym samym numerze położone na kolejnych
talerzach pakietu. Ponieważ prędkość obrotowa dysku twardego
jest znacznie większa niż dyskietki (od kilku do kilkunastu tysięcy
obrotów na minutę), ilość informacji odczytywanych przez głowice
może przekroczyć przepustowość kontrolera (miało to miejsce
głównie dla starszych kontrolerów MFM). Z tego względu odczyt
danych z dysku realizowany jest z tzw. przeplotem, który polega
na niesekwencyjnym odczycie kolejnych sektorów.
Ważnym parametrem charakteryzującym zespół dysk-kontroler jest
tzw. współczynnik przeplotu określający, co który sektor jest
odczytywany podczas obrotu dysku. Przykładowo, dla współczynnika
przeplotu równego 1:3 odczytywane są sektory 1, 4, 7,..., 2, 5, 8,... itd.
Technika ta daje kontrolerowi czas na przetworzenie odczytanego
sektora, ale jednocześnie znacznie spowalnia proces odczytywania
informacji. Z tego też względu dla starszych kontrolerów MFM
bardzo istotne było dobranie właściwego współczynnika przeplotu,
objawiające się na zewnątrz osiągnięciem maksymalnej
przepustowości zespołu dysk-kontroler. Obecnie stosowane kontrolery
są na tyle szybkie, że pozwalają na pracę z przeplotem 1:1, tj. odczytują
sektory po kolei.
Formatowanie wysokiego poziomu odnośnie do dysku twardego,
w przeciwieństwie do dyskietek, nie nanosi na jego powierzchnię
ścieżek ani sektorów. Program formatujący buduje jedynie logiczną
strukturę partycji. Partycją nazywamy wyodrębniony logicznie
obszar dysku twardego, na który składa się pewna liczba przyległych
do siebie cylindrów. Obszar taki może być administrowany tak,
jak oddzielny, logiczny napęd dyskowy. Każdy taki napęd logiczny
należy poddać operacji formatowania wysokiego poziomu, w trakcie
którego program format zapisuje w obszarze partycji sektor ładujący
(BOOT sector), tablicę alokacji plików (FAT) i katalog główny.
Wszystkie pozycje tablicy FAT inicjalizowane są wartością zero,
co oznacza, że cała partycja jest wolna.
Położenie partycji na dysku fizycznym określone jest jednoznacznie
przez podanie jej cylindra początkowego oraz liczby cylindrów,
na które się rozciąga. Tego rodzaju dane, obejmujące wszystkie
zadeklarowane partycje, przechowywane są w tablicy partycji.
Program formatujący korzysta z tej tablicy, ale nie tworzy jej ani nie
modyfikuje. Musi ona być zapisana na dysku przed przystąpieniem
do formatowania wysokiego poziomu. Tablicę partycji generuje np.
program fdisk.com.
Należy zwrócić uwagę na fakt, że powtórne formatowanie dysku
twardego (celowe lub niezamierzone) nie niszczy zapisanej na nim
informacji, a jedynie jej logiczną strukturę. Nie oznacza to bynajmniej,
że odzyskanie danych jest sprawą banalną, szczególnie gdy były one
rozproszone na całym dysku. Niszczona jest informacja o strukturze
danych zawarta w FAT, dlatego przechowywanie „rezerwowej”
kopii FAT w dodatkowym miejscu dysku pozwala odzyskać dane po
formatowaniu. System przechowuje w partycji dwie kopie tablicy FAT,
co pozwala na wykrywanie ewentualnych błędów alokacji,
nie umożliwia natomiast odzyskania danych po formatowaniu
wysokiego poziomu. Do utworzenia kopii bezpieczeństwa obszaru
zawierające dane systemowe (FAT, sektor ładujący, katalog główny)
należy użyć specjalnego programu, na przykład mirror.com
lub Norton DiskTool.
Operacja nanoszenia na powierzchnię dysku ścieżek, sektorów
i wszystkich innych pól dodatkowych nazywana jest formatowaniem
niskiego poziomu, inicjalizacją lub preformatowaniem.
Zdecydowana większość produkowanych obecnie napędów
poddawana jest tej operacji jeszcze u producenta i nie należy jej powtarzać.
Interfejs IDE
Dyski z interfejsem IDE funkcjonowały od 1987 r. Posiadały one maksymalną
pojemność równą 512 MB (ograniczał tę wartość BIOS starszych komputerów
IBM PC, który mógł obsłużyć jedynie dyski posiadające maksymalnie 1024 cylindry,
16 głowic i 64 sektory, czyli o maksymalnej pojemności 512 MB), dyski o większej
pojemności wymagały sterowników wyposażonych w pamięci EPROM zawierające
specjalne programy obsługi tych dysków.
Dyski twarde IDE zaczęto wyposażać w pamięci Cache, pozwalające zwiększyć
szybkość transmisji danych. Aby przyspieszyć transmisję w dyskach z pamięcią Cache,
stosuje się następującą zasadę: z dysku podczas odczytu wczytuje się do pamięci
Cache, oprócz interesujących nas w danej chwili sektorów, również sektory
następujące po nich. Jeśli dane te zostaną zażądane później, to nie muszą być
odczytywane z dysku, lecz przywołane są z pamięci Cache.
Napędy IDE posiadały krótkie czasy poszukiwania, rzędu kilkunastu milisekund.
Szybkość transmisji mogła osiągnąć nawet poziom 4 MB/s. Interfejs wyposażony
jest w 40-stykowe złącze. Ze złącza usunięto styk 20, by uchronić dysk przed
nieprawidłowym podłączeniem kabla. Długość kabla interfejsu nie powinna
przekroczyć 18 cali.
Interfejs IDE obywa się bez specjalnych sterowników programowych,
a cały kontroler mieści się zaledwie w jednym układzie scalonym.
Twarde dyski są wyposażone we własne kontrolery, które wykonują
większą część pracy, natomiast kontroler zainstalowany w złączu
rozszerzającym zapewnia jedynie połączenie z magistralą danych.
Sterownik IDE pracuje w trybie PIO (Processor Input Output),
co oznacza, że procesor musi sterować transferem każdego
pojedynczego bloku danych. Znacznie zmniejsza to wydajność całego
systemu, gdyż procesor musi przejąć na siebie całą pracę związaną
z zarządzaniem komunikacją. Wraz z rozpowszechnieniem się
systemów magistrali lokalnych typu VLB czy PCI sytuacja zmieniła
się radykalnie.
Standard Enhanced IDE (E-IDE)
Opracowany w roku 1994 system Enhanced IDE (E-IDE) pokonał
kilka ograniczeń standardu IDE, takich jak:
zwiększenie szybkości przesyłanych danych,
pokonanie granicy 512 MB,
obsługa 4 dysków twardych,
obsługa innych urządzeń, np. CD-ROM.
Ogromny wpływ na szybkość dysku ma typ magistrali, do której
dołączony jest sterownik. Aby osiągnąć przyzwoity transfer trzeba użyć
magistrali typu PCI (lub starszej VESA Local-Bus), gdyż ISA może
jedynie zapewnić jedynie od 1.5 do 1.8 MB/s. Standard E-IDE (zwany
również ATA) może obsługiwać 4 dyski twarde za pomocą dwóch
adapterów (dwóch kanałów IDE). Adaptery mogą znajdować się na
wspólnej karcie, na kartach oddzielnych lub (i tak najczęściej obecnie
bywa) bezpośrednio na płycie głównej.
Do każdego kanału można dołączyć dwa urządzenia IDE, które
pracują w zwyczajnym systemie jako Master i Slave. Cztery twarde
dyski, pracujące w systemie zachowają następującą kolejność:
dysk Master – pierwotny adapter,
dysk Slave – pierwotny adapter,
dysk Master - wtórny adapter,
dysk Slave - wtórny adapter.
Dyski E-IDE mogą posiadać pojemność przekraczającą 512 MB.
BIOS płyty głównej komputera AT wyposażony w procedury
obsługujące ten sterownik wprowadził metodę adresowania dysku
twardego, zwaną CHS (Cylinder Head Sektor). Metoda ta pozwala
obsługiwać dyski posiadające max 16 głowic, 63 sektory i 1024
cylindry. Dla pokonania granicy 512 MB standard E-IDE
wykorzystuje tzw. metodę LBA (Logical Block Address),
oraz alternatywną do niej metodę XCHS (Extended CHS).
System operacyjny MS-DOS realizuje operacje dyskowe za
pośrednictwem przerwania INT13h. Jest to po prostu kanał
komunikacyjny łączący DOS ze specjalizowanymi procedurami
BIOS-u. To właśnie one są bezpośrednimi wykonawcami operacji
zleconych przez DOS.
Pojemność dysku: tryby LBA i XCHS
Przyjęty system nakłada następujące ograniczenia:
Cylindrów – 1024 (0...1023),
Sektorów – 63 (1...63),
Głowic – 16 (0...15).
Maksymalna liczba sektorów, która da się w ten sposób zaadresować
wynosi więc:
1024 x 63 x 16 = l032192,
co przy wymiarach sektora 512 B daje 512 MB maksymalnej
dostępnej pojemności dyskowej, która da się objąć przy pomocy
klasycznego BIOS-u i jego funkcji.
Standard EIDE przewiduje rozwiązanie tego problemu na dwa sposoby:
• adresowanie liniowe LBA (Logical Block Address),
• rozszerzony model CHS – XCHS (eXtended Cylinder Head Sektor),
które gwarantują dostęp do 7,8 GB pamięci dyskowej (ograniczenie
to nakłada BIOS, który nie jest w stanie obsługiwać dysku o takich
rozmiarach.
Trzecim rozwiązaniem może być podzielenie dysku na partycje,
jeśli ma się odpowiedni program.
Logical Block Address (LBA)
Metoda LBA powoduje przenumerowanie wszystkich sektorów, tzn.
dokonuje tzw. translacji adresów, zamieniając rzeczywisty numer
głowicy, cylindra i sektora na logiczny odpowiednik; odpada więc
skomplikowana adresacja za pomocą cylindrów, głowic i sektorów.
W trybie LBA każdy sektor ma swój kolejny numer obliczany na
podstawie wzoru:
LBA = (numer cylindra * liczba głowic na cylinder + numer głowicy)
* liczba sektorów na ścieżkę + numer sektora – l
Sektory adresowane są za pomocą 28-bitowej liczby. Poszczególne
pozycje bitowe adresu w trybie LBA tworzone są z następujących
składowych:
LBA 0-7 Rejestr numeru sektora (IF3h),
LBA 8-15 Rejestr numeru cylindra, składowa LSB ( 1F5h),
LBA 16-23 Rejestr numeru cylindra, składowa MSB (1F4h),
LBA 24-27 Bity 0-3 rejestru napędu/głowicy (1F6h).
Extended Cylinder Head Sector (XCHS)
Alternatywą dla metody LBA jest metoda Extendend CHS (XCHS),
która zezwala na zwiększenie liczby głowic do 255. Z tego wynika iż
BIOS może obsłużyć dyski posiadające 63 sektory, 255 głowic i 1024
cylindry, czyli o maksymalnej pojemności do 7.8 GB. Oczywiście
w praktyce zakłada się, iż liczba głowic nie może być większa niż 16.
Jeśli więc BIOS natrafi na parametr określający liczbę głowic większą
niż 16, wtedy przelicza wartości CHS w ten sposób, że dyskowi nie
przydziela więcej niż 16 głowic, zwiększa natomiast liczbę sektorów
lub cylindrów.
Liczba
cylindrów
przed
translacją
Liczba głowic
przed
translacją
Translacja
liczby
cylindrów
Translacja
liczby głowic
0 – 1024
≤ 16
bez zmiany
bez zmiany
1025 – 2048
≤ 16
≤ 1024
≤ 32
2049 – 4096
≤ 16
≤ 1024
≤ 64
4097 – 8191
≤ 16
≤ 1024
≤ 128
8192 – 16384
≤ 16
≤ 1024
≤ 256
16385 – 32768
≤ 16
≤ 1024
≤ 512
Prędkość transmisji danych – tryby PIO i DMA
Tryb PIO (Programmed Input/Output) jest standardową metodą
przesyłania danych używającą do tego celu procesora centralnego
i jest stosowana przez wszystkie zawarte w BIOS-ie sterowniki
systemowe. Technika PIO jest zgodna ze wszystkimi systemami
współpracującymi z BIOS-em i nie wymaga stosowania dodatkowych
sterowników.
Przy przesyłaniu danych z kontrolera do pamięci dyski E-IDE
wykorzystują klasyczny tryb przekazu z udziałem portu danych (PIO).
W kontrolerach IDE wykorzystywany był tryb PIO 0, zapewniający
przesłanie w jednym cyklu, trwającym 280 ns, 16 bitów danych,
co odpowiada 3,33 MB/s.
Postęp technologiczny (zwiększenie prędkości obrotowej talerzy
i podniesienie gęstości zapisu, czyli liczby sektorów na ścieżce) sprawił,
że prędkość transferu danych z głowicy do kontrolera przekroczyła
możliwości interfejsu IDE. W pewnym momencie na rynku zaczęły
pojawiać się dyski osiągające transfer przekraczający możliwości
trybu PIO 0. Dla potrzeb obsługi urządzeń tego typu zdefiniowane
zostały kolejne tryby PIO 1-3.
Tryb pracy dysku E-IDE
Szybkość transmisji (MB/s)
PIO 0
3,33 IDE
PIO 1
5,22 IDE
PIO 2
8,33 IDE
PIO 3
11,11 EIDE
PIO 4
16,66 EIDE
PIO 5
20 EIDE
Standard EIDE wykorzystujący tryb PIO 3 zapewnia transfer
z prędkością 11,11 MB/s. Ponieważ parametry transmisji w tym trybie
przekraczają możliwości magistrali ISA, adaptery EIDE musiały
korzystać z magistrali VESA Local Bus, a później PCI.
To samo odnosi się do pracy w trybach PIO 4 i PIO 5.
Tryb DMA (ang. Direct Memory Access) – jest to bardzo szybka
metoda wczytywania z nośnika danych lub karty rozszerzającej
do pamięci operacyjnej komputera, w celu ich przetworzenia.
Umożliwia dostęp do pamięci bez potrzeby odwoływania się do
procesora. Sygnały przesyłane są tzw. kanałami DMA.
Komputery klasy XT do komunikacji z dyskiem wykorzystywały
kanał DMA. Ze względu na kompatybilność moduł DMA modelu
XT znalazł się w modelu AT. Przewaga trybów DMA nad PIO
sprowadza się do wyłączenia transferu spod bezpośredniej
kontroli procesora – może on pracować zamiast nadzorować
transmisję danych.
ATA - (Advenced Technology Attachments) - ustanowiony w 1981 roku pierwszy
Standard interfejsu dysków twardych wykorzystywanych w komputerach PC/AT.
Szerokość szyny danych w tym interfejsie wynosi 16 bitów a maksymalna liczba
obsługiwanych urządzeń to 2. Przez interfejs ATA obsługiwane były wyłącznie dyski
twarde. Standard dziś praktycznie nie wykorzystywany w swojej pierwotnej wersji
(IDE).
ATA-2 - wprowadzone w 1984 roku rozszerzenie standardu ATA. Dodane funkcje
to sprzętowa kontrola przepływu danych, obsługa nowych trybów transmisji PIO
i DMA, nowy tryb adresowania sektorów LBA, "identify drive" – automatyczne
rozpoznawanie zainstalowanego w komputerze dysku (EIDE).
ATA-3 - rozwinięcie standardu ATA-2. Nie wprowadzono żadnych szybszych
trybów transmisji, lecz przede wszystkim usprawniono dotychczasowe osiągnięcia
nowinką wprowadzoną w tym standardzie jest technologia S.M.A.R.T. Tryb ten na
rynku zaistniał w 1996 roku.
ATA-4 - kolejna, wprowadzona w 1997 roku specyfikacja interfejsu ATA.
Nowością jest pojawienie się mechanizmu korekcji i detekcji błędów nazwanego
CRC - Cyclical Redundancy Check (tzw. transmisja nadmiarowa). Specyfikacja
ta definiuje nowy tryb komunikacji Ultra DMA Mode 2 (UDMA/33).
ATA-5 - Specyfikacja wprowadzona w roku 1999. Dodano dwa nowe tryby DMA.
Pomiędzy kable sygnałowe wpleciono kable uziemione chroniące przed zakłóceniami.
ATAPI - Standard utworzony specjalnie z myślą o urządzeniach pamięci masowej
innej niż dyski twarde, ale podłączonych do zwykłych portów ATA/IDE. Urządzenia
te to min. CD-ROM, DVD-ROM, ZIP, itd.
FAST ATA - interfejs bardzo podobny do EIDE tylko wprowadzony przez inną firmę.
Wprowadzony w 1994 roku.
FAST ATA-2 - Praktycznie to samo co FAST ATA, dodano obsługę trybu Multiword
DMA Mode 2. Wprowadzony w 1995 roku.
Ultra ATA - inaczej Ultra ATA/33, to samo co ATA-4 (UDMA/33).
Ultra ATA/66 - inaczej Ultra DMA/66, to samo co ATA-5
Ultra ATA/100 - wprowadzony przez firmę Quantum w 2000 r. (UDMA-5,
ATA- 5).
CRC - Cyclical Redundancy Check
CRC jest metodą obliczania krótkich wartości kontrolnych dla długich
ciągów bitów, pozwalających na wykrycie błędów powstałych w nich
podczas transmisji przez sieć lub zapisu na nośniki. Niewielkie CRC
jest dołączane do przesyłanych danych, tak by odbiorca mógł
powtórzyć obliczenia dla otrzymanej przesyłki i porównać wynik
z załączonym.
CRC jest resztą z binarnego dzielenia ciągu danych przez relatywnie
krótki dzielnik, zwany generatorem lub wielomianem CRC.
W praktyce stosuje się najczęściej wielomiany o długości 17
lub 33 bity, dające odpowiednio wyniki 16 (CRC-16)
i 32 bitów (CRC-32).
Metoda ta jest szeroko wykorzystywana do wykrywania błędów
przypadkowych, ale nie nadaje się do ochrony integralności
w zastosowaniach kryptograficznych. CRC jest relatywnie łatwe
do sfałszowania, tj. jest możliwe takie poprawienie ciągu bitów
by dawał on w wyniku poprawne CRC.
S.M.A.R.T. - przewidywanie awarii dysku
S.M.A.R.T. oznacza Self Monitoring And Reporting Technology (technologia
samoczynnego monitorowania i powiadamiania). Jest to uporządkowana metoda
wykonywania przez napęd dyskowy analiz statystycznych własnego funkcjonowania,
dokonywania na tej podstawie inteligentnych przewidywań co do zbliżających się
awarii oraz powiadamiania o tym użytkownika. S.M.A.R.T. wykorzystuje nadmiarową
moc obliczeniową procesora napędu dyskowego i prowadzi analizę rozmaitych
parametrów operacyjnych, takich jak stopa błędów, liczba powtórzeń, częstość
realokacji uszkodzonych sektorów, cykle startu-stopu itd. Informacja ta jest zbierana
i poddawana obróbce statystycznej na podstawie znanych charakterystyk operacyjnych
sprawnego dysku. W ten sposób uzyskuje się możliwość ostrzeżenia z wyprzedzeniem,
że zbliża się awaria dysku.
Chociaż obecnie nie ma sposobu, by technologia S.M.A.R.T. pozwoliła przewidzieć nagłą
awarię dotychczas zupełnie sprawnego dysku, to jednak zapewnia ona skuteczne
ostrzeganie o zbliżającej się awarii w około 30 do 40 procentach przypadków.
Standard SCSI
SCSI (Small Computer System Interface) wykorzystywany do sterowania napędów
dysków twardych, stanowi raczej standard szyny niż standard intefejsu dysków
twardych. Jeśli w komputerze PC zostanie zainstalowany sterownik SCSI (a raczej
adapter SCSI), to otrzymamy nową magistralę do której będzie można podłączyć
kilka urządzeń.
Poprzez SCSI można połączyć ze sobą 8 inteligentnych jednostek w tzw.
konfiguracji łańcuchowej. W konfiguracji łańcuchowej wszystkie linie interfejsu
są wspólne dla wszystkich urządzeń, a kabel łączy urządzenie pierwsze z drugim,
drugie z trzecim, trzecie z czwartym, itd.
Standard SCSI może pracować w dwóch trybach: synchronicznej transmisji danych
i w trybie transmisji asynchronicznej. Tryb asynchroniczny polega na każdorazowym
żądaniu transmisji sygnałem REQ i po przyjęciu bajtu danych potwierdzeniu
wykonanej operacji impulsem ACK. Fakt, iż każdy przesłany bajt danych wymaga
generowania pary impulsów REQ i ACK, powoduje spowolnienie szybkości
transmisji (ok. 3 – 4 MB/s).
W trybie synchronicznym transmisja może odbywać się bez każdorazowego
potwierdzania pojedynczego bajtu danych za pomocą impulsu ACK - powoduje to
przyspieszenie transmisji. Bajty danych przesyłane są w takt impulsów REQ o czasie
powtarzania 200 nanosekund (czyli z częstotliwością 5 MHz), co pozwala na
transmisję z szybkością 5 MB/s.
Tryb FAST, zwany inaczej SCSI-2 jest odmianą trybu synchronicznego
z czasem
powtarzania impulsów REQ równym 100 nanosekund (z częstotliwością
10 MHz).
Szybkość transmisji osiąga tu więc wartość 10 MB/s.
W trybie Ultra SCSI szyna danych taktowana jest zegarem o
częstotliwości 20 MHz,
a w trybie Ultra SCSI-2 z częstotliwością 40 MHz.
Interfejs SCSI posiada 8-bitową szynę danych DB0-7 oraz linię bitu
parzystości DBP,
za pomocą których następuje transmisja informacji pomiędzy
sterownikiem
a dołączonymi urządzeniami. Sygnały na wszystkich liniach interfejsu
generowane są
w logice ujemnej, tzn. aktywnym sygnałem na linii jest „zero” logiczne.
Nowy standard interfejsu zwany Wide SCSI posiada 16-bitową szynę
danych
DB0-15, co pozwala zwiększyć dwukrotnie szybkość transmisji. Kabel
łączący urządzenia pracujące w tym standardzie posiada 68 linii.
Stosując SCSI, można tworzyć układy zbliżone do sieci lokalnej,
pozwalające
na wspólne korzystanie z droższych urządzeń peryferyjnych (np.
drukarki laserowe,
zewnętrzne stacje dysków twardych, skanery, CD-ROM).
Dysk twardy łączony jest kablem interfejsu SCSI ze sterownikiem
umieszczonym
w gnieździe PC Slot. Karty sterowników SCSI posiadają własny BIOS,
oznacza to
iż sterowniki te nie korzystają z procedur obsługi dysku, zawartych w
BIOS-ie płyty
głównej, dzięki temu parametry dysków SCSI nie są ograniczane przez
BIOS płyty
głównej.
Złącze ISA
50-stykowe wewnętrzne
złącze SCSI
34-stykowe złącze
sterownika dysków
elastycznych
zespół zworek wyboru
numeru urządzenia SCSI
i kontroli bitu parzystości
wybór kanału
DMA
wybór poziomu
przerwania IRQ
adres portu
wejścia/wyjścia
adres BIOS-u
zewnętrzne
złącze SCSI
FDC
BIOS
mikro-
procesor
kontroler
SCSI
Karta posiada dwa 50-stykowe złącza interfejsu SCSI: wewnętrzne – do łączenia
z dyskami twardymi zainstalowanymi wewnątrz komputera i zewnętrzne służące do
podłączenia innych urządzeń (lub dodatkowych dysków twardych). Przed
zainstalowaniem karty sterownika w wolnym gnieździe ISA, należy ustawić na niej
pewne parametry konfiguracyjne:
• adres portu w przestrzeni adresowej I/O,
• adres BIOS-u,
• numer urządzenia (dla sterownika zarezerwowany jest numer 7),
• numer kanału DMA,
• numer poziomu przerwania IRQ.
Dysk twardy również wymaga skonfigurowania: przede wszystkim ustawić należy
numer twardego dysku (od 0 do 6, numer 7 zarezerwowany jest dla sterownika), który
jest jednocześnie priorytetem urządzenia pracującego w systemie SCSI, ponadto za
pomocą specjalnej zworki należy ustawić kontrolę parzystości lub zrezygnować z niej.
Zworka "P" pozwala ustawić parzystość; zworki "4 2 1" służą do ustawienia numeru
urządzenia (numer urządzenia ustawiany jest w kodzie dwójkowym). Kabel interfejsu
nie powinien być dłuższy niż 6 m. Większość produkowanych obecnie urządzeń
i sterowników jest kompatybilna ze standardem SCSI-2. Ten nowy ulepszony standard
przy transmisji synchronicznej (z wykorzystaniem dodatkowego mechanizmu zwanego
Fast-SCSI) pozwala napędom na pracę z szybkością 10 MB/s.