Arystokracja masowa

SCSI – magiczne słowo kojarzące się większości z nas z urządzeniami o ponadprzeciętnej wydajności, niezawodności i… cenie. Aby skorzystać z określanej tym mianem technologii, należy wyposażyć komputer w odpowiedni kontroler. Czym różnią się od siebie dostępne modele?

Dla większości domowych użytkowników komputerów PC pojęcie SCSI budzi raczej egzotyczne niż praktyczne skojarzenia. Jednak w przypadku osób zawodowo zajmujących się przetwarzaniem dużych zestawów informacji czy też po prostu wymagających od komputera niezawodności i maksymalnej wydajności sytuacja zmienia się diametralnie. Niezależnie od typu obrabianych danych konfiguracja wykorzystywanych do tego celu komputerów niemal zawsze zawiera kartę SCSI oraz współpracujące z nią urządzenia. W przypadku maszyn pracujących w środowiskach sieciowych korzystanie ze standardu SCSI jest już niemal regułą. Co decyduje o jego dość specyficznych zastosowaniach?

Już sama nazwa – Small Computer System Interface (interfejs dla małych systemów komputerowych) – może wprowadzać pewne zamieszanie w postrzeganiu identyfikowanej przez nią technologii. Podwaliny SCSI stworzyły firmy NCR oraz Shugart Associates, które w odpowiedzi na konieczność ustandaryzowania metod komunikowania się komputerów z podłączanymi do nich urządzeniami rozpoczęły prace nad uniwersalnym interfejsem.

SCSI to mechanizm podłączania i komunikowania się z komputerem urządzeń nie korzystających z magistrali systemowej (np. ISA lub PCI). Już w samych założeniach odróżniał się od innych, stosowanych powszechnie interfejsów (np. COM, IDE), których rola sprowadzała się do funkcji prostych portów komunikacyjnych, pozbawionych “inteligencji” i angażujących CPU w trakcie wymiany informacji. Podstawową ideą działania SCSI jest korzystanie z niezależnej szyny komunikacyjnej, przypominającej małą sieć komputerową, z jednym wydzielonym “serwerem” – realizującym samodzielnie operacje wejścia/wyjścia zainstalowanym w komputerze kontrolerem głównym (SCSI host bus adapter) oraz pewną grupą kontaktujących się z nim urządzeń. W skład każdego z nich wchodzi moduł kontrolera dostępowego (SCSI controller), odpowiedzialny za wymianę danych z szyną. Aby wymiana mogła odbywać się bezkonfliktowo, poszczególnym urządzeniom przydziela się różne, identyfikujące je “adresy sieciowe” (SCSI ID).

n.d. – nie dotyczy (1) poczynając od standardu Ultra2 zrezygnowano z 8-bitowej wersji interfejsu

Istotną właściwością SCSI jest sposób porozumiewania się podłączonych do szyny urządzeń. Kontaktują się one ze sobą za pomocą ściśle określonego zestawu tzw. wspólnych komend sterujących (Common Command Set), wykorzystywanych zarówno do sterowania procesem transmisji danych, jak i wymiany komunikatów. Taki sposób sterowania pracą interfejsu umożliwił konstruowanie “inteligentnych”, na bieżąco optymalizujących swoje działanie urządzeń.

Odrobina historii

Pierwsza wersja standardu, znana jako SCSI–1 (lub X3.131-1986), została oficjalnie zatwierdzona przez ANSI w 1986 r. – w chwili gdy już od dawna trwały prace nad jego następcą. Tak duże tempo nie było bynajmniej nieuzasadnione. SCSI-1 udostępniał wprawdzie stosunkowo duże możliwości – szczególnie w porównaniu ze stawiającym pierwsze kroki standardem IDE – ale bardzo szybko okazało się, że przepustowość interfejsu nie wystarcza, w przypadku gdy w systemie pracuje większa liczba urządzeń. Problemy stwarzała także elastyczność pierwszej wersji specyfikacji SCSI, a raczej niefrasobliwość producentów sprzętu – implementowane w poszczególnych urządzeniach podzbiory rozkazów sterujących często nie były ze sobą zgodne. Powodowało to dość duże kłopoty z kompatybilnością.

