Laboratorul 1

Sisteme de înregistrare a datelor pe suport magnetic

 

5.1. Conectarea mediilor de stocare a datelor - continuare

Controller-e ESDI

Acest tip de controller (Enhanced Small Device Interface) a fost realizat de firma Maxtor, fiind superior tipului descris anterior, deoarece se pot obtine rate de transfer controller-harddisk de ordinul a 10-15 MB/s si chiar la 24 MB/s pentru controller-ele superioare, de tipul Super ESDI. Rata de transfer controller-RAM este cuprinsa intre 850 si 900 de KB/s, iar discul prezinta între 32 si 38 sectoare per pista.

Fata de controller-ele ST, ESDI dispun de o "inteligenta proprie", nemaifiind nevoie de un schimb intens de informatii de control pentru operatiile de citire/scriere, schimb care s-ar fi desfasurat, în mod normal, între controller si harddisk. Acest flux de comenzi si informatii de control fiind mai mic, se obtin rate de transfer superioare tipului ST. Totodata, unitatea de codare-decodare EDU (Encoding-Decoding Unit) a fost mutata pe unitatea de disc, prin aceasta obtinându-se o micsorare a cablurilor de legatura între controller si EDU. Cum pe acest traseu semnalele circula în format analogic, ele pot suferi degradari sau alterari, fapt care duce la aparitia de erori la scriere/citire. Cu cât traseul de legatura EDU-controller este mai mic, cu atât mai mult scade acest risc.

În plus, la controller-ele ESDI se foloseste o memorie tampon pentru transmisia datelor, fapt care duce la o crestere a securitatii datelor, inclusiv la cresterea vitezei de transmisie. Acest controller cuprinde si mecanisme de control si corijare a erorilor.

Controller-e SCSI

Datorita diverisitatii tipurilor de periferice si a unitatilor de stocare oferite pe piata, s-a simtit nevoia unui tip de interfata care sa poata gestiona cât mai multe dintre acestea, deci o interfata orientata spre sistem (spre deosebire de ST si ESDI, care erau interfete orientate spre dispozitiv). O astfel de interfata universala este SCSI (Small Computer System Interface), termen a carui pronuntie este la fel cu cea a cuvântului "scuzzy" (engl.). Acest sistem nu este un controller propriu-zis, ci mai degraba o arhitectura de magistrala.

Acest controller lucreaza ca interfata I/O paralela pe 8 biti, având fata de precedentele un spor deosebit de viteza. Pentru prima data, conceptul de realizare a interfetei sistem-unitate de stocare a fost schimbat, prin mutarea si integrarea controller-ului propriu-zis în cadrul unitatii de stocare. Legatura dintre controller (si implicit discuri) si sistemul de calcul (microprocesor) a fost realizata prin intermediul unui dispozitiv numit Host-Adapter, cu rolul de preluare a semnalului furnizat de controller - un format special SCSI - si de transformare (adaptare) a acestuia în semnal transportabil pe magistralele sistemului, adica în format ISA, EISA, MCA, VLBus sau PCI (PCI-SCSI, VLBus-SCSI, PCI-FastSCSI etc).

Spre deosebire de controller-ele ST si ESDI, la care se puteau cupla maxim doua unitati, la acest tip se pot cupla pâna la 7 unitati (sau 32 la ora actuala, pentru alte standarde SCSI îmbunatatite): harddisk-uri, unitati CD-ROM, diferite dispozitive periferice ca scanner-e, imprimante, plotter-e etc. Dupa cum s-a spus, host-adapter-ul joaca rolul de magistrala I/O. Pe aceasta magistrala exista 8 (SCSI-1), 16 sau 32 de noduri (pentru versiunile noi de SCSI) si anume un calculator gazda si 7 periferice (respectiv 1 si 15 sau 1 si 31). Fiecarei unitati îi este asignata o adresa proprie, iar datele, pentru a ajunge la destinatie, trec de la o unitate la alta, parcurgând fiecare nod, pâna ajung la dispozitivul destinatie (vezi figura 2.26). Fiecare extensie de periferic are propriul sau host-adapter dedicat.


Fig. 5.1.5. Dispunerea perifericelor la controller-ele SCSI.

