SCSI Plug and Play

Adrian Bente

Aparitia spectaculoasă pe piată a sistemului de operare Windows 95 a adus, ca noutate, o implementare izbutită a tehnologiei "Plug and Play" (prescurtat PnP). Începând cu mijlocul anului 1995, majoritatea producătorilor de computere, echipamente si periferice au înteles impactul acestei tehnologii, care se adresează în primul rând utilizatorilor neprofesionisti. Maturizarea specificatiilor PnP pentru componentele hardware a fost un proces destul de anevoios, dar sprijinul din partea celor doi giganti, Microsoft si Intel, a fost de bun augur.

Conceptul de Plug and Play se referă la posibilitatea unui utilizator cu putine cunostinte tehnice despre computere să instaleze sau să demonteze (permanent sau dinamic) componente hardware fără prea mult efort. Astfel, cu ajutorul tehnicilor de identificare si a schemelor de configurare implementate în hardware si în sistemul de operare, utilizatorul nu mai trebuie să-si pună problemele de găsire a semnalelor IRQ libere sau a porturilor I/O neocupate. Acest lucru este preluat de sistemul de operare care va enumera identitătile si capabilitătile dispozitivelor atasate sistemului, alocând pentru acestea resursele potrivite. În principiu, adăugarea unui nou dispozitiv computerului nu ar trebui să necesite decât desfacerea carcasei, montarea dispozitivului, închiderea la loc a cutiei si pornirea computerului. Beneficiile tehnologiei PnP sunt evidente: usurinta în folosire, acceptarea computerelor pe o piată mai largă si reducerea costurilor pentru suport tehnic.

Ce se întâmpla până acum când un utilizator vroia să instaleze o extensie computerului personal? În primul rând, dacă respectivul avea ceva cunostinte despre resursele unui computer si modul de alocare, trebuia să configureze placa cu ajutorul unor switch-uri sau jumper-e sau, în cel mai bun caz, cu ajutorul unui program de configurare livrat împreună cu placa de extensie. În general, după montarea plăcii în computer, sistemul de operare folosit nu avea nici o idee despre ce anume se montase în computer, utilizatorul trebuind să instaleze manual noi driver-e sau programe asociate cu extensia respectivă. Pentru un utilizator experimentat nu ar fi trebuit să existe probleme, dar nici acestia nu erau scutiti de neplăceri. În primul rând, conflictele de adrese sau întreruperi erau greu de detectat. În lipsa unor programe de identificare a hardware-ului care nici ele nu aveau întotdeauna succes, utilizatorului îi rămânea să încerce alte porturi, întreruperi sau canale DMA, până când extensia respectivă functiona.

Instalarea unei magistrale SCSI era o încercare destul de grea si pentru un utilizator experimentat. Iată în continuare etapele care se urmăreau:

1. Configurarea adaptorului SCSI prin aflarea unor resurse libere (porturi I/O, canale DMA, adrese de memorie) ce puteau fi suportate de controlerul SCSI. Uneori, desi adaptorul era configurat corect, puteam avea surpriza ca el să nu functioneze, din cauza unor deficiente de "shadow" a BIOS-ului.

2. Pregătirea perifericelor SCSI pentru montarea în computer. Dispozitivele de tip SCSI sunt însotite de obicei de 5 până la 20 de jumper-e cu care se setează anumiti parametri. Cel mai important este ID-ul, sau numărul de identificare a dispozitivului pe bus-ul SCSI. Acest identificator are valori între 0 si 7 pentru SCSI pe 8 biti si între 0 si 15 pentru Wide SCSI. Important este ca numărul să nu fie duplicat pe acelasi bus, deci fiecare dispozitiv (incluzând adaptorul) trebuie să aibă un unic ID. S-au definit câteva reguli de alocare a identificatorului, cum ar fi ca adaptorul să aibă întotdeauna ID=7 iar hard-disk-ul de boot să aibă ID=0. De cele mai multe ori, problema conflictului apărea la instalarea unui nou periferic, pentru că dacă adaptorul sau driver-ul sistemului de operare nu raporta ID-urile dispozitivelor existente, era destul de greu ca aceste indicatii să poată fi citite prin intermediul pozitiei jumper-ilor. Un conflict de identificator nedetectat putea avea ca repercusiuni functionarea anormală a dispozitivelor, iar uneori computerul nu mai încărca sistemul de operare.