Zatwierdzona w 1994 r. specyfikacja SCSI-2 wniosła szereg usprawnień. Przewidziany pierwotnie wyłącznie jako interfejs dla dysków twardych SCSI w swojej nowej postaci wzbogacony został listą rozkazów umożliwiających korzystanie zarówno z innych rodzajów pamięci masowej (np. napędów CD-ROM), jak i np. skanerów wymagających do tej pory dedykowanych im sterowników. Wśród dodatkowych komend sterujących znalazły się również rozkazy diagnostyczne umożliwiające nadzorowanie stanu urządzeń i szyny oraz tzw. polecenia dialogowe (Message Commands) wykorzystywane w komunikacji między urządzeniami.

SCSI-2 to znacznie więcej niż samo rozszerzenie zbioru stosowanych komend. Bardzo istotną zmianą było upowszechnienie synchronicznego przesyłania danych, które pozwoliło na pełne wykorzystanie możliwości przepustowych magistrali. Aby zachować kompatybilność z wcześniejszą wersją specyfikacji SCSI i nie zmuszać użytkowników do rezygnacji z wcześniej wyprodukowanych urządzeń, zdecydowano się jednak na pozostawienie trybu asynchronicznego na potrzeby przesyłania komend sterujących.

W ramach SCSI-2 zwiększono częstotliwość taktowania szyny (tzw. Fast SCSI, 10 MHz), umożliwiając w ten sposób przesyłanie danych z maksymalną szybkością ok. 10 MB/s (9,54 MB/s). Wprowadzono także tzw. szeroką magistralę (Wide Bus) – 16- lub 32-bitową (ta ostatnia nie zdobyła dużej popularności). Rozszerzenie szyny SCSI zwiększyło szybkość przesyłania danych przy tej samej częstotliwości taktowania – w przypadku złącza 16-bitowego (Fast Wide SCSI-2) dane mogły być transmitowane nawet z prędkością 20 MB/s! Zastosowanie dodatkowych linii sygnałowych pozwoliło również na zwiększenie liczby obsługiwanych jednocześnie urządzeń – zależnie od wersji mogło ich być od tej pory 16 lub 32 (razem z kontrolerem głównym). Pojawiła się również nowa nomenklatura – “konwencjonalne”, 8-bitowe kontrolery oraz złącza nazywano odtąd “wąskimi” (Narrow).

Inteligentna wielowątkowość

Niestety, komunikacja z tak dużym zbiorem “współpracowników” (15 lub 31 urządzeń) stała się nieco utrudniona. Ponieważ w przypadku maksymalnego obciążenia szyny czas oczekiwania poszczególnych urządzeń na wymianę informacji z kontrolerem głównym mógł się znacznie wydłużyć, w ramach SCSI-2 wprowadzono zaawansowane mechanizmy pracy wielowątkowej (Multithreading, patrz ramka: “Wielowątkowość w SCSI”) oraz kolejkowania rozkazów (Command Queuing). Obie technologie pozwoliły na zwiększenie wydajności całego systemu – dzięki równoległej obsłudze zleceń wejścia/wyjścia wielozadaniowy system operacyjny nie jest blokowany wąskim gardłem warstwy komunikacyjnej. Pod warunkiem, oczywiście, że programowy sterownik kontrolera będzie sprawnie pośredniczył pomiędzy oboma wielozadaniowymi/wielowątkowymi środowiskami (system operacyjny/pamięć masowa).

Wielowątkowość SCSI oraz kolejkowanie rozkazów ułatwiają również optymalizację pracy samych urządzeń – w przypadku np. dysków twardych przetwarzanie przechowywanych w buforze poleceń realizowane jest nie sekwencyjnie, a za pomocą metody tzw. najkrótszego przebiegu. Oznacza to, że “elektronika” dysku na bieżąco kontroluje zlecane operacje wejścia/wyjścia i wykonuje je w kolejności gwarantującej najlepszą wydajność urządzenia (minimalizacja ruchów głowic i skrócenie czasu oczekiwania na informację).

INFO
Grupa dyskusyjna
Pytania, uwagi i komentarze do artykułu można umieścić na grupie dyskusyjnej #
Internet:
Techniczny Komitet Standardu SCSI:
http://www.t10.org/
SCSI Trade Association:
http://www.scsita.org/
Informacje o działaniu SCSI:
http://www.pctechguide.com/04disk2.htm
Sterowniki dla Linuksa:
http://ldh.datapower.com/
Na CHIP-CD w dziale Hardware | Kontrolery SCSI znajdują się sterowniki prezentowanych urządzeń
Więcej:bezcatnews