Pentru a folosi aceasta magistrala nu este nevoie de acordul controller-ului, deoarece perifericele cuplate vor emite ele însele semnale despre operatia desfasurata (scriere/citire). Exista, desigur, un sistem de prioritati, functie de adresa asignata fiecarui periferic atasat. Toate perifericele primesc indicatoare, în functie de activitatea pe care o desfasoara. Aceste indicatoare de activitate sunt de periferic intiator (emitator-source) si periferic destinatie (tinta-target). La fiecare actiune, perifericul initiator lanseaza o comanda (codificata pe 6 octeti pentru magistralele de 20 biti, sau pe 10 octeti pentru magistralele de 32 de biti) catre un anumit periferic destinatie. Aceasta comanda este emisa într-un format specific, numit CDB (Command Descriptor Block). În cadrul acestui cod de comanda, primii 8 biti realizeaza asa-numitul OpCode (Operating Code = codul operatiei). Exista 256 de comenzi diferite care au ca rezultat actiuni de citire, scriere, formatare etc. Practic, datorita CDB se poate scrie orice driver pentru operatii SCSI, aceasta fiind o interfata orientata spre sistem si un standard de magistrala, netinând cont de echipamentul cuplat (sistemul de calcul este insensibil la perifericul conectat).

Un alt aspect diferit pentru SCSI este felul cum vede acesta organizat discul si anume ca o însiruire de blocuri de date numerotate, nemaitinând seama de cilindri, piste, capete sau sectoare. De aici rezulta un mare avantaj la proiectarea controller-elor, care nu mai sunt construite dedicat pentru anume discuri si deci nu mai sunt supuse unor restrictii de proiectare si constructie.

Magistrala SCSI transfera datele prin doua moduri:

  • modul sincron, cu 5 MB/s, respectiv circa 40 MB/s la standardul SCSI-2;
  • modul asincron, unde transmisia este în functie de lungimea cablului de legatura, ajungand la viteze de transfer de 2-3,3 MB/s.

Controller-ul SCSI executa la fiecare transfer de date pe magistrala paralela un control de paritate, fapt care duce la cresterea securitatii datelor. Acest tip de controller comunica cu perifericele printr-un sistem de instructiuni (CCS - Common Commanded Set), spre deosebire de celelalte controller-e care foloseau pentru comunicatie numai semnale electrice de anumite nivele. Vorbind despre transferul între controller si calculator, apar trei metode utilizate:

  • Programmed I/O (PIO), la care transferul (octeti) se face cu instructiuni IN/OUT prin porturile I/O, cu implicarea totala a microprocesorului;
  • Direct Memory Access, metoda de acces direct la memorie din partea unui periferic-extensie, metoda în care blocuri de date se transfera în/din RAM, fara supraveghere efectuata de microprocesor (implicare din partea microprocesorului la nivel foarte scazut);
  • Bus-mastering DMA; cum un sistem de calcul este alcatuit din mai multe componente interconectate care folosesc sistemele de magistrala drept cai de comunicatie si transferuri de date, vitezele proprii de lucru ale fiecarei componente în parte scad destul de mult, datorita imixtiunilor din partea celorlalte periferice-extensii conectate si care cer acces la magistrale.

Bus-mastering este un sistem de semaforizare si protocoluri, prin care o componenta a sistemului poate deveni master-bus în sistem, exploatând singura si independenta resursele de transport ale magistralei, fara a fi "deranjata" de alte extensii pretendente la magistrala. Bus-masteringul este implementat de o unitate speciala, numita ISP - Integrated System Peripheral, care va aloca postul de master-bus unei extensii de periferic, la cererea acesteia. Bineînteles ca exista un sistem de prioritati, care va scuti sistemul de calcul de unele conflicte de acces la magistrala (vezi figura 2.27).


Fig. 5.1.6. Sistemul de prioritati în cazul bus-masternig.

Aceasta metoda permite unui dispozitiv SCSI sa opereze cu memoria RAM (scrieri/citiri) fara acordul microprocesorului, acesta dedicându-se altor procese. Controller-ele de acest tip sunt recomandate, datorita vitezelor de transmisie sporite. La sfârsitul magistralei SCSI, formata fizic din cablu cu 50 de linii si maximum 6 metri lungime, în perifericele terminale, se monteaza un terminator, constând dintr-un circuit integrat specializat, ori dintr-o rezistenta sau un ansamblu de rezistente, pentru a evita erorile aparute în situatia reflexiilor de semnal. Pe acest cablu datele se transmit numai pe 8 linii, iar o a 9-a linie este destinata transmiterii bitului de paritate.

Controller-ele SCSI sunt ideale în modul de lucru multitasking, deoarece unitatile periferice cuplate pot lucra în paralel la cereri simultane de sarcini (task-uri). Un alt avantaj oferit de SCSI consta în faptul ca odata primita comanda de la microprocesor, controller-ul preia gestiunea task-ului, microprocesorul ocupându-se de alte activitati. Toata electronica si logica de comanda a acestui tip de controller se afla integrata în unitatea de disc SCSI, iar discurile sunt organizate pe baza metodei ZBR (Zone Bit Recording).

