Interfejs SCSI

Standard SCSI definiuje model lokalnej szeregowej magistrali I/O pozwalającej na jednoczesne podłączania wielu urządzeń o różnych funkcjach i charakterystyce (np. skaner, drukarka, streamer i dysk twardy). Każde urządzenia SCSI podpięte do magistrali jest równorzędne -- nie można wskazać urządzenia zarządzającego magistralą. Oznacza, że każde z urządzeń współpracujących ze SCSI musi posiadać własną wbudowaną logikę (zwaną adapterem) umożliwiający mu uzyskanie dostępu do magistrali i komunikowanie się z innymi urządzeniami. Standard SCSI określa sposób przesyłu danych i rozkazów po magistrali oraz zestaw operacji, który musi znać każdy adapter aby poprawnie współpracować z magistralą. Takie podejście pozwala na podłączenie do magistrali praktycznie dowolnego urządzenia o ile tylko wyposażone jest w stosowny adapter. Komputer, który z punktu widzenia użytkownika zawsze jest urządzeniem szczególnym, dla SCSI jest takim samym urządzeniem jak dysk, czy skaner. Adapter zainstalowany w komputerze określa się mianem host-adaptera. W przypadku systemów komputerowych wyższej klasy, zazwyczaj magistrala SCSI pełni rolę głównej magistrali I/O i jest zinetgrowana z płytą główną. W tańszych rozwiązaniach host-adapter'y realizuje się w postaci kart (np. PCI).

Figure: Magistrala SCSI z podłączonymi urządzeniami
\includegraphics[width=\textwidth]{scsi.eps}

Działanie magistrali SCSI opiera się na wymianie rozkazów i danych pomiędzy dwoma dowolnymi urządzeniami podłączonymi do magistrali. Najkrócej tę współpracę można opisać posługując się analogią do modelu klient-serwer. Klient wysyła żądanie do serwera; serwer reaguje odesłaniem odpowiedzi. Adapter zainstalowany w komputerze wysyła do dysku twardego żądanie przesłania określonej porcji danych. Dysk odczytuje z talerzy odpowiednie dane i przesyła je magistralą do adaptera.

Typowa operacja wymiany danych rozpoczyna się od przejęcia magistrali przez inicjatora. Inicjatorem jest host-adapter lub urządzenie pragnące się skontaktować z host-adapter'em 1. Po uzyskaniu dostępu do magistrali, inicjator adresuje do urządzenia docelowego polecenie SCSI. Jeśli urządzenie docelowe może natychmiast zrealizować żądanie (np. dane znajdują się w cache'u dysku twardego), transmisja odpowiedzi następuje natychmiast. W przeciwnym wypadku (np. konieczne jest odczytanie danych z dysku), urządzenie docelowe odłącza się od magistrali do czasu gdy będzie gotowe do odpowiedzi. W tym czasie magistrala pozostaje wolna i może być wykorzystana przez inne urządzenia. Po jakimś czasie urządzenie docelowe przejmuje magistralę, ponownie łączy się z swoim inicjatorem i przesyła żadaną odpowiedź. Po zakończeniu transmisji urządzenie docelowe nadaje komunikat statusu operacji i odłącza sie od magistrali. Jak widać do wykonania pojedynczej transmisji danych konieczne jest przesłanie magistralą od sześciu do ośmiu rozkazów, których łączny czas trwania może być większy od czasu transmisji 2kB danych.



Subsections
Pawel Topa 2003-12-12