3. Configurarea terminatiei pentru magistrala SCSI. În mod asemănător cu un cablu de retea coaxial, bus-ul SCSI trebuie să aibă la extremităti niste rezistori numiti "terminatori". Terminatorul este deosebit de util pentru că tine liniile magistralei pe "high" astfel încât tranzitia să poată fi imediat sesizată. Terminatorii pot fi pasivi (rezistori cuplati printr-o diodă la 5V) sau activi, acestia din urmă fiind preferabili dacă am un cablu SCSI lung sau folosesc transferuri "fast" pentru că ei fac si o amplificare a semnalului (în acelasi timp sunt usor de activat/dezactivat). Pentru configurarea terminatiei cablului SCSI existau mai multe posibilităti, în functie de tipul dispozitivelor SCSI pe care le posedam: interne sau externe, cu sau fără terminator inclus. Dacă aveam de instalat doar dispozitive interne, care în general aveau terminatori inclusi ce se puteau scoate sau dezactiva, aveam grijă ca adaptorul SCSI (ce include obligatoriu terminatori) să asigure terminarea unui capăt al cablului, în timp ce la celelalte dispozitive se dezactivau (scoteau) terminatoarele cu exceptia dispozitivului din capătul opus. Dispozitivele externe nu includ de obicei terminatoare, în locul lor folosindu-se terminatoare externe ce se pot monta într-o mufă SCSI. Dacă aveam atât dispozitive interne cât si externe, terminatorul adaptorului (ce se afla în acest caz la mijlocul bus-ului) trebuia dezactivat. Această problemă părea a fi cea mai enervantă, mai ales când foloseam dispozitive externe care se mutau între mai multe computere: plăcile de SCSI mai vechi aveau terminatorii sub formă de punti de rezistori ce se puteau scoate sau monta la loc, acest lucru ducând la desfacerea carcasei computerului de fiecare dată când trebuia să modific terminatia bus-ului SCSI. Problema aceasta a fost rezolvată initial prin comanda terminatorilor prin software (din BIOS-ul adaptorului).

4. Realizarea legăturilor între dispozitive, deci implementarea fizică a bus-ului SCSI. În cazul dispozitivelor interne nu existau prea multe probleme, cablurile fiind sub formă de panglică de 50 sau 68 de fire iar cuplele având cheie nu se puteau monta decât într-un singur mod. Dar mufele SCSI externe sunt de cel putin 3 tipuri si au existat mai întotdeauna probleme în a găsi cablurile si terminatoarele externe potrivite. Cele mai ieftine adaptoare aveau mufe externe asemănătoare cu iesirea de imprimantă a computerului (deci DB 25) ceea ce putea duce la grave confuzii. Un alt tip larg răspândit de mufă a fost "Centronics 50", folosit pentru SCSI-1 si SCSI-2. Cele mai recente mufe sunt de tip "Micro-D" cu 50 sau 68 de pini, numite uneori "high-density" si asigură o cuplă de o calitate mai bună.

5. În final, instalarea driver-elor si asigurarea functionalitătii magistralei SCSI pentru sistemul de operare folosit. Driver-ele pentru SCSI erau incluse uneori direct în sistemul de operare (cazul sistemelor sofisticate de tip UNIX sau NT) sau se livrau cu adaptorul SCSI (cazul DOS-Windows). Aceste drivere puteau pune probleme prin ocuparea memoriei de bază (unele nu puteau fi încărcate peste 640 K) sau prin diverse incompatibilităti software. Uneori era necesară ajustarea unor parametri din BIOS-ul adaptorului SCSI, de exemplu anumite periferice mai vechi se puteau bloca dacă primeau semnalul de initiere a transferului Fast-SCSI de la adaptor.

Iată deci un algoritm destul de complicat, care a descurajat de multe ori utilizatorii neexperimentati. Vom vedea în continuare cum aceste probleme se pot rezolva prin tehnologiile de tip Plug and Play.

Enumerarea etapelor de instalare a unei magistrale SCSI într-un computer duce la două aspecte din care trebuie privite facilitătile PnP. Unul ar fi eliminarea configurării manuale a adaptorului SCSI, deci implementarea pentru acesta a specificatiilor PnP ISA sau PCI, iar al doilea ar fi înlăturarea problemelor puse de atasarea dispozitivelor.

Primul aspect este clasic pentru instalarea unei plăci de extensie PnP într-un computer. Despre PnP s-a scris destul de mult si îmi voi permite să amintesc doar câteva caracteristici mai importante, dezvoltând mai pe larg conceptele Plug and Play ce se referă la magistrala SCSI. Pentru a avea un sistem Plug and Play în totalitate sunt necesare trei componente: un computer (placă de bază + BIOS) PnP, plăci de extensie PnP si un sistem de operare PnP. Lipsa caracteristicilor de tip PnP din oricare cele 3 componente duce ca sistemul să fie doar partial Plug and Play, totusi functional. Tranzitia către sisteme Plug and Play s-a făcut treptat, în timp, cum putem vedea în diagrama „Usurinta în exploatare si configurare".

Un adaptor SCSI de tip Plug and Play trebuie să se identifice hardware ca PnP, să fie prevăzut cu resurse implicite si cu alternative pentru rezolvarea conflictelor de IRQ, DMA, porturi I/O sau memorie si să permită identificarea conflictelor prin folosirea sistemului de operare împreună cu driver-e perfectionate.