Sub-standardul SCSI-2 a aparut datorita problemelor de compatibilitate ridicate de comunicatia sistemelor SCSI cu terminalele (având în vedere multitudinea de modele oferite de producatori). De aceea s-a conceput un controller total independent de terminal. Setul de comenzi uzuale (CCS) a fost refacut complet, eliminându-se anumite comenzi care produceau unele necazuri la transmisia de date. Acest tip recunoaste pâna la 10 periferice cuplate, pentru fiecare dispunând de un set aparte de comenzi (spre deosebire de primul tip SCSI, în care acesta nu facea deosebire între natura diferitelor periferice). Datele se transfera cu viteza de pâna la 50 MB/s, în mod sincron, pe magistrale de 16 biti. Sub-standardul SCSI-3 este un controller I/O pe 16/32 de biti cu rata de transfer de maxim 20 MB/s. Controller-ele SCSI pe 32 de biti au fost dotate cu doua denumiri si anume Fast si Wide (pentru cele care depasesc 20 MB/s, respectiv pentru cele care lucreaza pe 32 de biti).

Pentru Fast SCSI, datele sunt transmise sincron cu o rata de 30-40 MB/s. Este un dispozitiv extrem de rapid, ideal pentru bancile de date în retea, când magistralele I/O devin aglomerate. Wide SCSI transmite de asemenea datele sincron, pe magistrale de 16/32 de biti, la viteze de 35-45 MB/s. Cuplarea este posibila prin cabluri panglica, având 68+1 sau 110 fire. Toate controller-ele SCSI dispun de BIOS încorporat. Discurile coordonate de acest standard prezinta structura înregistrarii de tip RLL - RLL (1,7), RLL (2,7) - si MFM.

Controller-e IDE

Controller-ul IDE (Integrated Device Electronics) mai este cunoscut si sub numele de AT-Bus, deoarece îl pot utiliza numai calculatoarele AT. Aceasta se datoreaza modului specific de lucru pe 16 biti, minimul folosit pentru magistralele de date AT.

Controller-ul IDE împreuna cu EDU se afla integrate pe unitatea de harddisk, pentru cuplarea cu calculatorul fiind necesar un host-adapter, cuplat într-un slot al placii de baza - ca la SCSI (deci placa montata în calculator nu este controller-ul propriu-zis, ci un host adapter). Exista variante constructive atât pentru magistrale ISA, EISA, VLBus, cât si pentru PCI. Host-adapter-ul IDE permite cuplarea a maximum doua unitati harddisk/banda magnetica sau, în cazul controller-elor combinate, la acelasi controller pot fi cuplate si maxim doua unitati floppy disk. Pe aceeasi placa, de obicei un Multi I/O, sunt prezente si interfetele seriale/paralele, adaptorul de jocuri (Game Adapter) etc. Capacitatea maxima a harddisk-urilor care se pot cupla la un astfel de controller este de 528 MB, datorita limitarii impuse de BIOS:

63s x 16c x 1024 x 512 = 528 MB,

unde:

  • s = numarul de sectoare/pista;
  • c = numarul logic de capete;
  • 1024 = numarul de cilindri;
  • 512 = numarul de octeti/sector.

Pentru a elimina aceasta limitare de capacitate, standardul IDE a fost extins la un nou standard care permite între altele cuplarea unor unitati de stocare cu capacitate crescuta. De asemenea, s-a revizuit si numarul de unitati care pot fi cuplate, acesta crescând la 4 (doua harddisk-uri si doua unitati de banda, CD-ROM etc).

Acest nou dispozitiv este controller-ul E-IDE (Enhanced IDE). În acest caz sunt de fapt doua controller-e integrate pe aceeasi placa, unul primar si unul secundar. Cele doua canale lucreaza independent, pentru fiecare canal rulând câte o comanda. Astfel, daca la un sistem se cupleaza doua harddisk-uri pe acelasi canal (pentru fiecare canal se poate conecta un cablu-panglica cu câte doua conectoare pentru cele doua harddisk-uri), acesta va fi mult mai lent decât un sistem cu cele doua harddisk-uri cuplate câte unul pe fiecare canal (vezi figura 2.28).


Fig. 5.1.7. Cuplarea harddisk-urilor la controller-ele EIDE.

EIDE foloseste metodele de accesare descrise la standardul SCSI si anume PIO, DMA si în special Bus-mastering, când adaptorul devine master pe magistrala, transmitând datele direct în memorie. Daca la standardul IDE nu se puteau cupla harddisk-uri mai mari de 528 MB, la noul standard aceasta problema a disparut, datorita driver-ului EIDE implementat, ajungându-se la capacitatea de 8,5 GB. De asemenea, si viteza de transfer a crescut la 11-13 MB/s.

Doua dintre comenzile care apartin setului intern IDE sunt Read Multiple si Write Multiple, prin care se poate face trecerea de la citirea/scrierea uni-sector la cea multi-sector, faza în care se pot scrie/citi simultan mai multe sectoare. Comenzile au ca rezultat o crestere foarte mare a vitezei de transfer si de aceea este bine ca atunci când se dispune de o unitate de harddisk IDE sau EIDE sa se activeze aceste comenzi prin modificarea optiunii CMOS, IDE HDD Block Mode. Host-adapter-ele sunt construite special pentru diverse arhitecturi de magistrala, cum ar fi: ATA-IDE pentru ISA/EISA, MCA-IDE pentru MCA, VLBus-IDE sau VLBus-EIDE pentru VLBus si PCI-EIDE sau ATA-2, IDE-2 pentru PCI. Legatura cu controller-ul se face prin cabluri cu 40 de fire prevazute cu socluri.

Pentru ca sistemul sa lucreze la capacitatea maxima, având în vedere vitezele de transfer foarte mari, este bine ca magistrala sa fie de viteza mare, de tip VLBus sau PCI. În caz contrar, magistrala va diminua performantele atinse de acest standard.

Controller-e pentru CD-ROM

În cazul dotarii calculatorului cu o unitate CD-ROM, se impune a fi specificat nivelul la care se lucreaza cu CD-ul, si anume profesional sau amator. În primul caz, cea mai buna solutie este alegerea unui controller de tip SCSI sau cel putin a unui controller de tip EIDE, prevazut cu posibilitati I/O pentru CD-ROM, care sa asigure rate de transfer controller-calculator de cel putin 300 KB/s. În plus, exista multe aplicatii pretentioase care cer, în mod special, prezenta unui controller SCSI.

În cel de-al doilea caz, când pretentiile pentru viteza scad, un controller AT Bus (IDE) satisface prin rata sa de transfer, de circa 150 KB/s. Oricum, cel mai bine este ca la achizitionarea unei unitati CD-ROM sa fie luat si controller-ul recomandat în cartea tehnica de firma constructoare sau de firma care comercializeaza unitatea, pentru a evita ca între unitate si controller, la cuplare, sa apara conflicte de protocol, transmisie sau pur si simplu incompatibilitate.

Cache controller

În acest caz nu este vorba despre un nou standard de interfata-controller pentru medii de stocare sau periferice, ci de o solutie practica, din ce în ce mai folosita pentru diverse tipuri de controller-e si anume instalarea pe placa controller-ului a unei memorii tampon de tip cache, care va îmbunatati considerabil performantele unitatii cuplate. Functional, aceste controller-e nu difera de celelalte tipuri, fara cache, doar ca în acest caz în lantul de transmisie memoria cache intervine ca intermediar în accelerare.


Fig. 5.1.8. Dispunerea memoriei cache pentru controller-e.

Controller-ul, lucrând cu blocuri de date de scris/citit, va transmite aceste blocuri mai întâi în memoria cache, de aici acestea fiind preluate fie de mediul de stocare, fie de memoria RAM. În general, un controller de calitate dispune de 1-2 MB de memorie cache (vezi figura 2.29).

La o operatie de citire de pe harddisk, controller-ul nu va mai cauta pe acesta ci, pe baza adreselor pe care le-a memorat anterior (adrese ale blocurilor cu care a operat), va cauta mai întâi în memoria cache locul dorit. Daca acesta exista stocat în memoria cache, va fi direct transferat în RAM, în caz contrar cautarea facându-se pe disc. Probabilitatea gasirii blocului dorit (cache hit) în memoria cache este destul de mare, datorita faptului ca, la un moment dat, sistemul de calcul va rula doar o anumita bucla (segment) de program, de 64 KB, în care vor fi vehiculate aproximativ aceleasi blocuri de date si instructiuni.

Sporul de viteza obtinut prin folosirea memoriei cache este foarte mare, datorita lipsei factorilor de întârziere care intervin în operatiile de citire/scriere curente (pozitionare a capului unitatii în zona în care este stocat blocul respectiv pe disc, factor de întretesere etc.).

În ceea ce priveste modul în care memoria cache este eliberata de continut, se foloseste metoda LRU (Last Recently Used), având la baza o statistica memorata a gradului de accesare a blocurilor de date. Astfel, blocul de date cel mai putin utilizat, deci cu cele mai mici sanse de a fi cerut de sistemul de calcul, va fi sters, disponibilizând astfel spatiul pentru alte blocuri.

Inapoi

Inapoi la Tehnologia RAID
Inapoi la Index