Cele mai spectaculoase îmbunătătiri de tip PnP sunt aduse dispozitivelor periferice de tip SCSI. Într-un PC 95, utilizatorul poate monta un nou periferic SCSI iar bus-ul se va ajusta automat. Interventia utilizatorului trebuie să fie cât mai simplă cu putintă. Specificatiile SCSI Plug and Play enumeră câteva modificări si cerinte cu privire la echipamentele SCSI pentru compatibilitatea Plug and Play.

În primul rând, s-a introdus suportul pentru configurarea automată a identificatorului, prin protocolul SCAM (SCSI ID Configuration AutoMatically). Acest protocol permite unui dispozitiv "master" (initiator) să aloce numere de identificare pentru celelalte periferice ale magistralei SCSI. SCAM este compatibil si cu perifericele clasice la care se configurează ID-ul prin jumper-e. Un dispozitiv SCAM contine un identificator clasic (sau hard) pentru a functiona cu sistemele clasice dar poate în acelasi timp să ofere un ID soft, configurat cu protocolul SCAM. Pentru sistemele fără PnP, perifericele de tip SCAM trebuie să ofere identificatorii impliciti.

Cerinta unui anumit identificator pentru dispozitivul de boot este rezolvată prin capabilitatea adaptorului de a accesa prin BIOS orice dispozitiv. Spre exemplu, în ultimele variante de BIOS ale controlerelor Adaptec, pot seta după care anume dintre dispozitive să încarc sistemul de operare.

Există două nivele SCAM pentru periferice, primul fiind mai usor de implementat prin câteva schimbări ale firmware-ului. Un bus SCSI cu nivel 1 SCAM poate contine un singur initiator, care trebuie să folosească un identificator hard. În timpul detectiei identificatorilor, perifericele clasice au prioritate, întrucât ID-ul acestora nu poate fi schimbat. În cazul detectării unui acelasi identificator, protocolul SCAM va duce la schimbarea soft a ID-ului perifericului ce suportă SCAM. Driver-ul din OS trebuie de asemeni să suporte SCAM, pentru că de exemplu un dispozitiv SCSI poate fi pornit mai târziu prin comanda de "power up", iar autoconfigurarea rămâne în sarcina sistemului de operare. O magistrală SCSI cu nivel 2 SCAM poate contine mai mult de un initiator care la rândul lui poate folosi identificator hard sau soft. Configurarea unei magistrale SCSI la "run-time" cere ca driver-ul să mentină tot timpul alocările ID curente. Dacă toate dispozitivele SCSI sunt de nivelul 2 SCAM (care implică si modificări ale hardware-ului), orice dispozitiv poate fi pornit/oprit independent. Acest lucru facilitează procedura de "hot-plugging" (confundată uneori cu cea de "live insertion"), în care utilizatorul poate atasa un dispozitiv (extern) computerului fără a-l opri.

Rezolvarea configurării cablurilor este legată de cea a terminatiei bus-ului SCSI. Solutia este simplă si constă în implementarea pe adaptorul SCSI a unui terminator automat. Acest tip de terminator va sesiza dacă adaptorul este sau nu în capătul bus-ului si se va activa în acest caz. Terminatia automată este utilă mai ales la adaptoarele Wide SCSI, unde pot folosi simultan dispozitive pe 8 si 16 biti si unde terminatia este împărtită pe două componente, "low" si "high". Dispozitivele interne nu trebuie să contină terminatoare. În loc, se va folosi un teminator intern, eventual pass-through (deci care contine si conector), montat în capătul cablului. Pentru Plug and Play se recomandă folosirea doar a terminatoarelor active. În cazul dispozitivelor externe există câteva recomandări: folosirea doar a mufelor de tip Micro-D (pentru a scăpa de grija căutării cablurilor cu diverse cuple), fiecare dispozitiv să aibă două mufe (una pentru intrare si una pentru iesire), iar la dispozitivul din capătul lantului SCSI se va monta un terminator extern activ. Există si variante de dispozitive externe ce contin terminatoare automate.

S-au definit, de asemeni, si câteva recomandări pentru siguranta si usurinta în exploatare a dispozitivelor SCSI. Spre exemplu, dispozitivele ce contin mediu amovibil (unităti CD-ROM, magneto-optice sau de bandă) pot implementa ejectarea prin software. Utile sunt si capabilitătile de "power management", ce duc la reducerea consumului si a zgomotului prin oprirea/pornirea dispozitivelor atunci când este nevoie.

Iată deci cum ar trebui să arate scenariul instalării unei magistrale SCSI într-un PC 95 Plug and Play: se montează adaptorul si perifericele interne în computer, se introduce cablul intern si/sau extern împreună cu terminatorul din capăt închizându-se "lantul" SCSI, se închide carcasa si se porneste computerul. Windows 95 detectează adaptorul si cere driver-ele din kitul de instalare sau cele prevăzute de fabricantul controlerului. Se restartează sistemul. Orice nou periferic pe care îl atasez lantului SCSI va fi în mod automat detectat si configurat. Asa e mult mai simplu!


(C) Copyright Computer Press Agora